該項目為帶有RF95兼容的無線電模塊和串行接口(例如Adafruit Feather M0 Lora設備或HELTEC OLED LORA 32模塊)的微控制器板提供了調製解調器固件。在各種基於ESP32的板上,可以啟用OLED狀態顯示,GPS,BLE或WIFI支持等可選功能。
當前的默認配置是用於設備的868.1 MHz。可以在以下行中#define RF95_FREQ 868.1 src/modem.h 。
支持以下董事會:
構建和安裝無線電固件的推薦方法是在系統上安裝Platformio(http://platformio.org/)。
重要的Edit platformio.ini添加您的目標平台並配置構建標誌中的無線電引腳!
使用pio run -t upload -e heltec_wifi_lora_32_ble在設備上安裝
可選激活顯示支持: pio run -t upload -e heltec_wifi_lora_32_display_ble
目前,任何人都可以連接到BLE服務,這是全明文。發表了一種特徵用於發送命令,其中一個特徵是通過通知提供輸出。
所有通過BLE發送的命令必須用n終止。默認的操作模式將所有內容分為20個字節塊,根據BLE規格,這是最大數據包大小。在iPhone 8和11上,我們還可以發送和接收更大的BLE數據包(> 100 bytes)。因此,可以通過AT+BFB=1激活大時髦的BLE-FRAME-FRAMES模式。即使沒有落後n也可以識別該命令,並且也使n可選。這特別有用,因為一些BLE調試軟件(例如LightBlue Explorer)在寫操作結束時不會發送托架退貨或線條提要。
如果將WiFi配置文件安裝在兼容的ESP MCU上,則設備可以充當訪問點。憑據是在platformio.ini中配置的,默認設置為: WIFI_SSID="rf95modem"和WIFI_PSK="rf95modemwifi"此訪問根據Espressif SDK 192.168.4.1最多4個客戶端,並且默認情況下最多可接受4個客戶端。
有兩種與調製解調器通信的方法:
RF95MODEM對端口1666 UDP廣播數據包響應。要接收輸出,提供了一個簡單的UDP偵聽器( extras/udp_receiver.py )。要將命令發送到調製解調器NetCat就足夠了,例如echo "at+tx=414141" | ncat -u 192.168.4.255 1666
只需使用TCP連接到端口1666上的192.168.4.1 ,並將其像串行連接一樣使用,例如ncat 192.168.4.1 1666 。
一次只支持一個連接!
一些設備(例如TTGOS T梁)還包括GPS芯片。這也可以通過AT+GPS命令通過調製解調器固件查詢。根據您的Atenna,位置和設備上的GPS芯片,可以使用最初的鎖定位置幾分鐘。由於這也可以顯著增加能源消耗(〜50mA),因此可以通過AT+GPS=0暫時禁用它。
默認串行速度設置為115200( src/main.cpp線17 )。
命令列表:
AT+HELP Print this usage information.
AT+TX=<hexdata> Send binary data.
AT+RX=<0|1> Turn receiving on (1) or off (2).
AT+BFB=<0|1> Turn send Big Fine BLE-Frames on (1) or off (0).
AT+GPS Print GPS information.
AT+GPS=<0|1> Turn GPS power on (1) or off (0).
AT+FREQ=<freq> Changes the frequency.
AT+INFO Output status information.
AT+MODE=<NUM> Set modem config:
0 - medium range (default)
Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
1 - fast+short range
Bw = 500 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
2 - slow+long range
Bw = 31.25 kHz, Cr = 4/8, Sf = 512chips/symbol, CRC on.
3 - slow+long range
Bw = 125 kHz, Cr = 4/8, Sf = 4096chips/symbol, CRC on.
4 - slow+long range
Bw = 125 kHz, Cr = 4/5, Sf = 2048chips/symbol, CRC on.
為了獲得當前的配置,可以AT+INFO使用
> AT+INFO
+STATUS:
firmware: 0.7.3
features: MCU BLE WIFI GPS
modem config: 0 | medium range
max pkt size: 251
frequency: 868.10
rx listener: 1
BFB: 0
GPS: 1
rx bad: 0
rx good: 0
tx good: 0
+OK
從此輸出中,您可以看到將哪些功能編譯到固件中的功能以及其版本是什麼。還顯示當前調製解調器配置和所選頻率。
要更改頻率,可以使用AT+FREQ命令。
> AT+FREQ=868.20
+FREQ: 868.20
當心:可以在此處添加任何浮點數,該值直接傳遞給Lora收發器!
更改預配置的調製解調器模式同樣容易:
> AT+MODE=2
+OK
AT+TX=414141發送一個包含AAA作為內容的數據包。最大數據包大小可能因無線電芯片而異。
AT+RX=1激活接收偵聽器,默認為ON。
傳入數據會自動寫入串行端口: +RX 3,414141,-15,8帶有“ AAA”的框架作為有效負載,RSSI為-15,SNR為8。
如果激活GPS( AT+GPS=1 ),並且固件在具有GPS功能的設備(例如TTGO T-Beam)上運行,則可以輕鬆查詢當前位置和時間。如果沒有提議者的GPS鎖定,返回的所有值都設置為零。
> at+gps=1
+OK
> at+gps
Latitude : 0.00000
Longitude : 0.00000
Altitude : 0.00M
Satellites: 0
Time : 00:00:00
Date : 00.00.2000
Timestamp : 943920000
+OK
那裡有一些第三方編程庫,以簡化RF95Modem的集成。
如果您在學術出版物中使用此代碼,請引用以下論文:
@INPROCEEDINGS{baumgaertner2018monitoring,
author={L. {Baumgärtner} and A. {Penning} and P. {Lampe} and B. {Richerzhagen} and R. {Steinmetz} and B. {Freisleben}},
booktitle={2018 IEEE Global Humanitarian Technology Conference (GHTC)},
title={Environmental Monitoring Using Low-Cost Hardware and Infrastructureless Wireless Communication},
year={2018},
pages={1-8},
doi={10.1109/GHTC.2018.8601883},
month={Oct},
}