智能产品综合开发 - 温湿度检测

1 实训选题目的

        本次实训选择的题目是“温湿度检测系统”,旨在提升我们对日常生活中实际应用场景的观察力、问题描述能力、分析力和产品设计能力。通过本项目,我们将能够将所学的人工智能专业知识进行综合应用,包括但不限于Linux操作系统、Python程序设计、人工智能数据处理、机器学习技术及应用、计算机视觉技术、响应式网页设计、创新创业教育、数据库基础、软件工程和人工智能产品开发等。本项目要求小组成员能够灵活运用这些知识,开发出具有一定创新性和实用价值的人工智能产品,以解决实际生活中的温湿度监测需求,提高生活质量和环境舒适度。

2 实训任务目的

        通过本次“温湿度检测系统”的实训任务,目的是使团队成员掌握树莓派硬件的基本组成,并能够完成树莓派硬件的搭建、新版64位桌面版系统的烧录安装以及SSH、VNC、用户密码等基础配置。这些步骤将为团队成员提供远程控制树莓派的能力,为后续的温湿度检测系统开发打下坚实的基础。此外,本任务还将帮助团队成员熟悉树莓派的操作系统环境,确保在后续的开发过程中能够有效地进行编程和调试,实现温湿度检测系统的各项功能,包括数据采集、处理、存储和可视化展示。通过本实训,学生将学会如何将理论知识应用于实际问题,提高解决实际问题的能力,并增强团队合作和项目管理的技能。

3 实训介绍

(一)必备功能说明:

1. 实时温湿度监测:系统能够实时监测环境的温度和湿度,通过连接的温湿度传感器收集数据,并将其传输到树莓派进行处理。这项功能是系统的核心,确保我们能够及时了解环境的舒适度和潜在的健康风险。

2. 数据记录与分析:系统不仅实时监测温湿度,还能记录历史数据,并进行基本的数据分析。通过分析,系统可以识别温度和湿度的变化趋势,为用户提供环境变化的洞察。

3. 阈值报警功能:系统能够根据用户设定的温湿度阈值,自动触发报警机制。当环境温湿度超过安全范围时,系统会通过声音、光线或网络通知用户,以便及时采取措施。

温湿度传感器用于精确测量环境的温度和湿度。传感器通过数字接口与树莓派通信,提供精确的数据。这种传感器技术能够快速响应环境变化,为用户提供实时的温湿度信息。其外形图如图8_1所示。

图8_1 数字温湿度传感器实物图

        通过本次实训,我们的目标是开发一个功能齐全、用户友好且具有一定智能的温湿度监测系统,以提高用户对环境舒适度的控制能力,并为环境监测提供科学依据。

4 实训组件

  1. 树莓派主板1块
  2. 树莓派电源适配器1个
  3. 40P软排线1根
  4. 温湿度传感器1个
  5. 面包板1个
  6. 跳线若干
  7. 电阻若干(用于温湿度传感器电流限制)
  8. 杜邦线若干(用于连接面包板上的组件)
  9. 显示器1个
  10. SD卡1张
  11. 网络线1根
  12. 外壳和保护套1个

5 实训原理

        温湿度检测系统的原理是基于传感器技术来实时监测环境中的温度和湿度水平,并通过数据处理提供环境质量反馈。该系统主要由树莓派主板控制,通过读取温湿度传感器的数据,智能地处理和显示环境信息。以下是温湿度检测系统的核心工作原理:

1)树莓派主板作为系统的控制中心,负责处理来自传感器的输入信号,并输出数据显示和报警信号。

2) 温湿度传感器检测周围环境的温度和湿度强度,并将数据发送给树莓派。

3) 树莓派根据接收到的数据,计算出当前的环境状态,并根据预设的阈值判断是否需要触发报警。

4) 系统界面接收树莓派的处理结果,并以图形或数字形式显示当前的温湿度数据。

5) 系统还可以根据预设的模式或用户输入,自动调整相关设备的运行状态,如开启空调或加湿器,以维持理想的室内环境。

6) 电阻和跳线用于电路的连接和电流限制,确保传感器和树莓派的工作安全和稳定。

图10_1 系统功能结构图

        上图展示了温湿度检测系统的结构。树莓派通过软件程序控制传感器的数据采集和处理,实现环境监测功能。

6 代码展示

import RPi.GPIO as GPIO
import time
import osdef init():GPIO.setmode(GPIO.BOARD)time.sleep(1)def get_readings(ch):data=[]j = 0b = Trueout =chdataArr =[]GPIO.setup(out, GPIO.OUT)GPIO.output(out,GPIO.HIGH)GPIO.output(out,GPIO.LOW)time.sleep(0.019)print('test2')GPIO.output(out,GPIO.HIGH)GPIO.setup(out,GPIO.IN,pull_up_down=GPIO.PUD_UP)for i in range(0,10000):info = GPIO.input(12)dataArr.append(info)print(dataArr)signArr = []countArr = []nowItem = 0nextItem = 0dataArrlen = len(dataArr)count = 0for i in range(dataArrlen):nextIndex = i+1if i < dataArrlen and nextIndex < dataArrlen :nowItem = dataArr[i]nextItem = dataArr[i+1]if nowItem == nextItem:count += 1else:if nowItem == 1:signArr.append(nowItem)countArr.append(count)count =0print(signArr)print(countArr)for index in range(len(countArr)):item = countArr[index]if index >0:if item < 80:data.append(0)else:data.append(1)index += 1#print(data)return datadef data_check(data):if len(data)<40:return [0,0,0,0,1]#print(data)humidity_bit = data[0:8]humidity_point_bit = data[8:16]temperature_bit = data[16:24]temperature_point_bit = data[24:32]check_bit = data[32:40]humidity = 0humidity_point = 0temperature = 0temperature_point = 0check = 0for i in range(8):humidity += humidity_bit[i] * 2 ** (7-i)humidity_point += humidity_point_bit[i] * 2 ** (7-i)temperature += temperature_bit[i] * 2 ** (7-i)temperature_point += temperature_point_bit[i] * 2 **(7-i)check += check_bit[i]* 2 ** (7-i)return [humidity , humidity_point , temperature , temperature_point,check]def dht11():print('test')init()data = get_readings(12)humidity,humidity_point,temperature,temperature_point,check = data_check(data)sumData = humidity + humidity_point + temperature + temperature_pointif check == sumData:T_value = str(temperature) + "." + str(temperature_point)H_value = str(humidity) + "." + str(humidity_point)print("temperature:",T_value,"*C,  humidity:", H_value,"%")say = "espeak temperature:"+str(T_value)+"*C,  humidity:"+str(H_value)+"%"os.system(say)time.sleep(10)if __name__ == '__main__':while True:dht11()

7 参考文献

[1]韩莹,沙莉,朱明宇,等.湿敏电容湿度传感器性能测试方法[J].自动化与仪表,2024,39(10):118-123.DOI:10.19557/j.cnki.1001-9944.2024.10.026.

[2]中国科研团队在纳米森林柔性湿度传感器研究获进展[J].中国科技信息,2024,(20):13.

[3]付文新,王洪丰.基于STM32单片机和DHT11温湿度传感器的温湿度采集系统的设计与实现[J].光源与照明,2022,(03):119-121.

[4]徐鑫秀,赵士原.基于DHT11传感器的机房温湿度控制系统设计[J].现代信息科技,2020,4(14):57-59.DOI:10.19850/j.cnki.2096-4706.2020.14.016.

[5]林倩.DHT11数字温湿度传感器通信协议的IO模拟[J].信息通信,2017,(01):206-207.

[6]陈建新.DHT11数字温湿度传感器在温室控制系统中的应用[J].山东工业技术,2016,(18):120.DOI:10.16640/j.cnki.37-1222/t.2016.18.106.

[7]卜永波,罗小玲,陈一.基于DHT11传感器的温湿度采集系统[J].计算机与现代化,2013,(11):133-135.

[8]韩丹翱,王菲.DHT11数字式温湿度传感器的应用性研究[J].电子设计工程,2013,21(13):83-85+88.DOI:10.14022/j.cnki.dzsjgc.2013.13.054.

[9]韩英梅,赵建平,白慧静.基于DHT11的无线温湿度传感器网络节点的设计[J].井冈山大学学报(自然科学版),2011,32(01):67-70.

[10]倪天龙.单总线传感器DHT11在温湿度测控中的应用[J].单片机与嵌入式系统应用,2010,(06):60-62.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/62330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能如何改变你的生活?

在我们所处的这个快节奏的世界里&#xff0c;科技融入日常生活已然成为司空见惯的事&#xff0c;并且切实成为了我们生活的一部分。在这场科技变革中&#xff0c;最具变革性的角色之一便是人工智能&#xff08;AI&#xff09;。从我们清晨醒来直至夜晚入睡&#xff0c;人工智能…

vue3 ajax获取json数组排序举例

使用axios获取接口数据 可以在代码中安装axios包&#xff0c;并写入到package.json文件&#xff1a; npm install axios -S接口调用代码举例如下&#xff1a; const fetchScore async () > {try {const res await axios.get(http://127.0.0.1:8000/score/${userInput.v…

Vue前端开发-动态插槽

不仅父组件可以通过插槽方式访问并控制子组件传入的数据&#xff0c;而且可以控制传入父组件时插槽的名称&#xff0c;从而使不同的插槽根据名称的不同&#xff0c;使用场景也不同&#xff0c;例如在一个小区详细页中&#xff0c;可以根据小区类型&#xff0c;调用不同名称的详…

SqlServer强制转换函数TRY_CONVERT和TRY_CAST

SqlServer强制转换函数TRY_CONVERT和TRY_CAST的介绍和案例分享 1、本节内容 CAST 和 CONVERT TRY_CAST TRY_CONVERT 适用于&#xff1a; SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics 分析平台系统 (PDW)Microsoft Fabric 中的 SQL 分析端点Micro…

PaddleOCR:一款高性能的OCR工具介绍

一、引言 随着人工智能技术的不断发展&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术在各行各业得到了广泛应用。OCR技术能够将图片、扫描件等非结构化数据中的文字信息提取出来&#xff0c;转换为可编辑的文本格式。在我国&#xff0c;百度开源了一款优秀的OCR工具…

如果在docker 容器中安装ros遇到的问题

1.在容器内部无法修改时间&#xff0c;需要在宿主机外边修改时钟。修改时钟&#xff1a; hwclock --systohc或者执行 date -s "2024-11-24 19:25:10"2.容器内部内置有opencv4.5版本&#xff0c;需要卸载&#xff0c;重新安装4.2.0版本。记录折腾好久的卸载过程。 …

LLM*:路径规划的大型语言模型增强增量启发式搜索

路径规划是机器人技术和自主导航中的一个基本科学问题&#xff0c;需要从起点到目的地推导出有效的路线&#xff0c;同时避开障碍物。A* 及其变体等传统算法能够确保路径有效性&#xff0c;但随着状态空间的增长&#xff0c;计算和内存效率会严重降低。相反&#xff0c;大型语言…

ACL的原理与配置

ACL技术概述 ACL&#xff1b;访问控制列表 技术背景&#xff1a; 园区重要服务器资源被随意访问&#xff0c;容易泄露机密&#xff0c;造成安全隐患 病毒侵入内网&#xff0c;安全性降低 网络宽带被各类业务随意挤占&#xff0c;服务质量要求高的宽带得不到保障&#xff0…

【配置】pycharm运行的项目如何修改名称(项目名称、模块名称)

当我们需要修改项目名称、模块名称的时候&#xff0c;能够在网上找一些修改的方法&#xff0c;但是有没有很保守但很使用的方法可以解决这个问题呢&#xff1f; 创建项目 通过pycharm创建一个django的项目 创建之后的项目目录&#xff1a; 更改项目名称&#xff1a; 往往以…

【新人系列】Python 入门(十四):文件操作

✍ 个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4dd; 专栏地址&#xff1a;https://blog.csdn.net/newin2020/category_12801353.html &#x1f4e3; 专栏定位&#xff1a;为 0 基础刚入门 Python 的小伙伴提供详细的讲解&#xff0c;也欢迎大佬们…

MySQL 启动失败问题分析与解决方案:`mysqld.service failed to run ‘start-pre‘ task`

目录 前言1. 问题背景2. 错误分析2.1 错误信息详解2.2 可能原因 3. 问题排查与解决方案3.1 检查 MySQL 错误日志3.2 验证 MySQL 配置文件3.3 检查文件和目录权限3.4 手动启动 MySQL 服务3.5 修复 systemd 配置文件3.6 验证依赖环境 4. 进一步优化与自动化处理结语 前言 在日常…

IDEA Maven 打包找不到程序包错误或找不到符号,报错“程序包不存在“

参考文章&#xff1a;https://blog.csdn.net/yueeryuanyi/article/details/14211090 问题&#xff1a;IDEA Maven 打包找不到程序包错误或找不到符号,报错“程序包不存在“编译都没问题 解决思路 – >【清除缓存】 1. 强制刷新Maven缓存 选择 Maven 标签&#xff0c;Exe…

通过 SSH 进行WordPress网站的高级服务器管理

我在管理hostease的服务器时&#xff0c;时常需要通过SSH登录服务器进行修改。而在网站管理中&#xff0c;SSH不仅是一个基础工具&#xff0c;更是高级用户用来精细化管理和优化服务器的重要工具。通过SSH&#xff0c;你可以深入监控服务器的性能、精细管理系统资源&#xff0c…

分布式搜索引擎之elasticsearch单机部署与测试

分布式搜索引擎之elasticsearch单机部署与测试 1.部署单点es 1.1.创建网络 因为我们还需要部署kibana容器&#xff0c;因此需要让es和kibana容器互联。这里先创建一个网络&#xff1a; docker network create es-net1.2.加载镜像 这里我们采用elasticsearch的7.12.1版本的…

WPF+MVVM案例实战与特效(三十)- 封装一个系统日志显示控件

文章目录 1、运行效果2、日志控件封装1、文件创建2、DisplayLogPanel.xaml 代码3、using System;3、using System;3、数据模型4、枚举类型3、案例实现1、LogPanelWindow.xaml2、LogPanelViewModel.cs4、总结1、运行效果 2、日志控件封装 1、文件创建 打开 Wpf_Examples ,在 …

第二节——计算机网络(四)物理层

车载以太网采用差分双绞线车载以太网并未指定特定的连接器&#xff0c;连接方式更为灵活小巧&#xff0c;能够大大减轻线束重量。传统以太网一般使用RJ45连接器连接。车载以太网物理层需满足车载环境下更为严格的EMC要求&#xff0c;100BASE-T1\1000BASE-T1对于非屏蔽双绞线的传…

使用vcpkg自动链接tinyxml2时莫名链接其他库(例如boost)

使用vcpkg自动链接tinyxml2时莫名链接其他库&#xff08;例如boost&#xff09; vcpkg的自动链接功能非常方便&#xff0c;但在某些情况下会出现过度链接的问题。 链接错误症状 以tinyxml2为例&#xff0c;程序中调用tinyxml2的函数后&#xff0c;若vcpkg中同时存在opencv和…

PyTorch 模型转换为 ONNX 格式

PyTorch 模型转换为 ONNX 格式 在深度学习领域&#xff0c;模型的可移植性和可解释性是非常重要的。本文将介绍如何使用 PyTorch 训练一个简单的卷积神经网络&#xff08;CNN&#xff09;来分类 MNIST 数据集&#xff0c;并将训练好的模型转换为 ONNX 格式。我们还将讨论 PTH …

Vue+Elementui el-tree树只能选择子节点并且支持检索

效果&#xff1a; 只能选择子节点 添加配置添加检索代码 源码&#xff1a; <template><div><el-button size"small" type"primary" clearable :disabled"disabled" click"showSign">危险点评估</el-button>…

分析JHTDB数据库的Channel5200数据集的数据(SciServer服务器)

代码来自https://github.com/idies/pyJHTDB/blob/master/examples/channel.ipynb %matplotlib inline import numpy as np import math import random import pyJHTDB import matplotlib.pyplot as plt import time as ttN 3 T pyJHTDB.dbinfo.channel5200[time][-1] time …