“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
目录
相关文章
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
|
2月前
|
消息中间件 DataWorks 物联网
MQTT问题之接入阿里云物联网平台如何解决
MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。
176 1
|
6天前
|
存储 安全 物联网
使用 Java 进行物联网(IoT)应用开发
【4月更文挑战第19天】Java,凭借其跨平台特性和丰富库,成为物联网开发热门选择。开发者利用Java进行物联网应用开发,可实现设备连接、数据处理、数据库管理及安全保障。熟悉Java基础、物联网知识、数据通信和数据库管理是必备技能。利用MQTT客户端、数据存储框架和可视化工具能提升开发效率。随着物联网发展,Java在该领域的影响力将持续增强。
|
4月前
|
传感器 物联网 5G
物联网的通信技术以及Wi-Fi、一键配网技术、BLE、GPRS(2G)、LTE-Cat1 、NB-IoT简介
物联网的一个重要的特点是接入了网络,因此这些设备才能将传感器采集的数据上传到云平台,然后根据平台对数据的分析做出反应。而这种接入网络的技术,就是通信技术,是物联网的基础之一。通信的方式可以分为有线和无线两种方式,因为有线通信的成本较高,无线通信技术在物联网中应用比较广泛。
104 1
|
10天前
|
消息中间件 存储 JavaScript
阿里云IOC物联网异步处理基础概念
该内容介绍了异步处理基础和消息队列的相关概念。首先,同步处理指任务完成后才能执行其他操作,而异步则允许任务并行执行,不阻塞程序。异步能提高系统并发性和响应性,但也增加复杂性和资源消耗。接着,提到了消息队列,包括生产者、消费者、队列、broker和topic等概念,并指出在IoT中,设备作为生产者发送消息到特定topic,消费者从队列获取数据。最后,简要介绍了AMQP协议,它是用于应用程序间消息传递的开放标准,常用于分布式系统和物联网,如RabbitMQ和Apache Qpid。课程将以Apache Qpid为例接收IoT数据。
125 6
阿里云IOC物联网异步处理基础概念
|
23天前
|
机器学习/深度学习 分布式计算 数据挖掘
阿里云 MaxCompute MaxFrame 开启免费邀测,统一 Python 开发生态
阿里云 MaxCompute MaxFrame 正式开启邀测,统一 Python 开发生态,打破大数据及 AI 开发使用边界。
205 1
|
1月前
|
消息中间件 存储 Cloud Native
深度剖析 RocketMQ 5.0,IoT 消息:物联网需要什么样的消息技术?
本文来学习一个典型的物联网技术架构,以及在这个技术架构里面,消息队列所发挥的作用。在物联网的场景里面,对消息技术的要求和面向服务端应用的消息技术有什么区别?学习 RocketMQ 5.0 的子产品 MQTT,是如何解决这些物联网技术难题的。
90817 4
|
2月前
|
消息中间件 网络协议 物联网
MQTT协议问题之阿里云物联网服务器断开如何解决
MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。
130 1
|
2月前
|
缓存 数据可视化 安全
开发阿里云 RPA 机器人的技巧
在当今数字化时代,机器人流程自动化(RPA)技术正逐渐成为企业提高效率和优化业务流程的重要手段。阿里云 RPA 作为一种强大的工具,为开发高效的机器人提供了丰富的功能和支持。本文将分享一些开发阿里云 RPA 机器人的技巧,帮助您更好地利用该平台的能力。
|
3月前
|
存储 安全 数据管理
构建智慧家庭的未来:物联网平台与智能家居系统的开发
在数字化时代,物联网平台和智能家居系统的开发日益受到关注。本文将探讨物联网平台和智能家居系统的定义、优势以及开发过程中的挑战与解决方案。通过对智能家居系统的构建和物联网平台的应用,我们可以实现更加智能、高效和安全的生活环境。

相关产品

  • 物联网平台