kopia lustrzana https://github.com/micropython/micropython-lib
micropython/drivers: Move "dht" sensor driver from main repo.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>pull/525/head
rodzic
c1c0eb0c39
commit
0382c9cffa
|
@ -0,0 +1,46 @@
|
|||
# DHT11/DHT22 driver for MicroPython on ESP8266
|
||||
# MIT license; Copyright (c) 2016 Damien P. George
|
||||
|
||||
import sys
|
||||
|
||||
if sys.platform.startswith("esp"):
|
||||
from esp import dht_readinto
|
||||
elif sys.platform == "mimxrt":
|
||||
from mimxrt import dht_readinto
|
||||
elif sys.platform == "rp2":
|
||||
from rp2 import dht_readinto
|
||||
elif sys.platform == "pyboard":
|
||||
from pyb import dht_readinto
|
||||
else:
|
||||
from machine 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
|
|
@ -0,0 +1 @@
|
|||
module("dht.py", opt=3)
|
Ładowanie…
Reference in New Issue