写点什么

谷歌发布适用于 Android Things 的 Cloud IoT Core 客户端库

  • 2018 年 7 月 02 日
  • 本文字数:1659 字

    阅读完需:约 5 分钟

谷歌发布了一个客户端库,让开发人员更容易在 Android Things 设备上使用 Google Cloud IoT Core 。开发人员可以连接到 IoT Core MQTT 桥,认证设备,发布设备遥测数据,订阅配置变更,处理错误及网络中断。

Cloud IoT Core 是完全托管于谷歌云平台的服务,让开发人员可以安全地连接、管理分散在全球的设备,并从中提取数据。搭配谷歌云平台提供的其他服务,Cloud IoT Core 提供了一种实时收集、处理、分析及可视化IoT 数据的解决方案。此外, Android Things 从设计上就支持用于遥测、强大的计算机可视化、音频处理和机器学习应用程序的数据收集。

Cloud IoT Core 客户端库提供了每个 Cloud IoT Core 函数的抽象,如发布遥测事件、设备状态,从 Cloud IoT Core 接收设备配置。

Cloud IoT Core 会通过设备注册信息跟踪已核准的设备,每个设备使用一个公共密钥在服务器上进行身份验证。对于Cloud IoT Core 身份验证,客户端库支持RSA 和ECC 密钥,并且实现了JSON Web Tokens(JWTs)。

设备可以通过 MQTT 连接发送一条 PUBLISH 消息把他们的遥测数据发布到一个或多个存储桶。消息必须以下面的格式发送到MQTT 主题:

/devices/{device-id}/events使用 Cloud IoT Core,开发人员可以监控每个连接设备的状态。设备状态更新通常是由设备变化触发的,例如来自 Cloud IoT Core 的配置更新,或者来自外部源的变化,如固件升级。设备状态使用以下格式发送到 MQTT 主题:

/devices/<device_id>/state开发人员可以从 Cloud IoT Core 向设备发送设备配置来控制它。数据可以是任意格式的,如二进制数据、文本、JSON 或序列化协议缓冲区。值得一提的是,设备并不一定会接收到每一项配置更新;如果短时间内发布了许多更新,那么设备可能会收不到中间版本。

要开始使用Cloud IoT Core 客户端库,需要在Android Things 项目的build.gradle 文件中增加下面一行:

复制代码
implementation 'com.google.android.things:cloud-iot-core:1.0.0'

下面的 Kotlin 示例说明了如何基于已有的项目创建一个新的配置和客户端:

复制代码
var configuration = IotCoreConfiguration.Builder().
.setProjectId("my-gcp-project")
.setRegistry("my-device-registry", "us-central1")
.setDeviceId("my-device-id")
.setKeyPair(keyPairObject)
.build()
var iotCoreClient = IotCoreClient.Builder()
.setIotCoreConfiguration(configuration)
.setOnConfigurationListener(onConfigurationListener)
.setConnectionCallback(connectionCallback)
.build()
iotCoreClient.connect()

下面的 Kotlin 示例展示了如何发布遥感信息或设备状态:

复制代码
private fun publishTelemetry(temperature: Float, humidity: Float) {
// 负载是应用程序相关的任意字节数组
val examplePayload = """{
|"temperature" : $temperature,
|"humidity": $humidity
|}""".trimMargin().toByteArray()
val event = TelemetryEvent(examplePayload, topicSubpath, TelemetryEvent.QOS_AT_LEAST_ONCE)
iotCoreClient.publishTelemetry(event)
}
private fun publishDeviceState(telemetryFrequency: Int, enabledSensors: Array<string>) {
// 负载是应用程序相关的任意字节数组
val examplePayload = """{
|"telemetryFrequency": $telemetryFrequency,
|"enabledSensors": ${enabledSensors.contentToString()}
|}""".trimMargin().toByteArray()
iotCoreClient.publishDeviceState(examplePayload)
}

谷歌还提供了一个样例,说明如何在Android Things 上实现一个传感器中枢,从连接的传感器收集数据,并发布到Google Cloud IoT 主题。

Cloud IoT Core 页面官方文档谷歌IoT 开发者社区中有更多关于Cloud IoT Core 的信息。

查看英文原文: Google Released Cloud IoT Core Client Library for Android Things

2018 年 7 月 02 日 07:221056
用户头像

发布了 1008 篇内容, 共 340.9 次阅读, 收获喜欢 325 次。

关注

评论

发布
暂无评论
发现更多内容

Spring MVC—XML配置与注解配置+使用注解完成请求参数绑定

Java 程序员 后端

SpringBoot中的yaml语法及静态资源访问问题,mysql面试笔试题

Java 程序员 后端

SpringBoot基于微服务架构的前后端分离博客系统源码免费赠送

Java 程序员 后端

Springboot过滤器和拦截器详解及使用场景,nginx原理和架构

Java 程序员 后端

Spring中的循环依赖及解决,springboot入门与实践PDF

Java 程序员 后端

Spring入门后半部分----JDBCTemplate和事务控制

Java 程序员 后端

Spring MVC面试题(2020最新版),java书籍入门下载

Java 程序员 后端

Spring--快速入门,rabbitmq面试题总结

Java 程序员 后端

SpringCloudRPC调用核心原理:RxJava响应式编程框架,其他操作符

Java 程序员 后端

SpringMVC--请求参数绑定,spring菜鸟教程

Java 程序员 后端

Spring动态代理时是如何解决循环依赖的?为啥用三级缓存?

Java 程序员 后端

Spring Cloud入门-Zuul服务网关(Hoxton版本)

Java 程序员 后端

Spring 数据库配置文件进行解密操作,和网易大佬的技术面谈

Java 程序员 后端

SpringBoot配置文件,springboot项目案例百度云

Java 程序员 后端

Spring中注解,java电话面试技巧

Java 程序员 后端

springboot 整合 thymeleaf,java技术核心卷二

Java 程序员 后端

SpringBoot2---指标监控,kalilinux教程下载

Java 程序员 后端

springboot入门教程,4000多页合集的计算机、网络、算法知识总结

Java 程序员 后端

SpringBoot整合SpringSecurity超详细入门教程

Java 程序员 后端

SpringCloud Alibaba 入坑(六),java开发程序员面试题

Java 程序员 后端

Spring Cloud Gateway自定义过滤器实战(观测断路器状态变化)

Java 程序员 后端

Spring MVC+Spring+Mybatis实现支付宝支付功能

Java 程序员 后端

Spring-Boot-+-Redis-实现接口幂等性,看这篇就太好了

Java 程序员 后端

SpringBoot源码学习系列之嵌入式Servlet容器

Java 程序员 后端

Spring总结以及在面试中的一些问题,java面试笔试题代码

Java 程序员 后端

Spring Cloud原理详解,java程序员进阶

Java 程序员 后端

springboo 使用自定义的 Tomcat,java常用的设计模式面试

Java 程序员 后端

SpringBoot---入门和配置,深入java虚拟机百度云

Java 程序员 后端

SpringBoot---错误处理机制,kafka实现负载均衡的原理

Java 程序员 后端

SpringBoot中好用的数据连接池,入职3个月的Java程序员面临转正

Java 程序员 后端

SpringBoot基于微服务架构的前后端分离博客系统源码免费赠送(1)

Java 程序员 后端

金融行业数据库架构实践与运维

金融行业数据库架构实践与运维

谷歌发布适用于Android Things的Cloud IoT Core客户端库_移动_Diogo Carleto_InfoQ精选文章