完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试使用ESP8266模块实现与Arduino Uno和计算机的无线通信。尽管我在使 ESP8266 正常工作方面遇到了初步问题。
起初我只尝试了一个简单的程序来用AT命令测试模块。 代码是: 代码:全选#include SoftwareSerial ESP8266(2, 3); // RX, TX void setup() { Serial.begin(9600); Serial.println("Begin"); //print on screen ESP8266.begin(9600); } void loop() { //Communication (writing and reading data) with ESP8266 through Arduino IDE Serial Monitor if (ESP8266.available()) Serial.write(ESP8266.read()); if (Serial.available()){ ESP8266.write(Serial.read()); } } 但我只在打开 Arduino IDE 串行监视器时返回“开始”,有时返回“垃圾”(随机的无意义和不间断的字符)。通过发送 AT 命令,尽管 Arduino 和 ESP8266 的通信 LED 都亮着,但我没有收到任何回复。 我试图在上述程序中设置其他波特率但没有任何效果。 我读到了一些关于 ESP8266 padron 波特率的信息,通常是 115200(尝试过但也没有结果)并且这种在 Arduino UNO 中通信的高波特率不能很好地工作所以我得到了一个示例程序来改变波特率作为 AT 命令它不工作。 代码: 代码:全选// adapted by FILIPEFLOP #include //RX pin 2, TX pin 3 SoftwareSerial esp8266(2, 3); #define DEBUG true void setup() { Serial.begin(9600); // Configure the initial speed of ESP8266 esp8266.begin(115200); sendData("AT+RSTrn", 2000, DEBUG); //Reset the module delay(1000); Serial.println("Firmware version"); //print on serial monitor delay(3000); sendData("AT+GMRrn", 2000, DEBUG); // requires the //firmware version // Configure the wanted speed for ESP8266 communication sendData("AT+CIOBAUD=19200rn", 2000, DEBUG); // (also //tried other than 19200 but no results) Serial.println("** End**"); //print on screen } void loop() {} String sendData(String command, const int timeout, boolean debug) { // Send AT commands to ESP8266 String response = ""; esp8266.print(command); long int time = millis(); while ( (time + timeout) > millis()) { while (esp8266.available()) { // The esp has data so display its output to the serial window char c = esp8266.read(); // read the next character. response += c; } } if (debug) { Serial.print(response); } return response; } 这也在串行监视器上只显示我打印的“固件版本”和“***结束***”,仅此而已,实际上它应该显示这样的东西:( 来自 FILIPEFLOP 的照片,我从那里得到的网站代码,这是他们的经验中显示的内容) 一些补充: 物理连接方案: 另请阅读有关 ESP8266 可能消耗比 Arduino Uno 所能承受的更多电流的信息,因此也尝试过不将 ESP8226 的 Vcc 连接到 3V3 Arduino 引脚,而是连接到电源一个外部稳定源(是的,将源的 GND 与 Arduino、ESP8226 和分压器 GND 相连)但它再次不起作用。 * 我没有使用按钮部分。 有人可以帮我吗? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
435浏览 5评论
441浏览 4评论
410浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 20:36 , Processed in 0.782588 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号