基于MQTT协议的WZ指令开发


title: 基于MQTT协议的WZ指令开发
tags: WZ指令
date: 2018-10-11 10:53:00


这是一款真正的基于MQTT的AT指令

基于MQTT协议的MCU通讯指令-WZ指令
2.0版本已完结,可用于STM32的数据发送。
名称:基于MQTT的万能AT指令(名称来源于本人名字故取名为WZ指令)
特点: 简单到只需要一行代码就可以将数据点推送至MQTT服务器 可用于个人EMQ服务器,或者树莓派搭建的局域网服务器(暂不支持onenet等商用平台)
默认端口:1883
同时支持微信配网、安卓APP配网,支持掉电存储、支持用户名密码校验、 支持wifi掉线重连、支持服务器掉线重连。
版本号:V2.0
作者:阿正
网站:wenzheng.club
固件可以加群下载:476840321

  1. 目前市面上能找到的兼容MQTT的AT指令少之又少
  2. 而且安信可和乐鑫官方也没有开发这个AT指令,基本上都是基于MCU端的处理,同时MQTT是基于TCP转化而来,
  3. 如果想要用MQTT就把TCP数据封包成为MQTT协议,就可以用TCP发出MQTT的数据。

这是arduino中文社区的一篇帖子,感觉讲的非常好https://www.arduino.cn/thread-82851-1-1.html


我的方法,与上面的方法不同,我是从用户端的逻辑来进行的操作,以至于达到了很好的用户体验!

最终效果:

使用说明:

****************************
名称:基于MQTT的万能AT指令(名称来源于本人名字故取名为WZ指令)
特点:
   简单到只需要一行代码就可以将数据点推送至MQTT服务器
   可用于个人EMQ服务器,或者树莓派搭建的局域网服务器(暂不支持onenet等商用平台)
   默认端口:1883
   同时支持微信配网、安卓APP配网,支持掉电存储、支持用户名密码校验、
   支持wifi掉线重连、支持服务器掉线重连。
版本号:V2.0
作者:阿正
网站:wenzheng.club
*****************************
烧写位置:0x00000000
建议将ESP01清除缓存后再烧写
配网:微信智能配网(或者安卓APP配网),可掉电存储,不需要AT指令单独配置。
  AT指令:仅此一条json数据,没有繁琐的其他配置环节,简单粗暴
  {"wz":"wenzheng.club","server":"60.205.203.64","user":"admin1","password":"public","topic":"20190213134505","message":"test2019"}
AT指令说明:
  1、"wz":"wenzheng.club" 为必填项!无此字段无法使用此指令。
  2、服务器连接:第一次发送这条AT指令时会进行服务器连接,
  3、消息发布:后续发送这条AT指令则代表发送指定主题的消息。message目前最大支持200字节。
  3、主题订阅:目前暂不支持用户自定义订阅主题,
     但是系统开机默认订阅主题名为:wz_server 的主题!
  4、消息接收:wz_server 发布的消息会在串口中打印出来,
     如:WZ:[Hello world!]
     用户可对此进行处理然后执行相关动作。
     后续版本会支持用户自定义。
  代码举例:
  **arduino**
  void setup() {
Serial.begin(9600);
}
void loop() {
 Serial.println({\"wz\":\"wenzheng.club\",\"server\":\"60.205.203.64\",\"user\":\"root\",\"password\":\"citc2018\",\"topic\":\"ZX1040300101000\",\"message\":\"T:226;H:232;\"}");
 //真正的只需要一行代码实现数据发送!!用户只需要拼接字符即可!
 delay(1000);
}
**STM32**
单片机配置好串口直接
printf("{\"wz\":\"wenzheng.club\",\"server\":\"60.205.203.64\",\"user\":\"root\",\"password\":\"citc2018\",\"topic\":\"ZX10403001010000\",\"message\":\"T:226;H:232;\"}");
即可!
///**************///
更新日志:
2019年2月13日晚上制作V2.0版本
  添加mqtt_user验证
  添加mqtt_passward验证
2019年2月13日上午制作V1.0版本
  实现基本通讯
2019年初有初步想法

STM32串口测试:


总结,经过我的测试,还是相对稳定的,无论是Arduino还是STM32进行数据发送,都是可以的。经测试Arduino不间断发送3000+数据,服务器接收依然正常!

猜你喜欢

转载自blog.csdn.net/switch_love_case/article/details/87282500
wz
今日推荐