文章目录

  • 一、简介
  • 二、硬件准备
    • 1、DHT11温湿度传感器
    • 2、树莓派4B
  • 三、软件准备
    • Thonny
  • 四、程序设计
    • 1、使用 Adafruit 读取 DHT11 温湿度传感器
      • ①、软件安装
      • ②、使用示例程序
      • ③、使用Adafruit 库的自定义Python程序
      • ④、实现实时循环显示温湿度的自定义python程序
    • 2、使用GPIO读取 DHT11 温湿度传感器
    • 3、遇到的问题
      • ①、树莓派4B使用Adafruit_DHT不能正确显示温度

一、简介

  为了熟悉树莓派的GPIO操作,而找的一个小案例,出现了一些问题,最近才解决,故记录之。

二、硬件准备

1、DHT11温湿度传感器


现在市面是卖的DHT11引脚有三脚、四脚之分,因为有一脚是空脚,所以其实都是一样用的,我购买的就是三脚。

2、树莓派4B


扩展接口:

引脚接线:(当前接线是随意的,只要记住DATA的位置还有正负极别插反就可以了)

  • VCC - Pin1
  • DATA - Pin3
  • GND - Pin6

三、软件准备

Thonny

使用的是系统自带的Python IDE

四、程序设计

1、使用 Adafruit 读取 DHT11 温湿度传感器

①、软件安装

开始之前需要更新软件包:

sudo apt-get update
sudo apt-get install build-essential python-dev

从 GitHub 获取 Adafruit 库:

sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT

给 Python 2 和 Python 3 安装该库:

sudo python setup.py install
sudo python3 setup.py install

②、使用示例程序

示例程序
Adafruit 提供了示例程序,运行下面的命令测试。

cd ~
cd Adafruit_Python_DHT
cd examples
python AdafruitDHT.py 11 2

③、使用Adafruit 库的自定义Python程序

当然也可以在自己创建的 Python 程序中使用这个库来实现调用

import Adafruit_DHT# Set sensor type : Options are DHT11,DHT22 or AM2302
sensor=Adafruit_DHT.DHT11# Set GPIO sensor is connected to
gpio=2# Use read_retry method. This will retry up to 15 times to
# get a sensor reading (waiting 2 seconds between each retry).
humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)# Reading the DHT11 is very sensitive to timings and occasionally
# the Pi might fail to get a valid reading. So check if readings are valid.
if humidity is not None and temperature is not None:print('Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity))
else:print('Failed to get reading. Try again!')

④、实现实时循环显示温湿度的自定义python程序

#!/usr/bin/python
# *-*- coding:utf-8 -*-*
import Adafruit_DHTclass DHT11:def DHT11_Read(self):sensor = Adafruit_DHT.DHT11gpio = 2humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)return humidity,temperatureif __name__ == '__main__':float humid,tempdht11 = DHT11()while True:humid,temp=dht11.DHT11_Read()if humid is not None and temp is not None:print('Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temp, humid))else:print('Failed to get reading. Try again!')

2、使用GPIO读取 DHT11 温湿度传感器

import RPi.GPIO as GPIO
import timechannel =2 # 上文提到的GPIO编号
data = []
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:continue
while GPIO.input(channel) == GPIO.HIGH:continuewhile j < 40:k = 0while GPIO.input(channel) == GPIO.LOW:continuewhile GPIO.input(channel) == GPIO.HIGH:k += 1if k > 100:breakif k < 8:data.append(0)else:data.append(1)j += 1print ("sensor is working.")humidity_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 = 0
humidity_point = 0
temperature = 0
temperature_point = 0
check = 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, "%")res='{value:%f}'% temperatureimport jsonwith open('/home/pi/Desktop/data.txt', 'a') as outfile:json.dump(res, outfile)outest=open('/home/pi/Desktop/data.txt','a')outest.write(res)outest.closeprint(res)
else:print ("wrong")
GPIO.cleanup()

按理说应该是没什么问题,但是始终显示不了结果,温湿度均显示255,数据位没有派上用场,欢迎懂行的朋友给予解答。

3、遇到的问题

①、树莓派4B使用Adafruit_DHT不能正确显示温度

  这是因为下载的Adafruit_DHT驱动未支持4b处理器BCM2711,我们需要自己手动打开/home/pi/Adafruit_Python_DHT/Adafruit_DHT/platform_detect.py,并在红圈位置添加以下代码。

elif match.group(1) == 'BCM2711':# Pi 4breturn 3


  然后退回到Adafruit_Python_DHT目录,重新安装Adafruit Python DHT Sensor函数库,再次运行示例程序即可显示正确温湿度。

cd Adafruit_Python_DHT/
sudo python setup.py install

树莓派与DHT11温度传感器的那些事儿相关推荐

  1. 树莓派dht11上云_树莓派使用 DHT11 / DHT22 温湿度传感器

    接线说明 从左到右 3.3V-6V 电源 GPIO接口 NO Connected 接地 依赖库 为了简化工作,我们基于Adafruit_Python_DHT的Python库进行实验 Clone下这个依 ...

  2. 树莓派与DS18B20温度传感器模块的使用

    好久不见鸭,时隔半年,树莓派菜鸟再次写起博客 树莓派与DS18B20温度传感器模块的使用 其实树莓派内置了驱动文件,可以直接通过一些命令读取温度传感器的温度,所以使用起来很简单,下面来示范一下. 所用 ...

  3. 树莓派之DHT11传感器

    树莓派之DHT11传感器 硬件DHT11 主要看其原理,具体的详细原理大家就搜索引擎都能搜到. 也是为了好奇心,入手一台便宜的示波器,看看具体波形,下面是我所测: 这张显示首次触发,主机至少下拉18m ...

  4. STM32/51单片机实训day8——基于Keil5+Proteus8使用DHT11温度传感器实现温湿度采集并在LM016L液晶屏上显示

    目录 任务指导 1 DHT11产品概述 2 应用领域 3 传感器性能说明 4 接口说明 5 电源引脚 6 串行接口(单线双向) 通讯过程如图3所示: 任务实现​​​​​​​ 内 容:本任务使用DHT1 ...

  5. 树莓派将DHT11温度湿度上传到阿里云物联网平台

    树莓派将DHT11温度湿度上传到阿里云物联网平台 1.自定义功能 添加的过程就是如此,因为温度是有小数点的,所以用float比较好,其他的比如时间等等也可以使用text类型,视情况而定. 定义好之后就 ...

  6. pythonds18b20_树莓派 Zero W+温度传感器DS18B20

    树莓派 Zero W+温度传感器DS18B20 作者:陈拓chentuo@ms.xab.ac.cn 2018.05.28/2018.06.01 0.  概述 用树莓派 Zero W读取DS18B20温 ...

  7. 【STM32单片机+DHT11温度传感器】快速上手,适用于多种型号芯片

    提示:DHT11温度传感器是配合着stm32c8t6 文章目录 一.DHT11基本了解 1.基本信息 2.引脚了解 二.开始上手 1.接线 2.关键部分代码 DHT11.c代码 DHT11.h代码 m ...

  8. dht11 java_树莓派从DHT11读取温湿度

    树莓派之DHT11传感器 硬件DHT11 主要看其原理,具体的详细原理大家就搜索引擎都能搜到. 也是为了好奇心,入手一台便宜的示波器,看看具体波形,下面是我所测: 这张显示首次触发,主机至少下拉18m ...

  9. 树莓派(4B)DHT11实现温湿度获取+mysql数据库存储

    前言: 本人于今年初查看许多资料实现了DHT11温湿度获取,并可视化展示,后因考证耽误,现需要实现传感器获取数据后上传区块链,区块链这里面技术太多了,好难啊,先把目前可以实现的一些功能内容记录一下,有 ...

  10. 树莓派控制DS18B20温度传感器

    DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,它的通信接口采用的是1-Wire(单总线).1-Wire是一种半双工异步的通讯协议(通信双方可以各自约定通信速率 ...

最新文章

  1. JavaScript 原型中的哲学思想
  2. linux系统win,Windows10安装运行linux系统的方法
  3. 提高开发效率,eclipse的常用快捷键、旁门左道、系统错误小贴士
  4. 无法启动windows audio服务,错误提示126.
  5. (转)自定义listView及其adapter动态刷新
  6. 【国产mcu填坑篇】------STC(宏晶)
  7. Android开发----MaterialDesign设计下material-dialogs用法
  8. 21.pgsql中的执行计划explain
  9. MyGUI_Orge官网教程_2.快速在工程中使用MyGUI
  10. 你缺的不是一个“大牛” 而是一个透视宝
  11. python计算一个三位数个位数之和
  12. 一篇文章带你更深入了解区块链有哪些应用?
  13. 计算机如何正确开关机,初学台式机电脑开关机的正确操作 电脑定时关机的基础知识...
  14. Windows 最新版sourcetree免登录方法
  15. (免费分享)基于javaweb,ssm旅游景点预定系统
  16. 【OpenSea 创始人访谈录】听OpenSea 创始人谈 NFT 市场爆炸式增长的秘密
  17. bochs 详细介绍
  18. e系列刀片服务器,华为E系列刀片服务器选型导购指南
  19. 人工智能培训师ai培训师NLP讲师叶梓:人工智能之最新NLP自然语言处理技术与实战-16
  20. 弘辽科技:拼多多品牌店黑标怎么开?申请入口在哪?

热门文章

  1. CentOS7.6重装系统步骤
  2. 各种文件的mime类型
  3. scrapy运行报错: Overridden settings XXX
  4. 从认知负荷理论看语音交互设计
  5. 硬核科普 | 小谈 辣椒素和辣椒素受体 的研究,来自一线植物科研人员
  6. ICP算法详解——我见过最清晰的解释
  7. 项目:任务清单(Vuex)
  8. PG概述及OSD对PG状态的影响
  9. [SharePoint教程系列]安装之后的常见操作 如何打开管理中心
  10. 服务器邮件删除了怎么恢复,Exchange邮件误删除不用急 DPM轻松恢复