最近需要用到MQTT,但长时间没用,导致有些使用方法忘记了,因此做了下笔记。
本文基于ESP8266+arduino进行,相关教程可参考太极创客,下述相关代码均基于太极创客代码进行。
ESP8266代码
发布
1 | /********************************************************************** |
连接部署在服务器上的MQTT服务器,发布相关话题,为避免话题冲突,采用前缀加上MAC地址的方式进行命名。
1 | // 建立发布主题。主题名称以Taichi-Maker-为前缀,后面添加设备的MAC地址。 |
订阅
1 | /********************************************************************** |
相关内容同“发布”章节相同。
EMQX
服务器部署EMQX后,本地输入服务器IP:18083,则可进入到EMQX页面,默认用户名:admin,默认密码:public。具体可见EMQX文档介绍。
测试可使用“诊断工具==>WebSocket客户端”进行。
连接后订阅”发布”中所发布的话题则会在已接受中查看到发布的消息。
但此时arduino的串口监视器中使用订阅的话题并没有输出内容。
这是因为发布的话题和订阅的话题并不是同一个,我们可以在写入代码里改为相同话题或者利用EMQX的主题重写功能进行。
如图,我们将发布的话题重写到所订阅的话题中。这是我们进行订阅起初的发布话题则不会收到消息。
此时我们将订阅的话题更改为所订阅的话题,EMQX和串口监视器均开始显示所发布的消息。
