Micropython——DHT11温湿度传感器

    技术2022-07-11  86

    文章目录

    DHT11温湿度传感器简介接线库文件`dht11.py`代码主文件`main.py`代码

    DHT11温湿度传感器简介

    DHT11是一款有已校准数字信号输出的温湿度传感器。 精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH, 温度0~50℃。

    接线

    DHT11TPYboard+VIN(5V)OUTX12-GND

    库文件dht11.py代码

    在Flash盘符中新建dht11.py文件,并写入以下代码:

    import pyb from pyb import UART from pyb import Pin,delay,udelay import time class DHT11: def __init__(self,pin_name): time.sleep(1) self.N1 = Pin(pin_name, Pin.OUT_PP) self.PinName=pin_name pyb.delay(10) def read_data(self): self.__init__(self.PinName) data=[] j=0 N1=self.N1 N1.low() delay(20) N1.high() N1 = Pin(self.PinName, Pin.IN) udelay(30) if N1.value() != 0: return [0,0] while N1.value()==0: continue while N1.value()==1: continue while j<40: k=0 while N1.value()==0: continue while N1.value()==1: k+=1 if k>100:break if k<3: data.append(0) else: data.append(1) j=j+1 print('Sensor is working') j=0 humidity_bit=data[0:8] humidity_point_bit=data[8:16] temperature_bit=data[16:24] temperature_point_bit=data[24:32] check_bit=data[32:40] humidity=0 humidity_point=0 temperature=0 temperature_point=0 check=0 for i in range(8): humidity+=humidity_bit[i]*2**(7-i) humidity_point+=humidity_point_bit[i]*2**(7-i) temperature+=temperature_bit[i]*2**(7-i) temperature_point+=temperature_point_bit[i]*2**(7-i) check+=check_bit[i]*2**(7-i) tmp=humidity+humidity_point+temperature+temperature_point if check==tmp: print('temperature is',temperature,'-wet is',humidity,'%') else: print('Error:',humidity,humidity_point,temperature,temperature_point,check) return [str(temperature),str(humidity)]

    主文件main.py代码

    import pyb from pyb import Pin from dht11 import DHT11 dht = DHT11('X12') def readTaHData(): DATA = dht.read_data()#读取温湿度的值 print("温度为: " + DATA[0] + '℃') print("湿度为: " + DATA[1] + '%') tem = int(DATA[0]) hum = int(DATA[1]) while True: readTaHData() pyb.delay(500)

    如果读者按照博主的教程学会了传感器的使用,不要忘了点个赞哦~

    Processed: 0.011, SQL: 9