ESP8266-01+Arduino控制使用入门

本帖最后由 visionsl 于 2016-2-1 17:33 编辑

最近有朋友被ESP8266模块所困扰, 所以有了此文, 以帮助还不太会用Wifi模块的伙伴们
前言
因为本例中ESP8266(新模块初始波特率是115200)与Arduino是用软串口方式连接, 而Arduino软串口最高波特率只支持38400, ​​因此在与Arduino搭配使用前, 需要先手工把ESP8266做一下初始化配置, 我常用的波特率是9600.所需元件:

  • Arduino UNO(或DFRobot Leonardo & Xbee R3​)
  • TTL转USB工具​​
  • ESP8266-01
  • 面包板+面包板专用电源​

ESP8266-01.png (299.63 KB, 下载次数: 4)

下载附件

保存到相册

ESP8266-01
2016-2-1 17:06 上传

ESP8266-01

程序下载器.jpg (49.55 KB, 下载次数: 4)

下载附件

保存到相册

DFRobot Arduino FTDI Basic FIO/pro/mini/lilypad 程序下载器
2016-2-1 17:06 上传

DFRobot Arduino FTDI Basic FIO/pro/mini/lilypad 程序下载器
第一步. 在PC上设置ESP8266-01模块​
ESP8266-01 TTL-USB
​UTXD TXD
​​URXD RXIESP8266-01 面包板
​3.3V 3.3V
CH_PD 3.3V
GND GND​TTL-USB 面包板
GND GND

01.jpg (77.7 KB, 下载次数: 4)

下载附件

保存到相册

注意TTL-USB要与面包板共地
2016-2-1 17:07 上传

注意TTL-USB要与面包板共地
接好后, 依次先把TTL-USB接到PC的USB上, 并打开SSCOM串口调试软件接通, 然后再给面包板通电(顺序一定不能错!顺序一定不能错!顺序一定不能错! 重要的事情说三遍)

03.jpg (65.87 KB, 下载次数: 4)

下载附件

保存到相册

TTL-USB接到PC后, 应能看到此串口(看不到的请装相应驱动)
2016-2-1 17:07 上传

TTL-USB接到PC后, 应能看到此串口(看不到的请装相应驱动)
在SSCOM中选择正确的串口号, 以及正确的波特率, 并"打开串口"(串口号右侧的按钮)
然后再给面包板通电

04.jpg (74.08 KB, 下载次数: 4)

下载附件

保存到相册

通电顺序没错的话, 应该就能看到上图
2016-2-1 17:07 上传

通电顺序没错的话, 应该就能看到上图

02.jpg (84.99 KB, 下载次数: 4)

下载附件

保存到相册

通电后, ESP8266-01亮红灯, 且蓝灯会闪烁几次后熄灭视为工作正常
2016-2-1 17:07 上传

通电后, ESP8266-01亮红灯, 且蓝灯会闪烁几次后熄灭视为工作正常

05.jpg (92.55 KB, 下载次数: 4)

下载附件

保存到相册

试试指令: AT+RST, 检查是否与上图的结果类似
2016-2-1 17:07 上传

试试指令: AT+RST, 检查是否与上图的结果类似

06.jpg (93.15 KB, 下载次数: 4)

下载附件

保存到相册

成功后, 也可以试一下AT指令
2016-2-1 17:07 上传

成功后, 也可以试一下AT指令

07.jpg (61.08 KB, 下载次数: 4)

下载附件

保存到相册

然后按顺序执行初始化指令
2016-2-1 17:07 上传

然后按顺序执行初始化指令
初始化指令:
AT 返回OK的话证明接线和供电正确, 可以继续执行后面的指令
ATE0 关闭回显功能​
AT+CWMODE=1 设为Station模式​
AT+CWJAP="wifi-ssid","wifi-password" 加入你自己的Wifi名称和密码​
AT+CWAUTOCONN=1 设置开机自动连入Wifi​
AT+CIPMUX=1 设置单连接​
AT+RST 重启模块, 如果能获取到IP则证明设置完成​​重启后, 能看到以下信息证明模块初始化基本完成, 能自动连上你的WIFI:
WIFI CONNECTED
WIFI GOT IP
如果此处不成功, 请检查你的路由是否限制了新设备接入

08.jpg (56.59 KB, 下载次数: 4)

下载附件

保存到相册

最后最重要一步, 修改ESP8266-01的波特率
2016-2-1 17:07 上传

最后最重要一步, 修改ESP8266-01的波特率
指令:AT+CIOBAUD=9600
成功后请用新的波特率连入, 测试一下AT指令

09.jpg (98.82 KB, 下载次数: 4)

下载附件

保存到相册

在9600波特率下测试指令
2016-2-1 17:07 上传

在9600波特率下测试指令

10.jpg (74.97 KB, 下载次数: 5)

下载附件

保存到相册

见到红框内容证明新波特率成功
2016-2-1 17:07 上传

见到红框内容证明新波特率成功
至此, 模块初始化完成, 接下来可以与Arduino接线写程序了!​
第二步. ESP8266-01模块​​与Arduino搭配ESP8266-01 UNO
TX 8
RX 9
3.3V 3.3V
CH_PD 3.3V
GND​​​ GND​先做一个模拟SSCOM串口调试的程序样例, 这样当ESP8266-01与Arduino接上的时候, 也能把Arduino当串口助手一样使用先上效果图

2-01.jpg (26.89 KB, 下载次数: 5)

下载附件

保存到相册

注意设置波特率是9600, 然后ESP8266的AT指令全都能用, 是不是很爽
2016-2-1 17:07 上传

注意设置波特率是9600, 然后ESP8266的AT指令全都能用, 是不是很爽

2-02.jpg (76.45 KB, 下载次数: 5)

下载附件

保存到相册

2016-2-1 17:33 上传

接线实物图<font color="rgb(51, 51, 51)">#include <SoftwareSerial.h>#define WIFI_TX 9#define WIFI_RX 8SoftwareSerial wifi(WIFI_RX, WIFI_TX); //RX, TXString _comdata_wifi = ""; //for incoming wifi serial datavoid setup() {Serial.begin(9600);wifi.begin(9600); Serial.println("system is ready!");}void loop() {getWifiSerialData();if(Serial.available()){ String order = ""; while (Serial.available()){ char cc = (char)Serial.read(); order += cc; delay(2); } order.trim(); wifi.println(order);}if(_comdata_wifi!=""){ Serial.println(_comdata_wifi); _comdata_wifi = String("");}}void getWifiSerialData(){while (wifi.available() > 0){ _comdata_wifi += char(wifi.read()); //get wifi data delay(4);}}</font>复制代码

标签: Arduino教程