使用ArduinoIDE烧写ESP8266并实现MQTT通讯

包括以下部分:
1、接线
2、烧写Arduino
3、烧写ESP8266
4、实现MQTT通讯

前置工作:将ESP8266的波特率设置为115200

接线
ESP8266的3V3/VCC 接到 3.3V
ESP8266的EN 串联一个10k电阻 接到3.3V
ESP8266的RX 接到 Arduino的RX0
ESP8266的TX 接到 Arduino的TX1
ESP8266的GND 接地
烧写时,ESP8266的GPIO0 接到GND
运行时,GPIO0悬空

烧写Arduino(这一步可能是多余的。。。)
将以下程序按照之前一样的步骤烧写到Arduino中
const int tx = 1;
const int rx = 0;
void setup() {
  pinMode(rx,INPUT_PULLUP);
  pinMode(tx,INPUT_PULLUP);
  Serial.begin(115200);
  Serial.println("Arduino OK");
  delay(1000);
}
void loop() {
}

烧写ESP8266
在ArduinoIDE中安装ESP8266板子,网上已经有很多安装和设置的教程了,不再赘述。
主要记录在烧写过程中出现的问题:
1、烧写前,需要拔出与电脑连接的数据线,并重新插入。
2、插入后按下Arduino板的复位键不松开,点击IDE中的upload,等待直到出现:Hard resetting via RTS pin…字样后,松开复位键。
3、将GPIO0悬空,打开Serial monitor,重新拔插数据线,可以看到ESP8266 OK字样。
4、只有在Arduino处于长按复位键的过程中ESP8266的串口数据才会传到电脑上来。。所以第二步可能是多余的。。。
5、长按Arduino的复位键,可以看到不断有ESP8266 OK字样输出到电脑。
烧写的测试代码如下:
void setup(){
  Serial.begin(115200);
  delay(1000);
}
void loop(){
  Serial.println("ESP8266 OK");
}

实现MQTT通讯
效果如图:

代码放到CSDN:https://blog.csdn.net/qq_42851946/article/details/113295270

如果您有任何其他理解或疑问,请务必按照首页的联系方式联系在下:-)