##MQTT简介
最近在研究mqtt协议,这是IBM公司发布的适用于物联网通信的协议,基于订阅/发布消息,可以高效的完成设备和设备间的数据传输。随即便有了用mqtt做智能设备的想法,大体框架是用手机上浏览器网页,控制家里的灯和读取温湿度计的信息。
##结构
这里的控制端是用MQTT.JS做的web页面
这里的被控端是ESP8266,用的是Nodemcu框架
接下来是结构图:
首先是MQTT 代理,代理作为中间人,负责与客户端直接交换和处理信息
接着是控制面板,负责给被控制设备(图中深黄色)下达指令
然后是彩灯、温湿度计、智能插座,这些都是被控制的设备,负责响应来自控制面板的数据
最后是MQTT助手,助手是辅助控制面板的重要角色,比如客户端的在线情况,在这里客户端的在线情况不是由MQTT代理来处理,而由一个间接的MQTT助手处理
##搭建MQTT Broker
MQTT Broker使用EMQX,EMQX的前身是emqttd,这是一款国人开发的MQTT代理软件,自带中文Dashboard特别方便,具体文档可以参考这里
具体的安装过程可参阅这里
安装好后,启动方式有三种,任选其一即可:
- 直接启动:
$ emqx start
emqx 3.1.0 is started successfully!
$ emqx_ctl status
Node 'emqx@127.0.0.1' is started
emqx v3.1.0 is running
- systemctl 启动
$ sudo systemctl start emqx
- service 启动
$ sudo service emqx start
程序启动后,可以使用以下命令来检测运行状态
./bin/emqx_ctl status