腾讯IOT之树莓派物联网设备
本次实验的目的是将树莓派设置为一个物联网终端,通过微信小程序可以控制树莓派,实现蜂鸣器的开关。
微信小程序界面如下所示,点击这个开关,就可以控制蜂鸣器。
项目地址:https://github.com/xiaohuiduan/IotForTecentBeep
架构图
一图胜千言:
硬件配置
- 树莓派
- 蜂鸣器
在这里我将树莓派接的是GPIO_00
,使用的树莓派是树莓派4B版本。不同的树莓派的GPIO接口可能不同,可以根据自己的需要按情况考虑。
实物图如下所示,VCC——3.3V ,GND ——GND,IO——GPIO_00(低电平触发)
软件配置
编程语言使用的是Java,也就是说将使用Java实现腾讯云IOT平台的连接和树莓派GPIO口的控制。使用的IDE是IntelliJ IDEA
。
Tecent IOT 开发平台的使用
Tecent IOT开发平台的官方参考文档网址:https://cloud.tencent.com/document/product/1081,不过个人觉得其文档对于Java SDK的描述不够详细,建议去看其 Demo 源码才能明白其工作流程。
腾讯云IOT开发平台的项目结构如下所示:分为两层——项目
和 产品
。在使用其平台的时候,既需要创建project,也需要创建product。
我们可以将项目理解为智能家居整个系统,因此在项目中有很多产品,比如说智能空调,智能报警器等等产品。而在空调中有温度、湿度等属性,同时也有着开关等控制器。
而在这篇博客中,项目名称是物联网实训,产品名为树莓派,但是树莓派只有一个功能——控制蜂鸣器。也就是说,没有属性,只有控制器。
新建项目
打开网址:https://console.cloud.tencent.com/iotexplorer新建项目,项目名称随意就行,创建好项目后,进入项目,然后创建产品。
新建产品
创建产品的选项如下:
- 设备:因为我们是准备将树莓派作为一台设备来使用的,因此,应该选择”设备“,当然,如果是准备将它作为网关,则看着选就行了。
- 认证方式:认证方式选择密钥认证,这样在代码中间直接写设备的密码就行,比证书稍微方便一点(不过实际上证书方便一点)。
- 数据协议:使用数据模板即可。
添加自定义功能
物联网设备,之所以叫物联网,是因为大家想把传感器获得的数据放在云端,或者通过云端去控制物联网设备。那么放什么数据,控制什么功能,则需要我们去定义。这里选择控制树莓派上面的蜂鸣器,因此只需要定义蜂鸣器即可。
在腾讯IOT中,可以使用新建功能
定义这些功能。选择属性,数据类型选择布尔型(因为只有控制蜂鸣器的开/关)。请记住这个标识符beep_switch
,这个将在后面的代码中用到。
关于功能类型的不同,可以参考下面的表格。(不过在个人看来,在他的官方 Demo 中,无论是物联设备的数据(比如说温度湿度),还是物联网的控制(比如说灯的开关),它都定义成为了属性。也就是说,尽管 蜂鸣器的开关 是人为下发的控制,但是还是定义为属性。至于事件和行为有什么作用,我也不清楚……)
以下来自官方文档
功能元素 功能描述 功能标识符 属性 用于描述设备的实时状态,支持读取和设置,如模式、亮度、开关等。 PropertiesId 事件 用于描述设备运行时的事件,包括告警、信息和故障等三种事件类型,可添加多个输出参数,如环境传感器检测到空气质量很差,空调异常告警等。 EventId 行为 用于描述复杂的业务逻辑,可添加多个调用参数和返回参数,用于让设备执行某项特定的任务,例如,开锁动作需要知道是哪个用户在什么时间开锁,锁的状态如何等。 ActionId
点击下一步,进入设备开发。
设备开发
因为这里使用的是Java SDK进行开发,没有使用模组也没有基于OS开发,因此直接点击下一步。
点击下一步就到了微信小程序配置。
微信小程序配置
腾讯IOT平台相比较于其他平台,有一个很大的特点就是可以很好的支持小程序。也就是说,在开发的阶段,就可以使用小程序去验证设备的功能。并且这个微信小程序不需要自己写样式代码,只需要进行简单的配置,就可以直接从小程序上面看到物联网设备的数据。
因为这里我们使用的数据很简单,只有开关,所以随便配置一下面板即可。
面板配置
这里面板类型选择标准面板,简单的配置一下开关即可,效果图如右图所示。
保存退出之后,就进入到新建设备功能页面。
新建设备
新建设备`的意义:创建一个设备代表启动了一个账号(这个设备会提供一个密钥),我们的设备使用这个密钥,就可以让我们的设备连接腾讯云IOT平台进行数据交互。
从现实意义来说,就是我手中有一个树莓派,我需要让它连接腾讯云IOT平台,就需要账号密码,所以就需要创建一个设备。
新建设备的步骤如下所示:
使用设备
点击 my_pi ,进入设备管理。
设备管理界面如下所示:
-
设备信息:这里面是设备的一些基本属性,其中通过设备
名称
,设备密钥
,和产品ID
就可以唯一定位一个设备
,然后对其进行操作。 -
设备日志:设备日志里面保存着设备的上行和下行数据。
-
在线调试:通过在线调试,可以模拟设备的行为,或者对设备下发控制命令。
在线调试
可以使用在线的调试功能对物联网设备进行功能下发。(比如说下发开关数据,控制蜂鸣器的开关)
设备日志
可以在设备中看到物联网设备与云平台之间的上行和下行数据。