quinta-feira, 4 de abril de 2019

Temperatura e umidade no Display OLED 128x64 0,96” I2C com Arduino


     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%.
     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 0,96”
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);  
}

     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