这节课,讲一个新的传感器,温湿度传感器。 温湿度传感器 我们选用的型号是DHT11,下面是这个型号的一些参数: 外文名:DHT11 供电电压:3.3~5.5V DC 输 出:单总线数字信号 测量范围:湿度20-90%RH,温度0~50℃ 测量精度:湿度+-5%RH,温度+-2℃ 分 辨 率:湿度1%RH, 温度1℃ 互 换 性:可完全互换 长期稳定性: <±1%RH/年 这些信息丛哪里可以获取呢,一般通过以下方式获得: 1.通过搜索引擎,搜索“温湿度传感器”,通过百科知识获得基础信息。 2.通过在电商平台上面检索“温湿度传感器”,查看商品详细介绍信息,可能包含厂家的商品参数信息。 3.通过查询厂家的产品白皮书获得更详细的产品介绍以及接口说明。 来看一下实物照片,以及相应的接口说明: 将温湿度传感器有孔洞的一面朝上,引脚朝下方摆放,从左到右依次为1到4号引脚,分别对应的接口说明如图所示。 要了解详细的传感器原理,一般需要去搜索厂家的商品白皮书,关于DHT11,推荐下载下面pdf文件: 查看下载文件,可以了解接口信息以及输出数据格式: 硬件的时序图,文档中有详细说明,根据时序图可以用程序来发送读取温度信号命令以及读取返回值。 硬件连接 通过上面的说明,以及根据厂家的电路图,这样连接硬件: 第一步,树莓派GPIO口接到面包板上。 树莓派GPIO的2号口,用杜邦线母对公连接到面包板上。 树莓派GPIO的18号口,用杜邦线母对公连接到面包板上。 树莓派GPIO的20号口,用杜邦线母对公连接到面包板上。 如下图所示: 第二步,DHT11接到面包板上。 DHT11的1号口,用杜邦线母对公连接到面包板上,和GPIO的2号口的杜邦线同一排。 DHT11的2号口,用杜邦线母对公连接到面包板上,和GPIO的18号口的杜邦线同一排。 DHT11的4号口,用杜邦线母对公连接到面包板上,和GPIO的20号口的杜邦线同一排。 注意,由于DHT11的引脚比较细,插入杜邦线母头不太容易插紧,可以用透明胶粘贴固定。 如下图所示: 第三步,在面包板上面,插入一个10k欧的电阻。 插在DHT的1号口和2号口这2排线当中。 如下图所示: 前面0018这节课里面还少买了一个电阻包,请到那个店铺里面搜索“电阻包”,如图: 找到标签上写有10K的电阻,如下图,然后插入到面包板上。 全部电路连接如下图: 编写程序 启动树莓派电源,打开文本编辑器,编写代码如下: 运行结果如下: 可以看到运行多次的结果可能不一致,这是正常情况,因为这个型号的温湿度传感器本身就不是非常精确的传感器,再加上环境温度一直在变化。 如果希望看到温度测量结果剧烈变化,可以通过以下方式调节: 1.用手掌握住传感器,可以利用人体体温加热,让传感器测量的温度上升。 2.用一个塑料袋包住一个冰块,贴在传感器上,让传感器测量的温度下降。 大家可以试试看,不停测量的温度的变化情况。 这段代码有一个很大的问题,那就是当杜邦线和温度传感器的引脚接触不是很好的情况下,可能会卡住,大家可以尝试看看 如何修改代码可以达到不会卡住。 具体代码的说明,我已经写在代码的注释当中了,大家自行学习。 当中关于温度的数据如何解析出来的,大家大概了解明白就可以了。如果想弄清楚,需要仔细研究前面下载文件里面的电子电路时序图。 这里,用到的一个新的知识点,是使用GPIO.input(channel)函数来读取GPIO口传递过来的电平信号。 下节课,讲解说明将温湿度传感器和蜂鸣器结合在一起组成温度报警器,当温度大于某个温度或者小于某个温度时发出蜂鸣声音。