有没有办法通过适用于esp32的互联网更新固件?

时间:2018-08-17 09:22:37

标签: arduino firmware ota esp32

我们可以使用OTA更新来无线更新固件。但是为了更新固件,esp32设备需要在本地网络上。 是否有任何方法或来源来更新不在本地网络上的设备的固件?

4 个答案:

答案 0 :(得分:1)

还有一种方法可以通过Internet更新ESP32固件,而无需任何其他更新服务器(具有公共和静态IP地址),也无需端口转发。它基于Husarnet p2p VPN服务。

说明在这里:https://docs.husarnet.com/blog/internet-ota-esp32

答案 1 :(得分:0)

假设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编码以检查该外部服务器是否有更新。上面文档的“ HTTP Server”部分中详细介绍了此方法。这只是您提出的一般问题的一般指导。我相信上面的解决方案可以用,但是我自己还没有尝试过。

答案 2 :(得分:0)

是的,绝对如此。 OTA不需要设备位于本地网络上。您只需要在Web服务器上托管固件.bin文件,然后将ESP32连接到服务器并发送GET请求即可。 Espressif的OTA示例项目相当不错,但我假设您使用的是ESP32 Arduino库,而不是ESP-IDF。

我猜您正在使用this.,我将看一下AWS OTA示例,我相信它是标准ESP32 Arduino示例之一。在示例,SparkFun ESP32示例,更新,AWS_S3_OTA_Update下。看起来,它使您可以从Amazon Web Services托管服务器进行OTA,这应该可以完全满足您的要求。

答案 3 :(得分:0)

您可以制作一个从互联网或其他地方获取更新文件的应用程序,然后通过 BLE 将文件传输到 ESP32。在这种情况下,ESP32 只需要通过 BLE 连接到手机(不需要 WIFI)。

这是 ESP32 的示例 Arduino 代码和 Android app 代码