传感器技术项目式教程题库及答案《项目十 冰箱温湿度监测器》题库_第1页
传感器技术项目式教程题库及答案《项目十 冰箱温湿度监测器》题库_第2页
传感器技术项目式教程题库及答案《项目十 冰箱温湿度监测器》题库_第3页
传感器技术项目式教程题库及答案《项目十 冰箱温湿度监测器》题库_第4页
传感器技术项目式教程题库及答案《项目十 冰箱温湿度监测器》题库_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

《项目十》题库一.单选题(共15题)1.DTH11温湿度传感器是要靠()来进行温度的测量。A.热电偶B.热敏电阻器C.IC温度传感器D.湿敏电阻器2.湿敏电阻是利用湿敏材料吸收空气中的水分而导致()发生变化这一原理而制成的。A.电压B.电流C.电阻值D.功率3.DHT11温湿度传感器的数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+()。A.8bit校验位B.8bit停止位C.8bit起始位D.8bit数据位4.DHT11线路长时间保持在高电平时,表示模块处于()状态。A.等待B.空闲C.工作D.待机5.DHT11发送每1bit的数据都由()的低电平开始做为识别间隔,随后的高电平时间长短代表了数据信号是0还是1。A.20usB.30usC.40usD.50us6.DHT11温湿度传感器接收来的数据为:01001001

00000000

00011001

00000000

1100010,转换为十进制后的数据为:()。A.湿度73,温度25B.湿度25,温度73C.湿度72,温度25D.湿度73,温度247.Python编程中在解释器中导入()模块后,便可对标准文件进行操作。A.timeB.osC.sysD.xml8.Python编程中我们需要追加文件内容数据,那么open函数的模式参数应该选择:()。A.rB.wC.w+D.a+9.下列Python代码中能将指定字符串写入文件的是:()。A.f=open('file.txt',mode='r') B.f=open('file.txt',mode='r')f.read() f.write(“helloworld”)C.f=open('file.txt',mode='w') D.f=open('file.txt',mode='a+')f.write(“helloworld”) f.write(“helloworld”)10.下列代码中能正确DHT11模块发送主机信号的是:()。A.GPIO.setup(th_sensor,GPIO.IN) B.GPIO.setup(th_sensor,GPIO.IN)GPIO.output(th_sensor,GPIO.HIGH) GPIO.output(th_sensor,GPIO.LOW)time.sleep(0.02) time.sleep(0.02)GPIO.output(th_sensor,GPIO.LOW) GPIO.output(th_sensor,GPIO.HIGH)time.sleep(0.02) time.sleep(0.02)C.GPIO.setup(th_sensor,GPIO.OUT) D.GPIO.setup(th_sensor,GPIO.OUT)GPIO.output(th_sensor,GPIO.HIGH) GPIO.output(th_sensor,GPIO.LOW)time.sleep(0.02) time.sleep(0.02)GPIO.output(th_sensor,GPIO.LOW) GPIO.output(th_sensor,GPIO.HIGH)time.sleep(0.02) time.sleep(0.02)二.判断题(共计15题)1.温度(temperature)是表示物体冷热程度的物理量,湿度(Humidity)表示大气干燥程度的物理量。 ()2.温湿度传感器选型要考虑的参数有:检测范围、准确性、线性及是否需要电源等。()3.DHT11温湿度传感器采用双向交替通信,数据发送与接收使用两个信道交替进行。()4.DHT11传感器检测到信号便准备开始工作,将总线电平拉低80us表示响应信号,代表初始化工作完毕。 ()5.数据传输完毕后,再以50us高电平表示数据结束。 ()6.程序运行时,数据都是在内存中驻留,由CPU来执行,涉及到数据交换的地方就需要IO接口,文件读写就是一种常见的IO操作。 ()7.删除列表元素的常用方式有del语句、remove()方法、pop()方法和extend()方法。()8.在Python的文件操作函数中可以用open()方法从指定文件中读取指定字节的数据。()9.DHT11模块的数据校验位=湿度整数+温度整数 ()10.DHT11接收来的数据格式为二进制数据,我们需要再将二进制转换为十进制正常温湿度数据。 ()三.填空题(共计15题)1.湿度传感器的检测工作主要是通过来完成。正温度系数热敏电阻器(PTC)在温度越高时电阻值,负温度系数热敏电阻器(NTC)在温度越高时电阻值。DHT11温湿度传感器的温湿度采集元件采用一个式感湿元件和一个测温元件DHT11温湿度传感器模块的主机信号为给传感器引脚一个(至少18us),随电平信号并延时20-40us。如果检测到DHT11响应信号为,则表示初始化失败,需要检查是否是线路问题。当高电平持续26~28us时,表示数据“”,持续70us时表示数据“”。列表的定义方式非常简单,既可以直接使用中括号“[]”创建,也可以使用内置的函数快速创建。Python提供了、和insert()这几个方法用来添加元素。Python文件操作函数中可通过方法关闭已打开的文件。在向DHT11获取温湿度数据时,我们总共会收到Bit的二进制数据。操作题(共10题)树莓派T型转接板温湿度传感器GPIO0G17DATAGNDGNDGND(G)3.3V3.3VVCC(+)表4.11.请使用Python开发文件读取器,用户可以输入文件路径读取文件内容,如果没找到该文件返回错误提醒。请使用Python开发文件写入器,用户可以命令台输出数据追加保存至程序根目录下的data.txt文件内。

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:使用DHT11模块专用的Adafruit_DHT库文件,采集温湿度数据并且实时在程序消息栏中进行输出。

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:不实用外部库文件的请款下,独立开发DHT11温湿度传感器模块的数据采集模块,并且实时在程序消息栏中实时输出当前室内温湿度数据。将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:实时在程序消息栏中实时输出当前室内温湿度数据,将温室度数据按照分钟保存至程序根目录下的data.txt文件内。

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:实时在程序消息栏中实时输出当前室内温湿度数据。当室内温度或湿度大于阀值时,在程序消息栏中进行提醒打印。

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:实时在程序消息栏中实时输出当前室内温湿度数据。可以在命令行中对温湿度的阀值进行设置,当室内温度或湿度大于阀值时,将异常数据保存至程序根目录log.txt文件夹中。

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:实时在程序消息栏中实时输出当前室内温湿度数据。将温湿度时间实时保存至程序根目录下data.txt文件加中,当温湿度数据大于阀值时,将异常数据保存至程序根目录下log.txt文件中。

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:使用命令台模拟室内智能温室度系统,当用户在命令台输入Start命令开始运行系统,实时监控检测室内温室度并在程序消息栏中实时播报室内温湿度数据,当温湿度数据都正常时在消息栏中打印“室内温度正常”,当温度大于阀值时,在消息栏中打印“室内温度过高,已为您开启空调”,当湿度小于阀值时,在消息栏中打印“室内过于干燥,已为您开启加湿器”。

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:使用命令台模拟室内智能温室度系统,当用户在命令台输入Start命令开始运行系统,实时监控检测室内温室度并在程序消息栏中实时播报室内温湿度数据,当温湿度数据都正常时在消息栏中打印“室内温度正常”,当温度大于阀值时,在消息栏中打印“室内温度过高,已为您开启空调”,当湿度小于阀值时,在消息栏中打印“室内过于干燥,已为您开启加湿器”。并且正在程序更目录下创建三个文件:Data.txt:存放室内温湿度数据;Log.txt:存放室内温湿度异常数据或对执行器的操作记录;Threshold.tx:存放温度值与湿度值的阀值。

五.简答题(共5题)1.当DHT11传输的数据为0101101000000000000110110000000001110101,校验是否通过?所对应的湿度和温度分别是多少?

根据DHT11发送数据准备图描述如何判断DHT11温湿度传感是否初始化完毕。

描述DHT11模块时如何发送数据的。

下面时一段关于DHT11模块传输数据的进制转换的代码,请分析代码写出存放温湿度数据和校验位的变量是哪些。

湿度整数:湿度小数:温度整数:温度小数:校验位:#按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

#利用循环将二进制数转化为十进制数

foriinrange(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校验位校验传输的数据是否正确,并进行输出

下面是一段DHT温湿度传感器数据获取部分的代码,请分析该功能函数功能。并进行代码与注释的填空。importRPi.GPIOasGPIO

importtime

th_data=[]#该数据变量用来存放:________

th_sensor=11#DHT11模块DATA控制管脚对应T型板17口

i=0

GPIO.setmode(GPIO.BOARD)

whileTrue:#循环读取数据

#该代码块为:_______模块

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)

#该代码块为:_______模块

GPIO.setup(th_sensor,GPIO.IN)

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

continue

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

continue

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

continue

#该代码块为:_______模块

whilei<40:

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

continue

time1=time.time_ns()

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

continue

time2=time.time_ns()

iftime2-time1>=40000:

th_data.append(1)

else:

th_data.append(0)

i=i+1------《项目五》参考答案------一、单项选择题(每小题3分,共45分)题号12345678910答案BCABDACDCD二、判断题(每空1分,共10分)题号12345678910判断√√×√×√×××√三、填空题(每空1分共20分)1.湿敏电阻 2.越高 越低3.电阻 NTC4.低电平 拉高5.高电平6.0 17.list()8.append() extend()9.close()10.40四、操作题

1.请使用Python开发文件读取器,用户可以输入文件路径读取文件内容,如果没找到该文件返回错误提醒。whileTrue:

try:

path=input("请输入路径:")

f=open(path,mode="r")#以追加写入的方式打开文件

print(str(f.read()))

except:

print("文件路径输入错误")请使用Python开发文件写入器,用户可以命令台输出数据追加保存至程序根目录下的data.txt文件内。

whileTrue:

data=input("请输入内容")

f=open("./data.txt",mode="a")#以追加写入的方式打开文件

f.write(data)

f.close()

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:使用DHT11模块专用的Adafruit_DHT库文件,采集温湿度数据并且实时在程序消息栏中进行输出。importRPi.GPIOasGPIO

importtime

importdatetime#加载datetime模块用于获取系统日期时间

importAdafruit_DHT

globalsensor

th_sensor=11

sensor=Adafruit_DHT.DHT11

whileTrue:

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

print("湿度:"+humidity+",温度"+temperature)

time.sleep(0.5)

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:不实用外部库文件的请款下,独立开发DHT11温湿度传感器模块的数据采集模块,并且实时在程序消息栏中实时输出当前室内温湿度数据。importRPi.GPIOasGPIO

importtime

importdatetime#加载datetime模块用于获取系统日期时间

importsys#加载sys模块用于文件操作

th_data=[]#定义一个链表数组用来存放接收的传感器数据

th_sensor=11#DHT11模块DATA控制管脚对应T型板17口

i=0

GPIO.setmode(GPIO.BOARD)

whileTrue:#循环读取数据

#线路准备模块

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)

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

continue

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

continue

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

continue

#数据接收模块

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

whilei<40:

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

continue

time1=time.time_ns()

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

continue

time2=time.time_ns()

iftime2-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

#利用循环将二进制数转化为十进制数

foriinrange(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校验位校验传输的数据是否正确,并进行输出

#将准备写入的数据进行格式化

ifcheck==result:

humidity_data=humidity+humidity_point/100

temperature_data=temperature+temperature_point/100

str_data="humidity:"+str(humidity_data)+"%"+"temperature:"\

+str(temperature_data)+"*c"

print(str_data)

else:

str_data="wrong"

GPIO.cleanup()将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:实时在程序消息栏中实时输出当前室内温湿度数据,将温室度数据按照分钟保存至程序根目录下的data.txt文件内。importRPi.GPIOasGPIO

importtime

importdatetime#加载datetime模块用于获取系统日期时间

importsys#加载sys模块用于文件操作

th_data=[]#定义一个链表数组用来存放接收的传感器数据

th_sensor=11#DHT11模块DATA控制管脚对应T型板17口

i=0

GPIO.setmode(GPIO.BOARD)

whileTrue:#循环读取数据

#线路准备模块

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)

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

continue

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

continue

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

continue

#数据接收模块

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

whilei<40:

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

continue

time1=time.time_ns()

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

continue

time2=time.time_ns()

iftime2-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

#利用循环将二进制数转化为十进制数

foriinrange(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("./data",mode="a")#以追加写入的方式打开文件

#将准备写入的数据进行格式化

ifcheck==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()#关闭文件

loop

GPIO.cleanup()

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:实时在程序消息栏中实时输出当前室内温湿度数据。当室内温度或湿度大于阀值时,在程序消息栏中进行提醒打印。importRPi.GPIOasGPIO

importtime

importdatetime#加载datetime模块用于获取系统日期时间

importAdafruit_DHT

globalsensor

th_sensor=11

sensor=Adafruit_DHT.DHT11

whileTrue:

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

print("湿度:"+humidity+",温度"+temperature)

iftemperature>30:

print("室内温度过大")

ifhumidity<50:

print("室内过于干燥")

time.sleep(0.5)将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:实时在程序消息栏中实时输出当前室内温湿度数据。可以在命令行中对温湿度的阀值进行设置,当室内温度或湿度大于阀值时,将异常数据保存至程序根目录log.txt文件夹中。importRPi.GPIOasGPIO

importtime

importdatetime#加载datetime模块用于获取系统日期时间

importAdafruit_DHT

globalsensor

th_sensor=11

sensor=Adafruit_DHT.DHT11

temp_red=input("请输入温度阀值")

hum_red=input("请输入湿度阀值")

whileTrue:

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

print("湿度:"+humidity+",温度"+temperature)

iftemperature>temp_red:

f=open("./log.txt",mode="a")#以追加写入的方式打开文件

f.write(str(datetime.datetime.now())+":室内温度过大\n")

f.close()

print("室内温度过大")

ifhumidity<hum_red:

print("室内过于干燥")

f=open("./log.txt",mode="a")#以追加写入的方式打开文件

f.write(str(datetime.datetime.now())+":室内过于干燥\n")

f.close()

time.sleep(0.5)将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:实时在程序消息栏中实时输出当前室内温湿度数据。将温湿度时间实时保存至程序根目录下data.txt文件加中,当温湿度数据大于阀值时,将异常数据保存至程序根目录下log.txt文件中。importRPi.GPIOasGPIO

importtime

importdatetime#加载datetime模块用于获取系统日期时间

importAdafruit_DHT

globalsensor

th_sensor=11

sensor=Adafruit_DHT.DHT11

temp_red=input("请输入温度阀值")

hum_red=input("请输入湿度阀值")

whileTrue:

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

print("湿度:"+humidity+",温度"+temperature)

f_write=open("./data.txt",mode="a")

f_write.write(str(datetime.datetime.now())+"湿度:"+humidity+",温度"+temperature)

iftemperature>temp_red:

f=open("./log.txt",mode="a")#以追加写入的方式打开文件

f.write(str(datetime.datetime.now())+":室内温度过大\n")

f.close()

print("室内温度过大")

ifhumidity<hum_red:

print("室内过于干燥")

f=open("./log.txt",mode="a")#以追加写入的方式打开文件

f.write(str(datetime.datetime.now())+":室内过于干燥\n")

f.close()

time.sleep(1)

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:使用命令台模拟室内智能温室度系统,当用户在命令台输入Start命令开始运行系统,实时监控检测室内温室度并在程序消息栏中实时播报室内温湿度数据,当温湿度数据都正常时在消息栏中打印“室内温度正常”,当温度大于阀值时,在消息栏中打印“室内温度过高,已为您开启空调”,当湿度小于阀值时,在消息栏中打印“室内过于干燥,已为您开启加湿器”。importRPi.GPIOasGPIO

importtime

importdatetime#加载datetime模块用于获取系统日期时间

importAdafruit_DHT

globalsensor

th_sensor=11

sensor=Adafruit_DHT.DHT11

temp_red=0

hum_red=0

whileTrue:

cmd=input("请输入命令:")

ifcmd=="Start":

temp_red=input("请输入温度阀值")

hum_red=input("请输入湿度阀值")

break

whileTrue:

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

print("湿度:"+humidity+",温度"+temperature)

f_write=open("./data.txt",mode="a")

f_write.write(str(datetime.datetime.now())+"湿度:"+humidity+",温度"+temperature)

iftemperature>temp_red:

print("室内温度过大")

ifhumidity<hum_red:

print("室内过于干燥")

time.sleep(1)

将DHT11温湿度传感器按照表4.1的对应接口连接至开发板,并且编写程序,实现效果如下:使用命令台模拟室内智能温室度系统,当用户在命令台输入Start命令开始运行系统,实时监控检测室内温室度并在程序消息栏中实时播报室内温湿度数据,当温湿度数据都正常时在消息栏中打印“室内温度正常”,当温度大于阀值时,在消息栏中打印“室内温度过高,已为您开启空调”,当湿度小于阀值时,在消息栏中打印“室内过于干燥,已为您开启加湿器”。并且正在程序更目录下创建三个文件:Data.txt:存放室内温湿度数据;Log.txt:存放室内温湿度异常数据或对执行器的操作记录;Threshold.tx:存放温度值与湿度值的阀值。importRPi.GPIOasGPIO

importtime

importdatetime#加载datetime模块用于获取系统日期时间

importAdafruit_DHT

globalsensor

th_sensor=11

sensor=Adafruit_DHT.DHT11

temp_red=0

hum_red=0

whileTrue:

cmd=input("请输入命令:")

ifcmd=="Start":

temp_red=input("请输入温度阀值")

hum_red=input("请输入湿度阀值")

f=open("./Threshold.txt",mode="w")#以追加写入的方式打开文件

f.write("温度阀值:"+temp_red+",湿度阀值"+hum_red)

f.close()

break

whileTrue:

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

print("湿度:"+humidity+",温度"+temperature)

f_write=open("./data.txt",mode="a")

f_write.write(str(datetime.datetime.now())+"湿度:"+humidity+",温度"+temperature)

iftemperature>temp_red:

f=open("./log.txt",mode="a")#以追加写入的方式打开文件

f.write(str(datetime.datetime.now())+":内温度过高,已为您开启空调\n")

f.close()

print("室内温度过大")

ifhumidity<hum_red:

print("室内过于干燥")

f=open("./log.txt",mode="a")#以追加写入的方式打开文件

f.write(str(datetime.datetime.now())+"室内过于干燥,已为您开启加湿器\n")

f.close()

time.sleep(1)简答题1.当DHT11传输的数据为0101101000000000000110110000000001110101,校验是否通过?所对应的湿度和温度分别是多少?校验位通过,温度:27,湿度:90。

根据DHT11发送数据准备图描述如何判断DHT11温湿度传感是否初始化完毕。给传感器引脚一个低电平(至少18us),随后拉高电平信号并延时20-40us,如何接收DHT11模块的电平针脚信号,当检测到总线持续一段时间的约为80us的高电平(20-100us),表示初始化工作完毕,如果是一个低电平则初始化失败。

描述DHT11模块时如何发送数据的

DHT11发送每1bit的数据都由50us的低电平开始做为识别间隔,随后的高电平时间长短代表了数据信号是0还是1,当高电平持续26~28us时,表示数据“0”,持续70us时表示数据“1”。数据传输完毕后,再以50us低电平表示数据结束。总共会有40bit的数据。

下面时一段关于DHT11模块传输数据的进制转换的代码,请分析代码写出存放温湿度数据和校验位的变量是哪些。

湿度整数:humidity湿度小数:humidity_point

温度整数:temperatur

温馨提示

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

评论

0/150

提交评论