1

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

4

4 回答 4

1

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

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

于 2020-12-15T13:41:54.097 回答
0

是的,一点没错。OTA 不要求设备位于本地网络上。您只需将固件 .bin 文件托管在 Web 服务器上,然后让 ESP32 连接到服务器并发送 GET 请求。乐鑫的 OTA 示例项目非常好,但我假设您使用的是 ESP32 Arduino 库而不是 ESP-IDF。

我猜你正在使用这个。我会看一下 AWS OTA 示例,我认为它是标准 ESP32 Arduino 示例之一。它位于示例、SparkFun ESP32 事物示例、更新、AWS_S3_OTA_Update 下。看起来它允许您从 Amazon Web Services 托管服务器进行 OTA,这应该完全符合您的要求。

于 2018-08-17T20:53:42.053 回答
0

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

这是ESP32的示例Arduino代码和Android 应用程序代码

于 2021-02-15T07:21:55.550 回答
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”部分中有详细说明。这只是对您提出的一般问题的一般指导。我相信上面的解决方案会奏效,但我自己还没有尝试过。

于 2018-08-17T14:03:48.037 回答