1)硬件描述
此传感器是一款含有已校准数字信 输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信 的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信 传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。因此,本设计选择DHT11作为环境检测的传感器。
2)硬件参数:
工作电压 :3.3V-5v
尺寸大小:40mm x 28mm
重量大小:3g
信 类型:数字信
供电电流:最大2.5mA
温度范围:0-50℃,误差±2℃
湿度范围:当环境温度在 0 ℃时为30-90%RH;当环境温度在25℃时为20-90%RH ;当环境温度在50℃时为20-80%RH
响应时间:1/e(63%) 6-30s
测量分辨率分别为:温度(8bit)湿度(8bit)
采样周期间隔:
2.2.2 OLED显示器
蜂鸣器是一种一体化结构电子讯响器,采用直流电源供电,广泛应用于计算机、打印机、复印机、 警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为有源蜂鸣器和无源蜂鸣器,本设计使用的是无源蜂鸣器,通过控制PWM的输出可以控制蜂鸣器的鸣叫频率。
2.2.4 LED小灯
第三章 软件设计
本设计的主控制器为Arduino Uno,控制该控制器最常用的语言为C/C++混合编程,本设计也使用此最为广泛的语言,编译与上传代码的环境为Arduino IDE软件。软件方面的设计主要分为两大部分,第一为输入元件的程序编写,即DHT11传感器方面的内容;第二部分为输出元件的程序编写,主要为OLED的显示设计、LED的闪烁和蜂鸣器的鸣叫。
第六章 总结
这次实训本人设计的家庭安全监测系统,可以有效地监测家庭温度和湿度的情况,并且具有预警功能,达到很好的提醒作用。随着人们生活水平的提高和安全防范意识的日渐加强,智能防火防盗系统也在不断升级,防火防盗设备也在不断更新,希望此设计能给家庭安全设备提供一定的思路。
附件:程序清单
#include //引入头文件
#include “U8glib.h”//引入Oled头文件
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); //设置通讯方式为IIC通讯
#define DHTPIN 8//湿度传感器OUT接8 口
#define DHTTYPE DHT11//定义DHT11传感器
DHT dht(DHTPIN, DHTTYPE); //定义湿度传感器OUT与8 口连接并且读取温湿度传感器的数值
int buzzer = 3; //定义蜂鸣器引脚3
int led = 4; //定义led引脚4
int HH; //定义HH变量,用于储存湿度数据
int TT; //定义TT变量,用于储存温度数据
void setup()
{
pinMode(buzzer, OUTPUT); //设置蜂鸣器引脚为输出模式
pinMode(led, OUTPUT); //设置led引脚为输出模式
Serial.begin(9600); //串口波特率
dht.begin(); //温湿度传感器初始化
}
void loop()
{
get_temp_humi(); //获得温湿度子函数
dis_play(); //oled显示数据子函数
if (TT > 50) //如果温度大于50°,蜂鸣器响
analogWrite(buzzer, 100);
else //否则,蜂鸣器不响
analogWrite(buzzer, 0);
if (HH
{
digitalWrite(led, HIGH);
delay(50);
digitalWrite(led, LOW);
delay(50);
}
else //否则,led熄灭
digitalWrite(led, LOW);
}
void get_temp_humi() //获取温湿度数据子函数
{
HH = int(dht.readHumidity()); //获得湿度
TT = int(dht.readTemperature()); //获得温度
Serial.print(“Temp: “); //串口显示温湿度信息
Serial.println(TT);
Serial.print(“Humi: “);
Serial.println(HH);
}
void dis_play() //OLED数据显示子函数
{
u8g.firstPage(); // OLED首页
do
{
char buffer1[1]; //定义字符buffer1
// 将int转为char显示出来
itoa(TT, buffer1, 10); //10:10进制显示
u8g.setFont(u8g_font_gdr10r); //设置字体
u8g.drawStr(25, 26, “Temp:”); //第26行25列显示“Temp:”
u8g.drawStr(70, 26, buffer1); //第26行70列显示温度数据
char buffer2[1]; //定义字符buffer2
// 将int转为char显示出来
itoa(HH, buffer2, 10); //10:10进制显示
u8g.setFont(u8g_font_gdr10r); //设置字体
u8g.drawStr(25, 60, “Humi:”); //第60行25列显示“Humi:”
u8g.drawStr(70, 60, buffer2); //第60行70列显示湿度数据
} while (u8g.nextPage()); //执行配置
}
相关资源:flux改变随时间改变电脑屏幕色温软件Windows-WindowsServer工具类…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!