L'LM35 e l'LCD sono collegati ad Arduino che a a sua volta è collegato a un PC sul quale gira un server web Apache, un server MySQL oltre ad ospitare i vari interpreti PHP e Perl
Dal lato Arduino:
il sensore è collegato a uno dei sei ingressi analogici, mentre l'LCD è collegato a 7 pin (4 per i dati + 2 per il controllo) del port I/O digitale di Arduino. Lo sketch nel suo loop esegue tre compiti molto semplici assegnati a tre rispettive funzioni:
- legge la tensione dell'LM35 e la converte in gradi Celsius;
- se dal PC gli arriva un carattere convenzionale (es. la lettera 's'), risponde inviando al PC stesso la temperatura acquisita (es. '15.42')
- invia comunque sull'LCD locale ogni mezzo secondo circa la temperatura acquisita
Dal lato PC:
il carattere di richiesta invio temperatura viene inviato dal PC ad Arduino in due scenari d'uso:
- dalla pagina web, on demand, ogni qualvolta il visitatore apre la pagina stessa o ne fa il refresh; la temperatura restituita da Arduino viene così visualizzata nella pagina web
- da uno script eseguito automaticamente dal sistema ogni mezz'ora; il dato della temperatura prelevata da Arduino viene inserito in un database MySQL
Quindi dal lato server, a un livello generale, abbiamo bisogno di:
- Un primo script, fetcher, che ha il compito fondamentale di aprire la seriale(USB), mandare ad Arduino un carattere (es. 's') e leggere da questo la temperatura in quel momento. Questo script verrà dunque utilizzato, per produrre la stampa nella pagina web della temperatura corrente.
- Un secondo script, logger, il quale anche esso sfrutta fetcher per prendersi la temperatura, ma non la visualizza: la va a inserire in un database di MySQL. Questo script viene lanciato automaticamente dal sistema ogni mezz'ora, dunque verranno memorizzati nel database le temperature lette ogni mezz'ora (es. 10:00, 10:30...ecc.)
- Un terzo e ultimo script plotter, che ha il compito di prendersi dal server MySQL le temperature loggate da logger nelle ultime 24hh e creare, dinamicamente, un'immagine con il grafico delle temperature in funzione degli orari. Quest'immagine verrà poi visualizzata in una pagina web.
- Una pagina web dinamica (es. in PHP), chiamiamola temp, che ogni qualvolta viene aperta, va a leggersi la temperatura misurata in quel momento da fetcher e la stampa a video. Inoltre, deve visualizzare anche il grafico generato da plotter.
Nessun commento:
Posta un commento