如何获取上传固件的日期和时间?

How to get date and time of uploaded firmware?

我在多个 esp8266 上有某种智能家居,我会定期通过 Arduino OTA 更新它们的固件代码。 有时我忘记上传实际代码。例如,我不记得,如果我上传了一个新版本的固件到 esp8266,那个在厕所里服务:) .

每个Arduino esp8266固件都是*.bin文件,如果我没看错的话。每个文件都有创建时间。 问题是 - esp8266 是否存储固件的日期和时间,通过 OTA(或更新)上传,是否有任何 Arduino 程序方法来获取该日期和时间?

你应该做一个return版本的功能,每次上传前设置版本。 例如: const 字符串版本 = "3.51"; 然后 return 它到串行,html 页面专用,OTA 服务器页面方法或 mqtt。 我认为没有像您正在尝试的简单方法。

// Provided by compiler at compile time.
const char compile_date[] = __DATE__ " " __TIME__;

Serial.print("Compile timestamp: ");
Serial.println(compile_date);

或者添加一个 returns 它的网络服务器端点,例如 http://device-ip/info

如果您使用像 Visualcode 这样的 IDE,您也许可以设置一个自动构建编号定义。

就我个人而言,我正在开发 ESP 管理器。您在草图中包含的一个小包装器,用于建立您的 Wifi,广播它的 firmwareId 和 mac 地址。 python 服务器侦听这些,通过 mac 将它们与设备列表进行比较,它们应该是什么固件 运行 如果不匹配,则将它们刷新为 OTA。您可以从它的日志中看到所有内容 运行.

我已经开始工作了,但还没有签到,如果有兴趣请私信我,或者我稍后会用 link 回复。