最近由于自己的课题需要,想要用在树莓派上使用DHT11温湿度传感器来读取空气中温湿度,遇到了几个问题,解决之后也对之前的知识进行了回顾,总结,特整理如下,希望能给也在学习树莓派的小伙伴们带来一些帮助。总的来说操作很简单,但很容易出现细节方面的问题,我也把我遇到的问题进行了简单整理,如果有其他问题可以直接在评论区提出,我看到了就会回答。文章有什么用词不当或表述不清的问题(由于研究生在海外读,所以用英语较多,很多硬件的术语可能并不专业,抱歉啦~),期待大家在评论区为我批评指正。本篇文章纯手打,如需转载,请注明出处,感谢。

本篇文章主要对DHT11进行了简单梳理,主要分为四大模块,分别为:

一、DHT11温湿度传感器

二、实验所需设备与连线方式

三、Python代码实现

四、常见问题

对哪个模块感兴趣也直接翻到相应部分阅读即可。

一、DHT11温湿度传感器

DHT11温湿度传感器是一个性能很棒的模块,它提供温度和湿度读数。价格低廉,精准度高使用简单,并且有python库可以直接导入使用,应用也很广泛,在远程气象站、土壤监测器和家庭自动化系统都可以看见它的身影。

在日常工作学习中,我们接触到的DHT11主要有两种形式。一种是三引脚的焊有PCB的模块,另一款是是四引脚的独立模块。如下图所示:

第一种传感器从左到右分别是信号引脚,VCC引脚(连接电源正极),ground接地引脚(连接电源负极)。需要注意的是,关于三引脚传感器,不同厂商的传感器引脚的顺序可能不同,大家在连接之前需要看准传感器上标的符号来进行判断,比如我的传感器就是这样的,从左到右的第一个引脚(+)是连接电源正极的。

二、实验所需设备与连线方式

(一)实验所需设备

1. DHT11 温室度传感器

2. 树莓派 3 B+/树莓派 4 B

3. 三根杜邦线(母对母)

(二)DHT11与树莓派连线方式

根据DHT11传感器两种形式不同,连线不太相同,却也大同小异。你有哪一种都可以,按照

此处的连线与后面的代码相关,第一次直接按照图示方式连接即可。

1.三针引脚DHT11温湿度传感器与树莓派的连接方式(我也把树莓派的引脚功能图放到下方了,不熟悉树莓派引脚功能的同学可以直接在本页面进行比对查看。)

2.四针引脚DHT11温湿度传感器与树莓派的连接方式

注意:

1.一定要看好传感器引脚的顺序再进行连接。(vcc-树莓派pin2,ground-树莓派pin6,signal-树莓派pin7(gpio4))

2.关于传感器引脚的连接是很随意的,vcc只要连接的是树莓派上标有“5v”标识的引脚(pin2或pin4),ground连接树莓派上标有“GND”标识的引脚(pin6,pin9,pin14,pin25,pin30,pin39),signal连接任意标有“GPIO”的引脚,但最后连接pin7,这样后面的代码直接复制粘贴的即可,建议第一次连接的同学直接按照我的方式连接即可,避免后期不必要的错误。

三、Python代码实现

就我而言,在树莓派的编程中我使用Python较多,代码简单,易懂,也有很多现成的库可供使用,拿本次的DHT11来说,可以直接导入Adafruit DHT11库,最后写出的代码也就只有几行。在写代码之前,先把python和Adafruit DHT11库下载下来。

sudo apt-get install git-core

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

cd Adafruit_Python_DHT

sudo apt-get install build-essential python-dev

sudo python3 setup.py install

1.sudo apt-get install git-core

(注意:如果下载失败,则先运行sudo apt-get update并且再试一遍,其实不管下载什么,都可以先update到最新)

2.安装Adafruit DHT11库

(1)下载库: git clone https://github.com/adafruit/Adafruit_Python_DHT.git

(2)使用cd命令进到 Adafruit_Python_DHT文件夹: cd Adafruit_Python_DHT

(3)sudo apt-get install build-essential python-dev

(4)下载python3:sudo python3 setup.py install

新建py文件

#!/usr/bin/python
import sys
import Adafruit_DHT while True: humidity,temperature = Adafruit_DHT.read_retry(11, 4) print ('Temp: {0:0.1f} C Humidity: {1:0.1f} %'.format(temperature, humidity))

然后点运行就可以了

这是运行结果

代码解释:

(1)Adafruit_DHT.read_retry(11, 4)中的“11”代表你使用的是DHT11传感器,如果你使用的是DHT22传感器,则把数字改成“22”即可。数字“4”代表你的信号引脚连接的是gpio4所在的引脚,而不是“pin4”哦,这点要注意,如果你不想使用这个引脚,在连线方式改变的同时,改变这个数字接口。

(2)输出的温度以摄氏度为单位,相对湿度是以百分比的形式呈现。

(3)在shell框中会连续不断的输出温度和相对湿度,暂停点击右上角的stop即可。

四、 常见问题:

其实整个过程下来,连线方式或者代码的编写都是没有多大难度的,但是细节的问题一旦忽视,就会报错。结合其他网友的经验和我自己的问题总结如下。

(一)报错:

TypeError: unsupported format string passed to NoneType.__format__(这种情况一般是先没有读数,等一会后出现这个错误。这个是我一直以来最常见的报错,一开始出现的时候根本没有头脑,后来才发现是因为造成这个报错的原因比较多)

1. 杜邦线与树莓派的连线问题。连线没有插紧、线序有问题、线有损坏、代码对应信号引脚的数字有问题、没有查到树莓派5v电 源引脚上(树莓派与传感器的连接方式最好使用树莓派5v,电源,存在使用3.3v电源最后得到到数值的情况)

2. 传感器有问题(我上次的那个传感器有问题竟然也报错了,具体什么错我也记不清楚了,费半天劲一直查看代码排错,结果发现换了个传感器就好了,哭晕)

3. 电源问题(我这里是指树莓派引脚,在使用5V引脚和接地引脚给传感器供电时)

明明引脚分配没问题,也插在了树莓派5v电源引脚上还是报错,可能是你的树莓派上插了其他设备影响到供电了(我上次是插了一个用来控制水泵的继电器)。解决方法是接一个外接电源,保证电源电压的稳定。

(二)报错:

Traceback (most recent call last):
File "/home/pi/Desktop/temp.py", line 9
print 'Temp: {0:0.1f} C Humidity: {1:0.1f} %'.format(temperature, humidity)
^
SyntaxError: invalid syntax

这句话的意思是python代码有问题,但当时的我找了好久也没有发现哪有问题。后来才发现我的python代码是这样的“print 'Temp: {0:0.1f} C Humidity: {1:0.1f} %'.format(temperature, humidity)”,这在python3中是错误的语句格式,必须加上括号, 找了好久才发现是这个问题。

(三)报错:ModuleNotFoundError: No module named 'Adafruit_DHT'

“import Adafruit_DHT ”语句错误,提示找不到Adafruit_DHT模块,但是在terminal里输入“import Adafruit_DHT”不报错,并且已经下载了相关库。可能是你的python版本有问题,可以是python2,但使用的是python3。是否是之前的命令行“sudo python3 setup.py install”写错了,写成“sudo python setup.py install”从而下载的是python2了

部分图片来源于网络,侵删。

最后祝大家都玩派顺利~~

2020-06-09 12:46:38

在树莓派上读取DHT11温湿度传感器-python代码实现及常见问题(全面简单易懂)的更多相关文章

  1. STC15系列通用-STC15F2K60S2/STCW4K32S4读取DHT11温湿度传感器数据串口输出代码实例工程免费下载

    //为了方便大家调试,另附程序工程共大家下载,下载地址:https://www.90pan.com/b1908750 ​ //************************** //程序说明:stc ...

  2. Arduino和C51开发DHT11温湿度传感器

    技术:51单片机.Arduino.DHT11.温湿度传感器.传感器   概述 学习单片机离不开对传感器的学习,本文主要介绍DHT11温湿度传感器的使用方法,同学也可以了解更多的传感器,这对你以后开发产 ...

  3. DHT11温湿度传感器编程思路以及代码的实现(转载)

    源自:https://blog.csdn.net/qq_34952376/article/details/81193938 在我们刚开始进入单片机的学习中,练习写传感器的时序是必不可少的,其实我比较推 ...

  4. 在树莓派上读取土壤湿度传感器读书-python代码实现及常见问题(全面简单易懂)

    本篇文章简单介绍了如何在树莓派上配置土壤湿度传感器以读取土壤湿度(以百分比的形式出现)及代码实现. 主要包含有以下4个模块: 一.土壤湿度传感器常见类型及介绍 二.实验所需设备 三.设备连线方式与代码 ...

  5. 树莓派连接DHT11温湿度传感器(python)

    介绍 DHT11作为一个廉价配件,同时包含了温度.湿度传感器,而且,编码使用也非常简单. 本文介绍如果在树莓派中使用 DHT11,代码是Python.如果有任何疑问,欢迎在下面留言. 接线 VCC接5 ...

  6. 树莓派使用DHT11温湿度传感器

    一.相关介绍 DHT11介绍: DHT11是一款比较便宜的温湿度传感器模块.读取数据只需要占用一个IO口.能够同时测量温度和相对湿度. DHT11的数据手册可以看这里:http://wenku.bai ...

  7. DHT11温湿度传感器模块使用方法和驱动代码实现

    DHT11模块简介 DHT11是一款价格便宜,易于使用的温度湿度测量二合一传感器.它具有超小体积.极低功耗的特点.它使用单根总线与单片机进行双向的串行数据传输,信号传输距离可达20米以上.非常适用于对 ...

  8. STM32驱动DHT11温湿度传感器

    DHT11 是一款湿温度一体化的数字传感器.该传感器包括一个电阻式测湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接.通过单片机等微处理器简单的电路连接就能够 实时的采集本地湿度和温 ...

  9. 玩转X-CTR100 l STM32F4 l DHT11温湿度传感器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] DHT11数字温湿度传感器是一款含有已校准数字信号输 ...

随机推荐

  1. ms-setting是什么

    ms-settings 遇到了两个问题,记录一下 1)windows桌面右键菜单-->显示设置或者个性化-->报错:ms-settings:personalization-backgrou ...

  2. 添加对docker的监控

    一.环境:已安装docker机器ip:192.168.0.202 二.原理 使用docker的metrics-add参数,提供对docker运行参数的访问条件. 三.修改/etc/docker/dae ...

  3. JavaSE (四)程序流程控制 -- if 、switch、for、while

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 目录 前置: * . 从键盘读取数据: 1.分支结构 1.1 if-else结构 1.2 switch- ...

  4. 如何获取CSDN的积分?

    个人感觉就是写博客就给积分 具体给多少? CSDN应该有自己的积分规则 总之一句话:写博客涨积分

  5. Java实现蓝桥杯VIP算法训练 纪念品分组

    试题 算法训练 纪念品分组 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作.为使得参加晚会的同学所获得的纪念品价值 相对均衡, ...

  6. 支持MMDVM的DMR手台

    只要是数字机,都支持,但是,有便宜又好用的吗?当然有,店主做那么久肯定知道哪些机好用 1.MD760(UV双段) 刷固件支持#切换不同的TG,可以手动改机子的DMR ID,可以下载联系人,可以升级!关 ...

  7. win7 64位系统怎么使用debug

    安装DOSbox软件 下载个debug.exe然后把这放到D盘或E盘的根目录下 然后启动dosbox软件,在下面输入 mount c d:\ enter键 c: enter键 输入debug命令就ok ...

  8. Android中Widget开发步骤

    一.创建一个类,继承自 AppWidgetProvider 生命周期介绍: onEnabled():创建第一个widget时调用 onDisabled():删除最后一个widget时调用 二.在清单文 ...

  9. ModelArts准备工作

    说明: 本文是一个ModelArts准备工作文档,适用于初次使用ModelArts的用户.使用ModelArts之前,需要做如下工作:注册华为云账号.完成ModelArts全局配置.以及熟悉OBS相关 ...

  10. 架构C02-商业模式与架构设计

    商业模式与架构设计:A段架构与B段架构 <思考软件创新设计:A段架构师思考技术> A段架构师必须具备鲜活的创新思维,睿智的策略思考,犀利的洞察力和灵活的战术才能把握稍纵即逝的商机     ...