arduino - ESP32/Arduino IDE:使用 ESPHttpUpdate 的 OTA 不断重启
问题描述
我们是一群试图开发可以通过 ESPHttpUpdate OTA 更新的 ESP32 程序的菜鸟。我们使用的代码是基本的:
if((WiFi.status() == WL_CONNECTED)) {
t_httpUpdate_return ret = ESPhttpUpdate.update("https://url.to/my.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;
}
}
从理论上讲,它有效。该程序连接到WiFi,连接到Web服务器,下载新的bin并成功刷机......只是在一个循环中。下载新固件后,它会刷新它,重新启动设备,然后重新开始。我想这是一个简单的问题,它可以识别服务器上的 bin 是否比设备上的 bin 新 - 但我似乎无法弄清楚如何做到这一点:) 任何指针将不胜感激 - 相信我,我google了很多:)
提前谢谢你, Seb
解决方案
推荐阅读
- python-3.x - 在 Pyspark 中的 .withColumn 中编写自定义条件
- r - R shiny 中的级别替换创建两个级别列表,一个为 NULL
- typescript - 项目根目录中未引用的 .ts 文件“不在根目录下”
- mysql - 根据其他列中的数据更新列数据
- docker - Docker停止NPM脚本中的所有容器命令?
- django - Django 错误:NoReverseMatch at / Reverse for 'like-post' 未找到
- reactjs - 抓取网格节点周围的元素时的ReactJS消失
- c++ - 如何检查函数指针是否返回bool
- multithreading - Julia 1.5.2 并行启动随机数选择
- java - 打印直到某个数字的所有素数