google-cloud-platform - 以 GET/"pull"方式从 Google Cloud IoT 设备检索实时数据?

标签 google-cloud-platform iot google-cloud-pubsub esp32 google-cloud-iot

我需要从网络应用程序中轮询串行设备(使用 ESP32)的近乎实时的读数。我目前正在使用 Particle Photons 和 Particle Cloud API 执行此操作,并且想知道是否有一种方法可以使用 Google Cloud IoT 实现类似的效果。

从阅读文档来看,执行此操作的常见方法似乎是通过 PubSub,然后通过 Cloud Functions 通过 DataFlow 或 Firebase 发布到 BigQuery。但是,为了减少定价开销,我希望仅在设备收到外部请求时触发数据交换

看起来有办法send commands到物联网设备——我在这方面走对了吗?我在这里似乎找不到文档,但是在收到命令后它会使用 PubSub 发布到主题,这可以触发 Cloud Function 来更新 Firebase?

最后,看起来还有一种方法可以向设备的 DeviceState 发出 GET 请求,但这每秒只能更新一次(也可能工作,尽管听起来他们通常不鼓励为此目的使用 state

如果有另一种低延迟、低成本的方式允许客户端轮询我错过的 IoT 设备的实时值,请告诉我。谢谢!

最佳答案

Espressif 已集成 Google's Cloud IoT Device SDK它在设备和 IoT Core 之间创建经过身份验证的双向 MQTT 管道。正如您已经发现的那样,您可以将任何内容从云端发送到设备(它被称为“命令”,但它只是一个 MQTT 负载,因此您几乎可以在其中放入任何您想要的东西),反之亦然(它被称为“遥测”但同样它只是一个 MQTT 负载)。一旦来自设备的传入消息到达云端,pubsub 就可以将它们路由到您想要的任何位置。我不知道我是否称其为实时,但良好 WiFi 网络中的延迟往往不到一秒。

关于google-cloud-platform - 以 GET/"pull"方式从 Google Cloud IoT 设备检索实时数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67359428/

相关文章:

angular - 从 Angular 2 应用程序连接到 Google Cloud Endpoints

google-cloud-platform - googleapi : Error 400: Precondition check failed.,通过 Terraform 创建 Cloud Composer 环境时失败了前提条件

google-cloud-platform - 关闭浏览器后谷歌云实例终止

azure - Azure 云中的 MQTT 代理

python - 我们可以将消息从 Pub/sub 主题拉取到 Angular 吗?

google-cloud-platform - 从Cloud Run连接到Memorystore

java - Rainbow HAT Android 事物温度偏移

python - 如何为作为 Kubernetes 容器运行的 Flask HTTP 服务器实现 HTTPS 支持

java - 即使在确认后,应用程序仍接受来自 google Pub/Sub 的重复消息

azure - 如果 IoT 中心重新启动,设备是否会重新连接?