/*librerie*/
#include "DHTesp.h"
#include <LiquidCrystal_I2C.h>
#include "pitches.h"
/*variabili e pin*/
const int DHT_PIN = 15;
#define SPEAKER_PIN 13
DHTesp dhtSensor;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int contalatemperatura=0;
int contalumidit=0;
#define massimatemperatura 25
#define massimaumidità 60
/* creando questo carattere a 8 bit, gradi[8] (l'8 sarebbe i bit)*/
byte gradi[8] = {
0b00110,
0b01001,
0b01001,
0b00110,
0b00000,
0b00000,
0b00000,
0b00000
};
void setup() {
lcd.begin(16, 2);
lcd.init() ;
lcd.backlight() ;
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.createChar(0, gradi); /*dicendo al programma del carattere speciale*/
pinMode(SPEAKER_PIN, OUTPUT); //speaker
}
void loop() {
int gradiarrivo;
TempAndHumidity data = dhtSensor.getTempAndHumidity();
/*Serial.println("Temp " +String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");*/
delay(10);
lcd.setCursor(0, 0);
lcd.print(data.temperature);
lcd.setCursor(5, 0);
lcd.write(byte(0)); /*carattere speciale creato in precedenza*/
lcd.print("C attuali");
if (data.temperature<10) {
lcd.setCursor(0, 1);
lcd.print("evacuare! ");
tone(SPEAKER_PIN, NOTE_D5);
delay(300);
tone(SPEAKER_PIN, NOTE_C5);
delay(300);
noTone(SPEAKER_PIN);
}
else if (data.temperature<45) {
lcd.setCursor(0, 1);
lcd.print("tutto tranquillo");
}
else {
lcd.setCursor(0, 1);
lcd.print("evacuare! ");
tone(SPEAKER_PIN, NOTE_D5);
delay(300);
tone(SPEAKER_PIN, NOTE_C5);
delay(300);
noTone(SPEAKER_PIN);
}
}