sábado, 22 de junho de 2013

Arduino com DHT11

Pessoal agora que chegou o meu DHT11 ("sensor de temperatura e umidade) fiz um script legal e também uns efeitos para o meu LCD.
Como ja mostrei no post antigo meu arduino com LCD. no caso passando uma frase simples, agora mostrando as informações do DHT11.


Estou usando a bliblioteca do DHT11 que pode ser baixada aqui.

esquema ligação do LCD + DHT11 no arduino. no meu caso usei a ligação do LCD como nesse post  Ver. só a ligação do DHT11 que usei como referência este abaixo

Código fonte:




// include the library code:
#include <LiquidCrystal.h> //Biblioteca do LCD
#include <DHT11.h> // Bilbioteca do DHT11
int pin=A0;
DHT11 dht11(pin);

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//Desenho icone temperatura.
char tmp[8] = {
0b00100,
0b01010,
0b01010,
0b01110,
0b01110,
0b11111,
0b11111,
0b01110 };

// Desenho icone de Graus .
char cel[8] = {
0b01100,
0b10010,
0b10010,
0b01100,
0b00000,
0b00000,
0b00000,
0b00000 };

//Desenho icone umidade.
char umid[8] = {
0b00100,
0b00100,
0b01110,
0b01110,
0b11111,
0b11101,
0b01110,
0b00000 };

// desenho de uma cruz (opcional);
char cruz[8] = {
0b00000,
0b01100,
0b11110,
0b01100,
0b01100,
0b01100,
0b00000,
0b00000 };
void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.setCursor(0,0);
  lcd.print("  eletrovieira.blogspor.com.br");
  lcd.createChar(1,(uint8_t*)tmp); //Cria icone da teperatura
  lcd.createChar(2,(uint8_t*)cel);  // cria icone do Graus
  lcd.createChar(3,(uint8_t*)umid); // cria icone da umidade
  lcd.createChar(4,(uint8_t*)cruz); // cria icone da cruz (opcional);

//Apresentação do meu blog (opcional)
  for (int positionCounter = 0; positionCounter < 26; positionCounter++) {
    // scroll one position left:
  lcd.scrollDisplayLeft();
    // wait a bit:
  delay(250);
  };
  lcd.clear();
}

void loop() {
  int err;
  float temp, humi;
  if((err=dht11.read(humi, temp))==0) // ler informações do DHT11 e carrega nas variaveis.
  {
    lcd.setCursor(0,0);
    lcd.write(1); //exibeicone temp.
    lcd.setCursor(1,0);
    lcd.print(temp); //exibe temperatura
    lcd.setCursor(3,0);
    lcd.print("   ");
    lcd.setCursor(3,0);
    lcd.write(2); //exibe icone de graus
    lcd.setCursor(4,0);
    lcd.print("C"); // imprime um "C" depois de graus
    lcd.setCursor(6,0);
    lcd.print("So Jesus"); //opcional
    lcd.setCursor(0,1); //vai para segunda lina do LCD
    lcd.write(3); // exibe icone da umidade
    lcd.setCursor(1,1);
    lcd.print(humi); // exibe a humidade
    lcd.setCursor(3,1);
    lcd.print("   ");
    lcd.setCursor(3,1);
    lcd.print("%"); // exibe "%" depois da umidade
    lcd.setCursor(7,1);
    lcd.print("Salva!"); // opcional
  }
  else
  {
    lcd.setCursor(0,0);
    lcd.print("Error No :");
    lcd.setCursor(10,0);
    lcd.print(err);
 
  }
  lcd.setCursor(13,1); // opcional cruz piscando no LCD
  lcd.write(4); // opcional
  delay(450);// opcional
  lcd.setCursor(13,1);//opcional
  lcd.print(" "); //opcional
    delay(DHT11_RETRY_DELAY); //tempo para colher novas informações do DHT11.
}

Nenhum comentário: