树莓派如何控制温湿度传感器DHT11
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,树莓派如何控制温湿度传感器DHT11,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。小π因为好几次断电之前没有关掉系统,导致系统老是起
千家信息网最后更新 2026年11月02日树莓派如何控制温湿度传感器DHT11
树莓派如何控制温湿度传感器DHT11,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
小π因为好几次断电之前没有关掉系统,导致系统老是起不来。无奈只好重写了SD卡。装好后前天晚上把一个温湿度传感器(DHT11)接到了小π上,顺利读出数据来了。废话不多说了,进入正题:
首先,简单介绍下DHT11:
DHT11是一个温湿度传感器,分为3个接口,分别为:
VCC,DATA,GND引脚号 名称 类型 说明 1 VCC 电源 +级,输入3V-5.5V 2 DATA 数据输出 输出引脚 3 GND 接地 接地引脚 配一个
DHT11的图片:DHT11说明书200808修订版.pdf
之前看网上说,需要在DHT11
VCC和DATA之间加一个电阻,经试验完全不需要。引脚连接:
关于树莓派二代的引脚可以看下上篇Blog:树莓派控制有源蜂鸣器
VCC接上3V3,可以选择1口或者17口DATA接上GPIO口,我选的是GPIO4,第7口GND接上接地口,我选的是第14口Python获取温湿度:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | #!/usr/bin/pythonimport RPi.GPIO as GPIOimport timechannel =4 //GPIO4data = []j = 0GPIO.setmode(GPIO.BCM)time.sleep(1)GPIO.setup(channel, GPIO.OUT)GPIO.output(channel, GPIO.LOW)time.sleep(0.02)GPIO.output(channel, GPIO.HIGH)GPIO.setup(channel, GPIO.IN)while GPIO.input(channel) == GPIO.LOW: continuewhile GPIO.input(channel) == GPIO.HIGH: continuewhile j < 40: k = 0 while GPIO.input(channel) == GPIO.LOW: continue while GPIO.input(channel) == GPIO.HIGH: k += 1 if k > 100: break if k < 8: data.append(0) else: data.append(1) j += 1print "sensor is working."print datahumidity_bit = data[0:8]humidity_point_bit = data[8:16]temperature_bit = data[16:24]temperature_point_bit = data[24:32]check_bit = data[32:40]humidity = 0humidity_point = 0temperature = 0temperature_point = 0check = 0for i in range(8): humidity += humidity_bit[i] * 2 ** (7-i) humidity_point += humidity_point_bit[i] * 2 ** (7-i) temperature += temperature_bit[i] * 2 ** (7-i) temperature_point += temperature_point_bit[i] * 2 ** (7-i) check += check_bit[i] * 2 ** (7-i)tmp = humidity + humidity_point + temperature + temperature_pointif check == tmp: print "temperature :", temperature, "*C, humidity :", humidity, "%"else: print "wrong" print "temperature :", temperature, "*C, humidity :", humidity, "% check :", check, ", tmp :", tmpGPIO.cleanup() |
展示结果:
1234 | root@raspberrypi:/data/basedata# python/dht11.pysensor is working.[0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0]temperature : 20 *C, humidity : 38 % |
为了测试结果是否准确,我把手指放到传感器上,测试的数据为:
12345 | root@raspberrypi:/data/basedata/python# python dht11.pysensor is working.[0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1]wrongtemperature : 36 *C, humidity : 38 % |
确认正确~
备注: 如果你用的是DS18B20,需要做以下动作:
1234567 | root@raspberrypi:/# apt-get updateroot@raspberrypi:/# apt-get upgrade #更新内核root@raspberrypi:/# rebootroot@raspberrypi:/# vi /boot/config.txt #在最后一行手动添加:dtoverlay=w1-gpio-pullup,gpiopin=4 来支持新系统读取w1总线设备root@raspberrypi:/# modprobe w1-gpio #确认设备是否生效root@raspberrypi:/# modprobe w1-thermroot@raspberrypi:/# cd /sys/bus/w1/devices/ |
关于树莓派如何控制温湿度传感器DHT11问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
传感器
树莓
控制
数据
系统
问题
接地
更多
结果
设备
帮助
测试
解答
输出
易行
简单易行
一行
上篇
之间
修订版
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技有限公司
互联网科技工作委员会毛军
厦门中拓互联网络科技有限公司
科技互联网政务服务
互联网科技垄断
互联网科技卖菜
互联网公司 科技公司
互联网与新科技
互联网科技股票
银优互联网科技有限公司
米客互联网科技
天下捷融互联网科技
互联网科技股有哪些
字节跳动和互联网科技
杭州壁岐互联网科技有限公司
中国互联网十大科技股排名
佛山市拉法互联网科技有限公司
明优互联网科技有限公司
互联网方面的科技前沿
长沙渺峰互联网科技有限公司
百单网互联网科技有限公司
上海喔噻互联网科技
互联网科技上市公司
伴你行互联网科技有限公司
上海卓越科技 互联网
小米互联网科技园设置
互联网还是高科技吗
中国互联网十大科技股排名
风投北京互联网科技
上海旺乐尼互联网科技有限公司