10104浏览
查看: 10104|回复: 2

[教程] 【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪

[复制链接]
本帖最后由 JIAJIA 于 2023-2-24 13:47 编辑

IoT室内环境监测仪

随着生活水平提升,人们对室内环境的要求也越来越高!适宜的室内环境对人体是非常重要的。调查显示当室温超过28度,湿度大于70%rh时,易有闷热、出汗、烦躁 、疲劳等反应,容易影响个体安定的情绪和敏捷的思维。当室温低于20度时,易发生感冒等症状,温度与湿度的保障也是避免个体感染病菌的必要条件。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图1

IoT室内环境监测仪,是一款可以监测室内温度、湿度、光线、声音的装置,并且这些环境数据还可以上传到SIoT平台,便于居住者对数据进行查看。居住者可以通过对室内环境数据的监控及时调整家居环境的温度、湿度,从而减少疾病的感染。

任务目标

行空板上显示环境图标与环境数据,并且将环境数据按各自的“项目ID/设备号”发送到SIoT平台。



知识点
1.了解物联网的体系结构
2.掌握DHT11的使用方法及工作原理

材料清单

硬件清单:

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图2

软件使用:Mind+编程软件 x1

下载地址:https://mindplus.cc/

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图3

动手实践

IoT室内环境监测仪不仅可以检测室内的温度、湿度、光线以及声音数据,还可以在行空板上将这些环境数据进行显示。最后将这些环境数据发送到SIoT平台,用户可以通过SIoT平台查看室内的温度、湿度、光线以及声音这四项数据。

任务一:读取温湿度传感器的值

读取温湿度传感器检测到的温度数据与湿度数据,并将数据显示在行空板上。

任务二:行空板向SIoT平台发送数据

将读取到的室内环境数据,通过MQTT协议发送到SIoT平台。

任务一:读取温湿度传感器的值

1.硬件连接

DHT11数字温湿度传感器是一款既可以检测温度,又可以检测湿度的复合传感器。下面将温湿度传感器连接到行空板的P24数字引脚,硬件连接成功后,使用USB线将行空板连接到计算机。

注意:关于“DHT11温湿度传感器”的相关介绍,见知识园地。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图4

2.软件准备

打开Mind+,按照下面图示完成软件准备工作。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图5

添加温湿度传感器,点击“扩展”,在pinpong库中找到“DHT11温湿度传感器”并点击,完成添加。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图6

3.编写程序

温湿度传感器库添加成功后,怎样才能获取温湿度传感器检测的数据呢?使用温湿度传感器初始化指令,并在Python主程序开始之下,初始化引脚为P24。


【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图7

要获取温湿度传感器检测到的温度值与湿度值,使用读取温湿度/湿度指令。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图8

然后使用显示文字更新文本参数指令,将传感器检测到的温度数据与湿度数据显示在行空板上。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图9

温度数据和湿度数据直接显示在行空板上,两个数据容易混淆分不清楚,可以在数据前面加上温度和湿度的文字注释。使用合并字符指令,让显示形式变为“温度:温度数据”。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图10

4.程序运行

点击运行,程序运行成功后,行空板上显示温湿度传感器实时检测到的温度与湿度数据。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图11

5.试一试

上面的程序,在行空板上显示的温度数据与湿度数据是没有带单位的。其实从读取温度/湿度指令,可以看出温度的单位为:℃,湿度的单位为:%rh。接下来,大家修改一下程序,将显示的温湿度数据后面加上对应的单位。

任务二:行空板向SIoT平台发送数据

1.准备工作

(1)开启行空板SIoT服务

长按行空板的“Home”键进入菜单页,点击“应用开关”,检查SIoT服务是否开启,如果显示“已禁用”,点击SIoT选项,切换SIoT状态为“已启用”。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图12

(2)添加MQTT-py库

要向SIoT平台发送数据,要有发送相关指令才能实现。但是现在行空板的指令区中没有这样的指令,该怎么办呢?点击“扩展”,在官方库中找到“MQTT-py”并点击,完成添加。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图13

2.编写程序

开始编写程序之前,先来分析一下这个任务,要实现哪些功能。首先行空板界面上需要显示室内环境数据,温度值、湿度值、光线值、声音值。然后,将这些室内环境数据按各自的“项目ID/设备号”上传到SIoT平台上。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图14

(1)设计界面

要将室内环境数据显示行空板上,首先需要设计一个好看的显示界面,下面将图片文件夹中的背景图和环境图标,导入到文件系统中。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图15

使用显示图片指令,在行空板上显示背景图片与环境图标,根据上表面分析的图标坐标,设置图片在对应的XY坐标上显示即可。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图16

下面使用显示文字指令和更新文本内容参数指令,将温湿度数据、光线数据以及声音数据显示在行空板上。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图17

(2)上传数据

要将数据上传到SIoT平台,首先需要使用初始化MQTT指令,开启行空板物联网服务器,点击“设置”图标,将“SIoT服务器”的内容修改为行空板连接电脑的默认IP地址“10.1.2.3”。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图18

初始化设置完成后,MQTT发起连接,使用指令MQTT发起连接;连接成功后,需要保持连接,使用指令MQTT保持连接永久

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图19

要向SIoT平台发送数据,就需要先订阅要发送到SIoT平台的主题,使用指令MQTT订阅。需要特别说明的是,MQTT订阅指令中填写的主题,固定的格式为“项目ID/设备号”。由于要将4个不同的环境数据发送到对应的topic频道,因此,需要订阅四个不同的主题。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图20

完成了“MQTT的初始化——发起连接——保持连接——订阅”这四个步骤后,接下来,就可以向SIoT平台发送数据。使用MQTT发布指令,每隔5秒,向SIoT平台的不同频道发送环境数据。完成了这些后,还需要将前面设计界面的程序加上,完整程序如下:

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图21

3.程序运行

运行程序,程序运行成功后,Mind+终端界面上打印“连接结果:连接成功”,行空板上显示对应的环境数据。程序设置每隔5秒给SIoT平台发送一条环境数据。查看数据需要使用网页进入行空板服务页面,双击打开浏览器在地址栏输入“10.1.2.3”。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图22

进入行空板服务页面后,点击“应用开关”,找到SIoT并点击下方的“打开页面”,进入SIoT服务页。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图23

输入对应的账号和密码,点击登录。

账号:siot

密码:dfrobot

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图24

登录成功后,点击“设备列表”,找到订阅的主题。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图25

点击“查看消息”,就可以看到对应的数据了。勾选自动刷新消息功能,SIoT平台只要接收到对应的环境消息后,自动刷新消息。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图26

点击“隐藏/显示图标”,查看对应环境数据的折线图。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图27

知识园地

1.了解物联网的体系结构

物联网是新型信息系统的代名词,它是三方面的结合:

一是“物”,由传感器、射频识别器以及各种执行机构实现的数据信息空间和实际实物相连;

二是“网”,利用互联网将这些物和整个数字信息空间进行互联,以方便广泛应用;

三是“应用”,以采集和互联作为基础,深入、广泛、自动化地采集大量信息,实现更高智慧的应用。

因此,物联网的体系结构按照层级来划分,可大致划分为3个层级:感知层、网络层、应用层。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图28

2.了解DHT11温湿度传感器的工作原理

DHT11数字温湿度传感器,是一款既可以采集温度又可以采集湿度的复合传感器。DHT11温湿度传感器,采用专用的数字模块采集技术和温湿度传感技术,确保采集数据的可靠性与使用时的稳定性。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图29

传感器内部封装一个电阻式感湿元件用于检测环境湿度,一个NTC测温元件,用于检测环境温度。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图30

其实DHT11温湿度传感器,是一款通过温度、湿度敏感元件以及相应的电路转换,将数据转换为行空板可直接读取温湿度的数字量传感器。

3.指令学习

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图31

挑战自我

上面的程序完成了在行空板上显示室内环境数据,并且还将数据发送到了SIoT平台上。发送的数据是没有经过任何筛选,在研究调查中发现,当室温超过28度,湿度大于70%rh时,易有闷热、出汗、烦躁 、疲劳等反应。接下来,大家新建一个环境数据预警的topic,当温度大于28度时,向SIoT平台发送“当前温度过高!”,当湿度大于70%rh时,向SIoT平台发送“当前湿度过高!”,效果如下图所示。

【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪图32

附件下载

下载附件第8课 IoT室内环境监测仪.zip


rzegkly  版主

发表于 2023-2-26 05:06:30

很好的物联教程,喜欢
回复

使用道具 举报

木子呢  管理员
 楼主|

发表于 2023-2-27 09:45:38

rzegkly 发表于 2023-2-26 05:06
很好的物联教程,喜欢

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail