Visualizando a temperatura, umidade e luminosidade ambiente através de um display LCD.
A umidade e a luminosidade são exibidas em porcentagem, e a temperatura em graus celsius.
O projeto utiliza o sensor DHT22 para realizar as leituras de umidade e temperatura, e um LDR para leitura da luminosidade.
O sensor DHT22 possui o mesmo funcionamento do DHT11, porém, com maior resolução de leitura. É composto por um sensor capacitivo e um termistor NTC que permitem, respectivamente, leituras de umidade e temperatura em um único módulo.
Para a luminosidade é utilizado o LDR, um resistor variável de acordo com a luz incidente.
Os valores das leituras dos sensores são exibidos em um LCD 16x2 conectado a um módulo I2C, para comunicação com os pinos A4 e A5 do Arduino (SDA e SCL).
Um Arduino Nano como controlador dos sensores e LCD.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | /*--------------------------------------------------------- Programa : VISÃO METEOROLÓGICA COM DHT22 E LDR Autor : Fellipe Couto [ http://www.efeitonerd.com.br ] Data : 27/06/2020 ---------------------------------------------------------*/ #include <DHT.h> //https://github.com/adafruit/DHT-sensor-library #include <LiquidCrystal_I2C.h> //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library #define DHTTYPE DHT22 #define DHTPIN 2 #define LDR A0 DHT dht(DHTPIN, DHTTYPE); LiquidCrystal_I2C lcd(0x3F, 16, 2); //LCD 16x2 no endereço 0x3F bool screen = true; void setup() { //Inicializa o sensor de umidade e temperatura DHT22 dht.begin(); //Inicializa o lcd lcd.begin(); } void loop() { //Leitura do sensor DHT22 double h = dht.readHumidity(); double t = dht.readTemperature(); //Verifica se alguma das leituras falhou, reiniciando o loop para nova leitura if (isnan(h) || isnan(t)) return; //Leitura do sensor de luminosidade LDR int valueLDR = map(analogRead(LDR), 0, 1023, 0, 100); //Escreve os valores no LCD if (screen) { screen = false; lcd.clear(); lcd.setCursor(1, 0); lcd.print("TEMP UMIDADE"); lcd.setCursor(1, 1); lcd.print(t, 1); lcd.setCursor(10, 1); lcd.print(h, 1); } else { screen = true; lcd.clear(); lcd.setCursor(2, 0); lcd.print("LUMINOSIDADE"); lcd.setCursor(7, 1); lcd.print(String(valueLDR) + "%"); } delay(5000); } |
Top 👏👏
ResponderExcluir#TMJ 👍
ExcluirMuito bom!! 👏🏼👏🏼👏🏼👏🏼 Top!
ResponderExcluirObrigado!! 😃
Excluir