假设ESP32 OTA与我使用的ESP8266非常相似。这可以通过至少两种方式实现。
这个链接: http://esp8266.github.io/Arduino/versions/2.1.0/doc/ota_updates/ota_updates.html
提供有关使用浏览器将更新部署到设备的详细信息。您需要将端口80流量从公共IP转发到内部设备IP地址。然后,您可以通过浏览器和公共IP地址访问ESP。更好的选择是将更新的固件发布到外部可用的HTTP服务器,并更改ESP OTA codde以检查外部服务器是否有更新。此方法在上述文档的“HTTP Server”部分中详述。这只是您提出的一般性问题的一般指导。我相信上面的解决方案可行,但我还没有尝试过。
是的,一点没错。 OTA不要求设备在本地网络上。您只需要在Web服务器上托管固件.bin文件,然后让ESP32连接到服务器并发送GET请求。 Espressif的OTA示例项目相当不错,但我假设您使用的是ESP32 Arduino库,而不是ESP-IDF。
我猜你正在使用 这个。 我将看一下AWS OTA示例,我认为它是标准的ESP32 Arduino示例之一。它位于示例,SparkFun ESP32 Thing,Update,AWS_S3_OTA_Update的示例下。看起来它允许您从Amazon Web Services托管服务器进行OTA,这应该完全符合您的要求。