1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言空中升级协议 物联网模块ESP8266-OTA空中升级体验固件及主源码

c语言空中升级协议 物联网模块ESP8266-OTA空中升级体验固件及主源码

时间:2024-07-07 14:45:10

相关推荐

c语言空中升级协议 物联网模块ESP8266-OTA空中升级体验固件及主源码

-5-9 08:56 上传

点击文件名下载附件

2个固件bin打包

上传附件不 支持BIN文件类型,就压缩到一个包内了。

固件1:ota-hellow.bin (执行升级的固件) 固件2:hellow.bin (被升级的固件,要部署到服务器上可以通过http访问到并能下载的地址下)

声明:此固件SSID固话,暂未启用smartconfig、esptouch功能,如需深入学习,可以关注 生成打包一个给您,要么配置一个公共的ssid,password。

方法仅供学习参考,而非照搬,提供一种学习的思路。重点是了解arduino-ide 中如何烧录ota固件及注意事项,当然配套学习的知识点还有很多。还有NONOS-SDK开发(基本都是c语言的,所有学习过程总结我也有分享博文...)

[C++] 纯文本查看 复制代码#include

#include

#include

#include

#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, "", 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参数配置

注意事项就是 Flash Size:的修改,默认值是无法烧录的,因为固件已经超出此配置

选择 OTA 大于您新固件bin 的文件大小的都可以,建议 fs:256以下的

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针脚

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模组

220V供电,4路10A继电器输出

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。