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如果无网络的情况下会无法通信。