HaaS EDU K1全流程体验阿里云物联网平台开发

简介: 最近入手了新玩具 HaaS EDU K1,它丰富的传感器支持、支持python和js语言的轻应用开发非常吸引我,得益于HaaS云端一体开发框架,我这种非嵌入式开发出身的小白也能够体验物联网平台开发的魅力。今天结合官方案例体验阿里云物联网平台开发。


最近入手了新玩具 HaaS EDU K1,它丰富的传感器支持、支持python和js语言的轻应用开发非常吸引我,得益于HaaS云端一体开发框架,我这种非嵌入式开发出身的小白也能够体验物联网平台开发的魅力。今天结合官方案例体验阿里云物联网平台开发。

开箱及简介

 image.png

HaaS EDU K1主打教育市场,适合初学者探索使用。通体简洁大方,自带锂电池和基础外设。

配置也是相当豪华:定制的四核(Cortex-A7双核1GHz和Cortex-M33双核300MHz)高性能MCU-HaaS1000芯片,自带16M Bytes FLASH、16M Bytes PSRAM和2.5M Bytes SRAM,内置双频Wi-Fi和BT5.0天线,板载丰富的物联网传感器(加速度、陀螺仪、磁力计、温湿度、大气压、环境光和声音等),在此基础上我们可开发丰富的AIoT应用场景或解决方案。

 image.png

官方说明书


体验案例

本文阿里云物联网平台开发体验基于【花卉养殖】案例,在本案例中我们仅需HaaS Edu开发板即可体验物联网开发。

开发准备

装载VS code 的Windows PC 一台  

HaaS EDU K1开发板 一台

Type-C USB数据线 一条

小提示

  • PC亦可选苹果设备。
  • 近年的Windows PC 往往会默认屏蔽通讯端口设备,这会导致你无法烧录程序到开发板。因此,你需要在设备管理器中手动启用。

步骤:在任务栏上的搜索框中,键入“设备管理器”,然后在菜单中进行选择。  

image.png

在设备管理器的菜单栏中点击操作中的“扫描检测硬件改动”或者选择“添加过时硬件”来手动添加端口设备。

image.png

image.png

添加完成示意如下

image.png

 

案例简介

本案例按照花卉的生长习性,打造一个最适合花卉生长的花卉养植监控系统。该系统可以结合培育温室的环境控制设备(例如加湿器和空气调节器)来联动提高花卉养殖和物种保育的工作效率。

最适宜该花卉的生长环境变量控制如下:

温度:20~28度

湿度:~70%

光照:不能太强

 

相应场景设计的行为如下:

通过温度传感器测量环境温度,并在温度过高时打开空调进行降低环境温度(蓝色LED模拟空调的开关)

通过湿度传感器测量环境湿度,并在湿度过低的时候控制加湿器进行加湿操作(绿色LED模拟加湿器的开关)

物联网平台开发

在这里都是图形化交互操作,易于操作上手。

开通公共实例

第一次使用物联网平台需要开通实例来使用物联网平台的功能。

我们可以使用免费的公共实例进行开发。当然企业实例功能更强大,现可免费试用

 

在物联网平台中,左上角选择“华东2-上海”,点击“公共实例”,即可开通。

image.png


创建云端产品

 

点击上图中的“公共实例”,即可进入控制台进行产品创建。然后,点击创建产品按钮,如下图所示。

image.png

在新建产品页面,我们完成必填信息的设置,如图所示。

image.png

选择之后,点击“确认”按钮,即可完成产品创建。返回“产品”页面之后可以看到产品类表中会出现刚刚创建的“温湿度检测装置”的产品,如下图所示。

image.png

 

创建产品属性(物模型)

点击上图中的“查看”按钮,即可看到产品信息,Topic列表,功能定义,数据解析等跟产品相关功能的设定。点开“功能定义”标签页,可以看到设备物模型定义。

由于本文选择了标准的物模型,因此无需额外自定义功能,我们所需的温湿度已由模板定义完成。后续联动所需的物模型改动放在后文说。

image.png

物模型创建完成后下一步就是创建这个产品的云端设备了。


创建云端设备(获取三元组)

 

在“设备”页面选中需要添加设备的产品并点击“添加设备”按钮,如下图所示。

 image.png

在“添加设备”页面中设定“deviceName”,这里开发者可以自己填入自己想设定的设备名称,也可以不填任何内容让系统自动生成设备名称,如下图所示。

image.png

设备添加完成后,点击“前往查看”按钮,就可以看到此设备端详细信息了。

image.png

设备信息中【三元组(设备证书)】和【物模型属性信息】需要和设备端开发相匹配。

 image.png

获取设备三元组

 

如上图所示,点击“查看”按钮,就可以看到设备的三元组信息,三元组是物联网设备端和物联网云端设备相关联的唯一标识符,在设备端连接云端的时候会使用三元组信息和云端进行鉴权,鉴权通过之后云端会认为设备已激活并上线。

 image.png

查看设备属性信息

 

设备详情信息页中的“物模型数据”标签页中可以看到设备的所有属性信息、设备时间上报情况及设备服务调用情况,如下图所示。待物联网设备按照设备属性对应的标识符上报设备属性的时候,本图片中的“当前温度“,”当前湿度“等属性值就会显示设备最新的属性信息。

 image.png

创建产品和设备的过程是按照面向对象的思想进行设计的,其中创建产品可以看成是新建一个类,其中的物模型则是类的对象,创建设备则是进行类的实例化。

云端物模型补充

 

在此产品的【物模型】中新增两个bool类型的属性,命名为"airconditioner"和"humidifier"分别用来控制空调和加湿器。

• 当需要打开空调时,云端将“airconditioner”的属性值设置为True;需要关闭空调时,将其设置为False。

• 当需要打开加湿器时,云端将“humidifier”的属性值设置为True;需要关闭空调时,将其设置为False。

 

添加物模型属性的过程下所述:

1. 在产品的“功能定义”标签页中点击"编辑草稿",如果没有“编辑草稿”的按钮,说明此产品的物模型已经发布,需要点击右上角的“取消发布”按钮才能添加或删除属性。

 image.png

2. 点击“添加自定义功能”按钮,如下图所示:

 image.png

3. 添加属性名称、标识符、类型等信息,如下图所示:

• 添加“airconditioner”属性

 image.png

• 添加“humidifier”属性

 

image.png

添加完属性之后,点击左下角的“发布上线”按钮 ,根据系统提示进行确认即可,如下图所示:

 image.png

 

多设备场景联动设定

 

控制逻辑有两种实现方式:

1. 使用物联网平台的规则引擎功能

2. 使用IoT Studio的业务逻辑功能

 

本例使用物联网平台的规则引擎来完成此控制逻辑的设定。

按照下图所示的步骤创建场景联动的规则:

 image.png

点击“创建规则”之后,填入场景规则名称,这里我们先创建第一个“温度过高开启空调”的规则。

 image.png

规则创建完成后,等待几秒钟系统会自动跳转到规则编辑页面,这里需要配置如下两步完整一整条规则的创建:

1. 设置“触发器”为温湿度监控器的“当前温度”属性高于茶花最适宜生长的温度28度触发此规则的执行,设置“执行动作”为控制设备打开“空调开关”属性。

 

触发器

设备触发

属性触发

当前温度大于等于28

执行动作

设备输出

空调开关

开空调

 image.png

点击保存之后温度过高打开空调的场景联动规则就创建好了。

 

用相同的方式创建另外三条场景联动规则:

温度合适关闭空调:

触发器

设备触发

属性触发

当前温度小于等于26

执行动作

设备输出

空调开关

关空调

湿度适合关闭加湿器:

触发器

设备触发

属性触发

当前湿度大于70

执行动作

设备输出

加湿器

关加湿器

湿度过低打开加湿器:

触发器

设备触发

属性触发

当前湿度大于70

执行动作

设备输出

加湿器

开加湿器

创建完这几条规则之后,在【场景联动】页面中点击规则后面的启动按钮,则所有的规则都会运行起来。

 

设备端开发

开发环境预备

  1. 安装VScode:安装包下载网站: https://code.visualstudio.com/
  2. 安装HaaS插件,在VScode中按shift+ctrl+x,左边栏插件市场搜索haas-studio插件并安装。插件功能菜单如下:  image.png
  3. 下载并烧录固件:image.png

HaaS Python v2.2 固件下载:https://hli.aliyuncs.com/o/config/HaaS_Python/HaaSPython-HaaSEDUK1-v2.2.0.zip

固件文件:HaaSPython-HaaSEDUK1-v2.2.0.bin

文件系统:littlefs.bin

image.png

 

 

配置完成点击开始烧录即可,烧录完成,终端日志中会提示"Burn xxxx success."。中途可能需要按一下开发板复位键。

创建模板项目

 

在Haas Studio主页中点击【创建项目】。先选择左侧的“开发板型号”再从右侧的案例中选择“花卉养植”案例点击“立即创建”即可。

 image.png

1. 修改路由器名称及密码


修改main.py中wifiSsid和wifiPassword的值为实际要连接的路由器的名称及密码。

释义:修改完成之后get_wifi_status函数中的wlan.connect(wifiSsid, wifiPassword)语句就会连接读者自己设定的路由器。


2. 修改设备端三元组

 

修改humiture工程里main.py中productKey、deviceName和deviceSecret的值为读者创建的物联网设备的三元组信息,如下图所示:

1658736682106_CD708159-CAEE-4d46-B0E2-60324E3E40CE.png

3. 确认设备端上报温湿度信息所用标识符

 

humiture工程里main.py中下面的代码实现的是上传温湿度值到云端的功能。其中CurrentTemperature和CurrentHumidity便是温湿度值上报时所用的标识符。

# 上传温度信息和湿度信息到物联网平台

def upload_temperature_and_Humidity():

确保这两个标识符和物联网产品的物模型中属性标识符是一样的,如下图所示:

 image.png

运行结果

 

点击【部署运行——本地更新——设备端口】,推送此脚本到HaaS EDU K1之后,会自动运行此脚本,点击【串口】选择设备串口,选择【波特率1500000】与设备通讯连接。


HaaS EDU K1串口会周期性的打印日志。其中:

• 物联网平台连接成功 代表成功连接到物联网平台

• "uploading data:"之后跟着的为设备端向云端发布的温湿度属性信息,其中CurrentTemperature后面的数值为温度值,单位:摄氏度;CurrentHumidity后面数值为相对湿度值。

• 设备端解析到云端送下来的控制指令中包含“{"humidifier":1}”之后会打印"打开加湿器"并点亮绿色LED模拟打开控制加湿器的继电器的动作

• 设备端解析到云端送下来的控制指令包含"{"airconditioner":1}"之后会打印"打开空调"并点亮蓝色LED模拟打开控制空调的继电器的动作

 image.png


 lQDPJxaHShXOZE3NA8HNBQCww5riKVzx_84C3rl1dQD0AA_1280_961.jpg

如图,温度高于阈值,湿度低于阈值,蓝绿LED灯均亮起。达到了最初的设计效果。



物联网平台端设备信息查看

 

物联网设备的系统启动成功并连接到物联网平台之后,物联网平台上对应的设备状态会从”未激活状态“变为”上线“,在物模型数据标签页上会显示设备上报到物联网平台的属性值。

image.png

此时如果开发板温度和周围湿度发生变化,物联网平台的物模型数据会更新为设备上报的最新的属性值。

image.png

点击查看数据可以以图表形式查看历史数据,非常直观。

Dingtalk_20220725163103.jpg

总结

阿里云物联网已日趋成熟,不仅有自研的开发框架和开发板硬件,还提供了阿里云物联网平台,阿里云物联网平台提供了高可用、低成本、易运维和可视化扩展搭建数据看板的能力。在智能制造和互联网+日渐普及的今天,阿里云提供了可靠的物联网平台解决方案,省去了自研自搭的成本,基于云原生架构并依托阿里云的能力,让海量设备并发成为了可能。

本次借助HaaS EDU K1从小白的视角初窥了物联网的世界,日后会继续学习,交流进步~

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
3月前
|
弹性计算 搜索推荐
「玩转幻兽帕鲁/Palworld」阿里云自建Palworld/幻兽帕鲁服务器全流程攻略
随着《幻兽帕鲁》这款开放世界生存游戏的热度不断上升,越来越多的玩家开始追求更加自由和个性化的游戏体验。搭建自己的专属服务器,无疑是实现这一目标的最佳选择。今天,就让我们一起来了解如何轻松搭建《幻兽帕鲁》服务器,与好友共同开启精彩刺激的联机游戏吧!
48 6
|
3月前
|
消息中间件 DataWorks 物联网
MQTT问题之接入阿里云物联网平台如何解决
MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。
206 1
阿里云域名购买注册流程_创建信息模板_域名实名认证全流程
阿里云域名注册指南:访问[阿里云域名注册入口,查询并注册心仪域名,选择后缀,加入清单后结算。价格因后缀而异,如.com首年78元。创建域名信息模板完成实名认证,首次需上传资料。获取优惠口令并使用可享折扣
|
1天前
|
监控 物联网
LabVIEW开发基于物联网的多功能功率分析仪
LabVIEW开发基于物联网的多功能功率分析仪
|
1天前
|
传感器 机器学习/深度学习 算法
LabVIEW开发工业物联网状态监测
LabVIEW开发工业物联网状态监测
10 2
|
6天前
|
传感器 存储 物联网
【C 言专栏】基于 C 语言的物联网开发
【5月更文挑战第6天】C 语言在物联网发展中扮演关键角色,适用于开发嵌入式系统、通信协议及云平台后端服务。其高效、灵活、可移植的特性适应资源有限的环境,确保设备兼容性。尽管开发挑战较大,如代码可读性,但借助辅助工具可改善。随着物联网技术进步,C 语言将持续发挥重要作用,塑造智能未来。
【C 言专栏】基于 C 语言的物联网开发
|
28天前
|
消息中间件 存储 JavaScript
阿里云IOC物联网异步处理基础概念
该内容介绍了异步处理基础和消息队列的相关概念。首先,同步处理指任务完成后才能执行其他操作,而异步则允许任务并行执行,不阻塞程序。异步能提高系统并发性和响应性,但也增加复杂性和资源消耗。接着,提到了消息队列,包括生产者、消费者、队列、broker和topic等概念,并指出在IoT中,设备作为生产者发送消息到特定topic,消费者从队列获取数据。最后,简要介绍了AMQP协议,它是用于应用程序间消息传递的开放标准,常用于分布式系统和物联网,如RabbitMQ和Apache Qpid。课程将以Apache Qpid为例接收IoT数据。
132 6
阿里云IOC物联网异步处理基础概念
|
2月前
|
SQL 关系型数据库 MySQL
阿里云数据库使用教程、购买、价格、连接数据库全流程
阿里云数据库使用涉及购买、创建及登录步骤。支持MySQL、SQL Server等引擎。购买时选择所需配置、地域和可用区。创建数据库和账号后,通过DMS登录。在同一地域内,ECS需将IP加入RDS白名单以实现内网连接。详细流程见阿里云官方文档。
|
2月前
|
SQL 关系型数据库 MySQL
阿里云数据库使用方法,从购买、创建数据库账号密码到连接数据库全流程
阿里云数据库使用方法,从购买、创建数据库账号密码到连接数据库全流程,阿里云数据库怎么使用?阿里云百科整理阿里云数据库从购买到使用全流程,阿里云支持MySQL、SQL Server、PostgreSQL和MariaDB等数据库引擎,阿里云数据库具有高可用、高容灾特性,阿里云提供数据库备份、恢复、迁移全套解决方案
396 0
|
2月前
|
弹性计算 固态存储 Linux
阿里云怎样搭建幻兽帕鲁联机服务器,幻兽帕鲁服务器搭建全流程分享
幻兽帕鲁作为近期大热的游戏,吸引了无数玩家的目光。很多小伙伴都希望能够搭建属于自己的服务器,与朋友们一起畅快游戏。那么,该如何快速搭建幻兽帕鲁服务器呢?下面就来为大家详细介绍一下。
82 0

相关产品

  • 物联网平台