Serra da balcone 2.0

0

Chi, come me, vive in montagna sa bene che fare superare l’inverno alle piante da balcone è sempre un terno al lotto. E quando i sistemi tradizionali non danno i risultati voluti, forse è il caso di ricorrere alla tecnologia ed un po’ di fai-da-te.

Come fare per evitare le gelate? Il sistema utilizzato in casa è quello riparare le piante in una mini-serra da giardino -un telaio in resina, con un involucro di polietilene trasparente – che ripara dal vento, ma non è in grado di garantire che la temperatura scenda al di sotto dei valori critici.
Il progetto, quindi, è quello di dotare la serra di un riscaldatore termostatato, in grado di attivarsi automaticamente all’appropinquarsi della zona critica, con un rilevatore in grado di misurare temperatura ed umidità, trasferire via WiFi i dati ad un sistema di registrazione e controllo, in grado di inviare un allarme qualora il sistema uscisse dai normali parametri operativi. Tutto mantenendo un costo in linea con il valore delle piante da preservare.

Primo punto è la scelta del sistema di riscaldamento, e dopo varie analisi ho scelto di usate una lampada ad infrarossi del tipo usata per riscaldare i rettilari. Sono disponibili varie potenze, io ho optato per quella da 200W.

Il controllo della lampada l’ho demandato ad un timer digitale (W1209), economico (~5€), ma completo, facilmente programmabile ed adatto allo scopo. Consente inoltre di visualizzare localmente la temperatura della serra senza bisogno di strumenti esterni. Demandare il controllo del riscaldamento al microcontrollore avrebbe fatto inutilmente lievitare i costi e diminuito l’affidabilità del sistema.


La supervisione del sistema è invece fatta via software.Per leggere la temperatura e l’umidità della serra ho optato per un sensore Am2302/DHT22, costo ~4€ . Funziona sia a 5V che a 3.3V ed usa un solo segnale per interfacciarsi al microcontrollore, con cui colloquia per mezzo di un protocollo proprietario.
Questa caratteristica è determinante per la scelta del microcontrollore, che quindi può avere capacità di input-output anche molto ridotte: come quelle dell’ESP8266-01 di Espressif Systems. E’ un microcontrollore economicissimo (parte da ~3€), dotato di uno stack completo TCP/IP e WiFi 802.11b/g/n, cpu 32bit risc a 80Mhz, 64+96k di RAM, 1Mbyte di memoria flash. Delle varie incarnazioni quella usata è la più piccola, che ha comunque due linee di I/O utilizzabili. Per questa linea di prodotto è disponibile un firmware, NodeMcu, che ne consente la programmazione in LUA direttamente via terminale. Connettendolo ad un computer via seriale è possibile interagire con il microcontrollore,  e caricare programmi e file nella sua memoria flash, rendendo più rapida ed immediata la sua programmazione.

Per usarlo con il sensore DHT22 è necessario costruire una immagine personalizzata del firmware che contenga il modulo di gestione. E’ possibile farlo in vari modi, quello più semplice è di crearlo direttamente on-line. Se volete potete scaricare la versione che ho generato io, direttamente da qui.
Per caricare il firmware e per programmare il microcontrollore è necessario disporre di un convertitore USB-seriale@3.3V. La tensione è fondamentale: ESP8266 funziona a 3.3V ed è del tutto intollerante alla più comune 5V. Il convertitore, peraltro, è l’elemento più critico dell’intera catena: io ho avuto buoni risultati da un cavo che utilizzava il chip Prolific, ma pessimi dalle schedine con chip (fake?) FTDI.
In avviarlo in modalità operativa è sufficiente collegare l’ESP8266 con una alimentazione a +3.3V su Vcc e CH_PD ed con il negativo a GND. Per caricare il firmware è necessario collegare il negativo anche il pin GPIO0. Lo ‘stato’ delle linee viene letto al momento dell’accesione. La comunicazione da e verso il computer avviene tramite le linee TX e RX a cui si deve collegare l’adattatore seriale. E’ utile a questo scopo usare una basetta breadboard.

Il firmware può essere caricato sull’ESP8266 sia da windows con il programma di Espressif, che da altre piattaforme con esptool. Attenzione però che per ottenere buoni risultati è consigliabile cancellare la memoria flash prima di caricare una nuova versione!
Caricato il firmware è possibile riavviare l’ESP8266 senza il pin GPIO0 a massa ed utilizzare uno dei vari loader disponibili per interagire con il microcontrollore: io ho usato una applicazione Java, denominata ESPlorer.

Sotto l’aspetto software, ho preferito affidare al microcontrollore il solo compito di restituire via http i valori letti dal sensore. Il codice finale, quindi, è molto semplice: può essere scaricato da qui ed aperto con un normale editor di testo. Per personalizzarlo è sufficiente inserire SSID e password della rete WiFi, e l’indirizzo IP del controllore, che deve essere statico.
Per accedervi è sufficiente puntare il browser all’indirizzo assegnato, indicando come percorso /data restituità una pagina html adatta alla visualizzazione su cellulare, mentre con /json i dati di temperatura ed umidità saranno formattati in json per poter essere successivamente elaborati elettronicamente.
E’ forse superfluo sottolineare che non è consigliabile consentire l’accesso all’ESP8266 direttamente da internet, ma solo attraverso un semplice proxy (anche in PHP) che isoli i contesti e faccia un minimo di bufferizzazione dei dati.

La gestione della memorizzazione delle letture e dell’emissione degli allarmi è invece affidata ad uno script python (lanciato da cron ogni 3 minuti) residente su uno dei sistemi linux di casa. Anche questo script, scaricabile qui, è semplicissimo: si limita ad accedere via http al sensore, recuperare i dati, registrarli in un database mysql e, in caso di anomalie, ad emettere un messaggio di allarme via telegram.

Alcune informazioni finali. Il termostato è alimentato a 12V, da cui sono derivati i 3.3V per il sensore. Io ho utilizzato un LM317 che avevo in casa, ma è più semplice usare uno dei tanti regolatori di tensione che si trovano in vendita su internet. L’assorbimento è modesto, circa 1W a riposo.


Buon divertimento!

 

Condividi:

L'autore

Consulente Informatico, blogger, problem solver, radioamatore. Ho iniziato la mia attività nel 1977 sviluppando sistemi di calcolo nell'area energie alternative e rinnovabili e da allora mi sono sempre interressato delle frontiere della tecnologia. Nel 1984 sono stato fra i pionieri delle BBS, i primi servizi telematici pubblici, e l'anno successivo ho portato in Italia Fidonet, la prima rete pubblica mondiale, che ho coordinato sino al 1994. Sono attivamente su Internet agli inizi degli anni 90, Nel 1998 sono stato fra i primi a credere nella convergenza digitale, arricchendo internet con materiale multimediale, come audio e video, anni prima del Web 2.0. Continuo da sempre ad occuparmi di informatica e di tecnologia con un occhio attento al futuro che ci attende. Continuo a lavorare come consulente informatico, con una specifica competenza in sicurezza, reti di comunicazione, sistemi operativi e tecnologie di virtualizzazione.

Lascia un commento