【挑战二】智能室内环境控制系统

发布时间:2024-11-17 03:32

智能温室控制系统精确调控生长环境 #生活知识# #科技生活# #科技农业实践#

1 设计背景

为了满足新课标第三学段“过程与控制”内容模块,及跨学科主题“小型系统模拟”-“小型开关系统”要求,设计了“智能室内环境控制系统”项目。

安全、舒适、便捷、智能是一套优秀的智能家居系统所能带给我们的一个体验。智能室内环境控制系统是智能家居系统的重要的子系统。

2 教学目标

了解过程与控制可以抽象为包括输入、计算和输出三个典型环节的系统。

了解反馈是过程与控制中的重要手段,初步了解反馈对系统优化的作用。

了解系统的输入与输出可以是开关量或连续量,了解连续量可以经由阔值判断形成开关量。

3 项目分析

3.1 系统模块分析

思维导图-系统功能分析.png

系统可以划分为制通风系统、冷系统、制热系统、加湿系统、控制系统等功能相当于独立的模块。

3.2 系统功能分析

流程图_副本_副本_副本-导出.png

当设定温度>28℃,开启空调进行制热;当设定温度<24℃,开启空调进行制冷。

当设定的湿度>40%,开启加湿器进行加湿。

4 系统硬件设计

控制系统:行空板。

通风系统:风扇。

制冷系统:冷水。

制热系统:热水。

加湿系统:加湿器。

5 接线

387611BD-B660-492f-9A33-06B8C3C550AA.jpg

6 编程

screenshots-空调2-1669693980840.png

7 系统改进

7.1 BUG讨论

问:通过系统的运行,大家有没有发现系统有没有什么bug?

答:房间的温度即使到达了设定温度后,还在持续进行制冷。

问:这样,带来的问题是什么?

答:不节能。

答:不舒适。

问:房间的温度即使到达了设定温度后,如何解决系统持续进行制冷?

答:控制系统不知道房间的温度到达了设定值。

答:控制系统没有向制冷系统下达停止制冷的指令。

7.2 改进目标

目标1:实时告诉控制系统室内的实际温湿度。

目标2:当温湿度达到一定的范围后,自动停止制冷、制热、加湿。

7.3 改进方案

为了实现目标1,就需要增加一个温湿度传感器,实时采集房间的温湿度,并将温湿度数据发送给控制系统(行空板)。这里将采集到的温湿度发送给控制器,就是过程与控制中的反馈。

为了显示目标2,就需要在控制系统(行空板)上增加控制指令。

当室内温度低于设定温度范围,自动开启空调进行制热;当室内温度高于设定温度范围,自动开启空调进行制冷。

当室内湿度低于设定湿度范围,自动开启加湿器进行加湿;当室内适度高于设定湿度范围,自动关闭加湿器。

7.4 流程图改进

流程图2.png

7.5 硬件改进

222.jpg

7.6 程序改进

screenshots-空调2-1669693980840.png

8 过程与控制分析

思维导图-导出.png

系统工作的过程分为输入、计算和输出三个环节。通过输入指令设定房间的目标温、湿度,控制器接收输入指令,计算后生成相应的工作指令,风扇、制冷模块、加热模块、加湿器等按照工作指令开始工作,从而对房间进行制冷、加热、加湿。

9 数字量与连续量

在上述过程中,行空板屏幕上的“启动/停止”按钮只有启动、停止两个状态,可以分别用数字1、0来表示,这个按钮的状态就称之为数字量,也称之为开关量。

温湿度传感器采集的房间的温度、湿度值在时间上或数值上都是连续的物理量,我们称之为连续量,也称之为模拟量。

10 小结

本节课程我们学习了生活中的过程与控制,了解了过程与控制中的输入、计算、输出三个环节;认识了在引入传感器和反馈后,控制器就能根据传感器反馈来的数据,对系统进行调节和控制;认识了数字量与连续量。

代码

# -*- coding: UTF-8 -*- # 过程与控制-行空板# 豆爸 from pinpong.extension.unihiker import *from pinpong.board import Board,Pinfrom pinpong.board import DHT11from unihiker import GUI # 事件回调函数def u_thread2_function(): global t1 global t1 while True: t1 = dht1.temp_c() h1 = dht1.humidity() t.config(text=(str("温度:") + str((str(t1) + str("℃"))))) h.config(text=(str("湿度:") + str((str(h1) + str("%")))))def button_click1(): global temp temp = (temp + 0.1) t_set.config(text=round(temp,1))def button_click2(): global t_set global temp temp = (temp + -0.1) t_set.config(text=round(temp,1))def button_click3(): global flag if (flag == 0): temp_add.config(state="disable") temp_minus.config(state="disable") humi_add.config(state="disable") humi_minus.config(state="disable") bnt_ok.config(text="停止") thread1=u_gui.start_thread(u_thread1_function) flag = 1 else: mode1.config(text="") mode2.config(text="") temp_add.config(state="normal") temp_minus.config(state="normal") humi_add.config(state="normal") humi_minus.config(state="normal") bnt_ok.config(text="启动") u_gui.stop_thread(thread1) flag = 0def button_click4(): global h_set global humi humi = (humi + 0.1) h_set.config(text=round(humi,1))def button_click5(): global h_set global humi humi = (humi + -0.1) h_set.config(text=round(humi,1))def u_thread1_function(): while True: if (humi > dht1.humidity()): mode2.config(text="加湿") p_p21_out=Pin(Pin.P21, Pin.OUT) p_p21_out.write_digital(1) if ((temp >= 28) and (dht1.temp_c() < temp)): mode1.config(text="制冷") p_p23_out=Pin(Pin.P23, Pin.OUT) p_p23_out.write_digital(1) elif ((temp <= 24) and (dht1.temp_c() < temp)): mode1.config(text="制热") p_p24_out=Pin(Pin.P24, Pin.OUT) p_p24_out.write_digital(1) else: mode1.config(text="") mode2.config(text="") p_p22_out=Pin(Pin.P22, Pin.OUT) p_p22_out.write_digital(0) p_p24_out=Pin(Pin.P24, Pin.OUT) p_p24_out.write_digital(0) p_p21_out=Pin(Pin.P21, Pin.OUT) p_p21_out.write_digital(0) Board().begin()u_gui=GUI()flag = 0humi = 40temp = 23global t_setglobal temp_addglobal temp_minusglobal bnt_okdht1 = DHT11(Pin((Pin.P22)))t_set=u_gui.draw_text(text=temp,x=30,y=55,font_size=20, color="#0000FF")temp_add=u_gui.add_button(text="+",x=100,y=30,w=40,h=30,onclick=button_click1)temp_minus=u_gui.add_button(text="-",x=100,y=80,w=40,h=30,onclick=button_click2)bnt_ok=u_gui.add_button(text="启动",x=160,y=145,w=60,h=60,onclick=button_click3)h_set=u_gui.draw_text(text=humi,x=30,y=155,font_size=20, color="#0000FF")humi_add=u_gui.add_button(text="+",x=100,y=130,w=40,h=30,onclick=button_click4)humi_minus=u_gui.add_button(text="-",x=100,y=180,w=40,h=30,onclick=button_click5)t=u_gui.draw_text(text="",x=0,y=260,font_size=15, color="#0000FF")h=u_gui.draw_text(text="",x=130,y=260,font_size=15, color="#0000FF")mode1=u_gui.draw_text(text="",x=50,y=220,font_size=15, color="#FF0000")mode2=u_gui.draw_text(text="",x=150,y=220,font_size=15, color="#0000FF")thread2=u_gui.start_thread(u_thread2_function) while True: pass

网址:【挑战二】智能室内环境控制系统 https://www.yuejiaxmz.com/news/view/96514

相关内容

食用菌生长环境控制系统的设计与应用
智能家居中的环境监测与控制系统设计与实现
通风系统与空调系统的协同作用:打造舒适室内环境
智能环境控制:让我们的生活更加环保舒适
基于ESP32的智能家居控制系统设计
疫情后,居家智能环境改善系统将迎来大爆发!
智能家居系统:实现家庭自动化和智能化
格力空调智能控制:Java编程实现家居自动化系统
基于物联网的智能家居系统研究报告 .pdf
智能化空调施工方案集成智能控制系统提升空调使用便利性 .pdf

随便看看