当前位置: 代码迷 >> 综合 >> Arduino UNO + esp8266 通信过程记录
  详细解决方案

Arduino UNO + esp8266 通信过程记录

热度:27   发布时间:2023-12-06 11:49:01.0

想要利用wifi组件来控制led灯,于是开始研究硬件,屡屡碰壁,刚才终于收到了我的HelloWorld……记录一下过程。

没有完全完成,是个坑。第一部分可以信赖。


所需硬件: Arduino UNO, esp8266-01,面包板,10k电阻(可有可无),线。

软件:串口调试工具均可USR-TCP232、还有Arduino IDE自带的串口监测器也OK。

参考教程:http://www.arduino.cn/thread-18359-1-1.html 

点击打开链接

https://wenku.baidu.com/view/43ba33c048d7c1c709a14581.html

(其实内容都差不多,但是……探索的过程为何就如此艰辛呢)


关键点:波特率设置成115200,不是9600。9600收不到回应,115200可以。


接线图

ESP8266 ------UNO
VCC---------- - 3.3v
GND----------GND
CH_PD---10K电阻--3.3v (高电平工作状态) 如果开机8266蓝灯亮,说明电压还高,需要加大电阻。
RX---------- - - -TX PIN2 (Arduino IDE 软串口 示例:SoftWareSerialExample 中指定)
TX-------- - - ---RX PIN3 Arduino IDE 软串口 示例:SoftWareSerialExample 中指定)

电脑USB连接UNO


arduino UNO 烧程序啦

#include <SoftwareSerial.h> 
SoftwareSerial mySerial(3, 2); // RX, TX
void setup()  
{ Serial.begin(115200);while (!Serial) {;} Serial.println("hardware serial!"); mySerial.begin(115200);mySerial.println("Hello,world!");
}void loop() 
{if (mySerial.available()){Serial.write(mySerial.read());}if (Serial.available()){mySerial.write(Serial.read());}
}


打开串口监测器,右下角选择NL&CR,波特率115200

应该可以看到输出,不是乱码。

发送  AT+RST

可以收到回应。

===============================================================

以上为软串口调试部分,接下来调试wifi client的部分。

我以为只要有库就可以,然而不是,还需要esp8266的编译环境。

直接以Arduino UNO作为开发板来编译是无法通过的,即便有库文件,也会提示缺少queue.h之类的情况,因为编译环境不满足。

ESP8266/Arduino的Github官网:点击这里

上面这个链接,下载之后是整个环境,它的开发文档里提供了4种方法,第一种直接在编译器里下载,但是,速度巨慢,尝试了很多次都失败了。第二种是适用于Linux系统,我强行把文件复制到hardware,失败,编译的时候会一直提示找不到文件,我复制到library里,依然有无穷无尽的错误。

找到了一篇配置环境的文章,下载了整个环境,再在编译器安装,就不用在线下载了,能够快速安装。编译WifiClient例子,成功。(就是示例文件里的WiFiClient)

参考文章:点击这里

关键点:

  • 下载安装包(网盘链接    提取密码:hdh2 )
  • 将安装包内Arduino15文件夹中的文件全部复制放置到路径: C:\Users\Administrator\AppData\Local\Arduino15 中;注意:AppData文件夹一般都是隐藏的,Win10用户注意需要将路径中的Administrator更换为你的电脑用户名。(文件夹中的其他文件不用动,如果你之前没有安装过esp8266平台,应该不会出现冲突文件!)
  • 回到安装步骤(见上面的链接)从头操作,你会发现到步骤6时跳过了下载过程,直接解压安装,非常快。

=======================================================
以上为ESP8266编译环境配置部分。接下来是上传样例程序到板子。
这里又遇到了问题,我是USB连着UNO的板子,UNO板子接着esp8266模块。
IDE上选择开发板肯定得是ESP8266 MODULE,否则编译不通过。但是上传时,提示espcomm_open failed之类的,因为串口直接连接的是UNO 板,自然得不到esp8266模块的回应。

到这里,决定不采用ESP8266库,因为可能必须要开发板。
直接通过软串口发送AT指令来与服务器通信。

之后就是一系列发指令,连接wifi,连接服务器,发送GET请求,
然后就一直卡在GET请求这里了,自己的格式似乎总是不对。遂弃之。原理上来说,GET请求发给服务器之后,服务器会返回几个数据,这样UNO板子就可以进行计算了。

  相关解决方案