ESP01S WIFI模块 
ESP8266系列无线模块是安信可科技自主研发设计的一系列高性价比WiFisOC模组。该系列模块支持标准的IEEE802.11 b/g/n 协议,内置完整的TCP/IP协议栈。用户可以使用该系列模块为现有的设备添加联网功能,也可以构建独立的网络控制器。即使在不了解其原理的情况下,只要有一定的串口知识理解,那么就可以轻松上手该模块,进而实现手机WiFi操作。功能特点:基于ESP8266芯片开发,模组集成了透传功能,即买即用,支持串口AT指令集,用户通过串口即可实现网络访问,广泛应用于智能穿戴,智能家居,家庭安防,遥控器,汽车电子,智慧照明,工业物联网等领域。
模块来源 
规格参数 
工作电压:3.0V-3.6V
 工作电流:IMAX = 170mA
 模块尺寸:14.4 x 24.7 MM
 控制方式:串口
使用说明 
该WIFI模块,有三种模式即STA、AP、STA+AP。
这里主要使用AP和STA模式作为案例,实现近距离无线控制和远距离无线控制。
- STA模式是指ESP8266作为客户端连接到一个无线路由器上(或者无线热点),可以访问网络中的其他设备。
- AP模式是指ESP8266作为热点,其他设备可以连接到它上面,实现无线网络通信。
- STA+AP模式就是两者同时实现。
使用前,需要烧入MQTT固件,后续的案例有使用MQTT,如不烧入MQTT固件,在涉及到MQTT的AT命令时会不断失败。
固件烧录接线:
| 开发板 | ESP-01S | 
|---|---|
| 3V3 | 3V3 | 
| TXD | TX | 
| RXD | RX | 
| GND | GND | 
| GND | IO0 | 
烧录的时候要求开发板上没有串口的代码,不然会下载失败。如果有代码又不方便擦除,可以在下载的时候一直按住开发板的复位键,直到下载成功。
烧录步骤:
硬件连接 
| 开发板 | ESP-01S | 
|---|---|
| 3V3 | 3V3 | 
| 3 | RX | 
| 2 | TX | 
| GND | GND | 
使用方法 
将以下两个文件放置在工程目录下,与ino文件同级。
编写代码
/******************************************************************************
  * 测试硬件:ColorEasyDuino开发板
  * 版 本 号: V1.0
  * 修改作者: www.lckfb.com
  * 修改日期: 2024年04月11日
  * 功能介绍:
  *****************************************************************************
  * 开发板软硬件资料与相关项目软硬件资料官网全部开源
  * 开发板官网:www.lckfb.com
  * 关注bilibili账号:【立创开发板】,掌握我们的最新动态!
  * 不靠卖板赚钱,以培养中国工程师为己任
******************************************************************************/
#include "ESP01S_lib.h"
// 放弃以下针脚用于软件串口
#define RX_PIN 2  // 开发板的RX(连接到ESP-01S的TX)
#define TX_PIN 3  // 开发板的TX(连接到ESP-01S的RX)
unsigned long previousMillis = 0; // 存储上一次发送数据的时间
unsigned long currentMillis = 0;
ESP01S_lib wifi(TX_PIN,RX_PIN);
void setup() {
  // 开始串口通讯
  Serial.begin(115200); // 硬件串口与计算机通信
  Serial.println("start");
  //WIFI初始化
  wifi.begin(115200);
  //开启AP模式
  int ret = wifi.AP_mode_begin("LCKFB", "12345678",8080);
  //如果开启失败
  if(ret != 1 )
  {
    Serial.print("Initialization failed with failure code: ");
    Serial.print(ret);
  }
}
void loop() {
  int wifi_id = 300;//WIFI连接的ID,因为不会超过5个设备,所以随便选择一个大5的数
  int again_wifi_id = 0;
  char wifi_data[]={0};
  int wifidatalen=0;
  //接收WIFI发送过来的数据
  wifi.WIFI_Data_Scan();
  wifi.Get_WIFI_AP_Data(&wifi_id,wifi_data,&wifidatalen);
  if( wifi_id != 300 )//如果ID有更新,说明有设备发来数据
  {
    Serial.print(wifidatalen);
    Serial.print(" bytes of data from device ");
    Serial.print(wifi_id);
    Serial.print(" : ");
    Serial.println(wifi_data);
    again_wifi_id = wifi_id;
    wifi_id = 300;//还原ID值,等待下一次接收
  }
  //每次隔5秒发送字符串给设备
  currentMillis = millis();
  if( currentMillis - previousMillis  >= 5000 ){
    previousMillis = currentMillis;
    wifi.WIFI_Send_To_Client(again_wifi_id,"Hello LCKFB");
  }
}2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
使用验证 
将代码上传至开发板后,打开串口调试助手,等待配网完成。完成之后打开手机的WIFI,应该会看到一个命名LCKFB的WIFI名称,以密码:12345678 进行连接。连接完成之后打开手机APP:TCP连接,新建一个连接,地址为192.168.4.1,端口为设置的8080。连接成功之后,手机即可发送数据到开发板上,开发板收到后输出在串口调试助手。手机在连接成功之后,每隔5秒会收到来自开发板的数据。
如果手机连接不上,请关闭手机数据网络,有一些手机带有网络选择功能,导致WIFI如果无网络的情况下会无法通信。