原创 MCU 串口发送数据 通过mqtt协议的AIR202 连接到ONENET.

2018-10-4 09:55 4932 12 2 分类: MCU/ 嵌入式 文集: AIR202
 1 首先  AIR202必须连接ONENET的MQTT服务器。 如果不会,请见我上一篇博文。

 2 AIR202的DEMO中有 MQTT和UART的DEMO.拼接起来,做个透传就可以了。  
  
  3先看接收。  想要接收,必须先订阅。 

    订阅的主题 分别是  
SetMyIP,
SetMyMask,
SetMyGate,
SetMyPort,
EnterStopState,
SetTemperiture,
SetTime,
SetLampTime,
SetLampMode,
SetFanMode,
SetLightBoxTime,
LUAT的API   订阅:
if mqttClient:subscribe({["SetMyIP"]=0,
                         ["SetMyMask"]=1,
                         ["SetMyGate"] =2,
["SetMyPort"] = 3,
["EnterStopState"]=4,
["SetTemperiture"]=5,
["SetTime"]=6,
["SetLampTime"]=7,
["SetLampMode"]=8,
["SetFanMode"]=9,
["SetLightBoxTime"]=10,})   then



4  发布 

LUAT的发布格式如下:
mqttc:publish(topic, payload[, qos=0][, retain=0])

参数
参数 释义
topic string,UTF8编码的字符串
payload string,用户自己控制payload的编码,mqtt.lua不会对payload做任何编码转换
qos number,此参数可选,默认值为: 0。0/1/2, default 0
retain number,此参数可选,默认值为: 0。0或者1
返回值
bool 发布成功返回true,失败返回false

-------------------------------------------------------------------------
设备端发布:
    ip,mask gate,port,
     LockSts
     FanSts
     LampSts
     LightBoxSts
   
mqttc:publish(topic, payload[, qos=0][, retain=0])
mqttcClient:publish("ip","{\"IP\":\"192.168.1.200\"}",0,{cb=pubQos0TaskCb})
mqttcClient:publish("mask","{\"mask\":\"192.168.1.200\"}",1,{cb=pubQos1TaskCb})
mqttcClient:publish("Gate","{\"Gate\":\"192.168.1.1\"}",2,{cb=pubQos2TaskCb})
mqttcClient:publish("port","{\"port\":\"4099\"}",3,{cb=pubQos3TaskCb})

mqttcClient:publish("LockSts","{\"LockSts\":\"1\"}",4,{cb=pubQos4TaskCb})   --LockSts,门磁,锁头状态
mqttcClient:publish("FanSts","{\"FanSts\":\"1\",\"SetTemperiture\":"23"}",4,{cb=pubQos4TaskCb}) --anMode,FanSts,SetTemp,CurrentTemp
mqttcClient:publish("LampSts","{\"LampSts\":\"1\"}",5,{cb=pubQos5TaskCb})    --LampMode,LampSts,LampTime
mqttcClient:publish("LightBoxSts","{\"LightBoxSts\":\"1\"}",6,{cb=pubQos6TaskCb})  --LightBoxSts,LightBoxTime
mqttcClient:publish("SenserSts","{\"SenserSts\":\"1\"}",7,{cb=pubQos7TaskCb})    --SenserMode,SenserSts

5 MCU的订阅不用管, AIR202 已经订阅了。   AIR202 接收到订阅的数据 PAYLOAD ,串口发送到MCU.
   需要MCU 的JOSN解析。

6 MCU的发布, 需要编译成JOSN 格式,UART 发送到AIR202,由AIR202 发送出去。
AIR202 在连接好服务器后,只负责订阅主题,然后剩下的就是透传功能了。
LUAT 中API 有
json.encode()
json.decode()
因此可以把JSON的编译和解析 放到AIR202 中去做。

7  MCU 和AIR202的匹配问题。。。。通过设备号或企业号。

8 串口的格式  1 CMD  + DATA + 0XC0+\N
 ---------------------------------------------------------------2018 1004   工作是快乐的
      
  






文章评论0条评论)

登录后参与讨论
相关推荐阅读
esad0 2021-07-09 15:46
传说中的嘉立创紫和TMF8801测距模块
这个色彩鲜艳的PCB 就是刚推出的嘉立创紫, 我感觉有点偏黑。    激光测距传感器 TMF8801的测试板。TMF8801 的资料还需要给老外签订保密合同才可以...
esad0 2021-04-19 15:38
AIR724 一拖8 LORA 系统
         AIR724通过LORA模块  和其他的8个模块进行通讯。  从而实现1拖8的效果。  &n...
esad0 2020-10-13 13:41
stm32f407移植cJSON 归纳
测试很顺利,主要感谢以下三位前行者的无私开源。参考下列三位大神文章汇总:在STM32F407上简单移植Cjson  https://blog.csdn.net/qq_4176464...
esad0 2020-05-14 13:58
关于读写ic卡的程序注释
         IC卡,RFID卡,M1卡。E:\eDiary\2020\4\PIC18F97J60_SPI.cE:\eDiary\202...
esad0 2020-02-10 19:32
NTP 不好用
[2020-02-10 19:29:09.704]: [I]-[testNtp.printTime] 2012/06/01,11:17:12[2020-02-10 19:29:10.701]: [I]...
我要评论
0
12
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /4 下一条