【MicroPython】使用DHT11温湿度传感器
·
一、本次实验所需器材
1、PyboardCN V2板 一块
2、杜邦线:若干
3、DHT11模块 一块
二、连线
| DHT11 | Pyboard |
| VCC | 3.3V-5V |
| GND | GND |
| DATA | Y1 |
三、调试代码,如下
首先将dht.py复制到PYBFLASH磁盘的根目录。复制文件后要安全退出磁盘,然后重新接入,不然找不到文件。先将DHT11按照上图接线,然后输入下面代码:
>>> from machine import Pin
>>> import dht
>>> dht = dht.DHT11(Pin("Y1"))
>>> dht.measure()
>>> print("temperature:",dht.temperature())
temperature: 29
>>> print("humidity:",dht.humidity())
humidity: 53
dht.py文件内容如下:
# DHT11/DHT22 driver for MicroPython on ESP8266
# MIT license; Copyright (c) 2016 Damien P. George
try:
from esp import dht_readinto
except:
from pyb import dht_readinto
class DHTBase:
def __init__(self, pin):
self.pin = pin
self.buf = bytearray(5)
def measure(self):
buf = self.buf
dht_readinto(self.pin, buf)
if (buf[0] + buf[1] + buf[2] + buf[3]) & 0xff != buf[4]:
raise Exception("checksum error")
class DHT11(DHTBase):
def humidity(self):
return self.buf[0]
def temperature(self):
return self.buf[2]
class DHT22(DHTBase):
def humidity(self):
return (self.buf[0] << 8 | self.buf[1]) * 0.1
def temperature(self):
t = ((self.buf[2] & 0x7f) << 8 | self.buf[3]) * 0.1
if self.buf[2] & 0x80:
t = -t
return t
注:
- 如果DHT11没有连接好就输入dht = dht.DHT11(Pin("Y1"))命令,会因为没有搜索到器件而出错。
- 千万不要接反VCC和GND,不然会损坏传感器。
更多推荐


所有评论(0)