|
OTA(Over the Air)编程可以无线升级器件的固件或软件,而无需任何物理访问。它使用Wi-Fi、蓝牙、GPRS或4G / 3G等无线技术,而不是采用有线串行通信。 OTA用于对微控制器、手机、计算机、机顶盒等设备进行重新编程。通常会发送OTA更新指令以更新软件、解决错误、添加一些功能等。随着物联网设备使用的增加,OTA的使用数据传输速率较低的频段(868 MHz、900 MHz、2400 MHz)。
在本篇文章中,我们将OTA更新发送给ESP8266 NodeMCU使LED闪烁。
ESP8266 NodeMCU NodeMCU是一个开源物联网平台。它包括在Espressif Systems的低成本支持Wi-Fi的ESP8266 Wi-Fi SoC上运行的固件,以及基于ESP-12模块的硬件。它具有GPIO、SPI、I2C、ADC、PWM和UART引脚。可以使用Arduino IDE进行编程。板上NodeMCU具有CP2102 IC,可提供USB转TTL功能。
所需的组件 ● NodeMCU ESP8266开发板 ● Micro USB电缆 ● Arduino IDE
准备NodeMCU以无线接收OTA更新 首先使用Micro USB电缆将NodeMCU ESP8266与PC连接。然后,要使用OTA上传固件,我们需要使用micro USB串口上传草图以生成ESP IP地址。以下是上传固件的必要步骤。从Tools -> Port中选择连接电缆的串行端口。
ESP8266附带了可从Arduino IDE直接访问的库和示例。打开Arduino IDE,然后打开BasicOTA示例。
编辑草图,用Wi-Fi SSID和密码替换“ your-ssid”和“ your-password”,然后上传草图
成功上传程序后,打开串口监视器。在串口监视器上设置115200的波特率,然后按NodeMCU ESP8266上的Reset按钮。将NodeMCU ESP8266与Wi-Fi连接需要花费一些时间,因为它会检查Wi-Fi凭据。如果SSID和密码正确,则NodeMCU ESP8266将连接到Wi-Fi,并且ESP的IP地址将显示在串口监视器上。
ESP8266指示灯闪烁的OTA传输程序 文章末尾给出了用于通过OTA传输闪烁的LED程序的完整代码,在这里我们解释了该代码的一些重要部分。
首先在代码中导入所需的库。 ESP8266WiFi.h库提供了连接到网络所需的ESP8266特定Wi-Fi例程。它还提供了在站模式或软接入点模式下运行ESP8266的方法和属性。 ESP8266mDNS.h允许Sketch响应多播DNS查询。 - #include <ESP8266WiFi.h> //provides ESP8266 specific Wi-Fi routines we are calling to connect to network.
- #include <ESP8266mDNS.h>
- #include <WiFiUdp.h>
- #include <ArduinoOTA.h> //OTA libraries
复制代码定义要与ESP连接的Wi-Fi网络的SSID和密码的变量。我们必须将PC和ESP连接到同一Wi-Fi网络。 - #ifndef STASSID
- #define STASSID "your-ssid"
- #define STAPSK "your-password"
- #endif
- const char* ssid = STASSID;
- const char* password = STAPSK;
复制代码
ESP8266设置为station模式,并通过提供证书启动Wi-Fi连接。 ESP需要一些时间才能连接到Wi-Fi模块。如果SSID和密码正确,它将连接到Wi-Fi;如果SSID和密码不正确,则它将每1秒钟重启一次。 - Serial.begin(115200); //Set Baud Rate to 115200
- Serial.println("Booting");
- // Step to connect ESP with the Wi-Fi
- WiFi.mode(WIFI_STA); //Set ESP as station mode
- WiFi.begin(ssid, password); //Wi-Fi Credentials
- while (WiFi.waitForConnectResult() != WL_CONNECTED) //Connecting ESP to wi-fi takes some time, so wait till it gets connected
- {
- Serial.println("Connection Failed! Rebooting...");
- delay(1000);
- ESP.restart();
- }
复制代码
连接到Wi-Fi模块时,ESP模块的IP地址被打印在串口监视器上。 WiFi.localIP()给出ESP的IP地址。
成功上传代码后,以115200波特率打开串口监视器。按下重置按钮,几秒钟后,您将能够在串口监视器上看到ESP IP地址。现在,您将能够无线上传固件。
通过OTA更新使ESP8266上的LED闪烁 在上传下一个草图之前,请转到“Tools”,然后将“PORT”更改为ESP IP地址,以将固件无线上传到NodeMCU。
现在,使用Arduino IDE以无线方式在NodeMCU上上传以下给定的LED闪烁草图,并确保您的PC和ESP连接到相同的Wi-Fi网络,并且ESP模块通电。
成功上传代码后,NodeMCU ESP8266上的LED指示灯将每1秒闪烁一次。您还可以在草图中设置主机名和密码,以确保在ESP上上传固件时的安全性。
代码 以下是本文使用的完整代码:
main.rar
(1.25 KB, 下载次数: 54)
|