当前位置 : 主页 > 网络编程 > PHP >

Windows下MQTT代理服务器的搭建

来源:互联网 收集:自由互联 发布时间:2023-09-03
前言: 最近小编在折腾Arduino,为了让板子联网又买了ESP8266 NODEMCU (wifi模块,也是一个单片机)。虽然能通过烧录的程序通过http请求自己的服务器接口,但是显然并不符合当下主流的物联

前言:

        最近小编在折腾Arduino,为了让板子联网又买了ESP8266 NODEMCU (wifi模块,也是一个单片机)。虽然能通过烧录的程序通过http请求自己的服务器接口,但是显然并不符合当下主流的物联网方式,并且定时请求接口还浪费资源。

        于是就引出了MQTT协议,在网上我也找了关于MQTT代理服务的软件也有很多。比如Eclipse基金会的Mosquitto ,以及Apache的 Apollo,当然还有很多主要看自己的需求,而我选择了国内的EMQ。

 

MQTT简介:

        MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。

 

EMQ简介:

        EMQ X Enterprise 企业级物联网 MQTT 消息平台,支持百万级物联网设备一站式接入、MQTT&CoAP 多协议处理、低时延实时消息通信。支持基于 SQL 的内置规则引擎,灵活处理/转发消息到后端服务,存储消息数据到各种数据库,或桥接 Kafka、RabbitMQ 等企业中间件。

 

实现思路:

1. 使用EMQ搭建MQTT的代理服务器。

2. 后台(PHP)可以通过phpMQTT类库或者通过安装扩展作为客户端连接mqtt代理,发布消息或订阅主题,和将消息存入数据库等等。

3. 硬件Esp8266 NodeMCU通过mqtt库连接代理,同样的发布消息或者订阅主题。

 

搭建过程:

1. EMQ官网点击下载,产品->EMQ X Broker->下载。

Windows下MQTT代理服务器的搭建_代理服务

2. 根据自己系统,选择下载。

Windows下MQTT代理服务器的搭建_代理服务_02

3. 解压缩之后,得到下面目录

Windows下MQTT代理服务器的搭建_物联网_03

4. 命令面板进入该目录,执行emq start。

Windows下MQTT代理服务器的搭建_代理服务_04

5. 浏览器打开 http://localhost:18083就可以进入EMQ的web控制台了。

Windows下MQTT代理服务器的搭建_emqx_05

6. EMQ管控后台默认账号: admin 密码: public,如果忘记了也可以在安装目录的etc\plugins的emqx_auth_username.conf,打开文件可以看到账号密码了。

Windows下MQTT代理服务器的搭建_php_06

7. 代理服务已经创建,接下来就可以通过mqtt客户端连接测试一下,这里的客户端推荐EMQ的在线客户端,这里小编就安利一款国外的客户端 “MQTT.fx”的软件,可以在网上搜索下载,接下来也以这个举例。

Windows下MQTT代理服务器的搭建_emqx_07

8. 创建一个MQTT代理服务器,就是刚刚本地启动的,输入以下类似地址。

Windows下MQTT代理服务器的搭建_emqx_08

9. 点击connect就马上连接,当右边圆点是绿色表示连接成功,接下来就可以测试一下订阅和发布了。

Windows下MQTT代理服务器的搭建_emqx_09

10. 订阅一个主题,名称可以自己随意定义。

Windows下MQTT代理服务器的搭建_emqx_10

11. 在对应主题下发布一条消息,就是刚刚创建的,然后内容随便填写,点击订阅就可以看到该主题的消息了。

Windows下MQTT代理服务器的搭建_php_11

Windows下MQTT代理服务器的搭建_代理服务_12

12. EQM代理后台也可以看到刚刚发布订阅与连接信息了。

Windows下MQTT代理服务器的搭建_emqx_13

Windows下MQTT代理服务器的搭建_物联网_14

Windows下MQTT代理服务器的搭建_代理服务_15

13. ESP8266 NODEMCU连接代理服务,也可以订阅指定的主题,发布或接收消息完成硬件的操作。比如控制LED开关,给另一主题发送板子的温度消息等等。

其他:

1. EMQ的端口枚举如下:

Windows下MQTT代理服务器的搭建_php_16

2. 本地关闭MQTT服务, 进入软件目录命令输入emqx stop

Windows下MQTT代理服务器的搭建_php_17

3. 启动mqtt服务后,可以根据端口查看进程,然后根据进程号关闭该服务。

Windows下MQTT代理服务器的搭建_emqx_18

Windows下MQTT代理服务器的搭建_mqtt_19

上一篇:PHP通过Modbus Tcp实时获取设备数据
下一篇:没有了
网友评论