我是搞软件开发的,刚开始玩硬件,完全是小白,好多知识都不懂。花了很长时间才把ESP8266
配置好。把我的经验分享出来,供新手参考。
一.模块连接
- TX:串口写
- GND:接地
- CH_PD:高电平为可用,低电平为关机
- GPIO2:可悬空
- RST:重置,可悬空
- GPIO0:上拉为工作模式,下拉为下载模式,可悬空
- VCC:3.3V(切不可接5V,烧片)
- RX:串口读
ESP8266 | Arduino Uno |
---|---|
TX | 1(TX1) |
GND | GND |
CH_PD | 串联10KΩ电阻连接3.3v |
GPIO2 | - |
RST | - |
GPIO0 | - |
VCC | 3.3V |
RX | 0 (RX0) |
8个口接5个就可以。
可以参考这篇文章,说的很详细esp8266-wifi模块-使用实录-一-连接路由器
其中有几点要注意
- ardunio 的串口分为
硬串口
和软串口
,我们第一步连接的0
和1
是硬串口。后面会说如何用软串口。 -
CH_PD
需要串联一个10kΩ
的电阻后,再连接3.3v的电源 - 下面是测试
ESP8266
是否连接正确的代码,要注意千万别加Serial.begin(9600)
这行代码,否者ready
消息是不会显示的。
const int tx = 1;
const int rx = 0;
void setup() {
//Serial.begin(9600); 注意!!千万别加这行代码
pinMode(rx,INPUT_PULLUP);
pinMode(tx,INPUT_PULLUP);
}
void loop() {
}
每个版本的ESP8266
波特率不同,一般是115200
,你可以多测试几次。
ESP8266
的 AT 命令可以在网上查,比如下面的这几个
AT+RST 重启模块
AT+GMR 查看版本信息
AT+CIOBAUD=9600 修改波特率
T+CWMODE? //查询工作模式 1.Station (客户端模式)2.AP (接入点模式)3.Station+AP (两种模式共存)
比如输入了AT+CIOBAUD=9600
以后,串口监视器就要选择9600波特率才能看到模块的信息了。
二.使用软串口通讯
先按照刚才的步骤,把ESP8266
的波特率改为9600。之前我们连接的Arduino
上的0
和1
是硬串口,我看网上的教程都要用软串口才能通讯,所以需要修改一下。
注意,使用软串口连接导线时,模块的rx
连接Arduino
的tx
,模块的tx
连接Arduino
的rx
。
比如下面的代码,设置arduino
上的8
号口为rx
,9
号口为tx
。就需要把ESP8266
的rx
连接到Arduino
的9
号口上,模块的tx
连接Arduino
的8
号口上。
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
delay(1000);
Serial.println("Goodnight moon2");
mySerial.println("AT+GMR");
}
void loop() {
while (mySerial.available()) {
Serial.write(mySerial.read());
}
}
相关文章链接
Arduino和ESP8266通信问题,如何获取AT指令返回数据?
ESP8266在arduino中编程问题
用Arduino使用esp8266的Wi-Fi TCP透传和POST请求
基于arduino ide for esp8266 实现tcp client
Arduino-串口函数Serial
Javascript 控制 arduino
如何在arduino中添加多个自定义类文件
arduino的String类
arduino 数组(Array)和字符串(string)学习
逗号分隔文本到数组的两种方法
arduino字符串函数
Arduino 字符串处理
Arduino软串口调试
Arduino esp8266 wifi模块发送http请求
ESP8266通讯使用的AT指令