项目十 冰箱温湿度检测器 - 任务一_第1页
项目十 冰箱温湿度检测器 - 任务一_第2页
项目十 冰箱温湿度检测器 - 任务一_第3页
项目十 冰箱温湿度检测器 - 任务一_第4页
项目十 冰箱温湿度检测器 - 任务一_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

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

项目十冰箱温湿度检测器PART10※温湿度传感器选型与检测※实现冰箱湿度检测器10项目概述某品牌公司使用温湿度模块过于老旧精度不精确,现某公司要设计一个冰箱的温湿度监测产品使用模块更为精确合适,小林是公司的产品研发工程师,使用新的温湿度模块获取精确的温湿度数据,使用树莓派开发套件编写程序调试实现上述功能,便于后续产品的研发。认识温湿度传感器的工作原理和检测方法01认识热敏和湿敏传感器的工作原理和应用02学习目标objective技能目标objective掌握Python语言中列表的定义和使用方法01掌握Python语言中文件的读写方法02掌握Python语言驱动温湿度传感器方法03TASKONE任务一温湿度传感器选型与检测4任务概述储备知识任务实施任务目标231本次任务:在掌握温湿度传感器的原理后,连接好电路板,通过Python程序获取传感器传输的数据,并在程序控制台中显示二进制数据。任务概述4任务概述储备知识任务实施任务目标231TASKONE任务一温湿度传感器选型与检测01.了解热敏电阻和温敏电阻的工作原理02.了解温湿度传感器的工作原理任务目标03.掌握Python程序获取温湿度传感器的数据的方法4任务概述储备知识任务实施任务目标231TASKONE任务一温湿度传感器选型与检测01.温湿度及其测量储备知识02.温湿度传感器的选型03.温湿度传感器的工作原理04.了解Python的数据组合类型01.温湿度及其测量温度和湿度有着密不可分的关系,它们如同亲密的战友,必须密切配合,协同合作才能让事物朝着预想的方向行进。1农林渔牧2卫生医药3食品4电子产品5冷链物流温湿度的监控显得尤其重要,需要及时进行温湿度的监控,并利用监控结果进行分析调节。在很多领域,比如——温度(temperature)温度只能通过物体随温度变化的某些特性来间接测量。而用来量度物体温度数值的标尺叫温标,国际单位为热力学温标(K),用得较多的其他温标有华氏温标(°F)、摄氏温标(°C)。湿度(Humidity)在一定的温度下在一定体积的空气里含有的水汽越少,则空气越干燥;水汽越多,则空气越潮湿,最常用的表示湿度的物理量是空气的相对湿度。用%RH表示。表示物体冷热程度的物理量表示大气干燥程度的物理量热敏电阻主要靠热敏电阻器来进行温度的测量,热敏电阻对温度非常敏感,不同的温度下表现出不同的电阻值。热敏型温度传感器正温度系数热敏电阻器(PTC)[在温度越高时电阻值越大负温度系数热敏电阻器(NTC)[在温度越高时电阻值越低在一定的温度范围内,根据测量热敏电阻阻值的变化,便可知被测介质的温度变化。湿敏电阻检测工作主要是通过湿敏电阻来完成。湿敏电阻是利用湿敏材料吸收空气中的水分而导致本身电阻值发生变化这一原理而制成的。湿度传感器湿敏电阻的工作原理在基片上覆盖一层用感湿材料制成的膜,当空气中的水蒸气吸附在感湿膜上时,元件的电阻率和电阻值都发生变化,通过校验湿度值的变化就可以利用电阻值的变化转化为湿度变化,进而实现测量湿度的效果。目前工业上常见的湿敏电阻主要有半导体陶瓷湿敏元件氯化锂湿敏电阻有机高分子膜湿敏电阻02.温湿度传感器的选型温湿度传感器选型主要要考虑的参数有温度范围(°C)线性准确性是否需要电源一般常见的类型有热电偶电阻温度检测器(RTD)热敏电阻(NTC/PTC)芯片型温湿度传感器它们各自有自己的适用场景。本次实验选用的是DHT11温湿度传感器。DHT11温湿度传感器一款含有已校准数字信号输出的温湿度复合传感器采用单线制串行接口,它包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接,内部储存中含有较为精确的校验系数,因此处理信号的过程需要调用该校验库。图:DHT11温淡度传感器DHT11温湿度传感器的参数供电电压3~5.5V温度测量范围0~50°C精确度±2℃湿度测量范围20~90%RH精确度±5%RH图:DHT11I温淡度传感器电路图03.温湿度传感器的工作原理因此所有的控制信号和数据交换均由一条线完成,一次传送40Bit的数据,数据高位先出。DHT11温湿度传感器采用:单线通信数据格式8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位DHT11是如何发送控制信号及数据的?线路准备当线路为高电平时表示:空闲状态至此主机信号发送完毕,DHT11传感器检测到信号便准备开始工作我们需要给传感器引脚一个低电平(至少18us)随后拉高电平信号并延时20-40us将总线电平拉低80us表示:响应信号如果检测到DHT11响应信号为高电平,则表示初始化失败,需要检查是否是线路问题。DHT11重新将总线拉回高电平当检测到总线持续一段时间的约为80us的高电平(20-100us),表示初始化工作完毕,准备开始传输传感器数据。图:DHT11发送数据准备发送数据我们在判断数据是0还是1时,可以在50us低电平后,测试随后高电平的持续时间,取一个中间值40us做为判别标准,超过40us高电平时间即为1,否则为0。DHT11发送每1bit的数据都由50us的低电平开始做为识别间隔随后:高电平时间长短代表了数据信号是0还是1当高电平持续26~28us时,表示数据“0”当持续70us时,表示数据“1”数据传输完毕后,再以50us低电平表示数据结束。图:DHT11发送数据准备数据转换DHT11接收来的数据格式8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位例如当接收来的40bit的传感器数据为01001001湿度整数00000000湿度小数00011001温度整数00000000温度小数1100010校验位表示数据没有错误,再将二进制转换为十进制即为:湿度73%温度25°C湿度整数+湿度小数+温度整数+温度小数=校验位04.了解Python的数据组合类型我们生活中会把使用的东西进行归类存放,比如衣服会整理好放衣柜,工具会整理好放工具箱,同样,我们要对较多的同类数据进行存放的话,会把它们归类放入数据组合类型中,这样可以只需要一个变量就能统一管理调用。Python中的数据组合类型有列表元组字典集合本章我们重点来认识列表。列表的定义和赋值列表的定义方式非常简单,既可以直接使用中括号“[]”创建,也可以使用内置的list()函数快速创建,如:list_x=[] #使用[]创建空列表li_test=list() #使用list()创建空列表list_test=['a','b','c','d','e']#创建列表并为其赋值print(list_test[1])#索引方式输出,下标从0开始,1为第2个列表元素,即:'b'print(list_test[1:2])#切片方式输出第2个到第3个列表元素,即:'b''c'print(list_test[:2])#省略起始位置则表示从头开始取到第3个元素即:'a''b''c'print(list_test[2:])#省略终止位置则表示从起始取完,即:'c''d''e'列表中的元素可以通过索引或切片这两种方式进行访问,也可以在循环中依次访问。列表元素的操作向列表中添加和删除元素是非常常见的一种列表操作。list_test.append('f')#往列表末尾添加元素'f'list_test.insert(2,'f')#按索引标志2在列表的第2个位置插入元素append()extend()insert()Python提供了几个方法用来添加元素列表元素的删除dellist_test[0]#删除列表中的指定元素list_test.remove('e')#移除列表中匹配到的第一个元素list_test.clear()#清空列表删除列表元素的常用方式有——del语句remove()方法pop()方法clear()方法思考练习(1)当DHT11传输的数据为0101101000000000000110110000000001110101,校验是否通过?所对应的湿度和温度分别是多少?(2)尝试定义一个列表,利用循环的方式对列表进行赋值和输出。4任务概述储备知识任务实施任务目标231TASKONE任务一温湿度传感器选型与检测05.检测温湿度传感器任务实施05.检测温湿度传感器任务所需软件如下所示:VNC-Viewer环境准备任务所需硬件如下所示:树莓派4B温湿度传感器5.1.根据引脚说明和连线图连接设备(1)各设备对应接口如以下表说明树莓派T型转接板温湿度传感器GPIO0G17DATAGNDGNDGND(G)3.3V3.3VVCC(+)(2)如图所示,使用杜邦线将树莓派连接面包板后的GPIO与温湿度传感器模块、连接起来,由板载的5V为模块供电。图:树莓派模块连接图5.2.Python程序实现检测传感器步骤1:打开mu开发环境,新建Python文件(1)开启树莓派电源->打开“VNC-Viewer”软件连接树莓派->输入IP地址->用户名密码。(2)连接成功后,在点击左上方【树莓派】图标->选择【编程】->点击打开【mu】软件。图:打开PythonIDE(3)打开“mu”软件,软件界面后如图所示:图:mu软件界面(4)单击“mu”软件界面上的按钮,新建一个名为“th_test.py”的Python文件,保存在“/home/pi/mu_code”目录下。步骤2:编写和验证代码(1)输入代码,通过模拟温湿度传感器的线路准备和数据传输过程,实现读取温湿度传感器输出的数据。#-*-coding:utf-8-*-#支持中文注释importRPi.GPIOasGPIOimporttimeth_data=[]#定义一个链表数组用来存放接收的传感器数据th_sensor=11#DHT11模块DATA控制管脚对应T型板17口i=0GPIO.setmode(GPIO.BOARD)whileTrue:#循环读取数据

#线路准备模块time.sleep(1)GPIO.setup(th_sensor,GPIO.OUT)GPIO.output(th_sensor,GPIO.LOW)

#输出低电平并保持20ustime.sleep(0.02)GPIO.output(th_sensor,GPIO.HIGH)

#拉高电平等待DHT11响应图:线路准备电平模拟图#DHT11响应模块GPIO.setup(th_sensor,GPIO.IN)

whileGPIO.input(th_sensor)==GPIO.HIGH:#识别高电平信号并等待其结束

continue

whileGPIO.input(th_sensor)==GPIO.LOW:#识别DHT11响应低电平信号并等待

continuewhileGPIO.input(th_sensor)==GPIO.HIGH:#识别高电平并等待其结束

continue图:DHT11响应电平状态模拟图#数据接收模块

#开始接收传感器40bit数据

whilei<40:

whileGPIO.input(th_sensor)==GPIO.LOW:#识别前50us的低电平并等待

continuetime1=time.time_ns()#计时高电平开始时间

whileGPIO.input(th_sensor)==GPIO.HIGH:

continuetime2=time.time_ns()#计时高电平结束时间

iftime2-time1>=40000:#以40us为分界点来判断是0还是1th_data.append(1)#往数组中添加

温馨提示

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

评论

0/150

提交评论