acquario online

IoT DIY: Colleghiamo un acquario Online con NodeMCU e Arduino

Da alcuni anni l’IoT ha cominciato ad insidiarsi nella vita di tutti i giorni, ed è innegabile che ha la capacità di cambiare quella che fino ad adesso è stata la concezione del mondo, contribuendo anche al miglioramento della vita quotidiana, permettendoci, tra le altre cose, di controllare i nostri oggetti da remoto creando un vero e proprio sistema interconnesso.
Stanno nascendo nuove tipologie di dispositivi sempre più smart e anche gli elettrodomestici, compresi quelli più piccoli, vengono ormai progettati secondo le regole del nuovo mondo IoT.

Se sei un maker, probabilmente ami rendere più smart tutto quello che ti circonda, e se sei anche un acquariofilo, questo progetto fa per te.
Come realizzare un sistema che colleghi il proprio acquario Online permettendone la gestione remota?
Scoprilo in questo articolo.

Invece di utilizzare i classici sistemi di controllo per gestire il termostato, le lampade, la pompa dell’aria, l’attivazione del filtro e tutte le periferiche di cui hanno bisogno i pesci per vivere in pieno confort, basta mettere insieme pochi componenti ed un pizzico di pazienza per assemblare una scheda elettronica, basata sul famosissimo modulo Wireless ESP8266, che permetta la gestione remota del proprio acquario attraverso un  pannello di controllo virtuale da un Web browser.

Vediamo subito come realizzare il progetto.

Per la realizzazione di questo progetto, è necessario reperire alcuni componenti, che ho inserito per voi in una lista della spesa:

Board NodeMCU ESP8266


Ho scelto di utilizzare questa board in quanto permette di essere programmata direttamente attraverso l’IDE di Arduino, ma anche perché, viste le sue ridotte dimensioni e la presenza di uno stabilizzatore di tensione che permette la corretta alimentazione del modulo ESP8266, può essere integrata facilmente nei propri progetti, senza dover ricorrere ad altri componenti.
La presenza del convertitore USB-seriale e dei tasti RESET e FLASH semplifica la fase di programmazione della scheda.
Naturalmente potete scegliere la scheda di sviluppo che preferite e nel caso in cui voleste utilizzare direttamente un modulo ESP8266 stand-alone, dovrete assicurarvi di configurarlo correttamente e di flashare il bootloader NodeMCU.

Per maggiori informazioni su questa dev board e sui moduli ESP, potete dare un’occhiata a questo articolo.

Modulo Relè


Per controllare l’attivazione dei carichi che operano in corrente continua, è indispensabile utilizzare dei relè ai quali collegare i suddetti.
In questo progetto i relè verranno utilizzati per l’attivazione della pompa dell’acqua e del termostato.
Per velocizzare ed ottimizzare la fase si assemblaggio del circuito, ho optato per un modulo a due relè già assemblato, provvisto di un circuito dedicato alla gestione dello stato dei relè attraverso i segnali logici rilevati.
Sarà il modulo ESP8266 attraverso l’invio di segnali LOW e HIGH a controllare il modulo.
L’attivazione di queste board avviene per logica inversa: quando in ingresso è presente un segnale LOW, viene eccitato il relè e con un segnale HIGH si disattiva.
Nel caso in cui voleste ampliare il progetto, per collegare ad esempio più di due dispositivi che operano in corrente alternata, potrete farlo semplicemente sostituendo il modulo appena presentato, con uno della stessa tipologia che monti a bordo tanti relè quanti ve ne servano.
Se i pin digitali presenti sulla dev board non dovessero esser abbastanza, potete ovviare a questo problema semplicemente integrando un port expander o passando ad una dev board basata sul modulo wireless ESP32.

Sensore di temperatura incapsulato DS18B20


Per monitorare in ogni istante la temperatura dell’acqua, è indispensabile utilizzare un sensore che allo stesso tempo sia impermeabile e compatto, motivo per cui ho scelto di utilizzare un sensore DS18B20 incapsulato da posizionare dentro l’acquario.
La temperatura letta dal sensore, verrà mostrata direttamente nel pannello di controllo virtuale del sistema.
Questa sonda può essere utilizzata anche per misurare la temperatura ambientale e del terreno ed ha una discreta precisione di misurazione, ottima comunque per questa applicazione.

Le specifiche tecniche di questo sensore sono le seguenti:

  • Tensione di alimentazione compresa tra 3.0V e 5.5V DC
  • ±0.5°C Precisione da -10°C a +85°C
  • Range di misurazione temperatura: -55°C a 125°C
  • Tempo di risposta inferiore a 750ms

Trovate informazioni più dettagliate su questo sensore nel datasheet pubblicato sul sito di Mouser.

Mosfet STP16NF06L


Per illuminare l’acquario e renderlo più accattivante, ho deciso di fissare una striscia LED che emette luce bianca sul vetro esterno.
La tensione di funzionamento è di 12V DC.
Per “switchare” la corrente di alimentazione è possibile utilizzare un modulo relè, che però non farebbe altro che occupare dello spazio che potrebbe benissimo essere dedicato all’installazione di altri componenti o essere risparmiato per ottenere un sistema più compatto.
Ho quindi deciso di utilizzare un transistor unipolare di tipo N-MOSFET siglato STP16NF06L, tramite il quale switchare la corrente alla striscia LED quando richiesto.
Utilizzando un mosfet si può anche scegliere l’intensità di illuminazione dei LED, modificando qualche riga del codice.

Per maggiori informazioni e caratteristiche di questo componente, vi rimando al suo datasheet.

Scheda millefori


A meno che non vogliate realizzare un circuito stampato che oltre a semplificare la fase di assemblaggio possa risultare anche più ordinato, per assemblare questo progetto si può utilizzare una scheda millefori, tramite la quale con alcune accortezze è possibile ottenere un circuito ben fatto.

Hardware

Per realizzare la scheda di controllo di questo progetto, bisogna collegare i componenti listati precedentemente come illustrato nell’immagine seguente.
immagine di collegamento acquario iot

Software

Programmazione board NodeMCU

Una volta finito di assemblare correttamente il nostro circuito, possiamo dedicarci alla programmazione della scheda.
Se sul proprio computer non è mai stata collegata e programmata tramite l’IDE di Arduino una scheda basata su un ESP8266 (nel nostro caso una board NodeMCU), bisogna prima seguire alcuni passaggi indispensabili, tra cui l’installazione dei driver del convertitore USB-seriale e aggiungere nell’IDE di Arduino le librerie e le configurazioni necessarie alla compilazione e programmazione.

Tutti i passaggi da seguire vengono spiegati in questo articolo.

Appena completata questa fase preliminare, seguire i seguenti passaggi per completare la fase di programmazione:

  1. Collegare tramite un cavo micro USB la scheda NodeMCU al nostro computer;
  2. Aprire l’IDE di Arduino e selezionare la board corretta;
  3. Incollare nell’IDE il codice allegato a questo articolo;
  4. Modificare i campi contenenti i parametri di rete con quelli della propria rete Wi-fi;
  5. Avviare il caricamento.

Il codice è stato commentato per renderne la comprensione più semplice possibile.
Una volta completata anche la fase di caricamento del Software, la scheda si riavvierà ed una volta riattivata si collegherà automaticamente alla rete Wi-fi che abbiamo indicato nel codice.
Utilizzando uno smartphone o computer, collegato alla stessa rete alla quale è collegato il modulo ESP8266, tramite un qualsiasi Web Browser, per gestire il proprio acquario IoT, basterà collegarsi all’indirizzo 192.168.1.77 ed operare attraverso il pannello di controllo.
Per chi volesse controllare il sistema anche quando è fuori casa, è indispensabile che associ la connessione del dispositivo appena realizzato ad un client DNS.

Conclusione

Il progetto presentato è stato realizzato utilizzando pochi componenti elettronici ed in modo generico, per permettere a chiunque di modifi carlo in base ai propri gusti ed esigenze.
Senza dover modifi care molte sezioni del codice, sarà possibile aggiungere tutte le funzioni personalizzate che si desiderano, modifi cando eventualmente anche il circuito, includendo o sostituendo determinati componenti.
Una possibile idea di integrazione in questo progetto potrebbe essere quella di implementare un sensore per il monitoraggio dei valori dell’acqua, oppure di installare un dispenser motorizzato per mangime collegandolo al modulo ESP8266.

Puoi trovare questo articolo nel numero di Ottobre-Novembre di Fare Elettronica.

Ivan Scordato
progettista elettrico e appassionato di nuove tecnologie. Scrive articoli di approfondimento tecnico e conosce anche tecniche SEO per la scrittura su web.