腾讯IOT安卓开发初探

时间:2024-02-01 13:33:06

腾讯IOT 安卓开发初探

目的:将Andorid端作为一个物联网设备(device),然后将其安卓设备上面的数据发送到腾讯云IOT开发平台上。(这里我们将手机上面的GPS经纬度发送到腾讯云IOT平台上)。

腾讯IOT开发平台:https://console.cloud.tencent.com/iotexplorer

腾讯IOT Java SDK GitHub:https://github.com/tencentyun/iot-device-java

开发工具:Android Studio

代码Github:android_test_iot_for_tecent

Tecent IOT 开发平台的使用

开发平台的官方参考文档网址:https://cloud.tencent.com/document/product/1081,不过个人觉得其文档对于Java SDK的描述不够详细,需要去看其 Demo 源码才能明白其工作流程。

腾讯云IOT开发平台的项目结构如下所示:分为两层——项目产品。用在使用其平台的时候,既需要创建project,也需要创建product。

我们可以将项目理解为智能家居整个系统,因此在项目中有很多产品,比如说智能空调,智能报警器等等产品。

新建项目

新建项目,项目名称随意就行,创建好项目后,进入项目,然后创建产品。

创建产品

创建产品的选项如下:

  • 设备:因为我们是准备将安卓终端作为一台设备来使用的,因此,我们应该选择”设备“,当然,如果我们是准备将它作为网关,则看着选就行了。
  • 认证方式:认证方式选择密钥认证,这样在代码中间直接写设备的密码就行,比证书稍微方便一点(不过实际上证书方便一点)。
  • 数据协议:使用数据模板即可。

添加自定义功能

物联网设备,之所以叫物联网,是因为大家想把传感器获得的数据放在云端,或者通过云端去控制物联网设备。那么放什么数据,控制什么功能,则需要我们去定义。在腾讯IOT中,可以使用新建功能定义这些功能。

点击进入产品,选择新建功能

自定义功能我们只需要两个功能:

  • 经度:position_x
  • 纬度:position_y

建立经度如下,在功能类型中选择属性,数据类型我们选择浮点型。(经度和纬度的范围都在-180.0 ~180.0 )

同理将纬度配置为position_y,功能类型为属性,数据类型同样为浮点型,范围为-180.0 ~180.0 。

关于功能类型的不同,可以参考下面的表格。

以下来自官方文档

功能元素 功能描述 功能标识符
属性 用于描述设备的实时状态,支持读取和设置,如模式、亮度、开关等。 PropertiesId
事件 用于描述设备运行时的事件,包括告警、信息和故障等三种事件类型,可添加多个输出参数,如环境传感器检测到空气质量很差,空调异常告警等。 EventId
行为 用于描述复杂的业务逻辑,可添加多个调用参数和返回参数,用于让设备执行某项特定的任务,例如,开锁动作需要知道是哪个用户在什么时间开锁,锁的状态如何等。 ActionId

点击下一步,进入设备开发。

设备开发

因为我们使用的是Java SDK进行开发,没有使用模组也没有基于OS开发,因此直接点击下一步。

image-20210106165342612

点击下一步就到了微信小程序配置。

微信小程序配置

腾讯IOT平台相比较于其他平台,有一个很大的特点就是可以很好的支持小程序。也就是说,在开发的阶段,就可以使用小程序去验证设备的功能。并且这个微信小程序不需要自己写样式代码,只需要进行简单的配置,就可以直接从小程序上面看到物联网设备的数据。

因为这里我们使用的数据很简单,只有经度和纬度两个数据,所以随便配置一下面板即可。

面板配置

这里面板类型选择标准面板,然后配置一下模板样式(配置长按钮稍微好看一点),配置完效果图如右边所示。

新建设备

新建设备`的意义:创建一个设备代表启动了一个账号(这个设备会提供一个密钥),我们的设备使用这个密钥,就可以让我们的设备连接腾讯云IOT平台进行数据交互。

新建设备的步骤如下所示:

使用设备

点击test_device,进入设备管理。

设备管理界面如下所示:

  • 设备信息:这里面是设备的一些基本属性,其中通过设备名称设备密钥,和产品ID就可以唯一定位一个设备,然后对其进行操作。

  • 设备日志:设备日志里面保存着设备的上行和下行数据。

  • 在线调试:通过在线调试,我们可以模拟设备的行为,或者对设备下发命令。