Neste artigo vamos aprender a medir a temperatura e
umidade com o DHT11, através do Arduino, e mostrar os resultados no display
OLED 0,96”
I2C.
O DHT11 é um sensor de temperatura e unidade
relativa, que permite medir temperaturas de 0 a 50 Celsius , e umidade na faixa de 20 a 90%. Sua faixa de
precisão para temperatura é de 2 graus, e de umidade, 5%.
O Display OLED 128×64 pixels tem um alto
contraste e excelente nitidez. O mesmo possui luz própria (não é necessário
backlight) e isso o torna bastante econômico. Com 0.96″ e
comunicação I2C utiliza poucas conexões.
Componentes necessários:
1 Arduino Uno;
1 Módulo DHT 11;
jumpers
M&M;
jumpers
M&F;
1 Display OLED 128×64 0.96″ I2C
1 Protobord (Opcional)
Estes e outros componentes podem ser
adquiridos neste link AQUI.
Montagem:
Arduino
|
DHT11
|
Display OLED
|
Pino 5V
|
VCC
|
VCC
|
Pino GND
|
GND
|
GND
|
Pino A1
|
DATA
|
|
Pino A4
|
SDA
|
|
Pino A5
|
SCL
|
Programando o Arduino:
Para utilizar o DHT11 com o
Arduino e programar no Arduino IDE é necessário instalar uma biblioteca, que
pode ser baixada neste link AQUI !
Para utilizar o Display com o
Arduino e programar no Arduino IDE é necessário instalar uma biblioteca, que
pode ser baixada neste link AQUI !:
Nota: Baixe a
biblioteca U8glib para Arduino: 1.18.1. Ou a
mais atual disponível.
Após descompactar os arquivos baixados e incluí-los na biblioteca do Arduino IDE podemos programar o Arduino.
O programa abaixo faz com que
o Arduino leia as informações do sensor e apresenta essas informações no display.
Código:
#include <U8glib.h> // U8glib library
#include <dht.h> // DHT library
#define dht_apin A1
dht DHT;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);
void draw(void)
{
u8g.setFont(u8g_font_fub17r);
u8g.drawStr(0, 20, "Temp: ");
u8g.drawStr(0, 60, "Umid: ");
u8g.setPrintPos(72, 20);
u8g.print(DHT.temperature, 0);
u8g.println("C");
u8g.setPrintPos(65, 60);
u8g.print(DHT.humidity, 0);
u8g.println("%");
}
void setup(void)
{
}
void loop(void)
{
DHT.read11(dht_apin);
u8g.firstPage();
do
{
draw();
} while( u8g.nextPage() );
delay(2000);
}
#include <dht.h> // DHT library
#define dht_apin A1
dht DHT;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);
void draw(void)
{
u8g.setFont(u8g_font_fub17r);
u8g.drawStr(0, 20, "Temp: ");
u8g.drawStr(0, 60, "Umid: ");
u8g.setPrintPos(72, 20);
u8g.print(DHT.temperature, 0);
u8g.println("C");
u8g.setPrintPos(65, 60);
u8g.print(DHT.humidity, 0);
u8g.println("%");
}
void setup(void)
{
}
void loop(void)
{
DHT.read11(dht_apin);
u8g.firstPage();
do
{
draw();
} while( u8g.nextPage() );
delay(2000);
}
Pratique mudando os tipos de fonte e posição
dos textos no display, veja os tipos de fonte disponíveis neste link AQUI !
Os componentes deste tutorial pode ser comprados AQUI!
Nenhum comentário:
Postar um comentário