使用Arduino Nano驱动Lora模块
为什么选用Lora
射频通信芯片有很多种,但是一般在同样功耗下,距离没有Lora远;同等范围下,没有Lora节能。
Lora通信只适用于低速率,高延时的场合,与WiFi正好相反。
- 考虑在野外,没有移动通信网络覆盖的环境下,收集传感器数据,适合使用。
- 在设密度大,使用移动通信网络成本过高,使用Lora来统一收集数据,例如远程抄表。
Lora作为物联网的一种通信技术选型,正好是移动通信网络,WiFi的补充。
完整项目
我使用一个Arduino Nano 来驱动Lora模块,另外加了一个BMP085
(I2C接口)气压传感器,一个光敏电阻,一个按钮。
使用PlantformIO平台开发。(比Arduino IDE好用很多)
实现功能有:
- 参考arduino-LoRa双向通行的自有简单协议;
- 获取传感器的温度,气压数据,光亮度;
- 获取供电电池电压;
- 定时通过Lora发送数据,按键强制发送一条数据;
- 使用链表缓存需要发送的内容,避免频繁发送时候影响数据接收;
- 接收Lora数据:
- 指令led点亮灯2秒;
- 指令ping,返回pong; <