00 27/11/2017 17:57
Uniamo insieme alcuni lavori fatti in precedenza per ottenere uno Sketch avanzato in cui sono presenti due sensori ed uno schermo lcd sul quale visualizzare le informazioni.

IL PRESENTE SKETCH PREVEDE L'UTILIZZO DI DUE SENSORI ED UNO SCHERMO LCD

- DHT11
- GAS SENSOR
- SCHERMO LCD 20X4

[IMG]https://lh3.googleusercontent.com/yqjfXtq3s2ysECVcOg-Es3g0zuI9Eo0A1Fb1a1nnq8uV4ToWxQFmRJdc5vPJNsg8m-WzYTT6ki28bhvPg9NFaI9KoeWy5yJuDx8SaeyoYcx_Q2QV7Xd0qaS4-Wsp31dm-CcREUPRIVqvh5VWxxb4V7ar9eiTTlT8_1z_3AZFUi7GcdzNKiSvyhtcREpLAkXhvJgEd8zpE6GqsEsYjkfGSQCtdQ8SzmmqyGB7BqhbH2oMmpq_0fQOHl1GswnxAsEMAhnREyzc6faFS7JvIz6javH9G3mHtOnZuPHD86iOnmfinUPCucj6kPPWA177EU_BFm-Bie2ck6fkzZjd5xFm36ixmGOQmkow9i4HmYaWMkKz48j7-Wp3onZuidtzwsWblA3YDLylrHz6kJZg_VvoahyLUy7TP_167JwCHKbZDiAlaV4xyZlR3tCjjhPx5HGsodfLXuGEXWF2l-Xt80Ab1KpOlsrJCgn8AAOopqGIzm-2ic1EZdBeDw5BdkneAxG_MgtyRgXvM02oqRLMkzW01ih02ZxwlhNK_qwHmsmYydmRRmmhedh4sTjw7nNLSBemkPhqPdlWxfu9jC4v2HVntQTjvq6iVgQoCR7bSJEQ1qk=w494-h658-no[/IMG]

ECCO LO SKETCH
#include
#include "DHT.h"
#include
#include
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
#define DHTPIN 8
#define ledt 10
#define ledh 12
#define ledg 11
#define led1 5
#define sensor A2
int segnale;
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
lcd.begin(20,4);
Serial.println ("Temperatura, Umdità e qualità dell'aria");
Serial.println ("____________________________________");
Serial.println (" ");
lcd.setCursor(1,0);
lcd.print("Pappafava.it");
for(int i = 0; i< 3; i++)
{
lcd.backlight();
delay(250);
lcd.noBacklight();
delay(250);
}
lcd.backlight(); // finish with backlight on
}
void loop() {
float t = dht.readTemperature();
int h = dht.readHumidity();
segnale=analogRead(sensor);
Serial.println (" ");
Serial.print("Temperatura ");
Serial.print(t);
Serial.print(" °C");
lcd.setCursor(1,1);
lcd.print("Temperatura ");
lcd.print(t);
lcd.print(" C");
if(t<16.5 || t>21)
{
Serial.println(" Temperatura non confortevole");
digitalWrite(ledt, LOW);
}
else
{
Serial.println(" Temperatura confortevole");
digitalWrite(ledt, HIGH);
}
delay(1000);
Serial.print("Umidità ");
Serial.print(h);
Serial.print(" %");
lcd.setCursor(1,2);
lcd.print("Umidita' ");
lcd.print(h);
lcd.print(" %");
if(h>45 && h<68)
{
Serial.println(" L'umidità relativa è buona");
digitalWrite(ledh, HIGH);
}
else
{
Serial.println(" L'umidità relativa non è ottimale");
digitalWrite(ledh, LOW);
}
delay(1000);
Serial.print("Qualità ");
Serial.print(segnale);
Serial.print(" ppm");
lcd.setCursor(1,3);
lcd.print("Qualita' ");
lcd.print(segnale);
lcd.print(" ppm");
if(segnale<450)
{
Serial.println(" La qualità dell'aria è buona");
digitalWrite(ledg, HIGH);
}
else
{
Serial.println(" La qualità dell'aria stà peggiorando, aprire la finestra per 1 minuto");
digitalWrite(ledg, LOW);
}
Serial.println ("____________________________________");
delay(3000);
}



LIBRERIE NECESSARIE:
- DHT11
- LCD I2C