概述
文章目录
- 一、前言
- 二、MQTT服务器搭建
- 2.1 环境安装
- 2.2 禁止客户端任意连接
- 2.2.1 关闭匿名登录
- 2.2.2 开启用户名字密码认证插件
- 三、AT固件连接服务器
- 3.1 连接路由:
- 3.2 设置MQTT服务器信息
- 3.3 发布消息
- 3.4 订阅/查询主题
- 3.5 其他操作
一、前言
本着让大家学习的AT固件如何连接自有的MQTT服务器的精神,我们分享了一些经验。物联网通讯,第一时间就是想到服务器搭建,而最先想到的是开源的、免费的MQTT服务器搭建,给大家分享下 EMQ 服务器商用时候的心得,之后会介绍如何使用AT指令连接MQTT服务器,如何订阅发布主题。
二、MQTT服务器搭建
2.1 环境安装
- 1:选择系统和版本
https://www.emqx.io/downloads#broker
- 2:我这里选择3.23版本 centos7,得到下载链接:
https://packages.emqx.io/emqx-ce/v3.2.3/emqx-centos7-v3.2.3.zip
- 3:然后下载压缩包:
wget https://packages.emqx.io/emqx-ce/v3.2.3/emqx-centos7-v3.2.3.zip
- 4:安装或者更新 解压包zip工具:
yum install unzip -y
- 5.解压:
unzip emqx-centos7-v3.2.3.zip
- 6.运行:
./emqx/bin/emqx start
- 7.查看运行状态:
./emqx/bin/emqx_ctl status
2.2 禁止客户端任意连接
软件安装之后,我们的服务器还要开放以下端口:
端口号 | 用途 |
---|---|
18083 | mqtt服务器面板 |
1883 | tcp mqtt连接 |
8083 | websocket连接 |
8084 | websocket ssl连接 |
8080 | rest api http使用 |
EMQ软件不配置任何设置,都是可以匿名登录的,也即是可有可无用户名和密码鉴权登录连接,这点是非常危险的!下面教大家如何新建用户名和密码鉴权!
2.2.1 关闭匿名登录
首先,关闭匿名登录,编辑配置文件 emqx.conf
,修改为 allow_anonymous
改为 false
,即修改后是 allow_anonymous = false
;
vim emqx/etc/emqx.conf
操作演示:
这时候,我们再连接,怎么连接都是失败的;
2.2.2 开启用户名字密码认证插件
此插件emqx_auth_username.conf
是中间件,做客户端的认证处理!
./emqx/bin/emqx_ctl plugins load emqx_auth_username
启动之后,下面就可以添加用户了,比如我要添加 这样的客户端连接用户名字和密码数据:
username | password |
---|---|
emq_u | emq_x |
则,这样敲进去:
./emqx/bin/emqx_ctl users add emq_u emq_x
我们再看看是否添加:
./emqx/bin/emqx_ctl users list
三、AT固件连接服务器
首先需要到安信可docs官网上下载MQTT固件,烧录的方法也在安信可官网上能找到,烧录成功后可用串口工具来检测功能,IO13为RX、IO15为TX作为AT串口,串口1作为log串口,波特率为115200。连接示意图如下:
3.1 连接路由:
路由ssid:CMW-AP 路由密码:12345678
AT+CWMODE=1 //设置为STA模式
AT+CWJAP="CMW-AP","12345678" //输入路由ssid和密码
3.2 设置MQTT服务器信息
使用MQTT服务器,需连接 MQTT broker
, 假设 MQTT broker
IP 为 192.168.31.113
, 端口为 1883
,参考步骤如下:
AT+MQTTUSERCFG=0,1,"ESP8266", "admin","xuhong123",0,0,"" //设置MQTT服务器信息
AT+MQTTCONN=0,"192.168.31.113",1883,0 //连接至主机
连接成功之后才能进行后续操作,当看到服务器里出现我们的设备的时候就说明成功了。
3.3 发布消息
当我们连接上MQTT服务器之后,就可以进行消息发布,这次展示的是字符串消息的发布,二进制消息的发布指令为AT+MQTTPUBRAW
。现在我们先发布主题为World
的消息字符串“hfauih4541”
,其他订阅World
主题的设备就可以收到来自我们发布的信息。
AT+MQTTPUB=0,"World","hfauih4541",0,0 //发布主题为World的消息字符串“hfauih4541”
3.4 订阅/查询主题
当我们需要订阅或查询主题的时候,就可以使用AT+MQTTSUB
这条指令,查询时使用AT+MQTTSUB?
。假设我们订阅一个主题为aithinker
,当其他设备发布主题为aithinker
的消息时,我们就能接收到这个主题的消息。
3.5 其他操作
AT+MQTTUNSUB //取消订阅主题
AT+MQTTCLEAN //关闭连接, 释放资源
AT+MQTTCONNCFG // 配置 MQTT 连接属性
最后
以上就是疯狂鲜花为你收集整理的小白入门搭建MQTT服务器,使用安信可AT透传MQTT固件,轻松对接服务器。(附带demo)一、前言二、MQTT服务器搭建三、AT固件连接服务器的全部内容,希望文章能够帮你解决小白入门搭建MQTT服务器,使用安信可AT透传MQTT固件,轻松对接服务器。(附带demo)一、前言二、MQTT服务器搭建三、AT固件连接服务器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复