“0”基础物联网IOT开发实践(下)——阿里云 MVP程磊

简介: 随着5G技术进入商用,万物互联的时代已经到来。杭州橡木桶科技合伙人、开源硬件社区极客工坊创始人程磊以树莓派4为基础开发平台,辅以Arduino等硬件,在直播中向大家展示了物联网硬件端开发的基本套路。

【MVP时间】线上峰会,一键收藏

《“0”基础物联网IOT开发实践》精彩直播

查看上篇文章,点击这里。

三、基于阿里云的远程点灯实验

上面我们用树莓派4控制了硬件(Arduino),接下来我们用阿里云来控制我们的设备。主要分为三个步骤:

(一)阿里云IOT注册与产品创建

在将设备连接到阿里云之前,我们需要登录阿里云IOT的网站首页创建一个账号,然后开通并启用物联网平台,然后进入如下操作:

1.创建产品

产品是物联网产品的基本单元,每个产品下面会有一个或多个一模一样的设备,所以产品是我们描述一个设备功能的一个模板。点击设备管理中的产品进入产品页面创建产品,简单起见选择自定义品类,直连设备 ,连网方式根据实际情况选择,数据格式选择Alink JSON , 认证方式选择设备密钥,点击保存即可完成创建。

2.添加功能

在产品页面中,我们定义一个物模型,然后添加一个自定义功能,本例中就是开关,数据类型是bool型,通过0和1来实现灯的关和开,如下图所示。通过发布,我们就在阿里云IOT上有了一个带开关属性的产品。
image.png

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了。
image.png

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灯的开关。
image.png

四、由简单到复杂,走进物联网开发

上文我们基于物联网开发的点灯实验,由浅到深的介绍了物联网开发的基本套路。基于上文的实验,如果我们在树莓派4上连接继电器,通过继电器连接其他更加复杂的设备(需要注意的是一般需要外接电源,单独接树莓派4的话会供电不足,造成设备无法使用),就可以逐步实现功能更加复杂的物联网应用。通过阿里云控制远程物联网设备的命令执行顺序大致如下:
(1)我们通过阿里云发布指令;
(2)阿里云下传指令到树莓派4;
(3)树莓派4通过USB线传输指令到继电器;
(4)通过继电器上电路的开关来控制继电器上连接的设备。
image.png

在以上实验的基础上,我们可以进行更复杂的案例,比如基于IOT的自助汽车充气吸尘装站、全自动自助洗车房、无人售货柜等等,也许大家会觉得很复杂,但是要只要深刻理解了“点灯实验”的原理,那么无论再复杂的应用,都可以被分解为无数个点灯实验!行动起来吧!

关键词:树莓派4、物联网开发、IOT开发、Arduino、阿里云

《“0”基础物联网IOT开发实践》精彩直播

查看上篇文章,点击这里。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
26天前
|
传感器 存储 机器学习/深度学习
物联网(IoT)简介:定义、技术与应用
【5月更文挑战第30天】物联网(IoT)是将物品通过嵌入式系统、传感器及通信技术连接至互联网,实现物物、物人交互和数据共享的技术。其关键包括传感器、通信、嵌入式系统、云计算和人工智能技术。物联网应用于智能家居、智慧城市、工业自动化、农业和健康医疗等领域,通过Arduino等平台可实现简单数据传输。随着技术发展,物联网将深远影响人们生活和工作方式。
111 3
|
9天前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是面向物联网的时序数据库,专注于时间序列数据管理,提供高效的数据处理、集成Hadoop和Spark生态、支持多目录存储策略。它还具有InfluxDB协议适配器,允许无缝迁移原本使用InfluxDB的业务。文章讨论了IoTDB的体系结构,包括数据文件、系统文件和预写日志文件的存储策略,并介绍了如何配置数据存储目录。此外,还提及了InfluxDB版本和查询语法的支持情况。IoTDB在物联网数据管理和分析中扮演关键角色,尤其适合处理大规模实时数据。
26 5
|
7天前
|
传感器 人工智能 搜索推荐
人工智能(AI)与物联网(IoT)的融合是当今技术领域的一个重要趋势
人工智能(AI)与物联网(IoT)的融合是当今技术领域的一个重要趋势
|
8天前
|
安全 物联网 物联网安全
物联网(IoT)的兴起与挑战:技术变革的双刃剑
【6月更文挑战第17天】**物联网的崛起带来了智能家居、智慧城市等便利,但安全挑战、设备兼容性和带宽压力也随之而来。加强安全、统一标准及提升处理能力是关键。面对挑战,持续的技术创新和法规完善将推动其健康发展,物联网的未来充满希望。**
|
12天前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
物联网技术带来数据库管理挑战,特别是实时数据整合与安全性。IoTDB是一个专为时间序列数据设计的数据库,提供数据收集、存储和分析服务,适用于海量物联网数据。其架构包括数据文件、系统文件和预写日志文件的管理,并支持多目录存储策略。此外,IoTDB还开发了InfluxDB协议适配器,使得用户能无缝迁移原有InfluxDB业务。此适配器基于IoTDB的Java服务接口,转换InfluxDB的元数据格式,实现与IoTDB的数据交互。目前,适配器支持InfluxDB 1.x版本及部分查询语法。
39 5
|
29天前
|
存储 关系型数据库 物联网
【PolarDB开源】PolarDB在物联网(IoT)数据存储中的应用探索
【5月更文挑战第27天】PolarDB,阿里云的高性能云数据库,针对物联网(IoT)数据存储的挑战,如大规模数据、实时性及多样性,展现出高扩展性、高性能和高可靠性。它采用分布式架构,支持动态扩展,保证99.95%的高可用性,并能处理结构化、半结构化和非结构化数据。通过SDK实现数据实时写入,支持SQL查询和冷热数据分层,有效降低成本。随着IoT发展,PolarDB在该领域的应用将更加广泛。
128 1
|
18天前
|
机器学习/深度学习 传感器 算法
物联网(IoT)数据与机器学习的结合
【6月更文挑战第6天】物联网和机器学习加速融合,驱动数据收集与智能分析。通过机器学习算法处理 IoT 数据,实现智能家居、工业生产的智能化。示例代码展示如何用线性回归预测温度。结合带来的优势包括实时监测、预警、资源优化,但也面临数据质量、隐私安全、算法选择等挑战。未来需强化技术创新,应对挑战,推动社会智能化发展。
64 0
|
25天前
|
物联网 区块链 Android开发
构建高效Android应用:Kotlin与Jetpack的实践之路未来技术的融合潮流:区块链、物联网与虚拟现实的交汇点
【5月更文挑战第30天】 在移动开发领域,效率和性能始终是开发者追求的核心。随着技术的不断进步,Kotlin语言以其简洁性和现代化特性成为Android开发的新宠。与此同时,Jetpack组件为应用开发提供了一套经过实践检验的库、工具和指南,旨在简化复杂任务并帮助提高应用质量。本文将深入探索如何通过Kotlin结合Jetpack组件来构建一个既高效又稳定的Android应用,并分享在此过程中的最佳实践和常见陷阱。
|
26天前
|
传感器 安全 物联网
C语言:物联网开发利器
C语言:物联网开发利器
|
28天前
|
Kubernetes 物联网 区块链
未来技术的脉动:区块链、物联网和虚拟现实的新纪元Kubernetes 集群性能优化实践
【5月更文挑战第27天】 随着科技的飞速发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。这些技术不仅在逐步成熟,而且在各个行业中找到了创新的应用。区块链技术以其不可篡改和去中心化的特性,为金融交易、供应链管理和身份验证提供了新的解决方案。物联网通过智能设备和系统的互联互通,优化了资源管理并提升了生活品质。而虚拟现实技术则在娱乐、教育和医疗等领域创造了沉浸式体验。本文将深入探讨这些技术的发展趋势和多样化应用场景,展望它们如何共同塑造未来社会的面貌。

热门文章

最新文章

相关产品

  • 物联网平台