树莓派如何控制温湿度传感器DHT11
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,树莓派如何控制温湿度传感器DHT11,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。小π因为好几次断电之前没有关掉系统,导致系统老是起
千家信息网最后更新 2024年09月22日树莓派如何控制温湿度传感器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安全错误
数据库的锁怎样保障安全
上海计算机软件开发服务费
虹口区信息网络技术收费标准
ftp 服务器 绿色版
扬州晶澳软件开发
一般采用技术来保障网络安全
计算机网络技术是软件吗
国内苹果的服务器是什么
正在连接云服务器啥意思
使用jsp和数据库写登录
老的macbook 服务器
oracle该数据库配置
ntp同步时间服务器
质量网络技术开发
计算机网络安全科技论文
日本网络安全宣传
集团公司网络安全分为几级
计算机网络技术交换机视频
数据库的三级模式体系是什么
陈凯歌搜索软件开发
代理网络安全管理体系认证
海曙安卓软件开发服务
深圳直销软件开发公司宝安
数据库原理与技术和操作系统
网络安全管理规定试行16条
北京创鑫旅游网络技术有限公司
青浦区营销网络技术服务创造辉煌
重庆邮电网络安全课程试卷
嘉定区网络软件开发厂家价格
授时服务器怎么设置
安徽网络安全状况