13023| 2
|
[M10教程] 【行空板】用Python玩转开源硬件-第08课:IoT室内环境监测仪 |
本帖最后由 JIAJIA 于 2023-2-24 13:47 编辑 IoT室内环境监测仪 随着生活水平提升,人们对室内环境的要求也越来越高!适宜的室内环境对人体是非常重要的。调查显示当室温超过28度,湿度大于70%rh时,易有闷热、出汗、烦躁 、疲劳等反应,容易影响个体安定的情绪和敏捷的思维。当室温低于20度时,易发生感冒等症状,温度与湿度的保障也是避免个体感染病菌的必要条件。 IoT室内环境监测仪,是一款可以监测室内温度、湿度、光线、声音的装置,并且这些环境数据还可以上传到SIoT平台,便于居住者对数据进行查看。居住者可以通过对室内环境数据的监控及时调整家居环境的温度、湿度,从而减少疾病的感染。 任务目标 行空板上显示环境图标与环境数据,并且将环境数据按各自的“项目ID/设备号”发送到SIoT平台。 知识点 1.了解物联网的体系结构 2.掌握DHT11的使用方法及工作原理 材料清单 硬件清单: 软件使用:Mind+编程软件 x1 下载地址:https://mindplus.cc/ 动手实践 IoT室内环境监测仪不仅可以检测室内的温度、湿度、光线以及声音数据,还可以在行空板上将这些环境数据进行显示。最后将这些环境数据发送到SIoT平台,用户可以通过SIoT平台查看室内的温度、湿度、光线以及声音这四项数据。 任务一:读取温湿度传感器的值 读取温湿度传感器检测到的温度数据与湿度数据,并将数据显示在行空板上。 任务二:行空板向SIoT平台发送数据 将读取到的室内环境数据,通过MQTT协议发送到SIoT平台。 任务一:读取温湿度传感器的值 1.硬件连接 DHT11数字温湿度传感器是一款既可以检测温度,又可以检测湿度的复合传感器。下面将温湿度传感器连接到行空板的P24数字引脚,硬件连接成功后,使用USB线将行空板连接到计算机。 注意:关于“DHT11温湿度传感器”的相关介绍,见知识园地。 2.软件准备 打开Mind+,按照下面图示完成软件准备工作。 添加温湿度传感器,点击“扩展”,在pinpong库中找到“DHT11温湿度传感器”并点击,完成添加。 3.编写程序 温湿度传感器库添加成功后,怎样才能获取温湿度传感器检测的数据呢?使用温湿度传感器初始化指令,并在Python主程序开始之下,初始化引脚为P24。 要获取温湿度传感器检测到的温度值与湿度值,使用读取温湿度/湿度指令。 然后使用显示文字与更新文本参数指令,将传感器检测到的温度数据与湿度数据显示在行空板上。 温度数据和湿度数据直接显示在行空板上,两个数据容易混淆分不清楚,可以在数据前面加上温度和湿度的文字注释。使用合并字符指令,让显示形式变为“温度:温度数据”。 4.程序运行 点击运行,程序运行成功后,行空板上显示温湿度传感器实时检测到的温度与湿度数据。 5.试一试 上面的程序,在行空板上显示的温度数据与湿度数据是没有带单位的。其实从读取温度/湿度指令,可以看出温度的单位为:℃,湿度的单位为:%rh。接下来,大家修改一下程序,将显示的温湿度数据后面加上对应的单位。 任务二:行空板向SIoT平台发送数据 1.准备工作 (1)开启行空板SIoT服务 长按行空板的“Home”键进入菜单页,点击“应用开关”,检查SIoT服务是否开启,如果显示“已禁用”,点击SIoT选项,切换SIoT状态为“已启用”。 (2)添加MQTT-py库 要向SIoT平台发送数据,要有发送相关指令才能实现。但是现在行空板的指令区中没有这样的指令,该怎么办呢?点击“扩展”,在官方库中找到“MQTT-py”并点击,完成添加。 2.编写程序 开始编写程序之前,先来分析一下这个任务,要实现哪些功能。首先行空板界面上需要显示室内环境数据,温度值、湿度值、光线值、声音值。然后,将这些室内环境数据按各自的“项目ID/设备号”上传到SIoT平台上。 (1)设计界面 要将室内环境数据显示行空板上,首先需要设计一个好看的显示界面,下面将图片文件夹中的背景图和环境图标,导入到文件系统中。 使用显示图片指令,在行空板上显示背景图片与环境图标,根据上表面分析的图标坐标,设置图片在对应的XY坐标上显示即可。 下面使用显示文字指令和更新文本内容参数指令,将温湿度数据、光线数据以及声音数据显示在行空板上。 (2)上传数据 要将数据上传到SIoT平台,首先需要使用初始化MQTT指令,开启行空板物联网服务器,点击“设置”图标,将“SIoT服务器”的内容修改为行空板连接电脑的默认IP地址“10.1.2.3”。 初始化设置完成后,MQTT发起连接,使用指令MQTT发起连接;连接成功后,需要保持连接,使用指令MQTT保持连接永久。 要向SIoT平台发送数据,就需要先订阅要发送到SIoT平台的主题,使用指令MQTT订阅。需要特别说明的是,MQTT订阅指令中填写的主题,固定的格式为“项目ID/设备号”。由于要将4个不同的环境数据发送到对应的topic频道,因此,需要订阅四个不同的主题。 完成了“MQTT的初始化——发起连接——保持连接——订阅”这四个步骤后,接下来,就可以向SIoT平台发送数据。使用MQTT发布指令,每隔5秒,向SIoT平台的不同频道发送环境数据。完成了这些后,还需要将前面设计界面的程序加上,完整程序如下: 3.程序运行 运行程序,程序运行成功后,Mind+终端界面上打印“连接结果:连接成功”,行空板上显示对应的环境数据。程序设置每隔5秒给SIoT平台发送一条环境数据。查看数据需要使用网页进入行空板服务页面,双击打开浏览器在地址栏输入“10.1.2.3”。 进入行空板服务页面后,点击“应用开关”,找到SIoT并点击下方的“打开页面”,进入SIoT服务页。 输入对应的账号和密码,点击登录。 账号:siot 密码:dfrobot 登录成功后,点击“设备列表”,找到订阅的主题。 点击“查看消息”,就可以看到对应的数据了。勾选自动刷新消息功能,SIoT平台只要接收到对应的环境消息后,自动刷新消息。 点击“隐藏/显示图标”,查看对应环境数据的折线图。 知识园地 1.了解物联网的体系结构 物联网是新型信息系统的代名词,它是三方面的结合: 一是“物”,由传感器、射频识别器以及各种执行机构实现的数据信息空间和实际实物相连; 二是“网”,利用互联网将这些物和整个数字信息空间进行互联,以方便广泛应用; 三是“应用”,以采集和互联作为基础,深入、广泛、自动化地采集大量信息,实现更高智慧的应用。 因此,物联网的体系结构按照层级来划分,可大致划分为3个层级:感知层、网络层、应用层。 2.了解DHT11温湿度传感器的工作原理 DHT11数字温湿度传感器,是一款既可以采集温度又可以采集湿度的复合传感器。DHT11温湿度传感器,采用专用的数字模块采集技术和温湿度传感技术,确保采集数据的可靠性与使用时的稳定性。 传感器内部封装一个电阻式感湿元件用于检测环境湿度,一个NTC测温元件,用于检测环境温度。 其实DHT11温湿度传感器,是一款通过温度、湿度敏感元件以及相应的电路转换,将数据转换为行空板可直接读取温湿度的数字量传感器。 3.指令学习 挑战自我 上面的程序完成了在行空板上显示室内环境数据,并且还将数据发送到了SIoT平台上。发送的数据是没有经过任何筛选,在研究调查中发现,当室温超过28度,湿度大于70%rh时,易有闷热、出汗、烦躁 、疲劳等反应。接下来,大家新建一个环境数据预警的topic,当温度大于28度时,向SIoT平台发送“当前温度过高!”,当湿度大于70%rh时,向SIoT平台发送“当前湿度过高!”,效果如下图所示。 附件下载 第8课 IoT室内环境监测仪.zip |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed