Arduino uno r3 使用 ESP8266 wifi 模块完整流程

我是搞软件开发的,刚开始玩硬件,完全是小白,好多知识都不懂。花了很长时间才把ESP8266配置好。把我的经验分享出来,供新手参考。

一.模块连接

Arduino uno r3 使用 ESP8266 wifi 模块完整流程_第1张图片
ESP8266 模块长这个样子
Arduino uno r3 使用 ESP8266 wifi 模块完整流程_第2张图片
引脚说明
  • 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 的串口分为硬串口软串口,我们第一步连接的01是硬串口。后面会说如何用软串口。
  • 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() {

}
Arduino uno r3 使用 ESP8266 wifi 模块完整流程_第3张图片
连接vcc后,如果接线正确会在消息窗里显示ready消息

每个版本的ESP8266波特率不同,一般是115200,你可以多测试几次。

Arduino uno r3 使用 ESP8266 wifi 模块完整流程_第4张图片
可以在串口监视器里使用AT命令测试模块

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上的01是硬串口,我看网上的教程都要用软串口才能通讯,所以需要修改一下。

注意,使用软串口连接导线时,模块的rx连接Arduinotx,模块的tx连接Arduinorx

比如下面的代码,设置arduino上的8号口为rx9号口为tx。就需要把ESP8266rx连接到Arduino9号口上,模块的tx连接Arduino8号口上。

#include 
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 uno r3 使用 ESP8266 wifi 模块完整流程_第5张图片
使用上面的测试代码,就可以和模块通讯了

相关文章链接
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指令

你可能感兴趣的:(Arduino uno r3 使用 ESP8266 wifi 模块完整流程)