单片机/MCU论坛
直播中

张强

1年用户 188经验值
擅长:嵌入式技术
私信 关注
[讨论]

【开源】远程一氧化碳监测器之【传感器数据Lora转WiFi/4G传输】

Lora转WiFi/4G使用场景:

(1)现场没有 WiFi 或 4G 信号的情况

(2)节省成本,不想为每个传感器都配一个4G模组的情况

注意:这里另外需要 FDTU07(Lora转4G DTU)或 FDTU08(Lora转WiFi DTU)设备的配合。

功能概述:

通过 485 总线 Modbus 协议读取到传感器数据,并将数据转成 Json 格式传输给 FDTU07(Lora转4G DTU)或者 FDTU08(Lora转WiFi DTU)设备,随后 DTU 再将接收到的数据通过 4G 或 WiFi 传输给 Mqtt 服务器,数据传输流程如下:

lora_json_mqtt

步骤一:接线

  • 通过DC座或者端子座的“+”和“-”给设备提供5-24V电源
  • "A"和"B"接485总线的A和B端
  • "ANT1" SMA接口接 Lora 天线

步骤二:拷贝代码

首先用TypeC USB数据线将设备和电脑连接,然后在电脑上会自动出现一个1.6MB大小的U盘(如果U盘大小是0MB,则需用FAT32快速格式化该盘),接着将 /Code/ 文件夹中的main.lua代码文件拷贝覆盖至该U盘。

步骤三:更新配置信息

在 U 盘中用记事本或者其他代码文本编辑器打开 main.lua 代码文件,用户需编辑文件开头部分的 配置信息 ,替换成实际信息然后 ctrl+S 保存即可,最后拔掉 USB 线,设备此时如果仍有供电,则会自动耗时 2 秒时间更新代码,否则设备下次上电时会自动耗时 2 秒时间更新代码。需要更改的配置信息如下:

这里只需关心 Part1,Part4 ,Part5 参数即可

----------------------配置信息开始----------------------
--Part1: 系统配置
SysMode = 3 --0:4G_TCP, 1:4G_Mqtt, 2:4G_ShineBlinkCloud, 3:LoraModbusHex
SysGpsUse = "NO_GPS" --NO_GPS: 不带GPS功能, AUTO_AGPS:带GPS功能
SysWorkInterval = 10 --单位秒,系统采集传感器并发送数据的间隔周期。
--如果SysSleepEn=1,则SysWorkInterval周期间隔内会断电低功耗
SysSleepEn = 0 --0:不使用低功耗休眠 1:使用。该功能必须外挂BateryFriend才有用
--SysMyID可任意设定,用作设备的唯一标识,
--也可以用LIB_GetSysUniID()函数获取的芯片唯一ID,形如"761A6617E803F78402"
SysMyID = "Test01" -- SysMyID = LIB_GetSysUniID()

--Part4: Lora参数(SysMode=3时才有用)
--Lora从机(slave)地址(范围:0-65535)
LoraAddr = 0x01 
--Lora对端中心点(center)地址(范围:0-65535)
LoraTargetAddr = 0x00
--Lora通信信道(范围:410-441MHz),相互通信的Lora节点必须在同一信道
LoraChannel = 433
--Lora无线速率(范围:0.3, 1.2, 4.8, 9.6, 19.2kpbs),速率越低通信质量越高
LoraBaudrate = "9.6kpbs"
--Lora发射功率(范围:11, 14, 17, 20dB),该值越大通信质量越高,但功耗会增加
LoraTxPwr = "20dB"

--Part5: Modbus RS485传感器配置
MbAddr = 0x01 --传感器modbus地址, 1~250
MbBaudRate = "BAUDRATE_4800" --485总线的通信速率
----------------------配置信息结束----------------------
(1)工作模式配置

[SysMode] 需设置成 3 ,表示设备以 LoraModbus 模式工作。

(2)GPS 功能开启

[SysGpsUse] 需设置成 "NO_GPS",因为 Lora 模块不支持 GPS。

(3)Modbus 传感器参数配置

[MbAddr] 为传感器的 Modbus 地址,默认需设置为 0x01

[MbBaudRate] 为传感器的 485 通信波特率,默认需设置为 "BAUDRATE_4800"

(4)采集传输工作周期设置

[SysWorkInterval] 该值设置的越大工作采样和传输间隔时间越长,这样可以减少 Sim 卡流量的消耗,建议结合实际情况设置,单位秒。

(5)低功耗休眠功能开启(需外挂 BatteryFriend )

[SysSleepEn] 设置为 1 时将开启低功耗功能。当该功能开启后,设备每次采集并传输完数据后将进入休眠状态,休眠时间为 [SysWorkInterval] 秒,休眠期间设备的电流仅为 uA 级别。

注意1:如果没有外挂 BatteryFriend 电池低功耗管理硬件设备, [SysSleepEn] 即使设置为 1 也不会有低功耗休眠功能!

注意2:BatteryFriend 和本设备配合使用的教程请访问ShineBlink 的gitee开源仓库

(6)Lora 从机地址设置

[LoraAddr] ,不同的Lora传感器从机节点[LoraAddr] 的值一定要设置成不同的。

步骤四:开始工作

上电后观察设备的 LED 指示灯状态:

绿色闪烁:每闪烁一次表明通过 485 Modbus 成功读取到一包传感器数据,并向 Lora 中心点发送了一包 Json 形式的传感器数据。

步骤五:和DTU配合,向云端传输数据

配合 FDTU07 实现 Lora 转 4G 的教程请参考:ShineBlink 的gitee开源仓库

配合 FDTU08 实现 Lora 转 WiFi 的教程请参考:ShineBlink 的gitee开源仓库

更多回帖

发帖
×
20
完善资料,
赚取积分