吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9248|回复: 30
收起左侧

[C&C++ 原创] 物联网模块ESP8266-OTA空中升级体验固件及主源码

  [复制链接]
X5ZJ 发表于 2020-5-9 09:03
本帖最后由 X5ZJ 于 2020-5-9 09:12 编辑

物联网WIFI模块学习已经几个月了,经过N种折腾尝试各种模块,各种语言的学习,也学习了不少东西,平时总结都写到了CSDN或TOUTIAO上了,经过反复测试,感觉还可以,就分享出来。
目的:ESP826601S因为是1MB空间,稍微不慎就无法升级成功,经过反复调试,找到一些方法摸索出来,以便分享共同学习,如有违反 留言修改!
不但分享固件,而且分享arduino源码。
ESP01S-OTA升级固件测试.rar (395.1 KB, 下载次数: 77) 上传附件不 支持BIN文件类型,就压缩到一个包内了。
固件1:ota-hellow.bin (执行升级的固件)   固件2:hellow.bin (被升级的固件,要部署到服务器上可以通过http访问到并能下载的地址下)
声明:此固件SSID固话,暂未启用smartconfig、esptouch功能,如需深入学习,可以关注 生成打包一个给您,要么配置一个公共的ssid,password。
方法仅供学习参考,而非照搬,提供一种学习的思路。重点是了解arduino-ide 中如何烧录ota固件及注意事项,当然配套学习的知识点还有很多。还有NONOS-SDK开发(基本都是c语言的,所有学习过程总结我也有分享博文...)
[C++] 纯文本查看 复制代码
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266httpUpdate.h>
 
#ifndef APSSID
#define APSSID "JIUAI"  //换成您自己的SSID
#define APPSK  ""//换成您的密码
#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...\n", 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...\n", cur, total);
}
 
void update_error(int err) {
  Serial.printf("CALLBACK:  HTTP update fatal error code %d\n", 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");//此固件仅供测试,每秒输出一句话带序号
    // Or:
    //t_httpUpdate_return ret = ESPhttpUpdate.update(client, "www.52pojie.com", 81, "/路径/文件名.bin");//仅距离 需自改
   //升级过程中状态变化
    switch (ret) {
      case HTTP_UPDATE_FAILED:
        Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s\n", 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;
    }
  }
}


IDE参数配置

IDE参数配置
注意事项就是 Flash Size:的修改,默认值是无法烧录的,因为固件已经超出此配置
选择 OTA 大于您新固件bin 的文件大小的都可以,建议 fs:256以下的

1MB参数选择

1MB参数选择
重点学习是这个!!!和Arduino IDE烧录参数如何选配!!!
另外默认擦除方式Only Sketch (仅代码区)因为自己用到的有 EEPROM 可能占据一部分空间,可以选择 All Flash Contents (全部擦除)
另外一个 固件FW:默认值改为了 2.2.1+199(我看到是2.2.1的最高版本故选此了)将待升级的文件上传到指定服务器位置(要自己配置哦)hellow.bin (每1s仅打印出一句话) 烧录固件 ota-hellow.bin 到 ESP01S 模组中会在几秒内 自动加载升级程序,升级过程

升级过程中

升级过程中
升级过程中

升级完成提示

升级完成提示
升级完成

新固件打印的内容

新固件打印的内容
新固件串口输出

烧录工具及输出

烧录工具及输出
烧录器,01S,继电器(我测试的2路输出,因为板载LED是针脚2,升级过程暂屏蔽了2路输出到继电器 否则继电器 嗒嗒嗒...)

ESP01S针脚

ESP01S针脚

H5-VX公众号控制页面

H5-VX公众号控制页面
(V信公众号中控制),H5页面,便于随时编辑无需生成APP,所有操作均可灵活升级。本实例 模拟 现有的 组合操作模式。支持串口控制指令(可自定义)。
此模组实现功能已完成的模块功能 (ESP8266 12F,01S 系列通用)
1)一键配网,掉电保存;远程无线升级OTA(免去升级烦恼节省升级维护成本)
2)指令可自定义(各种内置指令规范标准),自锁式,自复式,取反,互斥,延时开,延时关,点动等
3)mqtt协议通讯(现流行的物联网协议),可以自定义为您的服务器,也可以作者提供
4)h5(v信)中调用,可以集成到任何平台,不用反复发布APP了,可随时修改调用客户端
5)这种指令组合(立即开,立即关,延时开,延时关;互斥操作:先关后开;点动操作:开后自动延时关;全开-可延时也可以不延时,全关-可延时也可以不延时;可预设延时时长秒)
6)本测试固件ota-hellow.bin (如需要 可以独立生成您的SSID 此测试固件未启用一键智能配网功能)升级后固件 hellow.bin(仅串口输出一句话) 请关注哦
7)可量产,学习交流,可现实场景用(很多网上买的模块 固件无法修改有的不提供任何说明,无法应用于现实,本主提供的可以直接用于生产应用中)
8)温湿度即时同步回显(每x秒 可定义,12F已集成)后续提供曲线图
9)自动模式-手动模式切换;前者通过温湿度或时间策略控制,后者通过人工远程操作。
10)可以定制各种特殊操作(可关注了解,可全部通过指令下发,串口也可以发送指令交互等等)

配件图

配件图
经测试01,01S 都可以升级,平时用的是ESP12F系列

点动案例

点动案例
点动开关实例(海康摄像头云监控实时画面)+卷闸门2-3秒的点动触发此配套板子

四路继电器WIFI模组

四路继电器WIFI模组
220V供电,4路10A继电器输出

免费评分

参与人数 7吾爱币 +13 热心值 +7 收起 理由
爱你52 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lzawww + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zakailynn + 1 + 1 用心讨论,共获提升!
zxymdaddy + 1 + 1 我很赞同!
Monitor + 1 + 1 软硬兼施
ty86922 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

辉夜年华 发表于 2020-5-12 14:18
X5ZJ 发表于 2020-5-12 11:30
1、想学学什么,为什么学
2、自己会什么,先做什么
3、学习这些需要具备很多知识,更要耐得住寂寞和孤 ...

1.学习物联网的研发,为了亲手实现一个愿望。
2.能看懂代码,知道举一反三,但是基础不扎实。
3.最不怕的就是知识,但是只能利用零碎时间进行补充学习。
4.一直有看一些博客,论坛,在尝试。
有路就去走一走,即使不通也得试过才知道。ps:感谢楼主四个问题
 楼主| X5ZJ 发表于 2020-5-15 18:23
aiqiangshen123 发表于 2020-5-15 15:59
我也想学习,问下这东西怎么入门啊?

入门,需要学习很多的东西;
1、首先有一定的编程经验,基础;主要是如何学习
2、看别人的视频,筛选对自己有用的资源
3、选型:语言?模块?方向?不然就是忙学,一般是目标决定行动的方向
4、学-查-实践-实践-失败-查资料-实践-总结。。。。。冰冻三尺非一日之寒
5、贵在坚持
 楼主| X5ZJ 发表于 2020-5-9 09:16
吐槽下,论坛编辑器真的不好用,编辑好的 发布后乱糟糟的,默认字体等有问题,间距啥都不能调整 排班很费劲,写篇文字上小时...
you74222 发表于 2020-5-9 09:22
好东西,是否有教程发来共享一下,最近也想学习一下这个。
黄非红 发表于 2020-5-9 09:23
莹石云那个界面也是微信吗?是不是不能加密视频才可以这样播放?
sheensh 发表于 2020-5-9 09:31
物联网模块ESP8266-OTA空中升级体验固件及主源码,谢谢
爱可乐的流氓兔 发表于 2020-5-9 09:36
谢谢分享了,学习一下看看!没想到这坛子还有玩这东西的。
zqy10008 发表于 2020-5-9 09:44
好厉害,亲手做这些玩意儿真的很酷
zxymdaddy 发表于 2020-5-9 09:48
厉害。。。。谢谢分享。。
余佳卓 发表于 2020-5-9 09:50
万物互联的时代到来了
 楼主| X5ZJ 发表于 2020-5-9 09:52
黄非红 发表于 2020-5-9 09:23
莹石云那个界面也是微信吗?是不是不能加密视频才可以这样播放?

根据萤石摄像头的序列号(开发者账号)获取token即可,一般7天更换一次,需要API进行获取TOKEN即可。海康也提供H5扫描调用。方法一样的。
安卓版的和苹果端显示有时候不太一样,苹果可以非全屏直接实时画面,安卓还要进入横屏模式才能实时。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-26 21:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表