以 GET / "pull" 方式从 Google 云物联网设备检索实时数据?
Retrieving real-time data from Google Cloud IoT device in GET / "pull" fashion?
我需要从 Web 应用程序轮询串行设备(使用 ESP32)的近乎实时的读数。我目前正在使用 Particle Photons 和 Particle Cloud API 执行此操作,并且想知道是否有一种方法可以使用 Google Cloud IoT 实现类似的效果。
从阅读文档来看,执行此操作的常见方法似乎是通过 PubSub,然后通过 Cloud Functions 通过 DataFlow 或 Firebase 发布到 BigQuery。但是,为了减少定价开销,我希望 仅在设备收到外部请求时触发数据交换。
看起来有一种方法可以 send commands 连接到 IoT 设备 - 我是否走在正确的轨道上?我在这里似乎找不到文档,但是在收到命令后它会使用 PubSub 发布到主题,这可以触发 Cloud Function 来更新 Firebase?
最后,看起来还有一种方法可以向设备的 DeviceState
发出 GET
请求,但这只能每秒更新一次(虽然它也可能有效听起来他们通常不鼓励为此目的使用 state
。
如果有另一种低延迟、低成本的方式允许客户端轮询我错过的 IoT 设备的实时值,请告诉我。谢谢!
Espressif 已集成 Google's Cloud IoT Device SDK,可在设备和 IoT Core 之间创建经过身份验证的双向 MQTT 管道。正如您已经发现的那样,您可以将任何内容从云端发送到设备(它被称为“命令”,但它只是一个 MQTT 负载,因此您几乎可以在其中放入任何您想要的东西),反之亦然(它被称为“遥测”但同样它只是一个 MQTT 负载)。一旦来自设备的传入消息到达云端,pubsub 就可以将它们路由到您想要的任何位置。我不知道我是否称其为实时,但良好 WiFi 网络的延迟往往不到一秒。
我需要从 Web 应用程序轮询串行设备(使用 ESP32)的近乎实时的读数。我目前正在使用 Particle Photons 和 Particle Cloud API 执行此操作,并且想知道是否有一种方法可以使用 Google Cloud IoT 实现类似的效果。
从阅读文档来看,执行此操作的常见方法似乎是通过 PubSub,然后通过 Cloud Functions 通过 DataFlow 或 Firebase 发布到 BigQuery。但是,为了减少定价开销,我希望 仅在设备收到外部请求时触发数据交换。
看起来有一种方法可以 send commands 连接到 IoT 设备 - 我是否走在正确的轨道上?我在这里似乎找不到文档,但是在收到命令后它会使用 PubSub 发布到主题,这可以触发 Cloud Function 来更新 Firebase?
最后,看起来还有一种方法可以向设备的 DeviceState
发出 GET
请求,但这只能每秒更新一次(虽然它也可能有效听起来他们通常不鼓励为此目的使用 state
。
如果有另一种低延迟、低成本的方式允许客户端轮询我错过的 IoT 设备的实时值,请告诉我。谢谢!
Espressif 已集成 Google's Cloud IoT Device SDK,可在设备和 IoT Core 之间创建经过身份验证的双向 MQTT 管道。正如您已经发现的那样,您可以将任何内容从云端发送到设备(它被称为“命令”,但它只是一个 MQTT 负载,因此您几乎可以在其中放入任何您想要的东西),反之亦然(它被称为“遥测”但同样它只是一个 MQTT 负载)。一旦来自设备的传入消息到达云端,pubsub 就可以将它们路由到您想要的任何位置。我不知道我是否称其为实时,但良好 WiFi 网络的延迟往往不到一秒。