Un cronotermostato programmabile, con display LCD a colori e touch screen, esteticamente accattivante e dal costo estremamente contenuto. Completo di termometro, misuratore di pressione e umidità in grado anche di darvi le previsioni meteo, programmabile per fasce orarie giornaliere nell’arco di una settimana.
No, non voglio vendervelo, ma spiegarvi come realizzarlo da soli. Si compone di un circuito stampato sul quale saldare i componenti, un microprocessore ATMega320 (quello di Arduino) con il relativo software e un touch screen Nextion.
Il costo totale dei componenti : 20€ o poco più (o anche meno), dipende molto dalla dimensione del display sul quale ricade ovviamente il 90% del costo totale. La grafica ve la create voi come meglio vi piace.
Io l’ho fatto così
ma potete sbizzarrirvi con la grafica come meglio vi pare. Il display che vi propongo è estremamente versatile, facile da programmare e dalle prestazioni eccezionali. Con un po’ di pazienza potete personalizzare la grafica a piacere. In queste due figure giusto un paio di esempi.
E allora si parte ….. !!!
Materiale necessario (hardware e software)
Premessa: realizzare questo cronotermostato è un pochino impegnativo, non complicatissimo ma ovviamente è necessario avere un minimo di manualità nella realizzazione di circuiti elettronici nonchè di elettronica di base. Niente di laborioso eh, giusto saper saldare alcuni componenti.
Per il resto si tratta di utilizzare dei programmi. Tra tutti forse il più complesso è Kicad ma se non avete l’esigenza di modificare il circuito stampato potete tranquillamente mandare in produzione il file gerber che vi allego e saltare a piè pari il paragrafo di Kicad e degli schemi.
Veniamo allora al necessario :
- Touch screen Nextion. Ve ne sono di moltissime dimensioni e risoluzioni, li trovate qui. Io ho optato per l’NX4024T032 che è la versione a 3,2″ in quanto come si vede dalla prima foto qui sopra sono riuscito ad adattarlo ad una placca Vimar di quelle che ho in casa. Nulla vieta ovviamente di prenderlo più piccolo o più grande. Partono da 2,4″ e arrivano a 7,0″;
- Un circuito stampato che dovrete realizzare (farvi realizzare) utilizzando i file gerber allegati, vedere più sotto;
- Alcuni componenti elettronici da saldare sul circuito stampato, che troverete nella lista componenti più sotto;
- Un convertitore Seriale-USB che potete acquistare per pochi euro qui oppure qui.
Vi servirà per comunicare con il display Nextion ed inviargli il vostro programma. In realtà non è strettamente necessario perché potreste anche salvare ogni volta il programma in una SD Card, inserirla nello slot del display, accenderlo ed attendere che si carichi, ma è decisamente scomodo. Molto meglio la comunicazione seriale via USB.
- Arduino UNO, la versione con ATMega328 sullo zoccolo, ad esempio questo. Vi servirà solo per programmare l’ATMega328 che poi toglierete da Arduino per metterlo nella vostra scheda;
- Arduino IDE, cioà l’ambiente di sviluppo integrato per programmare Arduino;
- Il programma Nextion Editor, un tool per personalizzare il vostro display touch screen;
- Kicad, un software gratuito per disegnare circuiti elettronici, circuiti stampati e i relativi gerber file per la produzione;
- Il pacchetto software comprendente il programma in C per Arduino, il programma per il display e i disegni in Kicad. Trovate tutto in questo zip file. Salvatevi il file .zip nel PC e scompattatelo.
Il touch screen
I display Nextion sono molto popolari tra gli hobbisti e in particolare tra coloro che si divertono con Arduino.
La casa produttrice fornisce un software con interfaccia grafica per programmare il display, chiamato Nextion Editor. Scaricatelo dal sito ufficiale ed installatelo nel vostro PC, quindi lanciatelo.
A questo punto dobbiamo effettuare l’upload del software, prima però bisogna collegare il display alla porta USB. Prendete il vostro convertitore seriale – USB e collegatelo al display Nextion utilizzando il cavo in dotazione, secondo lo schema qui sotto riportato.
Tornate ora al programma Nextion Editor
Selezionate File –> Open ed aprite il file Termostato21.02.2020.HMI che si trova nella cartella Nextion_HMI tra i file che vi siete scaricati in precedenza.
Premete ora il pulsante Upload
Nella finestra Upload to Nextion Device che si apre selezionare la porta Com corrispondente al convertitore Seriale – USB, nell’immagine qui sotto la COM4 ma nel vostro caso potrebbe essere diversa.
Premete Go e attendete che l’upload termini.
Nel display comparirà la grafica che avete visto nel Nextion Editor. Mancano ovviamente i dati di temperatura, pressione, ….. in quanto saranno trasmessi dal microcontrollore che vi andremo a collegare.
L’elettronica di controllo del cronotermostato
Quindi abbiamo un display, ora ci manca qualcosa che gli invii i dati da visualizzare.
Nel pacchetto di file che vi siete scaricati, nella cartella kicad avete lo schema elettrico dell’elettronica di controllo. Aprite con kicad il file Cronotermostato.sch e vedrete questo schema.
Spiegazione del circuito cronotermostato
Il cuore del circuito de nostro cronotermostato con touch screen è il microcontrollore ATMega328, lo stesso utilizzato per Arduino.
Lo vedete al centro dello schema, l’elettronica a contorno è veramente minimale, l’unico altro componente attivo è l’AMS1117 per la conversione da 5V a 3.3V. Ci sono poi alcuni connettori per l’interfacciamento seriale con il display e con gli ulteriori due elementi attivi, vale a dire il DS3231 cioè l’orologio
e il BME280, il sensore in grado di rilevare temperatura, pressione e umidità.
Lista componenti cronotermostato fai da te
Assemblaggio del circuito cronotermostato con touch screen.
Come avrete notato dalla lista componenti, quasi tutti sono a montaggio superficiale. Questo per ridurre gli spazi visto che molto probabilmente sarà sistemato all’interno di una scatola ad incasso che generalmente è abbastanza ristretta.
Il costo del materiale è di pochi euro, speciamente se comprato da qualche noto distributore cinese.
La cosa un po’ più complessa è la realizzazione del circuito stampato.
Aprite con Kicad il file PCB, modificate a piacere scritte e disposizione dei componenti, quindi File -> Fabrication Outputs -> Gerbers e createvi i Gerber file. A questo punto potete inviare i gerber file ad uno dei tanti produttori di PCB che per cifre irrisorie ve lo realizza e spedisce a casa.
Saldatevi sopra i componenti, nel posizionare il BME280 e il DS3231 fate attenzione alla posizione dei pin. Lo stesso dicasi per il collegamento con la seriale del display.
Il risultato finale sarà molto simile a questo.
IL SOFTWARE DEL CRONOTERMOSTATO
Dovete ora caricare il programma all’interno del microcontrollore.
La cosa migliore è mettere l’ATMEGA328 in un Arduino, collegare quest’ultimo al PC, lanciare il programma IDE per Arduino e con quest’ultimo aprire il file Nextion_Cronotermostato.ino che trovate nella cartella Arduino.
A questo punto trasferite il programma in Arduino, quando l’upload è terminato scollegate Arduino, rimuovete il microcontrollore ATMega328 dallo zoccolo ed inseritelo nello zoccolo del circuito stampato.
Potete alimentare il circuito attraverso il connettore denominato MainConn con una tensione continua 5V.
FUNZIONAMENTO DEL CRONOTERMOSTATO E TOUCH SCREEN
La schermata principale del vostro cronotermostato con touch screen, che è anche quella alla quale si torna da qualsiasi sottomenu se non si tocca il display per almeno un minuto, è la seguente.
L’immagine che vedete qui sopra e tutte le prossime immagini sono foto del display, la qualità è pessima, mi dispace ma non sono riuscito a fare di meglio. Vi assicuro comunque che la resa sul display è eccellente.
A sinistra in grande si vede la temperatura della stanza (22.5 °C), in piccolo più sotto la temperatura programmata (25.5°C) e più sotto ancora la modalità di funzionamento che è Automatico (NOTA: non tengo 25 gradi e mezzo in casa d’inverno, oggi c’è il sole, fa caldo e ho aumentato di proposito la temperatura solo per far accendere la fiammella :))
Al centro, dall’alto, il nome della stanza (Camera) la previsione meteo che cambia a seconda della pressione atmosferica (crescente tendente al bel tempo, calante brutto tempo), quindi la data e l’ora.
A destra, dall’alto, l’umidità relativa, la pressione in Pascal, l’indicatore di accensione (se la temperatura programmata è maggiore di quella attuale) o spegnimento (se la temperatura programmata è minore di quella attuale).
In basso, da sinistra, i tasti per incrementare o diminiure la temperatura, funzionano solo se in modalità manuale. Quindi il pulsante per il cambio di modalità da Automatico a Manuale o viceversa. Una volta che si è in modalità manuale si può impostare la temperatura tramite le frecce in alto e in baso che si vedono nella foto.
L’ultimo tasto in basso a destra è quello per i settaggi.
MENU SETUP
Premendo Setup dalla schermata principale compare questo menù
Cambio data e ora
Premendo Data e Ora è possibile impostare la data odierna e l’ora.
Programmazione cronotermostato
Premendo invece Programmazione è possibile programmare i periodi di accensione, spegnimento e le temperature nelle diverse fasce orarie giornaliere del vostro cronotermostato con touch screen.
Ultimo ma non meno importante, l’uscita etichettata nel CS come VALV va collegata all’elettrovalvola che apre e chiude il circuito di riscaldamento. La tensione è di 5V e sarà opportuno ovviamente l’utilizzo di un relè per il pilotaggio dell’elettrovalvola.