查看上篇文章,点击这里。
三、基于阿里云的远程点灯实验
上面我们用树莓派4控制了硬件(Arduino),接下来我们用阿里云来控制我们的设备。主要分为三个步骤:
(一)阿里云IOT注册与产品创建
在将设备连接到阿里云之前,我们需要登录阿里云IOT的网站首页创建一个账号,然后开通并启用物联网平台,然后进入如下操作:
1.创建产品
产品是物联网产品的基本单元,每个产品下面会有一个或多个一模一样的设备,所以产品是我们描述一个设备功能的一个模板。点击设备管理中的产品进入产品页面创建产品,简单起见选择自定义品类,直连设备 ,连网方式根据实际情况选择,数据格式选择Alink JSON , 认证方式选择设备密钥,点击保存即可完成创建。
2.添加功能
在产品页面中,我们定义一个物模型,然后添加一个自定义功能,本例中就是开关,数据类型是bool型,通过0和1来实现灯的关和开,如下图所示。通过发布,我们就在阿里云IOT上有了一个带开关属性的产品。
3.添加设备
完成产品后,我们就需要从平台申请设备了,只有申请了设备,才能获得平台的登录资格,也才能将我们的真实物理设备与平台的云端虚拟设备对应绑定起来。点击菜单设备管理 ,设备,在下拉菜单里选择我们之前新建的产品,然后点击添加设备,即可创建一个设备。创建完成之后,设备详情页中我们已经可以看到设备连接云端的密钥了,一共三个,一个产品ID 一个设备ID,和密钥,密钥是隐藏的,点击查看即可显示,此参数注意保密不要泄露。密钥我们会在设备上用到,需要先保存下来。
(二)设备连接阿里云
1.安装依赖库
阿里云使用的是mqtt协议,因此在连接阿里云之前我们可以通过如下代码安装mqtt库:
python3 -m pip install paho-mqtt
2.修改程序
首先到https://www.yuque.com/miniqiang/swxcv8/xwgp5w#b5676800下载程序源码压缩包,其中所包含的程序和介绍如下图所示:
- aliLink.py :阿里云登录相关协议支持
- mqttd.py :mqtt服务
- rpi.py :获取系统数据与控制led函数
- run.py :主函数
按照如下图所示修改其中的三元素和topic并保存,这样我们的设备就能够有权限登录阿里云IOT了。
3.运行程序
我们需要使用shell来启动程序,所以我们需要在shell下将工作目录移动到code目录下,然后运行主程序。随后,设备就会与阿里云正常通讯,每隔10秒上报一次自己的数据,并且会自动响应云端控制指令
4.云端调试
我们前往IOT后台,在控制台页面选择产品服务 , 搜索关键字IOT,点击物联网平台链接确认我们的设备已经在线了,并且可以看到最后在线时间。点击查看连接进入详情页,运行状态下就可以看到上报的数据了。打开实时刷新功能,就看到我们的设备上报数据了,各种系统数据一目了然,并且会自动刷新,我们亦可通过在线调试选项卡向设备下发指令进行控制调试。
(三)IOT Studio WEB可视化
通过注册阿里云和设备连接阿里云两个步骤,我们可以通过阿里云给树莓派4发送消息,在树莓派接收到消息后再通过USB给Arduino发送指令,控制Led灯的开关,就实现了基于阿里云的远程点灯试验。但是,毕竟不是可视化的应用,用起来还是有些麻烦,因此我们可以使用阿里云的IOT Studio WEB可视化开发来开发一个可视化的工具。
首先我们选择IoT Studio的开发服务,选择新建项目,创建好项目后,快速关联上之前的产品和设备,让IoT Studio 能够访问到我们的设备数据源;然后,选择WEB可视化开发菜单,进入web可视化开发页面,创建一个web可视化应用,点击组件,选择开关,选择开关组件对应的设备以及对应设备的属性即可。通过以上,我们便得到了一个如下图所示的非常简单的web应用,可以通过该应用来控制我们Arduino设备上Led灯的开关。
四、由简单到复杂,走进物联网开发
上文我们基于物联网开发的点灯实验,由浅到深的介绍了物联网开发的基本套路。基于上文的实验,如果我们在树莓派4上连接继电器,通过继电器连接其他更加复杂的设备(需要注意的是一般需要外接电源,单独接树莓派4的话会供电不足,造成设备无法使用),就可以逐步实现功能更加复杂的物联网应用。通过阿里云控制远程物联网设备的命令执行顺序大致如下:
(1)我们通过阿里云发布指令;
(2)阿里云下传指令到树莓派4;
(3)树莓派4通过USB线传输指令到继电器;
(4)通过继电器上电路的开关来控制继电器上连接的设备。
在以上实验的基础上,我们可以进行更复杂的案例,比如基于IOT的自助汽车充气吸尘装站、全自动自助洗车房、无人售货柜等等,也许大家会觉得很复杂,但是要只要深刻理解了“点灯实验”的原理,那么无论再复杂的应用,都可以被分解为无数个点灯实验!行动起来吧!
关键词:树莓派4、物联网开发、IOT开发、Arduino、阿里云
查看上篇文章,点击这里。