Mini estação meteorológica com LCD e Arduíno usando I2C

 Ola pessoal neste novo projeto estarei mostrando como fazer uma mini estação meteorológica utilizando Arduíno, LCD, sensor de chuva  e um termômetro com higrômetro. O projeto e bem simples e com custo relativamente baixo podendo ser aperfeiçoado futuramente se adicionando alarmes e outras coisas mais. Vamos ver abaixo a relação de peças que vai precisar.





Para este projeto iremos precisar de 
1x Arduíno.
1x LCD com modulo I2C (para quem não conhece o modulo I2C acesse este LINK).
1x Protoboard.
1x Sensor de chuva(com saída digital).
1x Sensor de temperatura e umidade DHT11.
2x fios jumpers macho x macho.
10x fios jumpers macho x femea.


Sera necessário utilizar a  Biblioteca I2C .
Baixar Biblioteca I2C .

Descompacte com winzip e copia para pasta libraries dentro da pasta arduino.

Abaixo esta o esquema em planilha das conexões de modulo por modulo conecte exatamente como mostrado.


Conexões do Modulo I2C do LCD com Arduíno;

Conexões do Sensor de temperatura com Arduíno;

Conexões do Sensor de Chuva com Arduíno;



Apos realizar as conexões  copie o código fonte abaixo para seu Arduíno.






aqui



//-----------------------------------------Inicio do código-------------------------------------//





#include <Wire.h>



#include <LiquidCrystal_I2C.h> //Biblioteca I2C

LiquidCrystal_I2C lcd(0x27,16,2); // Seta o endereco do display 0x27, para 16 caracteres e 2 linhas o display

#include <dht.h>

#define dht_dpin A0 //Pino DATA do Sensor ligado na porta Analogica A1



dht DHT; //Inicializa o sensor







int SensorChuva = 7;

int ArmazenaChuva = 0;





void setup()

{

  lcd.init(); // Inicializa o LCD.

  lcd.backlight();

  Serial.begin(9600);

 // delay(1000);//Aguarda 1 seg antes de acessar as informações do sensor

 

  pinMode(SensorChuva,INPUT);

}



void loop()

{

 

    ArmazenaChuva = digitalRead(SensorChuva);

    if (ArmazenaChuva == LOW){

    lcd.clear();

    lcd.print("Esta chovendo");

    lcd.setCursor(0,1);

    lcd.print("neste momento");

    delay(3000); }

   

             else {

    lcd.clear();

    lcd.print("Sem chuva");

    lcd.setCursor(0,1);

    lcd.print("neste momento");

    delay(3000);

    }

  DHT.read11(dht_dpin); //Lê as informações do sensor

   lcd.clear();

    lcd.print("Umidade:");

    lcd.print(DHT.humidity);

    lcd.println("%          ");

    lcd.setCursor(0,1);

    lcd.print("Temperat:");

    lcd.print(DHT.temperature);

    lcd.println("C         ");



   

   

  delay(3000);  //Não diminuir muito este valor. O ideal é a leitura a cada 2 segundos

}





//----------------------------------------Fim do código-------------------------------------//

Um comentário: