Objetivo:
Criar um projeto Arduino juntando os sensores BMP180, LDR e DH11 para saber pressão, temperatura, umidade e luminosidade.
Componentes necessários:
*Sensor LDR
*Jumpers;
*2 Resistor de 2.2K ohms;
*Cabo USB;
*Computador com a IDE do Arduino instalada;
*Arduino MEGA 2560 ou similar.
*Computador com a IDE do Arduino instalada;
*Arduino MEGA 2560 ou similar.
Montagem do Circuito:
Conecte os componentes no Arduino como mostra a figura abaixo. Verifique
cuidadosamente os cabos de ligação antes de ligar seu Arduino.
Lembre-se que o Arduino deve estar desconectado do computador durante a montagem.
(Fio Amarelo A0, Azul A1, Verde SCL21, Laranja SDA20 , Preto GND e Vermelho 5V)
Código do sistema:
#include <DHT.h> //BIBLIOTECA DO DHT11
#include <Wire.h> //INCLUSÃO DE BIBLIOTECA DO BMP180
#include <Adafruit_BMP085.h> //BIBLIOTECA BMP 180
Adafruit_BMP085 bmp; //OBJETO DO TIPO Adafruit_BMP085 (I2C)
#define DHTPIN A1 // define o pino de dados
#define DHTTYPE DHT11 // define qual versão do dht está sendo
DHT dht(DHTPIN, DHTTYPE);
// Variáveis para usar o medidor de luminosidade
float valL;
float lum;
byte sensorL=A0;
void setup() {
Serial.begin(9600);
Serial.println("DHT11 test!");
dht.begin();
if (!bmp.begin()){ //SE O SENSOR NÃO FOR INICIALIZADO, FAZ
Serial.println("Sensor BMP180 não foi identificado! Verifique as conexões."); //IMPRIME O TEXTO NO MONITOR SERIAL
while(1){} //SEMPRE ENTRE NO LOOP
}
}
void dht11(){
float h = dht.readHumidity();
float t = dht.readTemperature();
// testa se retorno é valido, caso contrário algum erro ocorreu.
if (isnan(t) || isnan(h)){
Serial.println("falha para ler o DHT");
} else{ // caso o retorno for válido exibe as informações na tela
Serial.print("Umidade: ");
Serial.print(h);
Serial.println(" %");
delay(2000);
Serial.print("Temperatura DHT11: ");
Serial.print(t);
Serial.println("ºC");}
}
void lerLum(){
valL = analogRead(sensorL); // atribui a uma variável a leitura no pino analógico 0
lum = (valL *(100/1023.0));
Serial.write("Luminosidade: ");
Serial.println(lum);}
void BMP180(){
Serial.print("Temperatura: "); //IMPRIME O TEXTO NO MONITOR SERIAL
Serial.print(bmp.readTemperature()); //IMPRIME NO MONITOR SERIAL A TEMPERATURA
Serial.println(" *C (Grau Celsius)"); //IMPRIME O TEXTO NO MONITOR SERIAL
Serial.print("Pressão: "); //IMPRIME O TEXTO NO MONITOR SERIAL
Serial.print(bmp.readPressure()); //IMPRIME NO MONITOR SERIAL A PRESSÃO
Serial.println(" Pa (Pascal)"); //IMPRIME O TEXTO NO MONITOR SERIAL
}
void loop() {
lerLum();
delay(2000);
dht11();
delay(2000);
BMP180();
Serial.println("----------");
delay(2000); // os dados serão atualizados a cada 2s (2000ms)
}
Agora, com o Arduino conectado a porta USB do computador,clique em VERIFICAR e depois CARREGAR no canto superior direito do programa, veja como fazer isso clicando AQUI.
Para ver a temperatura,a luminosidade e a umidade que os sensores estão detectando:
Passo 1: Vá em Ferramentas(Tools) e Monitor Serial(Serial Monitor) ou clique Ctrl+Shift+M.
Passo 2: Os dados coletados do sensor aparecerão nessa janela.
Obs: O nome da janela pode mudar dependendo da entrada do seu arduino.
Foto do sistema montado: