ESP8266-01S、手机、STM32连接

1、ESP8266-01S的工作原理

1.1、AP和STA

ESP8266-01S为WIFI的透传模块,主要模式如下图:

上节说到,我们需要用到AT固件进行局域网应用(ESP8266连接的STM32和手机进行连接)。

  1. ESP8266为一个WiFi透传模块,和蓝牙透传模块具有主从两种工作模式一样,也具有两种工作模式:STA模式(Station)和AP模式(Access Point),一般WiFi模块还会有一个STA+AP模式,即可以在两种模式下切换的状态。
  2. AP模式下,WiFi模块产生热点,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下。该模式对应TCP传输协议中的服务端(TCP Server)。
  3. STA模式下,WiFi模块为连接到无线网络的终端(站点),可以连接到AP,一般无线网卡工作在STA模式下。该模式对应TCP传输协议中的客户端(TCP Client)。

1.2、TCP/UDP/透传的概念,以及他们之间的不同点和相同点

TCP:

  1. TCP是一种面向连接的,提供可靠交付服务和全双工通信的,基于字节流的端到端的传输层通信协议。
  2. TCP在传输数据之前必须先建立连接,数据传输结束后要释放连接。
  3. 每一条TCP连接只能有2个端点,故TCP不提供广播或多播服务。
  4. TCP提供可靠交付,通过TCP连接传输的数据,无差错、不丢失、不重复、并且按序到达。
  5. TCP是面向字节流的。虽然应用进程和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。TCP并不知道所传输的字节流的含义。


UDP:

  1. UDP是一种无连接的,尽最大努力交付的,基于报文的端到端的传输层通信协议。
  2. UDP,在发送数据之前不需要建立连接。
  3. UDP不保证可靠交付,主机不需要位置复杂的连接状态。
  4. UDP是面向报文的。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的的边界,即应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。在接收端,UDP一次交付一个完整的报文。
  5. UDP没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低。
  6. UDP支持一对一、一对多、多对一和多对多的交互通信。
  7. UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。


透传:

  1. 透传,又称透明传输,具体来说就是“输入即输出(如从WiFi模块串口输入的字符会透传到服务器端)”,数据不改变,不同协议之间的转换(如串口到WiFi、蓝牙等)由模块完成。使用者无需关心内部具体实现,因此模块对于使用者是“透明的”、似乎不存在的(因为可无视中间的实现原理)。一个高度封装的模块,应该隐藏内部实现细节,仅对外提供使用接口

1.3、固件

固件:

固件是写入存储器中的程序,在单片机中就是写到Flash中的程序。即烧写进程序的flash(ROM),硬件根据该固件运行。

1.4、连接方式

 2、AT指令原理和配置

esp8266-01s在烧入固件后根据固件运行,固件中固定有配置和反馈指令,对其通过串口发送对应的指令,esp8266-01s会进行响应的配置。所以固件要根据自己的实际情况进行选择。你发对应指令,模块就会做相应的工作。

使用 AT 指令配置 ESP8266

通过 AT 指令,您可以对 ESP8266 进行各种配置,包括 Wi-Fi 连接、服务器设置等。以下是常用的 AT 指令以及如何使用它们配置 ESP8266 的步骤。

2.1、准备工作
  • 硬件连接:

    • 将 ESP8266 模块与 USB 转 TTL 适配器连接。
    • 确保正确接线(TX 到 RX,RX 到 TX,VCC 接 3.3V,GND 接地)。
  • 环境准备:

    • 使用串口工具(如 PuTTY、CoolTerm 或 Arduino Serial Monitor)打开串口通讯。
2.2、配置步骤AP模式
2.2.1 建立AP------------------------------------------------------------------------------------------------
1) 测试连接,串口对esp8266进行发送
AT
  • 如果返回 OK,表示与 ESP8266 的串口连接正常。

2) 查看固件版本
AT+GMR
  • 返回当前固件信息。

3) 设置工作模式
  • STA 模式(连接 Wi-Fi):
AT+CWMODE=1
  • AP 模式(创建热点):

AT+CWMODE=2
  • 混合模式(同时作为热点和客户端):
AT+CWMODE=3 
  • 查看工作模式
AT+CWMODE?
4) 设置AP名称

AT+CWSAP="Your_AP_Name","Your_Password",5,3

  • Your_AP_Name: 自定义的热点名称。
  • Your_Password: 热点的 Wi-Fi 密码(8 到 64 个字符)。
### 如何通过AT指令设置ESP8266STM32连接手机APP #### 硬件连接配置 为了实现 STM32ESP8266 的通信,需完成如下硬件连接- **串口连接**:将 ESP8266 的 `TX` 引脚连接STM32 的 USART 接收引脚(如 PA10),并将 ESP8266 的 `RX` 引脚连接STM32 的 USART 发送引脚(如 PA9)。 - **电源连接**:ESP8266 的 `VCC` 引脚应连接到 3.3V 电源,而其 `GND` 引脚则接地[^2]。 #### 软件初始化与 AT 指令集 以下是常用的 AT 指令及其功能描述: 1. 测试模块是否正常工作: ```plaintext AT ``` 如果返回 `OK`,说明模块已成功启动[^3]。 2. 查询模块的软件和硬件信息: ```plaintext AT+TCMODULE ``` 3. 查看模块版本号: ```plaintext AT+GMR ``` 4. 获取当前 Wi-Fi 工作模式: ```plaintext AT+CWMODE? ``` 5. 设置为 Station (STA) 模式以连接路由器: ```plaintext AT+CWMODE=1 ``` 6. 连接到指定的无线网络(SSID 和密码替换为实际值): ```plaintext AT+CWJAP="your_ssid","your_password" ``` 7. 验证网络连通性(例如 Ping 百度服务器): ```plaintext AT+PING="baidu.com" ``` 以上步骤完成后,ESP8266 将能够接入互联网并准备接受来自云端或 APP 的命令。 #### MQTT 协议集成 为了让 STM32ESP8266 收发数据并与手机应用交互,可以采用 MQTT 协议。具体操作流程包括以下几个方面: - 建立与 MQTT Broker 的连接- 订阅感兴趣的主题以便接收消息; - 向目标主题发布状态更新或其他形式的数据流。 示例代码展示了如何利用 UART 实现两者间的通讯以及发送简单的字符串作为测试用途: ```c #include "usart.h" void send_AT_command(char *command){ HAL_UART_Transmit(&huart1, (uint8_t*)command, strlen(command), HAL_MAX_DELAY); } int main(void){ char command[] = "AT\r\n"; /* 初始化外设 */ MX_USART1_Init(); while(1){ send_AT_command(command); // 发送 AT 指令 HAL_Delay(1000); // 延迟一秒再重复执行 } } ``` 上述 C 函数定义了一个名为 `send_AT_command()` 的函数来简化向 ESP8266 发送任意 AT 指令的过程,并在主循环里周期性的调用该函数发出基础的心跳信号确认链路畅通无阻。 #### 注意事项 当尝试调试时需要注意波特率匹配问题,默认情况下大多数 ESP8266 设备运行于 115200bps 下运作;另外还需考虑供电稳定性因为高负载下可能引起电压波动影响性能表现[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值