【ESP8266 快速入门】示例5:Arduino环境实现OTA无线升级固件功能WebServer网页服务器方式 |
您所在的位置:网站首页 › arduino小灯闪烁十次 › 【ESP8266 快速入门】示例5:Arduino环境实现OTA无线升级固件功能WebServer网页服务器方式 |
主题
使用【ESP8266】Arduino环境实现OTA无线升级固件功能,由LED闪烁程序通过OTA升级为PWM呼吸灯程序。 目录 主题 0.引言 1.环境准备 2.OTA步骤 2.1.OTA的基础程序:LED闪烁 2.2.OTA的升级程序:PWM呼吸灯 3.总结 0.引言OTA听起来挺牛的一个功能,其全称为(Over-The-Air),直译为空中传送。就是通过无线方式实现固件升级。 硬件:安信可esp8266开发板。 1.安装Arduino 1.8.15软件 2.安装ESP8266的库 这些在我的博文里面有详细说明,这里就不赘述了。博文如下:【ESP8266 快速入门】0.详细步骤-Arduino IDE开发环境搭建(基于安信可NodeMCU、C/C++) OTA应用以led闪烁程序为例。下文的关键代码httpUpdater.setup(&httpServer); // 网页更新固件 /*******************************************************************/ /* 项目名称 : 快速入门ESP8266 程序名称 : WEB_OTA_Example 作者 : nanshou 日期 : 202303 程序目的: 本示例程序用于演示ESP8266的web-OTA功能。通过web网页更新esp8266的固件,而不需要连接数据线。 */ /*******************************************************************/ #include #include // OTA库 #include // 定时任务 #include #include #include // 设置wifi接入信息(只能是2.4g频段) const char *ssid = "yourssid"; const char *password = "yourpassword"; ESP8266WebServer httpServer(80); ESP8266HTTPUpdateServer httpUpdater; /************************************************************/ Ticker ticker; // 定时任务 // led闪烁时间间隔(秒) const int blinkInterval = 1; // 在Tinker对象控制下,此函数将会定时执行。 void tickerCount(){ digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); } void setup(void) { pinMode(LED_BUILTIN, OUTPUT); ticker.attach(blinkInterval, tickerCount); // 设置Ticker对象 Serial.begin(115200); Serial.println(); Serial.println("web OAT:blick v1.0"); // 显示版本 WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.print("Connecting..."); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(300); } Serial.println(); httpUpdater.setup(&httpServer); // 网页更新固件 httpServer.begin(); Serial.print("HTTPUpdateServer ready! Open http://"); Serial.print(WiFi.localIP()); Serial.println("/update in your browser"); } void loop(void) { httpServer.handleClient(); }注意这里填写你的wifi信息 // 设置wifi接入信息(只能是2.4g频段) const char *ssid = "yourssid"; const char *password = "yourpassword";连接数据线,烧录这个程序到开发板。 工具参数如下,注意COM和硬件连接的编号相对应。我的是COM5,如果你的是COM3就选COM3。 新建一个项目,实现pwm呼吸灯。代码如下。 /*******************************************************************/ /* 项目名称 : 快速入门ESP8266 程序名称 : WEB_OTA_Example 作者 : nanshou 日期 : 202303 程序目的: 本示例程序用于使用pwm呼吸灯,演示ESP8266的web-OTA功能。通过web网页更新esp8266的固件,而不需要连接数据线。 */ /*******************************************************************/ #include #include // OTA库 #include // 定时任务 #include #include #include // 设置wifi接入信息(只能是2.4g频段) const char *ssid = "yourssid"; const char *password = "yourpassword"; ESP8266WebServer httpServer(80); ESP8266HTTPUpdateServer httpUpdater; /************************************************************/ Ticker ticker; // 定时任务 // 任务间隔毫秒 const int tick_ms_interval = 10; int i = 1023; // 在Tinker对象控制下,执行此函数实现呼吸灯 void ticker_pwm_breathing(){ // 低电平点亮,i越接近0越亮。led逐渐变亮 if(i Serial.print("."); delay(300); } Serial.println(); httpUpdater.setup(&httpServer); // 网页更新固件 httpServer.begin(); Serial.print("HTTPUpdateServer ready! Open http://"); Serial.print(WiFi.localIP()); Serial.println("/update in your browser"); ticker.attach_ms(tick_ms_interval, ticker_pwm_breathing); // 设置Ticker对象,输出pwm呼吸灯 } void loop(void) { httpServer.handleClient(); }注意这里填写你的wifi信息 // 设置wifi接入信息(只能是2.4g频段) const char *ssid = "yourssid"; const char *password = "yourpassword";点击左上角’文件’->‘首选项’后,勾选’编译’,然后点击’好’,保存设置。
打开串口工具,查看串口输出服务器地址。用arduino自带的串口监视器也可以。 led由闪烁变为了呼吸灯。效果如下图。 至此实现了web-ota,将esp8266从闪烁升级为呼吸灯。 1.ota程序占的空间较大,注意空间分配 2.电脑和esp8266必须处于同一局域网 这里调用的是默认的网页,非常难看。后续有空了再优化吧。 除了升级程序外,还可以更新文件系统的文件。有兴趣的朋友可以钻研。 此外,如果觉得使用STA模式升级不方便(需要额外的路由器WiFi或者热点),可以把STA换成AP模式,使用手机或者PC连接EPS8266放出来了的热点后,对应的ip地址(默认的是192.168.4.1/update )上传需要升级的固件就可以了。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |