Realizza il tuo orologio con temperatura e umidità con Digispark
Il dispositivo realizzato è un orologio/datario, con visualizzazione di temperatura e umidità, basato su Digispark, una piccolissima scheda a microcontrollore Arduino compatibile.Per la data e l'ora è stato utilizzato un modulo RTC con collegamento I2C,
mentre la lettura della temperatura e dell'umidità avviene grazie al modulo DHT 11.
quello che vi posto di seguito è lo sketch da caricare nel microcontrollore, se non sapete come caricarlo o volete maggiori informazioni su questo componente, vi rimando all'articolo introduttivo su Digispark.
Ecco il codice:
-
#include <TinyDHT.h> // Liberia sensore DHT (umidtà temperatura)
-
#include <LiquidCrystal_I2C.h> // Libreria Display con protocollo I2C
-
#include <TinyRTClib.h> // LIbreria del RTC (real time clok)
-
#include <TinyWireM.h> // Libreria controllo I2C
-
#include <avr/power.h> // Libreria per ridurre la frequenza a 16 MHz a 5 volt
-
#define DHTTYPE DHT11 //imposto il modella di DHT
-
#define TEMPTYPE 0 // imposto la lettura temperatura in gradi celsius
-
#define DHTPIN 1 // pin dove collego il DHT
-
DHT dht(DHTPIN, DHTTYPE); // definisco il sensore
-
RTC_DS1307 RTC; // definisco il tipo di RTC
-
LiquidCrystal_I2C lcd(0x27,20,4); // definisco il tipo di display (20 colonne x 4 righe)
-
-
void setup() {
-
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
-
dht.begin(); // se la frequenza è 16 MHz e la tensione è 5 volt, inizzializzare DHT
-
-
TinyWireM.begin(); // inizzializzo il I2C
-
RTC.begin(); // inizzializzo l'RTC
-
lcd.init(); //inizzializzo il display
-
lcd.backlight(); // accendo il display
-
-
lcd.print(" Vi presento");
-
lcd.setCursor(0,1);
-
lcd.print(" RoboTittino");
-
lcd.setCursor(0,2);
-
lcd.print("Umidita' Temperatura");
-
lcd.setCursor(0,3);
-
lcd.print(" Data Ora");
-
delay(4000); // scrivo la frasr di presenazione ed attendo 4 secondi
-
lcd.clear(); // cancello il display
-
-
lcd.setCursor(0,3);
-
lcd.print("ORA:");
-
lcd.setCursor(0,2);
-
lcd.print("DATA:"); // nella terza e quate riga scivo "ORA" e "DATA"
-
-
if (! RTC.isrunning()) {
-
RTC.adjust(DateTime(__DATE__, __TIME__)); // regolo l'ora del RTC con quella del PC
-
}
-
}
-
-
void loop() {
-
int8_t h = dht.readHumidity(); // leggo l'umidità
-
int16_t t = dht.readTemperature(TEMPTYPE); // leggo la temperatura
-
lcd.setCursor(0, 0);
-
if ( t == BAD_TEMP || h == BAD_HUM ) { // se non rileva nessun dato
-
lcd.print("Collegatre DHT"); // scrivo messaggio d'errore nella prima riga
-
} else {
-
lcd.print("Umidita': "); // nella prima riga scrivo "Umidità"
-
lcd.setCursor(10,0);
-
lcd.print(h); // nella prima riga nella colonna 10, scrivo l'umidità rilevata
-
lcd.setCursor(12, 0);
-
lcd.print(" % ");// nella prima riga nella colonna 12, scrivo il simbolo %
-
lcd.setCursor(0, 1);
-
lcd.print("Temp:"); // nella seconda riga scrivo "Temmp"
-
lcd.setCursor(10, 1);
-
lcd.print(t);// nella seconda riga nella colonna 10, scrivo la temperatura rilevata
-
lcd.setCursor(13, 1);
-
lcd.print("*C");// nella seconda riga nella colonna 13, scrivo il simbolo "*C"
-
}
-
-
DateTime now = RTC.now(); // leggo i dati del RTC
-
lcd.home();
-
lcd.setCursor(7,2);
-
if(now.day()<10)
-
lcd.print("0");
-
lcd.print(now.day(), DEC);
-
lcd.print("/");
-
if(now.month()<10)
-
lcd.print("0");
-
lcd.print(now.month(), DEC);
-
lcd.print("/");
-
lcd.print(now.year(), DEC);
-
// nella settima colonna della terza riga scrivo: gg/mm/aaaa
-
-
lcd.setCursor(8,3);
-
if(now.hour()<10)
-
lcd.print("0");
-
lcd.print(now.hour(), DEC);
-
lcd.print(":");
-
if(now.minute()<10)
-
lcd.print("0");
-
lcd.print(now.minute(), DEC);
-
lcd.print(":");
-
if(now.second()<10)
-
lcd.print("0");
-
lcd.print(now.second(), DEC);
-
// nell'ottava colonna della quarta riga scrivo hh:mm:ss
-
-
delay(1000); //attendo un secondo prima di una nuova lettura
-
-
-
}
Questo è lo schema elettrico realizzato con grande pazienza da Tiziano:
Ed ecco la realizzazione fisica del progetto:
questo progetto è stato realizzato da Tiziano Bianchettin
Google maps:
Thank you for your donation.
messenger meetic
twitter
potrebbero interessarti video comici
;masterizzare dvd video
masterizzare cd audio