[TOC]
# 腾讯IOT之树莓派物联网设备
本次实验的目的是将**树莓派**设置为一个**物联网终端**,通过微信小程序可以控制树莓派,实现蜂鸣器的开关。
微信小程序界面如下所示,点击这个开关,就可以控制蜂鸣器。
![](imgs/image-20210110160709316-1610359469526.png)
项目地址:https://github.com/xiaohuiduan/IotForTecentBeep
## 架构图
一图胜千言:
![](imgs/struct.png)
## 硬件配置
1. 树莓派
2. 蜂鸣器
在这里我将树莓派接的是`GPIO_00`,使用的树莓派是树莓派4B版本。不同的树莓派的GPIO接口可能不同,可以根据自己的需要按情况考虑。
实物图如下所示,VCC——3.3V ,GND ——GND,IO——GPIO_00(低电平触发)
![](imgs/image-20210111001159601-1610359469527.png)
## 软件配置
编程语言使用的是Java,也就是说将使用Java实现腾讯云IOT平台的连接和树莓派GPIO口的控制。使用的IDE是`IntelliJ IDEA`。
## Tecent IOT 开发平台的使用
Tecent IOT开发平台的官方参考文档网址:[https://cloud.tencent.com/document/product/1081](https://cloud.tencent.com/document/product/1081),不过个人觉得其文档对于Java SDK的描述不够详细,建议去看其 [Demo ](https://github.com/tencentyun/iot-device-java/tree/master/explorer/explorer-device-android)源码才能明白其工作流程。
腾讯云IOT开发平台的项目结构如下所示:分为两层——`项目` 和 `产品`。在使用其平台的时候,既需要创建project,也需要创建product。
![](imgs/image-20210110204928555-1610359469527.png)
> 我们可以将**项目**理解为智能家居整个系统,因此在项目中有很多**产品**,比如说智能空调,智能报警器等等产品。而在空调中有温度、湿度等**属性**,同时也有着开关等**控制器**。
>
> 而在这篇博客中,项目名称是**物联网实训**,产品名为**树莓派**,但是树莓派只有一个**功能**——控制蜂鸣器。也就是说,没有**属性**,只有**控制器**。
### 新建项目
打开网址:[https://console.cloud.tencent.com/iotexplorer](https://console.cloud.tencent.com/iotexplorer)新建项目,项目名称随意就行,创建好项目后,进入项目,然后创建产品。
![](imgs/image-20210110162327104-1610359469527.png)
### 新建产品
创建产品的选项如下:
- 设备:因为我们是准备将树莓派作为一台设备来使用的,因此,应该选择**”设备“**,当然,如果是准备将它作为网关,则看着选就行了。
- 认证方式:认证方式选择密钥认证,这样在代码中间直接写设备的密码就行,比证书稍微方便一点(不过实际上证书方便一点)。
- 数据协议:使用数据模板即可。
![](imgs/image-20210110163410393-1610359469527.png)
### 添加自定义功能
物联网设备,之所以叫物联网,是因为大家想把传感器获得的数据放在云端,或者通过云端去控制物联网设备。那么放什么数据,控制什么功能,则需要我们去定义。这里选择控制树莓派上面的蜂鸣器,因此只需要定义蜂鸣器即可。
在腾讯IOT中,可以使用`新建功能`定义这些功能。选择**属性**,数据类型选择**布尔型**(因为只有控制蜂鸣器的开/关)。请记住这个标识符`beep_switch`,这个将在后面的代码中用到。
![](imgs/image-20210110163600417-1610359469527.png)
关于功能类型的不同,可以参考下面的表格。(不过在个人看来,在他的官方 Demo 中,无论是物联设备的数据(比如说温度湿度),还是物联网的控制(比如说灯的开关),它都定义成为了属性。也就是说,尽管 **蜂鸣器的开关** 是人为下发的控制,但是还是定义为属性。至于事件和行为有什么作用,我也不清楚……)
> 以下来自官方文档
>
> | 功能元素 | 功能描述 | 功能标识符 |
> | :------- | :----------------------------------------------------------- | :----------- |
> | 属性 | 用于描述设备的实时状态,支持读取和设置,如模式、亮度、开关等。 | PropertiesId |
> | 事件 | 用于描述设备运行时的事件,包括告警、信息和故障等三种事件类型,可添加多个输出参数,如环境传感器检测到空气质量很差,空调异常告警等。 | EventId |
> | 行为 | 用于描述复杂的业务逻辑,可添加多个调用参数和返回参数,用于让设备执行某项特定的任务,例如,开锁动作需要知道是哪个用户在什么时间开锁,锁的状态如何等。 | ActionId |
点击下一步,进入设备开发。
![](imgs/image-20210110164115396-1610359469527.png)
### 设备开发
因为这里使用的是Java SDK进行开发,没有使用模组也没有基于OS开发,因此直接点击下一步。
![image-20210106165342612](imgs/image-20210106165342612-1610359469527.png)
点击下一步就到了微信小程序配置。
### 微信小程序配置
腾讯IOT平台相比较于其他平台,有一个很大的特点就是可以很好的支持小程序。也就是说,在开发的阶段,就可以使用小程序去验证设备的功能。并且这个微信小程序不需要自己写样式代码,只需要进行简单的配置,就可以直接从小程序上面看到物联网设备的数据。
因为这里我们使用的数据很简单,只有开关,所以随便配置一下面板即可。
![](imgs/image-20210106165709853-1610359469527.png)
#### 面板配置
这里面板类型选择**标准面板**,简单的配置一下开关即可,效果图如右图所示。
![](imgs/image-20210110164635715-1610359469527.png)
保存退出之后,就进入到新建设备功能页面。
### 新建设备
> 新建设备`的意义:创建一个设备代表启动了一个账号(这个设备会提供一个密钥),我们的设备使用这个密钥,就可以让我们的设备连接腾讯云IOT平台进行数据交互。
>
> 从现实意义来说,就是我手中有一个树莓派,我需要让它连接腾讯云IOT平台,就需要账号密码,所以就需要创建一个设备。
新建设备的步骤如下所示:
![](imgs/image-20210110165643637-1610359469527.png)
### 使用设备
点击 **my_pi** ,进入设备管理。
![](imgs/image-20210110165723711-1610359469527.png)
设备管理界面如下所示:
- 设备信息:这里面是设备的一些基本属性,其中通过设备``名称``,`设备密钥`,和`产品ID`就可以唯一定位一个`设备`,然后对其进行操作。
- 设备日志:设备日志里面保存着设备的上行和下行数据。
- 在线调试:通过在线调试,可以模拟设备的行为,或者对设备下发控制命令。
![](imgs/image-20210110165755939-1610359469527.png)
### 在线调试
可以使用在线的调试功能对物联网设备进行功能下发。(比如说下发开关数据,控制蜂鸣器的开关)
![](imgs/image-20210110223500195-1610359469527.png)
### 设备日志
可以在设备中看到物联网设备与云平台之间的上行和下行数据。
![](imgs/image-20210110223846544-1610359469527.png)
🆗,以上的所有就是腾讯IOT平台的介绍,通过上面的操作,就可以创建一个设备,获得其name,key,id,然后对其进行开发。
## 树莓派Java开发
针对于树莓派开发,相信大家听过最多的都是Python开发,使用Python去控制树莓派的GPIO口,但是,因为腾讯提供的平台没有Python的SDK,因此,只能选择Java去控制树莓派的GPIO口。
[Pi4j](https://pi4j.com/1.2/index.html)是一个专门用来控制树莓派GPIO口的设备。关于使用安装可以去看[树莓派---JAVA操作GPIO](https://www.jianshu.com/p/0584f8b01725)(不过基本
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明,项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要嵌入式物联网单片机相关领域开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注嵌入式领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【建议小白】: 在所有嵌入式开发中硬件部分若不会画PCB/电路,可选择根据引脚定义将其代替为面包板+杜邦线+外设模块的方式,只需轻松简单连线,下载源码烧录进去便可轻松复刻出一样的项目 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
资源推荐
资源详情
资源评论
收起资源包目录
基于腾讯云IOT平台实现树莓派上面的蜂鸣器控制.zip (71个子文件)
Archie700
IotForTecentBeep.iml 80B
pom.xml 2KB
src
main
java
Main.java 4KB
data
json
data.json 419B
explorer-device-java
data
log
gateway_debug.log 6KB
gateway_error.log 7KB
.idea
jarRepositories.xml 851B
codeStyles
codeStyleConfig.xml 149B
uiDesigner.xml 9KB
$CACHE_FILE$ 140B
vcs.xml 180B
misc.xml 513B
inspectionProfiles
Project_Default.xml 1KB
compiler.xml 537B
.gitignore 176B
imgs
image-20210110160709316-1610359469526.png 38KB
image-20210110160709316.png 38KB
image-20210111000936137-1610359469528.png 97KB
image-20210110163410393-1610359469527.png 93KB
image-20210110163600417-1610359469527.png 126KB
image-20210110223846544.png 99KB
image-20210110182824207.png 89KB
image-20210111003805707.png 127KB
image-20210110165755939-1610359469527.png 118KB
image-20210106165709853.png 100KB
image-20210110164115396.png 65KB
image-20210110181811614-1610359469528.png 285KB
image-20210110165755939.png 118KB
image-20210111001159601.png 11.37MB
image-20210110202842411.png 255KB
image-20210110162327104.png 135KB
image-20210110164635715-1610359469527.png 211KB
image-20210110165723711.png 69KB
image-20210110223500195-1610359469527.png 104KB
image-20210110172651328.png 152KB
image-20210110204928555.png 9KB
image-20210110185422078-1610359469528.png 231KB
image-20210110181811614.png 285KB
image-20210111002518889.png 16KB
image-20210111001159601-1610359469527.png 11.37MB
image-20210106165709853-1610359469527.png 100KB
image-20210110164635715.png 211KB
image-20210110223846544-1610359469527.png 99KB
image-20210111003736085-1610359469528.png 1.39MB
image-20210110204928555-1610359469527.png 9KB
image-20210110162327104-1610359469527.png 135KB
image-20210111003251622.png 95KB
image-20210106165342612.png 127KB
image-20210111003805707-1610359469528.png 127KB
image-20210111003251622-1610359469528.png 95KB
struct.png 1.45MB
image-20210110202842411-1610359469528.png 255KB
image-20210111003736085.png 1.39MB
image-20210110223500195.png 104KB
image-20210110165643637-1610359469527.png 357KB
image-20210110172651328-1610359469527.png 152KB
image-20210110185422078.png 231KB
image-20210110223237684-1610359469528.png 350KB
image-20210110165643637.png 357KB
image-20210110163600417.png 126KB
image-20210111002518889-1610359469528.png 16KB
image-20210110163410393.png 93KB
image-20210110183125568.png 177KB
image-20210110182824207-1610359469528.png 89KB
image-20210111000936137.png 97KB
image-20210106165342612-1610359469527.png 127KB
image-20210110165723711-1610359469527.png 69KB
image-20210110183125568-1610359469528.png 177KB
image-20210110223237684.png 350KB
image-20210110164115396-1610359469527.png 65KB
README.md 18KB
共 71 条
- 1
资源评论
阿齐Archie
- 粉丝: 1w+
- 资源: 2303
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- institutionalNetwork.apk
- MVTec LOCO AD dataset 之 juice-bottle
- opencv 4.10.0 cmake编译cuda支持
- mysql-8.4.0.tar.xz源代码安装包官网下载源 mysql8.X源代码
- LDR6020G PS8742BQFN40GTR-A1 三TYPE-C接口VR转接器应用电路
- 19届智能车字母数据集
- TexturePacker4.8 windows版本
- NX二次开发uf4401 函数介绍
- multisim数字电路课程设计-出租车自动计费器multisim源文件+课设文档说明.zip
- 电脑知识截图(自用,没有太多内容)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功