ESP8266-01S使用笔记——使用MQTT协议收发消息,将需要的数据存储进数据库(更新中...)

目录

1. EMQX的介绍和安装

     1.1 MQTT协议

     1.2 EMQX

     1.3 安装EMQX

2. ESP-01S介绍

     2.1 ESP常用的AT指令

     2.2 固件下载位置

3. ESP-01S与EMQX链接

4. ESP-01S与单片机通信

5. 单片机发送信息给EMQX

6. Springboot订阅主题并接收消息

7. 保存数据进数据库

EMQX的介绍和安装

EMQX是由杭州映云科技有限公司开发的大规模分布式MQTT消息服务器,能够完美适配MQTT5.0和3.x的标准(官方网站)。使用现有的标准MQTT平台或者其他工具的好处就在于能够最大化节省开发者安装、配置、调试等流程耗费的时间,最大化提高效率。EMQX的安装过程非常简单,在官网中可以看到

ESP8266-01S介绍

ESP-01S样式

上图所示的是ESP-01s,我目前使用的是由安信可科技公司开发的模块,搭有板载天线。可以由AP/STA/AP+STA三种工作模式。其中AP工作模式是作为WIFI的客户端存在,其他设备主动链接在AP设备上,可以接收AP设备发送的消息,也可以反过来给AP设备发送消息。

STA工作模式则是以一个TCP客户端的形式存在于网络内,这种工作模式下的ESP需要主动的去链接其他TCP客户端,一个客户端可以链接多个设备,这为多个ESP设备同时传送数据以及一个设备同时接受多个ESP设备的消息提供了技术基础。

ESP的工作需要由AT指令来下达,AT指令可以来自于单片机,也可以来自于连接于网络内的其他设备。这取决于用户使用ESP设备的需求。

ESP常用的AT指令

ESP的AT指令大全点击这里,实际使用过程中可能会出现某些不一样的地方,遇到困难可以仰仗一下百度的威力。

1.通讯检查:AT

正确返回值为OK,意味着通讯正常,波特率对齐。错误的波特率可能导致没有返回值(可能性较大)或者返回值错误

2.设置波特率(大部分ESP设备出厂默认波特率为115200):AT+UART=BUND,8,1,0,0(复位后失效),AT+UART_DEF=BUND,8,1,0,0(彻底修改,断电不失效)

应当注意的是在修改了波特率之后要更改调试助手的波特率设置。使用AT指令的时候应当注意将ESP设备复位查看是否更改成功。

3.STA工作模式的设置:
    AT+CWMODE=1

    AT+RST //重启生效配置

    AT+CWLAP //查询可连接的所有WIFI名称(中文名称会显示乱码)

    AT+CWJAP="WIFI名","WIFI密码"//连接WIFI

    AT+CIFSR //查询IP

    AT+CIPMUX=1 //建立多连接

    AT+CIPSERVER=1,8080 //建立服务号为8080

4.AP工作模式设置
    AT+CWMODE=2

    AT+RST //重启生效配置

    AT+CWSAP_DEF="名字","密码",5,4 //配置WIFI名和密码

    AT+CIFSR //查询IP

    AT+CIPMUX=1 //建立多连接

    AT+CIPSERVER=1,8080 //建立服务号为8080

5.混合工作模式:
    AT+CWMODE=3

    AT+RST //重启生效配置

    AT+CWLAP //查询当前WIFI

    AT+CWJAP="WIFI名","WIFI密码"//连接WIFI

    AT+CIFSR //查询IP

    AT+CIPMUX=1 //建立多连接

    AT+CIPSERVER=1,8080 //建立服务号为8080

这里注意一下,3、4、5这三个工作模式选择一个设置即可,之后就不需要再次设置了。

ESP8266-01S的固件下载位置

ESP8266的工作能力取决于你给他喂食了哪些经验包,是的这些固件就可以看作是ESP的大大小小的经验包,有适合于大容量的大型经验包,也有适合于小容量的小型经验包。比如开头图片中的01S型号就适合小型的经验包,这个可以在实际应用过程中自己选择。如果需要下载固件可以点击这里

我现在使用的是固件号为1471号的MQTT透传AT固件,适合ESP8266-01S进行MQTT协议传输信息时使用。

下载了经验包之后,我们当然需要知道应该如何将经验包中的经验吸取到我们的角色身上,很幸运地是安信可为我们提供了非常便捷的工具,falsh_download_tools
界面为这个样子:稍后我们再介绍如何使用

还需要再下载一个串口调试工具

MQTT协议的使用

MQTTX是一款多合一MQTT协议工具箱,在里面可以进行MQTT信息的收发测试,当然你可以将它作为你主要的MQTT使用战场,这取决于你的需要。MQTTX的官方网址在这里。在里面可以根据你的选择下载对应系统的APP。

除了下载MQTTX作为测试场景,你还可以选择在测试阶段使用免费的公共MQTT服务器作为你的新手武器。在这里主要需要关注的是端口号为1883以及broker的值为broker.emqx.io

我们配置好了一切的硬件需要的条件之后,就可以通过AT指令来操作信息的发送了,具体操作步骤如下:
AT+CWMODE=1 //设置工作模式为STA

AT+CWJAP=“wifi-name”,“password” #链接wifi(可以是热点也可以是路由器的wifi)

AT+MQTTUSERCFG=0,1,"MQTT_ID","username","password",0,0,""//具体的参数含义可以查看[这篇文章](https://blog.csdn.net/augu_/article/details/133187530)

AT+MQTTCONN=0,“broker-cn.emqx.io”,1883,1 //链接MQTT服务器

AT+MQTTSUB=0,“Subscription_Topic”,0 //订阅主题

AT+MQTTPUB=0,“Topic”,“message”,0,0 //发布主题和消息

posted @ 2024-03-30 19:05  陶醉的碎片  阅读(299)  评论(0编辑  收藏  举报