这是一个基本的Arduino框架,用于使用上升的HF Lorawan Radio-Modem并将传感器连接到TTN等Lorawan网络。
我们在地址0x50上使用I2C FRAM设备进行非易失性存储器。可以省略此设备,也可以用较小的更改代替EEPROM。
DEVEUI来自Radio-Modem或通过地址0x52处的I2C 24AA025E64芯片,也可以在Config.h文件中设置。每个调制解调器的顶部都有一个QR码,其DEVEUI。
为美国TTN频带开发并测试了此代码库,但可以更改为其他频段。
测试了:RHF0M062-HF22和RHF0M0E5-HF22,但也应与RHF78-052LA-HF22和其他HF的其他导数模块一起使用。
http://www.risinghf.com/home
该测试代码有3个发送例程,
短状态用于错误消息,仅限9个字节,仅在我们启动时发送和有错误时发送...(dr0-> 11个字节-2个可能的Mac字节)
状态很少发送设备信息...版本,编译时间等...
传感器数据是在默认情况下每小时发送的...
我们还支持定期重新加入。在TTN上从V2转移到V3之后,很明显,设备需要不时重新加入以支持未来的移动或网络或TTN的变化。
此代码库还允许处理一些下载消息。
在启动时,代码读取存储在FRAM(如果有)的数据块,并将编译日期时间字段和CRC与Fram中存储的内容进行比较,以查看我们是否有第一启动。如果是这样,我们将数据块的副本保存在Fram中,以备将来使用。如果不是,我们调整了引导计数并保存引导原因。
USB端口在启动时被关闭以节省电源,这需要重置开关的双击才能返回引导程序。
您可以在config.h文件中设置许多配置选项,包括lorawan键,频率表,发送功能的时机等...
Radio-Modem具有一个EEPROM,它将在设置后保持其大多数参数... Config.h具有一个定义,如果不需要再次重置它们,该定义将禁用调制解调器中的重新设置参数。
可以禁用debug1和debug2宏来删除串行端口的所有调试输出,它们允许我们在代码中使用更常见的“ c” printf(...)函数,而不是arduino serial.print.print(...)函数。
该代码已使用专有硬件和火箭式迷你乌尔特拉 - 洛拉董事会进行了测试。
TBD:
Adding some logging to flash
look at over-the-air code upgrade...
Add support for EEProm option to replace FRAM
An option to get DEVEUI from the modem and or UUID from the CPU
Add more commands to support Class B in the modem library
Documentation of modem library
Add AT command to set various parameters from the serial port
Libraries used by this project:
LoRaWan-RFH0M062-mod
This radio-modem library was developed by SEEED studios for the RHF78-052 device, I have
made many changes to support the newer radios, added an error function, and speed up timing
on messages to/from the radio.
Stopwatch
RTCZero-MOD
FRAM_MB85RC_I2C
Arduino_CRC32