广告

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

2018-10-4 09:55 573 1 1 分类: 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条评论)

登录后参与讨论
相关推荐阅读
leejun_708981951 2018-09-27 15:09
air202用LUAT 连接ONENET
ONENET 是移动的互联网平台。         AIR202的协议中有HTTP, HTTP协议只能上传,不能下载,不好用。 那剩下的协议中,LU...
leejun_708981951 2018-09-02 10:52
pic18fxxx 串口通讯 云端升级的学习
参考资料《PIC16PIC18器件的高速串行自举程序》《8位PIC MCU自举程序代码生成器》云端用自己的服务器。  1 首先要获取 目录下的版本号。 并经过判断是否下载。2&nb...
leejun_708981951 2018-08-18 09:56
ESP8266 云端升级
我一直想远端升级。但是也就是做到了BOOTLOARD.BOOTLD 可以让客户来进行升级程序。 但是总是不方便,比较要麻烦别人,比较步骤比较多,客户有畏难情绪。当我看到ESP8266 可以云端升级,不...
leejun_708981951 2018-08-06 14:34
air202 lua 开发
AIR202 模块是上海合宙的。有16个IO口 可以引出来用。 在小规模应用中,可以不再另外加MCU了。但是写AIR202  需要用LUA语言。  1  LUA 的...
leejun_708981951 2018-07-16 15:00
pic18f66j60 官方的BOOTLOARD的程序分析
官网上的MLA 中  有  Internet Bootloader 66j60 的程序。可以免费下载。官网的 Bootloader 更好,我做的 Bootloa...
我要评论
0
1
广告
关闭 热点推荐上一条 /1 下一条