summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/dht/dht.py32
l---------ports/esp32/modules/dht.py2
l---------[-rw-r--r--]ports/esp8266/modules/dht.py33
3 files changed, 34 insertions, 33 deletions
diff --git a/drivers/dht/dht.py b/drivers/dht/dht.py
new file mode 100644
index 000000000..9a69e7e07
--- /dev/null
+++ b/drivers/dht/dht.py
@@ -0,0 +1,32 @@
+# DHT11/DHT22 driver for MicroPython on ESP8266
+# MIT license; Copyright (c) 2016 Damien P. George
+
+import esp
+
+class DHTBase:
+ def __init__(self, pin):
+ self.pin = pin
+ self.buf = bytearray(5)
+
+ def measure(self):
+ buf = self.buf
+ esp.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
diff --git a/ports/esp32/modules/dht.py b/ports/esp32/modules/dht.py
index b6acf2853..2aa2f5cbf 120000
--- a/ports/esp32/modules/dht.py
+++ b/ports/esp32/modules/dht.py
@@ -1 +1 @@
-../../esp8266/modules/dht.py \ No newline at end of file
+../../../drivers/dht/dht.py \ No newline at end of file
diff --git a/ports/esp8266/modules/dht.py b/ports/esp8266/modules/dht.py
index 9a69e7e07..2aa2f5cbf 100644..120000
--- a/ports/esp8266/modules/dht.py
+++ b/ports/esp8266/modules/dht.py
@@ -1,32 +1 @@
-# DHT11/DHT22 driver for MicroPython on ESP8266
-# MIT license; Copyright (c) 2016 Damien P. George
-
-import esp
-
-class DHTBase:
- def __init__(self, pin):
- self.pin = pin
- self.buf = bytearray(5)
-
- def measure(self):
- buf = self.buf
- esp.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
+../../../drivers/dht/dht.py \ No newline at end of file