该准备的自行准备(烧录器,ESP01S,Arduino IDE最新版,升级前bin文件,升级后bin文件)

久爱物联网 - 专注 专心 专业

#include #include #include #include  #ifndef APSSID#define APSSID "JIUAI"  //换成您自己的SSID#define APPSK  "jiuai.ltd"//换成您的密码#endif ESP8266WiFiMulti WiFiMulti; //多组WIFI模式不是本文重点 //初始化开始void setup() {   Serial.begin(115200);  // Serial.setDebugOutput(true);   Serial.println();  for (uint8_t t = 4; t > 0; t--) {    Serial.printf("[SETUP] WAIT %d...", t);    Serial.flush();//清缓存    delay(1000);  } //设置网络连接模式 WIFI_AP /WIFI_STA /WIFI_AP_STA  WiFi.mode(WIFI_STA);  WiFiMulti.addAP(APSSID, APPSK);//账号密码  //其他代码 如果连接不成功,可以引用smartconfig来启动配网}//初始化OTA升级用到的几个函数void update_started() {  Serial.println("CALLBACK:  HTTP update process started");} void update_finished() {  Serial.println("CALLBACK:  HTTP update process finished");} void update_progress(int cur, int total) {  Serial.printf("CALLBACK:  HTTP update process at %d of %d bytes...", cur, total);} void update_error(int err) {  Serial.printf("CALLBACK:  HTTP update fatal error code %d", err);} //循环体void loop() {  // wait for WiFi connection  if ((WiFiMulti.run() == WL_CONNECTED))   {     WiFiClient client;//wifi连接实例    ESPhttpUpdate.setLedPin(LED_BUILTIN, LOW);//指示灯作为信号反馈可以不要可改,01S默认2    //我接的有继电器,升级过程会出现 反复断合 嗒嗒嗒....    // Add optional callback notifiers    ESPhttpUpdate.onStart(update_started);    ESPhttpUpdate.onEnd(update_finished);    ESPhttpUpdate.onProgress(update_progress);    ESPhttpUpdate.onError(update_error);     //两种联网方式(修改为您自己的地址,如体验本实例请联我)    t_httpUpdate_return ret = ESPhttpUpdate.update(client, "http://你的域名或IP/路径名称/文件名.bin");//此固件仅供测试,每1秒输出个序号    // Or:    //t_httpUpdate_return ret = ESPhttpUpdate.update(client, "www.x5zj.com", 81, "/路径/文件名.bin");   //升级过程中状态变化    switch (ret) {      case HTTP_UPDATE_FAILED:        Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str());        break;       case HTTP_UPDATE_NO_UPDATES:        Serial.println("HTTP_UPDATE_NO_UPDATES");        break;       case HTTP_UPDATE_OK:        Serial.println("HTTP_UPDATE_OK");        break;    }  }}

之所以撰写本文,目的因为默认官方示例,无法烧录成功升级固件。故写此文予以分享

8266模块默认设置-无法烧录-需要修改参数

flash size:默认配置是 FS:512KB,OTA~246KB 调整为 上图 OTA:052KB (1MB里最大的空间这个),目的扩大OTA空间(写最简单的bin是260kb)

另外默认擦除方式Only Sketch (仅代码区)因为自己用到的有 EEPROM 可能占据一部分空间,故调整下如上图 All Flash Contents。

另外一个 固件FW:默认值改为了 2.2.1+199(我看到是2.2.1的最高版本故选此了)

将待升级的文件上传到指定服务器位置(要自己配置哦)hellow.bin (每1s仅打印出一句话)

升级过程,指示灯狂闪-继电器断合声音....嗒嗒嗒

升级完成后提示,等待重启,开始加重新的固件代码

新固件(升级后)仅每秒输出一句话和序号

烧录设备

01S针脚

烧录时针脚电平

更多参数参考官方文档。

本文是作者,经过多次失败后实践得来,如需了解更多,请关注我和jiuaiiot

已完成的模块功能 (ESP8266 12F,01S 系列通用)

1)一键配网,掉电保存;远程无线升级OTA(免去升级烦恼节省升级维护成本)

2)指令可自定义(各种内置指令规范标准)

3)mqtt协议通讯(现流行的物联网协议),可以自定义为您的服务器,也可以作者提供

4)h5(v信)调用,可以集成到任何平台,不用反复发布APP了,可随时修改调用客户端

5)这种指令组合(立即开,立即关,延时开,延时关;互斥操作:先关后开;点动操作:开后自动延时关;全开-可延时也可以不延时,全关-可延时也可以不延时;可预设延时时长秒)

6)本测试固件httpUpdate-hellow.bin 升级后固件 hellow.bin 请关注哦

7)可量产,学习交流,可现实场景用(很多网上买的模块 固件无法修改有的不提供任何说明,无法应用于现实,本主提供的可以直接用于生产应用中)

8)温湿度即时同步回显(每x秒 可定义,12F已集成)后续提供曲线图

9)自动模式-手动模式切换;前者通过温湿度或时间策略控制,后者通过人工远程操作。

10)可以定制各种特殊操作(可关注了解,可全部通过指令下发,串口也可以发送指令交互等等)

各种开关组合示例,可接云摄像头哦

相关模块-继电器-输出负载

点动操作案例(卷闸门控制)童声提醒-可定制

arduino esp8266_Arduino-httpupdate-OTA-esp8266升级探险记相关推荐

  1. Arduino ESP32 HttpUpdate OTA批量更新

    前几天找ESP32 OTA升级资料,有用ide指定IP地址升级的,有链接ESP32的网页后,上传文件的.都很麻烦,我这边后期搞60多套本地局域网设备,改一句代码就要一台一台更新,太麻烦了. 前几天找这 ...

  2. Arduino应用开发——OTA(通过网络升级)

    Arduino应用开发--OTA(通过网络升级) 目录 Arduino应用开发--OTA(通过网络升级) 前言 1 OTA原理简介 2 Arduino IDE环境搭建 3 编写OTA测试代码 4 OT ...

  3. 乐鑫esp8266学习rtos3.0笔记:仅1M flash 的安信可 ESP-01S 模块,如何二次开发?如何对其 OTA 远程升级固件!

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  4. Arduino IAP(OTA)远程升级与Flash文件读写

    Arduino 以其超强易用性风靡全球.但其个别缺点也很明显,一是批量产品化后万一要升级程序,由于不支持OTA远程升级刷机,很麻烦.二是本身ROM容量很小,UNO的32k空间存储几个网页都很困难,存R ...

  5. 基于Arduino IDE开发的ESP8266(ESP-12F)项目4 ——中断及高级输入输出

     本次写这篇文章是自己做一下学习记录,如有错误,还请大家斧正!!! 日后及时修正!感谢支持! 欢迎大家的关注        点赞        收藏        留言 目录 前言 一.新建工程 二. ...

  6. 【arduino】nodemcu(ESP8266)发送邮件库测试笔记,SMTP email

    前一阵子看到群里有人问arduino发送邮件的相关问题,正好我也有搞这块的计划,于是便简单试了几个项目,(虽然就整出来一个)这里简单总结一下(防止日后忘了),如果你恰好也需要用这块,这篇文章可能会帮你 ...

  7. QCC512x QCC302x GAIA OTA DFU 升级(earbud)

    QCC512x QCC302x GAIA OTA DFU 升级(earbud) 1.不能 DFU 升级的 filesystems: Read-Write (RW) FileSystem Device ...

  8. 聊一聊智能汽车和物联网IoT设备的OTA远程升级

    根据 Allied Market Research 发布的最新报告,全球汽车OTA市场在2020年创造了25.9亿美金的市场价值,预计到2030年将达到137.1亿美元,从 2021 年到 2030 ...

  9. STM32 OTA远程升级

    STM32 OTA远程升级 第一章 STM32 OTA软硬件结构构成 前言:OTA全称是over the air,主要应用于物联网设备作为更新代码使用,其原理在不同芯片上相通,应用较为广泛. 目录 S ...

最新文章

  1. Linux下的任务计划
  2. selenium+python自动化测试系列(一):登录
  3. PaddleOCR加载chinese_ocr_db_crnn_server模型进行中英文混合预测(命令行)实践
  4. mysql高精度类型_mysql中常见的数据类型
  5. 03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbcp数据库连接池,通过配置文件使用dbcp数据库连接池
  6. diff算法_传统Diff算法为什么时间复杂度要O(n ^3)
  7. 持续定义Saas模式云数据仓库+BI
  8. 零基础爬虫requests初阶教程,手把手教你爬数据
  9. ecshop退出登录会清空购物车的bug优化,最完美解决方法
  10. 使用android SpannableStringBuilder实现图文混排,看到许多其他
  11. linux7重启network,mmp的 rhel7 network重启一直失败,求原因!!!
  12. Win7安装MarkdownPad2破解版,报Awesomium.Windows.Controls.WebControl 错误的解决方案
  13. HTML5游戏引擎(一)-egret引擎简介——一个开源免费的游戏框架
  14. 机械键盘插入linux系统中,机械键盘背光灯不亮,并且键盘快捷键无作用
  15. 计算机管理 合并分区,如何分区,删除和合并计算机02
  16. 用canvas实现一个简易绘图工具
  17. php获取肖前时间,马克思主义哲学原理(上下册)
  18. VSCode 使用教程--配置 C / C++ 环境
  19. 三极管基础分类, 参数选择及常见型号对比
  20. 浅谈《英雄杀》5人局之反贼技巧

热门文章

  1. Feature event receviers
  2. ExtAspNet公司项目截图
  3. MS SQL入门基础:删除数据库
  4. Java与XML编程之SAX
  5. VC中树状控件(TreeCtrl)的用法
  6. MySQL面试题中:主从同步的原理
  7. 【剑指Offer】07变态跳台阶
  8. java基础面试题总结
  9. MySQL 全文搜索支持
  10. Visual Assist安装完之后的文件复制路径