树莓派如何控制温湿度传感器DHT11
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,树莓派如何控制温湿度传感器DHT11,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。小π因为好几次断电之前没有关掉系统,导致系统老是起
千家信息网最后更新 2025年02月08日树莓派如何控制温湿度传感器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安全错误
数据库的锁怎样保障安全
mac下搭建服务器搭建
数据库技术与财务管理
四管泄漏数据库
江苏蓝蜥蜴软件开发有限公司
魔兽世界各服务器显示错误
robiox服务器修好了吗
人社网络安全总结
ios 客户端与服务器
ftp服务器搭建
怎么、数据库连接池技术
网络安全等级保护背景
哪种软件开发模型没有灵活性
怎样复制数据库数据
怎么看克鲁赛德战记在哪个服务器
慧源通网络技术公司是干嘛的
邓州crm软件开发
网络安全攻防实训室 建设
坪山区数据网络技术开发服务标准
设置服务器的ip
虚拟机如何设置传奇服务器
慕课网络技术与应用答案
从数据库查出来的集合需要判空吗
浙江零零壹软件开发
网络安全pvp
数据库领域最新技术
t340服务器集群
网络安全攻防实训室 建设
永顺天气预报软件开发
狗爹服务器抗DDOS
工商银行软件开发中心大楼