android温湿度传感节点指令源代码,Arduino+DHT11+OLED显示温湿度信息(附详细文档+源码)…

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进行处理,非常感谢!

上一篇 2021年4月22日
下一篇 2021年4月22日

相关推荐