腾讯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开发,因此直接点击下一步。
点击下一步就到了微信小程序配置。
微信小程序配置
腾讯IOT平台相比较于其他平台,有一个很大的特点就是可以很好的支持小程序。也就是说,在开发的阶段,就可以使用小程序去验证设备的功能。并且这个微信小程序不需要自己写样式代码,只需要进行简单的配置,就可以直接从小程序上面看到物联网设备的数据。
因为这里我们使用的数据很简单,只有经度和纬度两个数据,所以随便配置一下面板即可。
面板配置
这里面板类型选择标准面板,然后配置一下模板样式(配置长按钮稍微好看一点),配置完效果图如右边所示。
新建设备
新建设备`的意义:创建一个设备代表启动了一个账号(这个设备会提供一个密钥),我们的设备使用这个密钥,就可以让我们的设备连接腾讯云IOT平台进行数据交互。
新建设备的步骤如下所示:
使用设备
点击test_device,进入设备管理。
设备管理界面如下所示:
-
设备信息:这里面是设备的一些基本属性,其中通过设备
名称
,设备密钥
,和产品ID
就可以唯一定位一个设备
,然后对其进行操作。 -
设备日志:设备日志里面保存着设备的上行和下行数据。
-
在线调试:通过在线调试,我们可以模拟设备的行为,或者对设备下发命令。