版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《传感器应用》主讲教师:XXX
项目十冰箱温湿度检测器PART10※温湿度传感器选型与检测※实现冰箱湿度检测器10项目概述某品牌公司使用温湿度模块过于老旧精度不精确,现某公司要设计一个冰箱的温湿度监测产品使用模块更为精确合适,小林是公司的产品研发工程师,使用新的温湿度模块获取精确的温湿度数据,使用树莓派开发套件编写程序调试实现上述功能,便于后续产品的研发。认识温湿度传感器的工作原理和检测方法01认识热敏和湿敏传感器的工作原理和应用02学习目标objective技能目标objective掌握Python语言中列表的定义和使用方法01掌握Python语言中文件的读写方法02掌握Python语言驱动温湿度传感器方法03TASKTWO任务二实现冰箱湿度检测器4任务概述储备知识任务实施任务目标231本次任务:在了解温湿度传感器的工作原理和数据获取方式之后,使用python语言开发程序,实现根据温湿度传感器获取数据并转化为十进制数据,并存入文件中,同时了解使用库文件的方式来获到数据。任务概述4任务概述储备知识任务实施任务目标231TASKTWO任务二实现冰箱湿度检测器01.掌握Python的列表数据操作方法02.掌握Python文件的读写方法任务目标03.了解Python程序调用Adafruit_DHT库的方法4任务概述储备知识任务实施任务目标231TASKTWO任务二实现冰箱湿度检测器01.Python中文件的读写储备知识01.Python中文件的读写程序运行时,数据都是在内存中驻留,由CPU来执行,涉及到数据交换的地方就需要IO接口,文件读写就是一种常见的IO操作。Python中的sys模块中定义了操作IO接口的标准文件,其中的stdout就是控制标准输出文件,在解释器中导入sys模块后,便可对标准文件进行操作。打开文件内置函数open()用于打开文件,该方法的声明如下open(file,mode='r',buffering=-1)参数file:文件的路径。mode:设置文件的打开模式,取值有r、w、a。r:以只读方式打开文件(mode参数的默认值)。w:以只写方式打开文件。a:以追加方式打开文件。b:以二进制形式打开文件。+:以更新的方式打开文件(可读可写)buffering:设置访问文件的缓冲方式。取值为0或1。打开模式名称描述r/rb只读模式以只读的形式打开文本文件/二进制文件,若文件不存在或无法找到,文件打开失败w/wb只写模式以只写的形式打开文本文件/二进制文件,若文件已存在,则重写文件,否则创建新文件a/ab追加模式以只写的形式打开文本文件/二进制文件,只允许在该文件末尾追加数据,若文件不存在,则创建新文件r+/rb+读取(更新)模式以读/写的形式打开文本文件/二进制文件,若文件不存在,文件打开失败w+/wb+写入(更新)模式以读/写的形式打开文本文件/二进制文件,若文件已存在,则重写文件a+/ab+追加(更新)模式以读/写的形式打开文本/二进制文件,只允许在文件末尾添加数据,若文件不存在,则创建新文件表:打开文件的模式返回值(1)若open()函数调用成功,返回一个文件对象。file1=open('E:\\a.txt') #以只读方式打开E盘的文本文件a.txtfile2=open('b.txt','w') #以只写方式打开当前目录的文本文件b.txtfile3=open('c.txt','w+') #以读/写方式打开文本文件c.txtfile4=open('d.txt','wb+')#以读/写方式打开二进制文件d.txt(2)关闭文件file.close()#关闭文件Python可通过close()方法关闭文件,也可以使用with语句实现文件的自动关闭。(3)文件读写f=open('file.txt',mode='r')print(f.read(2)) #读取两个字节的数据print(f.read()) #读取剩下的全部数据read()方法可以从指定文件中读取指定字节的数据,其语法格式如下:write(data)write()方法可以将指定字符串写入文件,其语法格式如下:string="hello" #字符串f=open('write_file.txt',mode='w') size=f.write(string) #写入字符串print(size) #打印字节数5参数data表示要写入文件的数据,若数据写入成功,write()方法会返回本次写入文件的数据的字节数。思考练习(1)在Python中尝试打开d:\\data.txt文件,并读取文件中的数据。(2)在Python中尝试打开d:\\data.txt文件,并以追加的方式写入数据。4任务概述储备知识任务实施任务目标231TASKTWO任务二实现冰箱湿度检测器02.Python程序实现冰箱温湿度检测任务实施02.Python程序实现冰箱温湿度检测任务所需软件如下所示:VNC-Viewer环境准备任务所需硬件如下所示:树莓派4B温湿度传感器2.1.根据引脚说明和连线图连接设备(1)各设备对应接口如以下表说明树莓派T型转接板温湿度传感器GPIO0G17DATAGNDGNDGND(G)3.3V3.3VVCC(+)(2)如图所示,使用杜邦线将树莓派连接面包板后的GPIO与温湿度传感器模块、连接起来,由板载的5V为模块供电。图:树莓派模块线路图2.2.Python程序实现检测冰箱温湿度并写入文件步骤1:打开mu开发环境,新建Python文件(1)开启树莓派电源->打开“VNC-Viewer”软件连接树莓派->输入IP地址->用户名密码。(2)连接成功后,在点击左上方【树莓派】图标->选择【编程】->点击打开【mu】软件。图:打开PythonIDE(3)打开“mu”软件,软件界面后如图所示:图:mu软件界面(4)单击“mu”软件界面上的按钮,新建一个名为“th_sensor.py”的Python文件,保存在“/home/pi/mu_code”目录下。步骤2:编写和验证代码输入代码,实现读取温湿度传感器的数据,并写入文本文件。#-*-coding:utf-8-*-#支持中文注释importRPi.GPIOas
GPIOimport
timeimport
datetime
#加载datetime模块用于获取系统日期时间import
sys
#加载sys模块用于文件操作th_data=[]#定义一个链表数组用来存放接收的传感器数据th_sensor=11
#DHT11模块DATA控制管脚对应T型板17口i=0GPIO.setmode(GPIO.BOARD)while
True:#循环读取数据
#线路准备模块
time.sleep(1)
#每一秒钟检测一次,可更改
GPIO.setup(th_sensor,GPIO.OUT)
GPIO.output(th_sensor,GPIO.LOW)
time.sleep(0.02)
GPIO.output(th_sensor,GPIO.HIGH)
#DHT11响应模块
GPIO.setup(th_sensor,GPIO.IN)
while
GPIO.input(th_sensor)==GPIO.HIGH:
continue
while
GPIO.input(th_sensor)==GPIO.LOW:
continue
while
GPIO.input(th_sensor)==GPIO.HIGH:
continue#数据接收模块#开始接收传感器40bit数据
while
i<40:
while
GPIO.input(th_sensor)==GPIO.LOW:
continue
time1=time.time_ns()
while
GPIO.input(th_sensor)==GPIO.HIGH:
continue
time2=time.time_ns()
if
time2-time1>=40000:
th_data.append(1)
else:
th_data.append(0)
i=i+1
#按40bit传感器的数据结构进行分组,前16位为湿度高位和湿度低位,后16位为温度高位和温度低位
humi_bit=th_data[0:8]#将列表中前8位存入代表湿度高位的变量
humipoint_bit=th_data[8:16]#将列表中9到16位存入代表湿度低位的变量
temp_bit=th_data[16:24]#将列表中17到24位存入代表温度高位的变量
temppoint_bit=th_data[24:32]#将列表中25到32位存入代表温度低位的变量
check_bit=th_data[32:40]#将列表中33到40位存入代表校验值的变量
humidity=0
humidity_point=0
temperature=0
temperature_point=0
Humidity_data=0
Temperature_data=0
check=0
result=0
#利用循环将二进制数转化为十进制数
for
i
in
range(8):
humidity+=humi_bit[i]*2**(7-i)
humidity_point+=humipoint_bit[i]*2**(7-i)
temperature+=temp_bit[i]*2**(7-i)
temperature_point+=temppoint_bit[i]*2**(7-i)
check+=check_bit[i]*2**(7-i)
result=humidity+humidity_point+temperature+temperature_point
#最后8bit校验位校验传输的数据是否正确,并进行输出
f=open("/home/pi/th_data",mode="a")
#以追加写入的方式打开文件
#将准备写入的数据进行格式化
if
check==result:
humidity_data=humidity+humidity_point/100
temperature_data=temperature+temperature_point/100
str_data="humidity:"+str(humidity_data)+"%"+"temperature:"\+str(temperature_data)+"*c"
else:
str_data="wrong"
f.write(str_data+"time:"+str(datetime.datetime.now())+"\n")#写入文件f.close()#关闭文件loopGPIO.cleanup()步骤3:打开th_data文档查看写入的数据图:文件写入效果代码详解(1)表示切片获取列表中第1个到第8个数据。humi_bit=th_data[0:8](2)表示以可以追加写入的方式打
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国糠醛市场深度调查与未来前景预测报告
- 2026年中国有源滤波器行业市场调查及“十五五”投资战略预测报告
- 2026年中国流量控制器市场前景研究与市场度调研报告
- 湖北黄石市2026年全市高三(9月)质量监测化学试卷
- 2026年中国铝电池壳市场分析调查及行业投资前景趋势报告
- 2026年中国螺旋埋弧焊管行业发展前景分析及投资策略咨询报告
- 2026年中国睡衣产业全景调研研究报告
- 2026年有源电力滤波器APF现状研究及发展前景趋势报告
- 风动铆接工具安全操作规程技术交底培训
- 旋挖钻机安全环保技术措施交底培训
- 2026年中国银行招聘考试试题真题解析
- 2026年常州市中考语文试卷(含答案)
- 新版2025-2026学年湘美版(2026秋新教材)小学美术六年级上册(全册)教学设计合集
- 深圳报业集团笔试题目答案大全解析
- 《房地产信托投融资实务及典型案例》目录
- 2026统考专升本政治:考前冲刺资料
- 中国面神经炎临床诊疗指南(2025版)
- 2025年中考政治总复习提纲
- 西方传播学理论评析 第6章 全球化与全球传播理论
- 工业药剂学期末期中考试题库及答案
- 生产过程中次品管理制度
评论
0/150
提交评论