ESP-01S测试
我们买回来ESP-01S模块之后,首先要对模块的好坏进行测试,是否能正常通过串口通信,是否能正常连接手机热点或WiFi,一般模块买回来默认出厂烧录了AT固件,如果我们需要使用一些特殊的协议(如MQTT协议)需要找到对应的固件进行烧录,这里要讲到的是通过AT指令连接巴法云,默认的固件满足需求,不需要重新烧录固件,如果需要烧录其他固件的操作可参考其他博客:
ESP8266-01s MQTT固件烧录_esp8266-01s烧录-CSDN博客
ESP-01S接线
这里我们可以通过使用USB转TTL跟ESP-01S进行连接,接线如下:
USB | ESP |
---|---|
RX | TX |
TX | RX |
GND | GND |
3V3 | VCC |
正常只需要连接这四根线就能进行测试模块的好坏,其他接口用于下载模式的连接使用。
巴法云注册
-
使用QQ邮箱进行注册:
巴法云的重要参数
- 私钥:每个用户的私钥不同,这个是后面单片机和APP进行订阅和发布的重要参数
- 主题:主题名称可以自己设定,用于后面单片机和APP对主题的订阅和发布
- esp-01s连接巴法云的AT指令:https://cloud.bemfa.com/docs/src/app/at.html
- TCP协议接入简介:https://cloud.bemfa.com/docs/src/tcp.html
什么是订阅和发布?
订阅和发布是一种消息通信模式。在该模式中,有两类参与者:发布者和订阅者。
发布者负责产生和发布消息,它们不关心消息是谁接收和处理的。发布者将消息发送到一个中心位置,通常称为消息队列或主题。它们有时也被称为发布/订阅中心。
订阅者负责订阅感兴趣的消息。它们告诉发布/订阅中心它们希望接收哪些类型的消息。一旦有消息与其订阅条件匹配,订阅者将接收到该消息。
订阅和发布模式的一个重要特点是解耦。发布者和订阅者之间没有直接的联系,它们之间通过发布/订阅中心进行通信。这种解耦使得发布者和订阅者可以独立进行扩展和改变,而不会影响彼此的功能。
订阅和发布模式在实践中广泛应用于各种场景,例如事件驱动系统、消息传递系统和分布式系统等。它提供了一种灵活和可扩展的方式来处理消息通信。
简单来说,单片机可以做订阅者也可以做发布者,单片机可以订阅云平台上的topic主题,如果其他订阅者(例如手机APP)有发布消息到云平台,云平台接收到消息之后,会将这个消息下发到所有的订阅者那里,这时单片机就会收到消息或者指令,单片机也可以是发布者,例如单片机采集一些传感器数据,然后通过ESP-01S联网上云,将采集到的数据发布(推送)到云平台,云平台收到数据之后就可以下发到所有订阅者那里,如果手机APP订阅了这个topic主题,APP上就会显示单片机采集到的数据。
ESP-01S联网上云
esp8266连接到usb调试工具,通过串口可以进行调试,以下步骤请顺序执行。
1、测试esp8266是否正常
AT
正常返回:
OK
2、 设置路由器模式 1 station模式 2 AP路由器模式 3 station+AP混合模式
AT+CWMODE=3
正常返回:
OK
3、 设置模块WIFI名称,WIFI密码(可以设置成自己的手机热点名称和密码)
AT+CWJAP="newhtc","qq123456"
正常返回:
OK
4、 开启透明传输模式
AT+CIPMODE=1
正常返回:
OK
5 、连接服务器和端口(固定的服务器网址和端口,不需要修改)
AT+CIPSTART="TCP","bemfa.com",8344
正常返回:
OK
6 、进入透传模式,下面发的都会无条件传输
AT+CIPSEND
正常返回:
>
7、 如果需要订阅主题,发送这个订阅指令,发送完订阅,控制台推送的话,8266就可以收到推送消息了(将私钥修改成自己注册的巴法云私钥,topic主题修改成自己创建的主题名称)
cmd=1&uid=4d9ec352e0376f2110a0c601a2857225&topic=data
正常返回:
cmd=1&res=1
8 如果需要推送指令,发布数据指令(这里同样修改uid私钥和topic主题)
cmd=2&uid=4d9ec352e0376f2110a0c601a2857225&topic=light002&msg=#32#27.80#ON#
正常返回:
cmd=2&res=1
9 发送心跳 ,发任意数据都相当于心跳,随意发点啥就行,60s内不发,连接就会断开,就收不到订阅消息了
cmd=0&msg=ping
正常返回:
cmd=0&res=1
10如果真的断开连接了,重新开始第五步连接就行
说明:支持发布订阅模式,第7条cmd=1为订阅,uid是用户私钥,控制台获取,topic是需要订阅的主题名称,控制台可以任意创建,字母/数字。
第八条cmd=2是发布消息指令,msg是需要发布的消息,发什么消息随意自定义即可。
手机APP制作
这里推荐这个up主的APP教学视频
我们通过网址在线设计:http://ai2.17coding.net/?locale=zh_CN#4846647255236608
进行APP设计,视频内容较多,按需学习。或者我们也可以通过下载一些软件进行离线设计,操作如下:app inventor离线版2021_巴法云 (bemfa.com)
注意:我们下载的手机AI伴侣和电脑的设计界面的版本要对应,不然可能调试不了
STM32通过ESP-01S联网上云
打开例程,修改一些参数(热点名称密码、用户私钥、订阅主题等)
STM32单片机通过ESP用TCP协议将采集到的传感器数据发布到云平台
采集到的手机如下:
云平台接收到数据后,会推送订阅了该主题的设备收到的数据,如果设计的手机APP上订阅了该主题,就可以接收到数据并显示,如下: