湿度和温度是测量环境条件的常用参数。在这个基于Arduino的项目中,我们将测量环境温度和湿度并将其显示在16x2 LCD屏幕上。结合了温度和湿度传感器DHT11与Arduino uno一起开发了这一摄氏温度计和百分湿度测量项目。在我以前的项目中,我还使用温度传感器LM35开发了一种数字温度计。
该项目包括三个部分,一个部分使用湿度和温度传感器DHT11感测湿度和温度。第二部分读取DHTsensor模块的输出,并将温度和湿度值提取为合适的百分比和摄氏刻度数。系统的第三部分在LCD上显示湿度和温度。
该项目的工作基于单线串行通信。首先arduino向DHT模块发送启动信号,然后DHT给出包含温度和湿度数据的响应信号。Arduino分为两部分进行收集和提取:第一部分是湿度,第二部分是温度,然后将它们发送到16x2 LCD。
在此项目中,我们使用了传感器模块DHT11。该模块具有湿度和温度综合体,并带有校准的数字信号输出,这意味着DHT11传感器模块是用于感测湿度和温度的组合模块,可提供校准的数字输出信号。 DHT11为我们提供了非常精确的湿度和温度值,并确保了高可靠性和长期稳定性。该传感器具有电阻型湿度测量组件和NTC型温度测量组件,并内置8位微控制器,具有快速响应和经济高效的特性,并采用4引脚单行封装。
DHT11模块可用于串行通信,即单线通信。该模块以特定时间段的脉冲序列形式发送数据。在将数据发送到arduino之前,它需要一些带有延迟的初始化命令。并且整个处理时间约为4ms。完整的数据传输是40位的,该过程的数据格式如下:
8位积分RH数据+ 8位十进制RH数据+ 8位积分T数据+ 8位十进制T数据+ 8位校验和。
完成程序
首先,arduino以18µs的延迟向DHT11发送一个高到低的启动信号,以确保DHT的检测。然后arduino上拉数据线,并等待20-40µs以获得DHT的响应。DHT一旦检测到启动信号,便会向arduino发送低电压电平响应信号,延迟时间约为80µs。然后DHT控制器拉起数据线,并保持80µs,以便DHT安排发送数据。
当数据总线处于低电平时,表示DHT11正在发送响应信号。完成后,DHT再次将数据线上拉80µs,以准备数据传输。
DHT每位发送到arduino的数据格式以50µs低压电平开始,而高压电平信号的长度确定数据位是“ 0”还是“ 1”。
重要的是要确保上拉电阻值,因为如果我们将DHT传感器放置在<20米的距离处,建议使用5k上拉电阻。如果将DHT放在更长的20米处,则使用适当的值上拉电阻。
电路图和说明
液晶显示器用于显示温度和湿度,它直接以4位模式连接到arduino。LCD的引脚(即RS,EN,D4,D5,D6和D7)连接到arduino数字引脚2、3、4、5、6和7。 5k上拉电阻。
编程说明
在编程中,我们将为DHT11传感器和LCD显示模块使用预构建的库。
然后,我们为LCD和DHT传感器定义了引脚,并初始化了所有设置。然后在循环中使用dht函数读取DHT传感器,然后使用一些dht函数提取湿度和温度并将其显示在LCD上。
这里,度符号是使用自定义字符方法创建的。