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

下载本文档

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

文档简介

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

项目十四智能空调控制系统PART14※智能空调温湿度检测功能※实现智能空调远距离控制功能14※实现智能空调综合功能项目概述科技不断的发展人们的生活质量也有了长远的进步,空调几乎成为了每个家庭的必备产品,但普通的空调无法具有自动调节温度、屋内外环境温湿度自动监测等功能,智能空调的出现就是为了解决上诉问题,小林是公司的产品研发工程师需要将其设计出来,使用树莓派开发套件编写程序调试实现上述功能,便于后续产品的研发。认识DS1302时钟芯片01认识PWM占空比调制输出02学习目标objective认识红外遥控器03技能目标objective掌握编写智能空调温度检测功能方法01掌握编写智能空调湿度检测功能方法02掌握编写树莓派PWM输出方法03掌握DS1302时钟芯片的编写方法04掌握实现编写综合程序方法05TASKONE任务一智能空调温湿度检测功能4任务概述储备知识任务实施任务目标231本次任务:在掌握温度传感器获取数据后,根据项目实际功能要求开发空调温度检测功能。任务概述4任务概述储备知识任务实施任务目标231TASKONE任务一智能空调温湿度检测功能01.掌握DS1302驱动编写方法02.掌握温度传感器驱动程序开发任务目标03.掌握综合程序编写方法4任务概述储备知识任务实施任务目标231TASKONE任务一智能空调温湿度检测功能01.认识DS1302时钟芯片储备知识01.认识DS1302时钟芯片DS1302由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。可以让芯片实时获取当前最新的时间不需要连接网络只需要使用钮扣电池进行供电。01主要性能指标:DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。02内部含有31个字节静态RAM,可提供用户访问。03采用串行数据传送方式,使得管脚数量最少,简单SPI3线接口。04工作电压范围宽:2.0~5.5V。05工作电流:2.0V时,小于300nA。06时钟或RAM数据的读/写有两种传送方式:单字节传送和多字节传送方式。07采用8脚DIP封装或SOIC封装。08与TTL兼容,Vcc=5V。09可选工业级温度范围:-40C~+85C。10具有涓流充电能力。11采用主电源和备份电源双电源供应。12备份电源可由电池或大容量电容实现。图:DS1302电路原理图1.1.芯片引脚意义VCC1和VCC2,为两个供电电源;X1和X2接32768Hz晶振;SCLK和IO和RST共同完成通讯过程。SCLK为通讯的时钟信号。开始通讯。当RST为高电平时图:DS1302时钟芯片芯片引脚1.2.DS1302相关寄存器DS1302控制寄存器时钟寄存器日历RAM1个12个31个1个控制寄存器控制寄存器用于存放DS1302的控制命令字。DS1302的RST引脚回到高电平后(复位后)写入的第一个字节就为控制命令。它用于对DS1302读写过程进行控制,格式如下:图:DS1302命令格式DS1302中——用于选择是写入ds1302还是读取ds1302里面的数据。第0位第1-5位第6位第7位进行组合来选择控制哪个日期寄存器。进行选择是对RAM进行控制还是时钟寄存器进行控制。固定为1。图:日期寄存器列表日历/时钟寄存器DS1302共有12个寄存器其中有7个与日历、时钟相关,存放的数据为BCD码形式。格式如下图所示。图:日期寄存器1.3.DS1302数据读写操操作数据被写入DS1302,数据输入从低位(位0)开始。在控制指令字输入后的下一个SCLK时钟的上升沿时——同样在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7,如图所示。图:单字节读图:单字节写4任务概述储备知识任务实施任务目标231TASKONE任务一智能空调温湿度检测功能02.Python程序实现液晶屏显示当前时间任务实施03.Python程序实现获取温湿度信息并显示02.Python程序实现液晶屏显示当前时间任务所需软件如下所示:环境准备任务所需硬件如下所示:Python3PyCharm树莓派4BLCD1602模块DS1302时钟模块(1)设备对应接口如下表说明:2.1.根据引脚说明和连线图连接设备步骤1:根据连线图连接线路树莓派T型转接板DS1302时钟模块5VVCCVCCGNDGNDGND-GPIO19CLK-GPIO18DAT-GPIO27RST树莓派T型转接板LCD1602SDASDASDASCLSCLSCLGNDGNDGNDVCC5VVCC(2)如图所示,使用杜邦线将树莓派连接面包板后的GPIO与DS1302时钟模块、LCD1602模块连接起来,由板载的5V为模块供电。图:树莓派模块连接图2.2.Python程序实现显示当前时间步骤1:新建Python工程,复制类库文件(1)开启树莓派电源->打开Pycharm软件新建工程名称为“SmartAirC”,使用SSH方式连接树莓派。新建工程流程与项目十三一致(2)在新建工程的界面中,选择SmartAirC工程鼠标右键选择“New”->选择PythonFile新建一个新的python文件,新建一个名为“DS1302.py”的Python文件与“LCD1602.py”文件。如图所示。图:新建python文件(3)在“项目十四\配套代码”中打开DS1302.py文件,复制代码至DS1302.py文件中,如图所示。图:DS1302代码(4)在“项目十四\配套代码”中打开LCD1602.py文件,复制代码至LCD1602.py文件中。步骤2:编写主程序代码并执行(1)在main.py文件中输入代码,实现实时(每秒获取一次)在LCD液晶显示屏中显示从DS1302模块中获取的时钟的信息。第一行显示2021-07-21(年-月-日)第二行显示10.20.10(时-分-秒)代码如下所示#!/usr/bin/envpython3#-*-coding:utf-8-*-from

datetime

import

datetimefromDS1302importDS1302import

LCD1602import

timeDS1302=DS1302()#实例化ds1302对象#设置时间为2021年8月17日20点26分0秒DS1302.set_datetime(datetime(2021,8,17,20,26,0))#设置时间while

True:#获取时间

ds_dt=DS1302.get_datetime()

LCD1602.init()

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

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

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)+'秒')

time.sleep(1)图:LCD1602显示时间代码详解本次案例中代码调用DS1302的类库文件获取DS1302的时钟数据,类库的函数调用说明如下所示。函数名:get_datetime(无参数)返回值:datetime类型,返回时间类型数据函数功能:获取当前时间数据函数名:set_datetime(datetime)参数1:datetime类型,设置的时间函数功能:设置当前时间设置DS1302模块的时间函数,其中参数为datetime类型,传入参数时可申明一个datetime类,类中加入——代码DS1302.set_datetime(datetime(2021,8,17,20,26,0))年:2021月:8日:17时:20分:26秒:0调用后则DS1302的内部寄存器会存储输入的时间数据。获取DS1302模块的时间函数,获取后返回的类型为datetime类型。代码DS1302.get_datetime()该类型可直接将年月日时分秒的数据引用出来,如——ds.dt.year为年的信息技能拓展(1)修改任务代码实现将时间信息更改为当前的时间,并每半秒调用一次。(2)修改任务代码实现在设置一个时间信息,并在时间到达时打印信息“时间到达”。03.Python程序实现获取温湿度信息并显示任务所需软件如下所示:环境准备任务所需硬件如下所示:Python3PyCharm树莓派4BLCD1602模块DS1302时钟模块温湿度传感器(1)设备对应接口如下表说明:3.1.根据引脚说明和连线图连接设备步骤1:根据连线图连接线路树莓派T型转接板DS1302时钟模块5VVCCVCCGNDGNDGND-GPIO19CLK-GPIO18DAT-GPIO27RST树莓派T型转接板温湿度传感器-G17DATAGNDGNDGND(G)3.3V3.3VVCC(+)树莓派T型转接板LCD1602SDASDASDASCLSCLSCLGNDGNDGNDVCC5VVCC(2)如图所示,使用杜邦线将树莓派连接面包板后的GPIO与DS1302时钟模块、LCD1602模块、温湿度模块连接起来,由板载的5V为模块供电。图:树莓派模块连接图(1)开启树莓派电源->打开“SmartAirC”工程文件,选择SmartAirC工程鼠标右键选择“New”->选择PythonFile新建一个新的python文件,新建一个名为“DHT11.py”文件。3.2.Python程序实现显示当前温湿度步骤1:打开Python工程,复制类库文件(2)在“项目十四\配套代码”中打开DHT11.py文件,复制代码至DHT11.py文件中。在main.py文件中修改添加代码,在满足显示当前时间功能外显示当前温度与湿度信息在,代码如下所示(代码中省略其他不变的代码保留添加修改的代码)。步骤1:编写主程序代码并执行…importAdafruit_DHT…DHT11_pin=17…while

True:…

humidity,temperature=Adafruit_DHT.read_retry(Adafruit_DHT.DHT11,DHT11_pin)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))

time.sleep(1)图:显示获取温湿度数据代码详解本次案例中代码调用Adafruit_DHT的类库文件获取DHT11的温湿度数据,类库的函数调用说明如下所示。函数名:read_retry(参数1,参数2)参数1:模块名称参数2:数据IO口返回值:float温度数据,float湿度数据函数功能:获取DHT系列的温度与湿度数据注意在调用函数过程中的由于函数返回的数据有两个所以需要用两个变量存储数据。温度数据第一个湿度数据第二个函数中参数1可切换各种类型的DHT系列芯片获取数据。humidity,temperature=Adafruit_DHT.read_retry(Adafruit_DHT.DHT1

温馨提示

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

评论

0/150

提交评论