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
目录
相关文章
|
4月前
|
物联网 区块链 vr&ar
未来已来:探索区块链、物联网与虚拟现实技术的融合与应用安卓与iOS开发中的跨平台框架选择
【8月更文挑战第30天】在科技的巨轮下,新技术不断涌现,引领着社会进步。本文将聚焦于当前最前沿的技术——区块链、物联网和虚拟现实,探讨它们各自的发展趋势及其在未来可能的应用场景。我们将从这些技术的基本定义出发,逐步深入到它们的相互作用和集成应用,最后展望它们如何共同塑造一个全新的数字生态系统。
|
27天前
|
存储 安全 物联网
C语言物联网开发之设备安全与代码可靠性隐患
物联网设备的C语言代码安全与可靠性至关重要。一是防范代码安全漏洞,包括缓冲区溢出和代码注入风险,通过使用安全函数和严格输入验证来预防。二是提高代码跨平台兼容性,利用`stdint.h`定义统一的数据类型,并通过硬件接口抽象与适配减少平台间的差异,确保程序稳定运行。
|
22天前
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
31 1
|
27天前
|
存储 网络协议 物联网
C 语言物联网开发之网络通信与数据传输难题
本文探讨了C语言在物联网开发中遇到的网络通信与数据传输挑战,分析了常见问题并提出了优化策略,旨在提高数据传输效率和系统稳定性。
|
2月前
|
存储 边缘计算 物联网
阿里云物联网平台:推动万物互联的智能化解决方案
随着物联网技术的快速发展,阿里云物联网平台为企业提供了一体化的解决方案,包括设备接入、数据管理和智能应用等核心功能。平台支持海量设备接入、实时数据采集与存储、边缘计算,并具备大规模设备管理、高安全性和开放生态等优势。广泛应用于智能制造、智慧城市和智能家居等领域,助力企业实现数字化转型。
251 5
|
3月前
|
物联网 C# C语言
物联网开发中C、C++和C#哪个更好用
在物联网(IoT)开发中,C、C++和C#各有优缺点,适用场景不同。C语言性能高、资源占用低,适合内存和计算能力有限的嵌入式系统,但开发复杂度高,易出错。C++支持面向对象编程,性能优秀,适用于复杂应用,但学习曲线陡峭,编译时间长。C#易于学习,与.NET框架结合紧密,适合快速开发Windows应用,但性能略低,平台支持有限。选择语言需根据具体项目需求、复杂性和团队技术栈综合考虑。
|
3月前
|
存储 传感器 物联网
结合物联网开发探讨C语言的变量
在物联网(IoT)开发中,C语言的变量起着至关重要的作用。由于物联网设备资源有限,C语言的高效性和对硬件的直接控制使其成为开发嵌入式系统的首选。
|
5月前
|
存储 运维 监控
阿里云物联网平台的优势
【7月更文挑战第19天】阿里云物联网平台的优势
87 1
|
7月前
|
传感器 安全 物联网
C语言:物联网开发利器
C语言:物联网开发利器
|
1月前
|
存储 安全 物联网
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
政府在推动物联网技术标准和规范的统一方面可以发挥哪些作用?
100 50

热门文章

最新文章

相关产品

  • 物联网平台
  • 下一篇
    DataWorks