基于MQTT协议的WZ指令开发
---
title: 基于MQTT协议的WZ指令开发
tags: WZ指令
date: 2018-10-11 10:53:00
---
![](https://i.loli.net/2019/02/14/5c6586ba6d596.png)
> 这是一款真正的基于MQTT的AT指令
> 基于MQTT协议的MCU通讯指令-WZ指令
2.0版本已完结,可用于STM32的数据发送。
名称:基于MQTT的万能AT指令(名称来源于本人名字故取名为WZ指令)
特点: 简单到只需要一行代码就可以将数据点推送至MQTT服务器 可用于个人EMQ服务器,或者树莓派搭建的局域网服务器(暂不支持onenet等商用平台)
默认端口:1883
同时支持微信配网、安卓APP配网,支持掉电存储、支持用户名密码校验、 支持wifi掉线重连、支持服务器掉线重连。
版本号:V2.0
作者:阿正
网站:wenzheng.club
固件可以加群下载:476840321
<!--more-->
>
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:
用户可对此进行处理然后执行相关动作。
后续版本会支持用户自定义。
代码举例:
**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串口测试:
![](https://i.loli.net/2019/02/14/5c652b20e7556.jpg)
> arduino串口测试
![](https://i.loli.net/2019/02/14/5c652be3bb8d8.jpg)
> 总结,经过我的测试,还是相对稳定的,无论是Arduino还是STM32进行数据发送,都是可以的。经测试Arduino不间断发送3000+数据,服务器接收依然正常! 哦123456789 现已更新V3.0 已支持一行代码连接onenet!
更新V3.0 WZ指令V3.0 直达连接:http://wenzheng.club/
视频介绍:https://www.bilibili.com/video/av44025282/
页:
[1]