Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //--------------------------------------------------------------------------------------------------------------
- //Programa para escrever no display LCD 16x2 a temperatura, umidade, luminosidade e movimento através de botões.
- //Autora: Katarina
- //--------------------------------------------------------------------------------------------------------------
- //incluir a biblioteca DHT
- //incluir a biblioteca LiquidCrystal
- //incluir a biblioteca Wire
- //Incluir a biblioteca BH1750
- #include <DHT.h>
- #include <LiquidCrystal.h>
- #include <Wire.h>
- #include <BH1750.h>
- //Define a ligação ao pino de dados do sensor DHT11
- #define DHTPIN A5
- //Define o tipo de sensor DHT utilizado
- #define DHTTYPE DHT11
- DHT dht(DHTPIN, DHTTYPE);
- //Define os pinos que serão ligados ao LCD
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
- //Define as ligações aos pinos de dados do sensor BH1750
- #define SCL A3
- #define SDA A4
- //Tipo de sensor de Luminosidade utilizado
- BH1750 lightMeter;
- //Define a ligação ao pino de dados do sensor PIR
- #define PIR 6
- //Define a ligação do botão de estado do DHT11
- #define BUTTON_TEMP 7
- //Define a ligação do botão de estado do BH1750
- #define BUTTON_LUX 8
- //Define a ligação do botão de estado do PIR
- #define BUTTON_MOV 9
- //Array simbolo grau
- byte grau[8] ={ B00001100,
- B00010010,
- B00010010,
- B00001100,
- B00000000,
- B00000000,
- B00000000,
- B00000000,};
- void setup() {
- Serial.begin(9600); //Inicializa a serial
- lcd.begin(16,2); //Inicializa LCD
- lcd.clear(); //Limpa o LCD
- lcd.createChar(0, grau); //Cria o caractere customizado com o simbolo do grau
- lightMeter.begin(); //Inicializa o sensor de luminosidade
- pinMode(PIR, INPUT); //Declara PIR um INPUT
- pinMode(BUTTON_TEMP, INPUT); //Declara BUTTON_TEMP um INPUT
- pinMode(BUTTON_LUX, INPUT); //Declara BUTTON_LUX um INPUT
- pinMode(BUTTON_MOV, INPUT); //Declara BUTTON_MOV um INPUT
- }
- void TEMP_UMI(){
- float h = dht.readHumidity(); //Le o valor da umidade
- float t = dht.readTemperature(); //Le o valor da temperatura
- lcd.setCursor(0,0);
- lcd.print("Temp : ");
- lcd.print(" ");
- lcd.setCursor(7,0);
- lcd.print(t,1);
- lcd.setCursor(12,0);
- lcd.write((byte)0); //Mostra o simbolo do grau formado pelo array
- lcd.setCursor(0,1);
- lcd.print("Umid : ");
- lcd.print(" ");
- lcd.setCursor(7,1);
- lcd.print(h,1);
- lcd.setCursor(12,1);
- lcd.print("%");
- }
- void LUX(){
- uint16_t lux = lightMeter.readLightLevel(); //Le intensidade da luminosidade
- lcd.setCursor(0,0);
- lcd.print("Light: ");
- char luxArr[1];
- sprintf(luxArr, "%d", lux);
- lcd.print(lux);
- lcd.print(" lx");
- }
- void PIR(){
- byte leitura = digitalRead(PIR);
- lcd.setCursor(0,0);
- if (PIR == HIGH){
- lcd.print("Movimento");
- } else {
- lcd.print("Parado");
- }
- }
- void SetState(float TEMP_UMI, int LUX, char PIR)
- void loop() {
- int val = digitalRead(BUTTON_TEMP);
- int val2 = digitalRead(BUTTON_LUX);
- int val3 = digitalRead(BUTTON_MOV);
- if (val == HIGH){
- TEMP_UMI;
- }
- if (val2 == HIGH){
- LUX;
- }
- if (val3 == HIGH){
- PIR;
- }
- SetState(TEMP_UMI, LUX, PIR);
- delay(100);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement