单片机/MCU论坛
直播中

张强

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

【开源】4G_Lora远程氨气监测器之【4G接入Mqtt云服务教程】

功能概述:

参考本文档可实现将传感器采集到的数据信息,以 Json 格式通过 Mqtt 传输给远端的云服务器。

Json 消息包含内容如下:

Json对象 描述 类型 单位 值域
Uid 设备唯一标识 字符串
NH3 氨气浓度值 整数 ppm 0-500

发送的 Mqtt 消息 Json 字符串形式举例如下:

{"Uid":"Test01","NH3":120}

步骤一:接线

  • 通过 DC 座或者端子座的 “+” 和 “-” 给设备提供 5-24V 电源
  • "A" 和 "B" 接 485 总线的 A 和 B 端
  • "ANT1" SMA 接口接 4G 天线,"ANT2" SMA 接口接 GPS 天线(如果ANT2有的话)

步骤二:拷贝代码

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

步骤三:更新配置信息

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

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

----------------------配置信息开始----------------------
--Part1: 系统配置
SysMode = 1 --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()

--Part3: MQTT参数(SysMode=1时才有用)
MqttServerAddr = "mqtt.ctwing.cn" --天翼云MQTT服务器ip地址或域名
MqttServerPort = 1883 --MQTT服务器端口号
MqttClientID = "15589964DTU01" --产品ID"15589964" + 设备编号"DTU01"
MqttUserName = "ShineBlink" --建议填写为用户自己的天翼物联网平台(AIoT)用户名
MqttPassword = "lMmugH2yURmY2uJqkNby-zQHGJ67ngjMAYR6kkGQmko" --采用的一型一密,特征串
MqttSubTopic = "device_control"--订阅用,用于接收服务器下发的数据
MqttPubTopic = "$device_send" --发布用,用于向服务器发送数据

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

[SysMode] 需设置成 1 ,表示设备以 4G_Mqtt 模式工作。

(2)GPS 功能关闭(默认不带GPS)

[SysGpsUse] 需设置成 "NO_GPS",如需GPS功能需另外定制带GPS定位功能的4G模组。

(3)Modbus 传感器参数配置

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

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

(4)Mqtt 通信配置

上面Part3中的 Mqtt 参数是以接入天翼云(Ctwing)为案例填写的,用户需要根据自己所接的 Mqtt 云服务器做相应的更改。

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

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

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

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

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

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

步骤四:开始工作

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

白色:表明刚上电

红色:表明已检测到 Sim 卡

蓝色:表明已连上附近基站

绿色:表明已和服务器建立连接

测试方法:

如果自己没有远端 Mqtt 测试服务器,可选择天翼云(Ctwing),OneNet,阿里云等作为设备 Mqtt 接入的云,这里我们以天翼云中的 Mqtt 透传服务作为例子来演示 Mqtt 的接入,其他云的接入也就大同小异。

服务器接入实例教程请访问ShineBlink 的gitee开源仓库

更多回帖

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