项目十四 智能空调控制系统 - 任务三_第1页
项目十四 智能空调控制系统 - 任务三_第2页
项目十四 智能空调控制系统 - 任务三_第3页
项目十四 智能空调控制系统 - 任务三_第4页
项目十四 智能空调控制系统 - 任务三_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《传感器应用》主讲教师:XXX

项目十四智能空调控制系统PART14※智能空调温湿度检测功能※实现智能空调远距离控制功能14※实现智能空调综合功能项目概述科技不断的发展人们的生活质量也有了长远的进步,空调几乎成为了每个家庭的必备产品,但普通的空调无法具有自动调节温度、屋内外环境温湿度自动监测等功能,智能空调的出现就是为了解决上诉问题,小林是公司的产品研发工程师需要将其设计出来,使用树莓派开发套件编写程序调试实现上述功能,便于后续产品的研发。认识DS1302时钟芯片01认识PWM占空比调制输出02学习目标objective认识红外遥控器03技能目标objective掌握编写智能空调温度检测功能方法01掌握编写智能空调湿度检测功能方法02掌握编写树莓派PWM输出方法03掌握DS1302时钟芯片的编写方法04掌握实现编写综合程序方法05TASKTHREE任务三实现智能空调综合功能4任务概述储备知识任务实施任务目标231本次任务:要求在认识PWM与占空比之后,使用树莓派的PWM功能进行精确的控制空调制冷设备(制冷设备使用风扇模块进行代替),再将任务一、任务二代码相结合完成智能空调综合功能设计。任务概述4任务概述储备知识任务实施任务目标231TASKTHREE任务三实现智能空调综合功能01.认识树莓派PWM02.掌握树莓派PWM方法任务目标03.掌握综合程序编写方法4任务概述储备知识任务实施任务目标231TASKTHREE任务三实现智能空调综合功能01.什么是PWM储备知识02.什么是占空比03.PWM控制风扇原理01.什么是PWMPWM英文单词缩写:PulseWidthModulation中文意思:脉冲宽度调制简称:脉冲宽度调制广泛应用于测量、通信、功率控制与变换等众多领域。利用微处理器输出数字信号来对模拟电路进行控制的一种非常有效的技术方法。测量通信功率控制变换02.什么是占空比在一串理想的脉冲周期序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。图:占空比占空比脉冲信号的通电时间与通电周期之比。例如:脉冲宽度2μs,信号周期4μs的脉冲序列占空比为0.5。03.PWM控制风扇原理PWM——一种对模拟信号电平进行数字编码的方法。也可以理解为在一定的时间内用高低电平所占的比例不同来控制一个对象。通过改变方波信号的占空比改变加到控制设备的平均电压。达到改变流过设备的平均电流、功率的目的。在1ms周期内,高电平占0.3ms,低电平占0.7ms。如果用高电平去控制一个开关闭合,此开关再去控制风扇,低电平时这个开关断开,那么在1ms内,风扇就只能通电0.3ms,而0.7ms内是不通电的。风扇的通电时间只有30%。如果把高电平的时间延长到0.7ms,而低电平就只有0.3ms了,此时风扇的通电时间就变成70%了,风扇获得的能量变大,风扇转速自然变大了。例如4任务概述储备知识任务实施任务目标231TASKTHREE任务三实现智能空调综合功能04.Python程序实现PWM功能任务实施05.Python程序实现智能空调控制系统04.Python程序实现PWM功能任务所需软件如下所示:环境准备任务所需硬件如下所示:Python3PyCharm树莓派4B风扇模块(1)设备对应接口如下表说明:4.1.根据引脚说明和连线图连接设备步骤1:根据连线图连接线路树莓派T型转接板风扇模块5VVCCVCCGNDGNDGND-GPIO12INA-GPIO13INB树莓派T型转接板红外遥控接收器5VVCCVCCGNDGNDGND-GPIO17DO(2)如图所示,使用杜邦线将树莓派连接面包板后的GPIO与风扇模块连接起来,由板载的5V为模块供电。图:树莓派模块连接图4.2.Python程序实现PWM控制风扇模块步骤1:打开Python工程,编写调用类库文件(1)开启树莓派电源->打开“SmartAirC”工程文件,选择SmartAirC工程鼠标右键选择“New”->选择PythonFile新建一个新的python文件,新建一个名为“Fan.py”文件。步骤2:编写风扇程序代码并执行(1)在Fan.py文件中添加代码,实现调用函数变化风扇的转速,代码如下所示。#-*-coding:utf-8-*-#支持中文注释import

timeimportRPi.GPIOas

GPIOFan_INA_Pin=12

#风扇正转管脚定义Fan_INB_Pin=13

#风扇反转管脚定义#GPIO初始化设置def

init():

globalp_Fan_A

GPIO.setmode(GPIO.BCM)#采用BCM映射管脚给GPIO口

GPIO.setwarnings(False)

#忽略GPIO操作注意警告

GPIO.setup(Fan_INA_Pin,GPIO.OUT)

GPIO.setup(Fan_INB_Pin,GPIO.OUT)

GPIO.output(Fan_INA_Pin,GPIO.HIGH)

GPIO.output(Fan_INB_Pin,GPIO.LOW)

p_Fan_A=GPIO.PWM(Fan_INA_Pin,100)#设置频率为100Hzdef

FAN_control(Fan_speed):

p_Fan_A.ChangeDutyCycle(Fan_speed)#改变PWM占空比def

Fan_stop():

p_Fan_A.stop(0)def

Fan_Start():

p_Fan_A.start(0)#初始化占空比为0init()Fan_Start()FAN_control(10)#设置10%PWM速度while

True:

time.sleep(1)代码详解使用树莓派的PWM功能,其流程为——设置IO口为输出模式01设置IO口的PWM的频率并赋值给一个变量02控制PWM占空比函数03代码结合PWM使用方法,声明了控制风扇的几个函数,init函数为初始化IO口函数,Fan_control为控制风扇树莓派函数,Fan_stop为让IO口停止PWM输出函数,Fan_Start为让IO口开始PWM输出函数。#设置IO输出GPIO.setup(Fan_INA_Pin,GPIO.OUT)#设置改IO口为PWM口并赋值数据

p_Fan_A=GPIO.PWM(Fan_INA_Pin,100)#100为100hz的频率#设置I/O占空比

比例为0-100p_Fan_A.ChangeDutyCycle(Fan_speed)具体代码如下所示4.3.Python程序实现遥控器控制风扇转速步骤1:打开Python工程,编写调用类库文件(1)开启树莓派电源->打开“SmartAirC”工程文件,选择SmartAirC工程鼠标右键选择“New”->选择PythonFile新建一个新的python文件,新建一个名为“Fan_main.py”文件。步骤2:编写风扇程序代码并执行(1)在Fan_main.py文件中编写代码,实现使用遥控器控制风扇转速代码,代码如下所示。#!/usr/bin/envpython3#-*-coding:utf-8-*-import

timeimport

fanimportReadControlfan.init()ReadControl.init()fan.Fan_Start()Fan_speed=0while

True:

result=ReadControl.read()#获取红外遥控数据

print(result)

if

result=='KEY_VOLUMEUP':

Fan_speed+=10

if

Fan_speed>100:

Fan_speed=100

fan.FAN_control(Fan_speed)

print(Fan_speed)

if

result=='KEY_VOLUMEDOWN':

Fan_speed-=10

if

Fan_speed<0:

Fan_speed=0

fan.FAN_control(Fan_speed)

print(Fan_speed)

time.sleep(0.01)代码详解本次案例中代码——调用先前任务写好的类库调用红外遥控库获取红外遥控数据当获取到的数据为KEY_VOLUMEUP时让Fan_speed风扇变量减10,之后调用风扇控制代码传入Fan_speed作为参数。之后调用风扇控制代码传入Fan_speed作为参数。技能拓展(1)修改任务代码实现当风扇速度加到100时清0,减到0时变100的程序。(2)修改任务代码实现任意自定义两个按键,当按下一个按键时让风扇速度变为50,按下另外一个按键时速度为0。05.Python程序实现智能空调控制系统任务所需软件如下所示:环境准备Python3PyCharm任务所需硬件如下所示:树莓派4BLCD1602模块红外遥控接收器遥控器模块风扇模块温湿度传感器DS1302时钟模块(1)设备对应接口如下表说明:5.1.根据引脚说明和连线图连接设备步骤1:根据连线图连接线路树莓派T型转接板风扇模块5VVCCVCCGNDGNDGND-GPIO12INA-GPIO13INB树莓派T型转接板DS1302时钟模块5VVCCVCCGNDGNDGND-GPIO18DATGPIO19CLKGPIO27RST树莓派T型转接板红外遥控接收器5VVCCVCCGNDGNDGND-GPIO17DO树莓派T型转接板LCD1602SDASDASDASCLSCLSCLGNDGNDGNDVCC5VVCC树莓派T型转接板温湿度传感器-G16DATAGNDGNDGND(G)3.3V3.3VVCC(+)(2)如图所示,使用杜邦线将树莓派连接面包板后的GPIO与风扇模块、红外遥控接收器、DS1302时钟模块、温湿度传感器、LCD1602模块连接起来,由板载的5V为模块供电。图:树莓派模块连接图5.2.Python程序实现智能空调综合功能步骤1:打开Python工程文件(1)开启树莓派电源->打开“SmartAirC”工程文件。步骤2:编写智能空调主程序代码并执行(1)在main.py文件中添加代码(main.py代码为任务一main.py代码),添加功能实现当按下遥控器时切换LCD1602模式,默认模式为时间与温湿度模式,切换模式为风扇控制模式,在风扇控制模式下时可调节风扇速度比列代码如下所示。(注意根据IO连线修改对应代码)#!/usr/bin/envpython3#-*-coding:utf-8-*-from

datetime

import

datetimefromDS1302importDS1302importAdafruit_DHTimportLCD1602importReadControlimportfanimport

timeimport

threadingmode=0Fan_speed=0DHT11_pin=16#模块初始化代码sensor=Adafruit_DHT.DHT11if__name__=="__main__":

try:DS1302=DS1302()#实例化ds1302对象y

#设置时间为2021年8月17日20点26分0秒DS1302.set_datetime(datetime(2021,8,17,20,26,0))#设置时间

LCD1602.init()

ReadControl.init()

fan.init()

fan.Fan_Start()

while

True:

#获取红外传感器数据

if

result=='KEY_VOLUMEDOWN'

and

mode==1:

Fan_speed-=10

if

Fan_speed<0:

Fan_speed=0

fan.FAN_control(Fan_speed)

#模式-显示温度和时间

if

mode==0:

#获取时间

ds_dt=DS1302.get_datetime()

#获取温度

humidity,temperature=Adafruit_DHT.read_retry(sensor,DHT11_pin)

result=ReadControl.read()

if

result=='KEY_EQUAL':

#两种模式切换

if

mode==0:

mode=1

else:

mode=0

#清屏

LCD1602.write(0,0,"")

LCD1602.write(0,1,"")

if

result=='KEY_VOLUMEUP'

and

mode==1:

Fan_speed+=10

if

Fan_speed>100:

Fan_speed=100

fan.FAN_control(Fan_speed)

print('温度:'+str(temperature)+'湿度:'+str(humidity))

LCD1602.write(0,0,str(ds_dt.year)+'-'+str(ds_dt.month)+'-'+str(ds_dt.day)+'T:'+str(

temperature))

LCD1602.write(0,1,str(ds_dt.hour)+'.'+str(ds_dt.minute)+'.'+str(ds_dt.second)+'H:'+str(

humidity))

#显示数据

print(str(ds_dt.year)+'年'+str(ds_dt.month)+'月'+str(ds_dt.day)+'日')

print(str(ds_dt.hour)+'时'+str(ds_dt.minute)+'分'+str(ds_dt.second)+'秒')

#模式-显示风扇速度

if

mode==1:

LCD1602.write(0,0,"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论