问题描述
我在多个esp8266上都有某种智能家居,我会定期通过Arduino OTA更新其固件的代码。 有时我忘了在上面上传实际代码。例如,我不记得了,如果我将新版本的固件上载到esp8266,该固件可在厕所使用:)。
如果我正确理解的话,每个Arduino esp8266固件都是* .bin文件。每个文件都有创建时间。 问题是-esp8266是否存储通过OTA(或更新)上传的固件的日期和时间,是否有任何Arduino程序方法可以获取该日期和时间?
解决方法
// Provided by compiler at compile time.
const char compile_date[] = __DATE__ " " __TIME__;
Serial.print("Compile timestamp: ");
Serial.println(compile_date);
或添加一个返回它的Web服务器端点,例如http:// device-ip / info
如果您使用Visualcode之类的IDE,则可以设置自动构建编号定义。
我个人正在使用ESP Manager。您在草图中包含的一个小型包装程序将建立Wifi,并广播它的firmwareId和mac地址。 python服务器会监听这些内容,并将它们与mac设备列表进行比较,以及它们应运行的固件,如果出现不匹配,则将它们刷新为OTA。您可以从日志中看到一切运行情况。
我有工作,但还没有签到,如果有兴趣,请下午给我,否则我稍后会通过链接发表评论。
,您应该制作一个返回版本并在每次上传之前设置版本的函数。 例如: const String version =“ 3.51”; 然后将其返回到串行,专用于html页的OTA服务器Page方法或mqtt。 我认为没有像您正在尝试的简单方法。