下图是本案例除硬件连线外的3步导学,每个步骤中实现的功能请参考图中的说明。
![](https://img-blog.csdnimg.cn/img_convert/dc880cc6b117f756f688c9d39bb074d9.png)
1、简介
1.1、背景
伴随着人们生活水平的提高,养鱼已经成为了一种新的时尚,各种桌面鱼缸层出不穷,但是市面上的鱼缸系统多是比较简单的,智能鱼缸可谓是凤毛麟角,同时也价格不菲。鉴于此,我们HaaS团队打造了一款智能水族馆案例。通过监测水温,水位,以及水质,继而通过物联网平台的功能动态的调节鱼缸生态。
本案例中用到的传感器比较多,其中包括TDS、水温,以及压力传感器(用于测水位),充分应用到我们的日常生活中,比如水质仪,净水器,温控热水壶,胎压仪,体重秤等等。
1.1、准备
本案例打造需要如下硬件:
- Nodemcu32S一台
- HX710AB气压传感器一个
- 18B20水温传感器一个
- TDS传感器一个
- 继电器三个
- 杜邦线若干
- MicroUSB数据线一条
硬件连线图如下图所示:
![](https://img-blog.csdnimg.cn/img_convert/c5ba71298bb67aa9adc7a067fac50bf5.png)
继电器外接的水泵,加热棒,以及过滤器,建议采购低压直流设备,如确需强电设备,请注意强电隔离,做好防护。
2、物联网平台开发
整个过程包含以下3个步骤:
- 创建产品(设备模型)
- 定义产品功能(物模型)
- 创建设备及获取三元组
对于第一次使用物联网平台的读者,需要开通实例以使用物联网平台的功能。这里可以使用免费的公共实例进行开发。
在物联网平台中,左上角选择“华东2-上海”,点击“公共实例”,即可开通。开通后点击“公共实例”,即可进入控制台进行产品创建。
![](https://img-blog.csdnimg.cn/img_convert/0021b8dd4524d4f449ba421c0c4dcca2.png)
2.1、创建产品(设备模型)
进入公共实例控制台,点击“创建产品”按钮,即可进入新建产品页面。
![](https://img-blog.csdnimg.cn/img_convert/328c68c00bcfdf91bdc68779c3065d59.png)
进入新建产品页面,设定“产品名称”,这里我们命名为“智能水族箱”,读者也可以根据自己的喜好来命名。在“所属品类”中,选择“自定义品类”。
产品的节点类型选择“直连设备”,数据格式选择“ICA标准数据格式”,检验类型和认证方式选择默认设定即可。开发者可根据自己的需求在“产品描述”页面添加针对此产品的描述。
对于 ESP32 等搭载 Wi-Fi 的设备而言,联网方式选择“Wi-Fi”。
![](https://img-blog.csdnimg.cn/img_convert/a38a77cf7d5e0aed994c55d2f8a43b07.png)
点击“确认”按钮,即可完成产品创建。
![](https://img-blog.csdnimg.cn/img_convert/c148f7301aef723b06641b07e614d587.png)
点击“前往定义物模型”
![](https://img-blog.csdnimg.cn/img_convert/a72e139b0710c40eccfb2374df5eb347.png)
2.2、定义产品功能(物模型)
开发者可以使用准备好的物模型文件来进行快速导入。点击左上角“快速导入”,选择物模型文件智能水族箱物模型并上传,就能够生成案例对应的物模型。
![](https://img-blog.csdnimg.cn/img_convert/dbe58a0bcacc1eea77933bb6c64dcf05.png)
生成后的效果如下:
![](https://img-blog.csdnimg.cn/img_convert/685b5da0adf4ccf10fd22362ca06bf26.png)
定义好物模型后,需要发布物模型上线,并发布产品,以使变更生效。
![](https://img-blog.csdnimg.cn/img_convert/f621f9af49e02af6f97a8853c5bca7a3.png)
![](https://img-blog.csdnimg.cn/img_convert/beed23f3c8ce9aaa77e96d7e2d3e603f.png)
产品及其物模型创建完成后就可以创建这个产品的设备了。
2.3、创建设备及获取三元组
点击左侧栏中“设备“,在筛选框中选择要添加设备的产品,点击“添加设备”。这里这里我们命名为“test_device”,开发者也可以根据自己的喜好来命名。
![](https://img-blog.csdnimg.cn/img_convert/cd5db2f73fac70e3dbd1f3d9a2e3b38c.png)
生成的设备如下。
![](https://img-blog.csdnimg.cn/img_convert/8914864832c69a86a65c367ff7a4e63b.png)
开发者也可以选择“批量添加”,一次性添加多个设备,并生成随机的DeviceName。
![](https://img-blog.csdnimg.cn/img_convert/6528c825cb9bec8950d93f2e5a027ed3.png)
点击前往“查看”按钮,就可以看到此设备的详细信息了。
![](https://img-blog.csdnimg.cn/img_convert/e53041c498513414f48d704605ddce92.png)
点击右上角的“查看”按钮,就能看到设备的三元组信息了。
三元组是物联网设备端和物联网云端设备相关联的唯一标识符,在设备端连接云端的时候会使用三元组信息和云端进行鉴权,鉴权通过之后云端会认为设备已激活并上线。
![](https://img-blog.csdnimg.cn/img_convert/3226847581234032e1974ff84fb37196.png)
再次前往物联网平台的设备信息页面,若设备运行正确,此时应该可以看到设备名右侧的状态由“未激活”变为“在线”。选中“实时刷新”,可以看到数据实时从设备上报到物联网平台。设备上云成功。
![](https://img-blog.csdnimg.cn/img_convert/119bd50fcb658d6375da0f433e35c1e5.png)
3、设备端开发
3.1、开发环境
在进行下一步之前请确保ESP32开发环境已经搭建完毕。详情请参考esp32开发环境的说明。
3.2、创建解决方案
如下图所示,在Haas Studio中创建项目。先选择左侧的“开发板型号”再从右侧的案例中选择“智能水族箱”案例点击“立即创建”即可。
![](https://img-blog.csdnimg.cn/img_convert/d9ed79617d5fa3194e8c365b1ab57d1d.png)
Python脚本的详细说明请参考脚本内嵌的文字版注释
之后,对代码进行如下修改。
- 填写Wi-Fi名称及密码
在main.py中,填写可用的Wi-Fi名称及密码。
# wifi连接的的ssid和pwd定义
wifiSsid = "请填写您的路由器名称"
wifiPassword = "请填写您的路由器密码"
- 修改设备端三元组
在main.py中,填写创建的设备三元组信息。关于设备三元组的获取,请参考创建设备及获取三元组中的步骤。
# 三元组信息
productKey = "产品key"
deviceName = "设备名称"
deviceSecret = "设备密钥"
4、运行结果
将代码推送到设备中运行后,会自动连接物联网平台。此时,再次前往物联网平台的设备信息页面,若设备运行正确,此时应该可以看到设备名右侧的状态由“未激活”变为“在线”。
![](https://img-blog.csdnimg.cn/img_convert/119bd50fcb658d6375da0f433e35c1e5.png)
5、物联网应用开发
IoT Studio 提供了应用快速开发的能力,可以很方便地与物联网平台进行联动。本节的开发工作也将围绕 IoT Studio展开。
5.1、新建“普通项目”
打开IoT Studio官网,在项目管理中新建一个空白项目,如下图所示,将此项目命名为“智能水族箱项目”,开发者也可以根据自己的喜好来命名。
![](https://img-blog.csdnimg.cn/img_convert/fb8c45b883922d5e079d8abc200ac69d.png)
![](https://img-blog.csdnimg.cn/img_convert/1ec2fb03b8353492b163a87985cfd302.png)
5.2、关联产品
为了使本项目能够获取到目标设备的定位信息,我们首先需要将该项目和我们在前一节创建的产品“智能水族箱”绑定。
在项目控制台,点击左侧的“产品”,点击“关联物联网平台产品”。此时可以看见我们创建的“智能水族箱”。点击选中,并勾选“关联产品同时关联其下所有设备”,以便该项目可以访问到所有设备的信息。
![](https://img-blog.csdnimg.cn/img_convert/042c04445e51f7e08972038620f156f5.png)
5.3、创建“移动应用”
![](https://img-blog.csdnimg.cn/img_convert/c7769476b3adecac0b150539e0759952.png)
5.4、界面开发及交互配置
按下图所示依次将控件拖入界面中,可以根据自己需要添加所需要的控件。各组件的说明请参考IoT Studio组件说明。
![](https://img-blog.csdnimg.cn/img_convert/bae03c444a850ecae7b4a2ce77f1c6ca.png)
按下图所示,为每一个按钮配置交互行为,当点击特定按钮时,设置设备物模型标签为对应值。首先配置传感器数据。
![](https://img-blog.csdnimg.cn/img_convert/b446b99663ad3a374d018eeaf51d02b6.png)
接下来配置开关按钮对应的数据源。
![](https://img-blog.csdnimg.cn/img_convert/a5eabce2b055990420735d1e2eb58e6f.png)
5.5、预览及发布应用
点击右上角按钮预览或发布,即可在手机上使用应用,可以实现随时随地远程控制啦。
![](https://img-blog.csdnimg.cn/img_convert/c720335a1e0a3f90392a203c1ca4513d.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)