一、本次实验所需器材

1、PyboardCN V2板  一块

2、杜邦线:若干

3、DHT11模块 一块

二、连线

DHT11Pyboard
VCC3.3V-5V
GNDGND
DATAY1

三、调试代码,如下

首先将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,不然会损坏传感器。

 

更多推荐