STM32使用ESP-01S连接WiFi通过云平台与手机APP联动

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

正常只需要连接这四根线就能进行测试模块的好坏,其他接口用于下载模式的连接使用。

巴法云注册

巴法云的重要参数

什么是订阅和发布?

订阅和发布是一种消息通信模式。在该模式中,有两类参与者:发布者和订阅者。

发布者负责产生和发布消息,它们不关心消息是谁接收和处理的。发布者将消息发送到一个中心位置,通常称为消息队列或主题。它们有时也被称为发布/订阅中心。

订阅者负责订阅感兴趣的消息。它们告诉发布/订阅中心它们希望接收哪些类型的消息。一旦有消息与其订阅条件匹配,订阅者将接收到该消息。

订阅和发布模式的一个重要特点是解耦。发布者和订阅者之间没有直接的联系,它们之间通过发布/订阅中心进行通信。这种解耦使得发布者和订阅者可以独立进行扩展和改变,而不会影响彼此的功能。

订阅和发布模式在实践中广泛应用于各种场景,例如事件驱动系统、消息传递系统和分布式系统等。它提供了一种灵活和可扩展的方式来处理消息通信。

简单来说,单片机可以做订阅者也可以做发布者,单片机可以订阅云平台上的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上订阅了该主题,就可以接收到数据并显示,如下:

相关推荐
捷瑞电子工坊30 分钟前
嵌入式蓝桥杯从零点亮第一个LED
stm32·蓝桥杯·cubemx·嵌入式·led·ll·锁存
小李不想当小白1 小时前
PCB结构与组成(PCB设计入门学习笔记)
经验分享·笔记·单片机·嵌入式硬件·学习·pcb工艺·pcb
新晨单片机设计2 小时前
S004R-基于STM32单片机智能门禁系统(密码、指纹、人脸、刷卡、蓝牙)【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件·proteus
桀人2 小时前
MCU系统架构——总线——统一编址
stm32·单片机·嵌入式硬件
可乐鸡翅好好吃3 小时前
通讯协议--硬件模拟和软件模拟
stm32·嵌入式硬件
Zw-awa3 小时前
STM32F103C8T6 最小系统板:从型号差异到启动方式
stm32
新思维软件3 小时前
基于边缘计算与多模态感知的服药依从性系统|X604261
嵌入式硬件·物联网开发
会周易的程序员11 小时前
5 节点边缘冗余方案(上):基于 aiRaft 的物联网高可用控制面设计
c++·分布式·物联网·raft·iot·共识
AISenz12 小时前
AIMesh 2.5 vs SmartMesh IP:6TiSCH 工业无线协议对比与选型指南
物联网·工业物联网·物联网协议
天空'之城14 小时前
单片机基础核心知识点汇总(四十)
单片机·嵌入式硬件