什么是OTA编程?
OTA编程(无线)是一个过程,它使设备可以无线升级其固件或软件,而无需任何物理访问。它使用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功能。要了解有关ESP8266的更多信息,请查看其他基于ESP8266的项目。
所需组件
- NodeMCU ESP8266
- 微型USB电缆
- Arduino IDE
准备NodeMCU以无线接收OTA更新
首先使用微型USB电缆将NodeMCU ESP8266与PC连接。然后,要使用OTA上传固件,我们需要使用micro USB串行上传草图以生成ESP IP地址。这是下次无线上传固件的必要步骤。从 工具->端口中 选择要连接电缆的串行端口。
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查询。
#包括
定义要与ESP连接的Wi-Fi网络的SSID和密码的变量。我们必须将PC和ESP连接到同一Wi-Fi网络。
#ifndef STASSID#定义 STASSID“ your-ssid” #define STAPSK“您的密码” #endif const char * ssid = STASSID; const char * password = STAPSK;
ESP8266设置为station模式,并通过设置凭据启动Wi-Fi连接。ESP需要一些时间才能连接到Wi-Fi模块。如果SSID和密码正确,它将连接到Wi-Fi;如果SSID和密码不正确,则它将每1秒钟重启一次。
Serial.begin(115200); //将波特率设置为115200 Serial.println(“ Booting”); //步骤将ESP与Wi-Fi WiFi.mode(WIFI_STA) 连接;//将ESP设置为站点模式WiFi.begin(ssid,password); // 同时(WiFi.waitForConnectResult()!= WL_CONNECTED)的 Wi-Fi凭据//将ESP连接到wi-fi需要花费一些时间,因此请等到它连接为止{ Serial.println(“ Connection Failed!Rebooting…”); 延迟(1000); ESP.restart(); }
连接到Wi-Fi模块时,ESP的IP地址被打印在串行监视器上。 WiFi.localIP() 给出ESP的IP地址。
成功上传代码后,以115200波特率打开串行监视器。按下重置按钮,几秒钟后,您将能够在串行监视器上看到ESP IP地址。现在,您将能够无线上传固件。
通过OTA更新使ESP8266上的LED闪烁
在上传下一个草图之前,转到“ 工具”, 然后将“ PORT”更改为ESP IP地址,以将固件无线上传到NodeMCU。
现在,使用Arduino IDE以无线方式在NodeMCU上上传以下给定的LED闪烁草图,并确保您的PC和ESP连接到相同的Wi-Fi网络,并且ESP由某些电源供电。
成功上传代码后,NodeMCU ESP8266上的LED指示灯将每1秒闪烁一次。在ESP上上传固件时,您也可以在草图中设置主机名和密码,以确保安全。