- Protótipo:
Lista de componentes externos ao Arduino Uno utilizados:
- 3 resistores de 680 ohms
- 1 resistor de 10k
- 1 display LCD 16 x 2 linhas
- 1 potenciômetro de 10k
- 1 sensor DHT11 (temperatura e umidade)
- 1 Led RGB anodo comum
- 1 LDR
- Tabela de conexão do display LCD ao Arduino:
Pino do Display
|
Pino do Arduino Uno
|
1
|
GND
|
2
|
+Vcc
|
3
|
Pino 2 Pot 10k (meio)
|
4
|
12
|
5
|
GND
|
6
|
11
|
11
|
5
|
12
|
4
|
13
|
3
|
14
|
2
|
15
|
+Vcc
|
16
|
GND
|
- Sketch do projeto:
#include <Wire.h>
#include <LiquidCrystal.h>
const int sensorLuz = 0; //pino analogico A0 em que o sensor de luz está conectado
int valorSensorLuz = 0; //variavel usada para ler o valor do sensor de luz
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
dht11 DHT11;
#define DHT11PIN 7
void setup()
{
Serial.begin(9600);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(6, OUTPUT);
lcd.begin(16, 2);
}
void loop()
{
valorSensorLuz = analogRead(sensorLuz); //lê o valor do sensor de Luz LDR
int chk = DHT11.read(DHT11PIN);
lcd.setCursor(0, 0);
lcd.print(" Quarto do Manu ");
lcd.setCursor(0, 1);
lcd.print("Luz: ");
lcd.print(valorSensorLuz);
lcd.print("/1023 ");
delay(4000);
lcd.clear();
lcd.print("t=");
lcd.print((float)DHT11.temperature, 0);
lcd.write(B11011111);
lcd.print("C");//simbolo de grau
lcd.print(" Umid=");
lcd.print((float)DHT11.humidity, 0);
lcd.print("%");
delay(4000);
if(DHT11.temperature < 17)
{lcd.setCursor(0, 1);
lcd.print(" Muito Tosse! ");
delay(3000);}
else
if(DHT11.temperature > 22)
{lcd.setCursor(0, 1);
lcd.print("Calor p/ C***lho!");
delay(3000); }
else
{lcd.setCursor(0, 1);
lcd.print("Temp. agradavel!");
delay(3000);
}
//Obs.: Led RGB anodo comum ligado ao positivo, portanto os comandos de acendimento devem ser negativos.
//acende o LED azul conectado ao pino 8 do Arduino caso a temperatura esteja abaixo de 15ºC
if(DHT11.temperature < 17)
{digitalWrite(8, LOW);}
else
{digitalWrite(8, HIGH);}
//acende o LED verde conectado ao pino 9 do Arduino caso a temperatura esteja entre 15ºC e 22ºC
if(DHT11.temperature >= 17 && DHT11.temperature <= 22)
{digitalWrite(9, LOW);}
else
{digitalWrite(9, HIGH);}
//acende o LED vermelho conectado ao pino 10 do Arduino caso a temperatura seja maior que 22ºC
if(DHT11.temperature > 22)
{digitalWrite(10, LOW);}
else
{digitalWrite(10, HIGH);}
//acende o LED branco com o catodo (K) conectado ao pino 6 do Arduino caso a luminosidade esteja abaixo de 10, de um máximo de 1023
if(valorSensorLuz < 15)
{digitalWrite(6, LOW);}
else
{digitalWrite(6, HIGH);}
}
- Protótipo para teste
- Projeto final