我正在尝试将我有一段时间的ESP8266-01连接到我的Arduino UNO r3。使用ESP8266对我来说是新的。我使用此site作为参考。
我的连接如下:
Arduino -> ESP8266
TX -> RX
RX -> TX
5V -> Resistor -> VCC, CH_PD
GND -> GND
我正在尝试快速测试以连接ESP8266
void setup() {
// put your setup code here, to run once:
Serial2.begin(9600);
Serial.begin(115200);
}
void loop() {
while(Serial2.available()) Serial.write(Serial2.read());
while(Serial.available()) Serial2.write(Serial.read());
}
我收到此错误:
Arduino: 1.6.9 (Windows 7), Board: "Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None"
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -hardware "C:\Users\Lappy\AppData\Local\Arduino15\packages" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -tools "C:\Users\Lappy\AppData\Local\Arduino15\packages" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\Lappy\Documents\Arduino\libraries" -fqbn=esp8266:esp8266:generic:CpuFrequency=80,FlashFreq=40,FlashMode=dio,UploadSpeed=115200,FlashSize=512K64,ResetMethod=ck,Debug=Disabled,DebugLevel=None____ -vid-pid=0X2341_0X0043 -ide-version=10609 -build-path "C:\Users\Lappy\AppData\Local\Temp\build020cff5e75da0458cfe8ecc88a163002.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "C:\Users\Lappy\Box Sync\Arduino\wifi_door_opener\wifi_door_opener.ino"
Board generic (platform esp8266, package esp8266) is unknown
Error compiling for board Generic ESP8266 Module.
答案 0 :(得分:1)
另一个问题,但不是你遇到的问题(YET),是你的布线说:
5V - >电阻器 - > VCC,CH_PD
这真让我烦恼! :)
可能没关系,你提到我现在无法检查的网站,但似乎你试图通过使用一个电阻将电压从5v降低到3.3v。对于一个可以绘制高度可变负载的设备来说,这似乎非常不可靠(意味着ESP可能会看到从5v到3.3v以下的任何东西)。
哦,非常相似,这个:
TX - > RX
RX - > TX
似乎也是一个坏主意,我假设UNO数据线是5v? ESP预计3.3v,煎炸它的可能性很高:)。
答案 1 :(得分:0)
你使用Serial2.begin和Serial.begin,但Arduino Uno R3只有一个UART(数字引脚0和1)! 相比之下,您所指的链接适用于具有4个UART的Arduino Mega。因此,在这种情况下,您需要将2个引脚定义为SoftwareSerial并包含如下所示的库:
#include <SoftwareSerial.h>
SoftwareSerial ESP8266(2,3)
void setup(){
do something;
}
这使得Arduino的数字引脚2成为另一个Rx引脚,而数字引脚3也是另一个Tx引脚。
而且(正如已经提到的那样)你需要检查你的接线。 Arduino Uno适用于5V,但ESP8266适用于3.3V(3.0V - 3.6V,如您所见here under documentation in the datasheet)!
所以你需要做的是:
您可以为ESP8266使用外部3.3V电源,也可以从Arduino Uno获取5V引脚并将其转换为3.3V(分压器,LD1117V33,......)。有些人将ESP8266直接连接到Arduino的3.3V引脚,但在我的情况下,它不起作用。但是你可以尝试一下......
你需要考虑Arduino通过5V的UART引脚发送。因此,请确保在ESP8266的接收线上添加分压器(例如4.7kohm和10kohm)。 ESP8266在其Tx线上发送3.3V电压,Arduino将其识别为逻辑高电平。所以不需要保护。
这是我的布线解决方案:
并强>
您需要在 Arduino IDE 中选择正确的设置。您的错误看起来像是您选择了
Generic ESP8266 Modul
但你需要选择你的Arduino Uno。
所以转到Tools
- &gt; Board
- &gt; Arduino/Genuino Uno
并确保使用正确的端口。
有趣的信息:
可以将草图直接上传到ESP8266,但是因此你需要更多的接线,这并不容易..
答案 2 :(得分:0)
亲爱的cranphin和TeaAge,我正在使用Arduino Uno通过esp8266将dht11数据发送到ThingSpeak,我面临着同样的错误“为板载通用ESP8266模块编译时出错”,我选择了Arduino / Genino Uno和通用ESP8266模块另一个,但仍在发生相同的错误,可能是什么问题? 这是我复制的错误消息
Arduino:1.8.9(Windows 10),开发板:“ Arduino / Genuino Uno”
构建选项已更改,重建所有包含在 C:\ Users \ Faroooooooooq \ Documents \ Arduino \ libraries \ DHT_sensor_library \ DHT_U.cpp:15:0:
C:\ Users \ Faroooooooooq \ Documents \ Arduino \ libraries \ DHT_sensor_library \ DHT_U.h:36:29: 致命错误:Adafruit_Sensor.h:没有此类文件或目录
编译终止。
退出状态1为板Arduino / Genuino Uno编译时出错。这个 报告将包含“在显示期间显示详细输出”的更多信息 文件->首选项中启用了“编译”选项。