[经验] 【micropython教程】实验2 DHT11温度传感器

zhangyadong300   2018-6-26 15:06 楼主
首先在github上下载了DHT系列的驱动库
  1. # DHT11/DHT22 driver for MicroPython on ESP8266
  2. # MIT license; Copyright (c) 2016 Damien P. George

  3. try:
  4.     from esp import dht_readinto
  5. except:
  6.     from pyb import dht_readinto

  7. class DHTBase:
  8.     def __init__(self, pin):
  9.         self.pin = pin
  10.         self.buf = bytearray(5)

  11.     def measure(self):
  12.         buf = self.buf
  13.         dht_readinto(self.pin, buf)
  14.         if (buf[0] + buf[1] + buf[2] + buf[3]) & 0xff != buf[4]:
  15.             raise Exception("checksum error")

  16. class DHT11(DHTBase):
  17.     def humidity(self):
  18.         return self.buf[0]

  19.     def temperature(self):
  20.         return self.buf[2]

  21. class DHT22(DHTBase):
  22.     def humidity(self):
  23.         return (self.buf[0] << 8 | self.buf[1]) * 0.1

  24.     def temperature(self):
  25.         t = ((self.buf[2] & 0x7f) << 8 | self.buf[3]) * 0.1
  26.         if self.buf[2] & 0x80:
  27.             t = -t
  28.         return t



DHT11 电路连接和资料
6.jpg
7.jpg
8.jpg
5.jpg

调用驱动库
  1. from machine import Pin
  2. import DHTsensor

  3. dht = DHTsensor.DHT11(Pin("Y4"))

  4. dht.measure()
  5. print("temperature:",dht.temperature())
  6. print("humidity:",dht.humidity())



11.jpg

回复评论 (4)

lz,请教一下,如果我想把温度数据存在mysql数据库里面,请问是否可以呢?
点赞  2018-12-29 00:09
引用: suexiukjung 发表于 2018-12-29 00:09
lz,请教一下,如果我想把温度数据存在mysql数据库里面,请问是否可以呢?

当然可以,可以看我这个帖子
https://bbs.eeworld.com.cn/forum. ... d&tid=649515&extra=
点赞  2018-12-29 01:02
引用: zhangyadong300 发表于 2018-12-29 01:02
当然可以,可以看我这个帖子
https://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=649515&extra=

lz 方便加个qq好沟通吗?
点赞  2018-12-29 10:54
引用: suexiukjung 发表于 2018-12-29 10:54
lz 方便加个qq好沟通吗?

329839604
点赞  2018-12-29 11:00
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复