Arduino UNO上连接esp8266
连接电路
正常供电后蓝灯闪两下,红灯常亮,模块正常启动。
注意使用的是3.3V的电源
编写连接程序
1. Arduino引用软串口库
由于UNO只有Serial,没有Serial1,所以为实现相关功能必须使用软串口的方式进行连接,这里我们将Digital 的10、11两个口配置成软串口,10为RX,11为TX口。
❗❗❗注意连接的时候要跟模块的针脚交叉连接
从程序上配置软串口,
#include <SoftwareSerial.h>
//软串口配置
SoftwareSerial mySerial(10, 11); //RX--10;TX--11;两针脚交叉连接
第一次使用或者测试的时候仅用上面的程序即可,再往后的学习中可以再加上一些程序用来进行一些常规性的检测。
2. 初始化
在setup函数中的一些初始化设定。
❗❗❗注意波特率的设定值,Arduino 的串口波特率要与ESP8266的WiFi模组波特率相同,波特率不一致时就会出现乱码或者丢包现象。
⭐有种特殊的情况是ESP8266的WiFi模组的出厂默认波特率过高超过了Arduino 最高支持的波特率,
👉解决办法:
执行下面的AT指令可修改默认波特率
AT+UART_DEF=57600,8,1,0,0
void setup() {
// 硬件串口
Serial.begin(9600);
while (!Serial) {
}//判断串口是否打开
// 软串口
mySerial.begin(9600);
// mySerial.println("AT+UART_DEF=9600,8,1,0,0");//解决特殊情况,或者先连接后在串口监视器中输入AT指令
// delay(1000);
while (!mySerial) {
}//判断串口是否打开
}
3. AT指令集使用说明
- 使用Arduino IDE的串口监视器
直接在arduino IDE中的串口监视器中进行AT指令的发送,实现程序如下,是将IDE的串口监视器输入内容连接到ESP8266的串口上,将ESP8266的打印连接到IDE的监视器上。
void loop() // run over and over
{
if (mySerial.available())
Serial.write(mySerial.read());//IDE的串口监视器输入内容输入ESP8266中;
if (Serial.available())
mySerial.write(Serial.read());//ESP8266串口打印的东西打印到IDE的串口监视器上;
}
AT指令使用例子:
- 在Arduino的程序中直接进行AT指令执行
可以自己编写封装函数,也可以直接使用一些网上已经有的封装函数,这个官方是没有的,网上的也都基本没有什么大问题。
这里使用找到的一个封装公共函数–飘易封装