通过 http 从 ESP32 流式传输 ADC 值

物联网 ESP32 https 流媒体
2021-06-04 10:41:56

我有一个 ESP32 以 1 个样本/秒的速率从 ADC 记录值。

我需要 ESP32 将新值发送到设备(假设现在是智能手机应用程序,最终通过服务器),因为它们是 ADC 上的记录器。

我一直想知道哪种方法最好:

  • 选项 1:[我现在设置的内容] iOS 应用程序每秒都会感应到一个对新值的请求。然后 ESP32 发送一个响应,其中包含自上次请求以来记录的每个值的数组。问题:这看起来很昂贵而且非常......“懒惰”(不能用更好的词来形容,它只是感觉不是一个好方法)

  • 选项 2:iOS 应用程序发送请求以“订阅”ESP 的 ADC 中的更改。这被认为是好的做法吗?这是最好的方法吗?使用 keywprds 'ESP32' 'http' 'stream' 'ADC' 进行的 Google 搜索产生了音频和视频应用程序的结果

  • 选项 3:ESP 将新值发布到服务器。iOS 应用程序然后通过从服务器请求它们或服务器将最新值推送到应用程序来检索它们。

我这两天一直在研究这个,没有成功。我对此不是很有经验,这意味着我不知道正确的术语和关键字来研究这个而不要求领导......

1个回答

根据您的要求,我相信您应该使用 MQTT 协议,它似乎适合您的架构。您需要有一个 mqtt 服务器/代理来接收来自设备的数据,然后将它们发送到应用程序。

简单地放入 MQTT 协议,您将拥有客户端(您的应用程序)将订阅的“主题”。设备将其数据推送到主题,订阅者将收到通知中的新数据。

例如 :

您将在 your_broker.com/mqtt/deviceA/temperature 订阅主题,设备 A 会将其数据推送到代理(只要可能),然后代理将向所有客户端发送新数据(如果可能)已订阅主题 deviceA/温度。

请参阅:http : //mqtt.org/https://github.com/espressif/esp-mqtt

您可以尝试构建另一种自定义架构,但这个架构非常好且非常轻巧。此外,它非常易于部署和扩展。