google-cloud-platform - 以 GET /“拉”方式从 Google Cloud IoT 设备检索实时数据?
问题描述
我需要从 Web 应用程序轮询串行设备(使用 ESP32)的接近实时读取。我目前正在使用 Particle Photons 和 Particle Cloud API 执行此操作,并且想知道是否有一种方法可以使用 Google Cloud IoT 实现类似的功能。
通过阅读文档,执行此操作的常见方法似乎是通过 PubSub,然后通过 Cloud Functions 通过 DataFlow 或 Firebase 发布到 BigQuery。但是,为了减少定价开销,我希望仅在设备收到外部请求时触发数据交换。
看起来有一种方法可以向物联网设备发送命令- 我在正确的轨道上吗?我似乎在这里找不到文档,但是在收到命令后,它会使用 PubSub 发布到主题,这可以触发 Cloud Function 来更新 Firebase?
最后,看起来还有一种方法可以向GET
设备的.DeviceState
state
如果有另一种低延迟、低成本的方式允许客户端从我错过的 IoT 设备轮询实时值,请告诉我。谢谢!
解决方案
乐鑫集成了Google 的 Cloud IoT Device SDK,该 SDK 在设备和 IoT Core 之间创建了一个经过身份验证的双向 MQTT 管道。正如您已经发现的那样,您可以将任何东西从云端发送到设备(它被称为“命令”,但它只是一个 MQTT 有效负载,因此您可以将几乎任何您想要的东西放入其中),反之亦然(它被称为“遥测”但同样它只是一个 MQTT 有效负载)。一旦来自设备的传入消息到达云端,pubsub 就可以将它们路由到您想要的任何地方。我不知道我是否会称其为实时,但良好的 WiFi 网络中的延迟往往不到一秒。
推荐阅读
- android - Gradle 7 和 jitpack.io 在发布期间遇到错误
- laravel - 在事务块中运行查询时出现错误“无法使用 Illuminate\Database\MySqlConnection 类型的对象作为数组”
- cpu - 同时运行任务而不会减慢彼此的速度
- visual-studio - 如果文件夹名称中有空格字符,则拉链将不会完成。如何忽略字符串中的空格字符?
- apache-spark - Spark中的bucketBy和partitionBy有什么区别?
- python - 从重复值中提取 DataFrame
- c# - 在循环中无休止地创建结构是否会影响性能或其他副作用?
- excel - 用于 Alt 热键自动化/模拟的 Excel VBA?
- javascript - 找不到模块“velocity-animate”的声明文件
- powerbi - 反向运行总 DAX