硬件准备
- Arduino UNO主板
- Esp8266 01s
- 面包板
- 杜邦线若干
软件准备
- Arduino IDE
- 网络调试助手(PS端或手机均可,手机可在应用市场搜索网络调试精灵)
接线
Arduino | esp8266 01s |
3.3V | VCC |
GND | GND |
3 | TX |
2 | RX |
3.3V | CH_PD / EN |
使用esp8266只要5个针脚就可以了,分别是 GND、VCC、TX、RX、CH_PD
注意,电源接的是 3.3V;否则会烧坏WiFi 模块
AT指令配置程序
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 2); // RX, TX 配置 3、2 为软串口
void setup()
{
Serial.begin(9600);//设置硬串口波特率
Serial.println("ESP8266 WIFI Test");
while (!Serial) {//串口是否准备好。
;
}
Serial.println("hardware serial!");
mySerial.begin(115200);//设置8266的波特率为115200,初始默认是115200
mySerial.println("software serial!");
}
void loop()
{
if (mySerial.available())//获取从软串口读取有效的字节数
{
Serial.write(mySerial.read());//硬串口写软串口中读取的数据
}
if (Serial.available()) {//获取从硬串口读取有效的字节数
mySerial.write(Serial.read());//软串口写硬串口中读取的数据
}
}
出现上面情况,表示esp无法使用,请检查线路是否接错,或者电压是否保证3.3V
出现3到4行则表示成功,esp8266可以使用
修改结束符为 NR 和 CR,发送AT;
虽然我们测试成功了,但是我们发现回复信息中会出现乱码,原因是软串口(i/o 模拟出来)所能支持的波特率有限,最大支持 9600,因此我们需要修改esp8266波特率为9600
AT+UART=9600,8,1,0,0
接下来我们修改一下程序中软串口的波特率为9600,重新上传程序试试
mySerial.begin(9600);
配置
1.接下来我们来设置esp为混合模式,配置 ESP8266 模块为 AP+STA 模式,开启 wifi 热点
AT+CWMODE=3
- 重启模块使 AP 模式生效
AT+RST
3.设置模块的AP,热点名字和密码,通道号以及加密方式
AT+CWSAP="Lime","12345678",1,4
通道号为 1,加密方式为:WPA_WPA2_PSK
4.启动多连接,esp作为服务器,最多支持 5 个客户端的链接,id 分配顺序是 0-4
AT+CIPMUX=1
5.开启服务器模式,端口号 8080
AT+CIPSERVER=1,8080
6.设置服务器超时时间,超时时间1200s
AT+CIPSTO=1200
7.查看ESP8266 的 IP
AT+CIFSR
- 手机与esp建立连接和通信,手机下载一个网络调试助手,手机连接esp8266的热点,热点名:Lime,密码:12345678,输入查询到ip 192.168.4.1和设置好端口8080,连接成功后可发送消息到esp8266
9.esp8266 使用AT发送数据
先输入 AT+CIPSEND=clientid,length
说明:先发送准备发送的命令,再发需要发送的数据
参数 client:是连接序号(0-4)
参数 data:发送的数据长度
比如发送12345
先输入指令
AT+CIPSEND=0,5
在输入
12345
- 通信过程
arduino局域网通讯