该项目为带有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},
}