Il broker e la piantina

Su come monitorare lo stato di una pianta utilizzando il protocollo Mqtt e innaffiarla utilizzando una scheda Arduino.

Dietro questo titolo da novella di Fedro o da canzone di Zarrillo, si nasconde un piccolo esperimento che vorrei realizzare utilizzando il protocollo Mqtt e una scheda Arduino.

L’idea mi è venuta vedendo su Youtube un video di Greta Galli [3] in cui recensiva la scheda Agrumino [3], una scheda, basata su un chip programmabile con l’ambiente di sviluppo Arduino, e mostrava come con questa scheda fosse possibile rilevare alcuni parametri come l’umidità del terreno e l’intensità della luce e, in base a questi, azionare una pompa per innaffiare la piantina.

Così ho pensato di poter ripetere l’esperimento, arricchendolo con l’invio di notifiche periodiche sullo stato della piantina utilizzando il protocollo Mqtt che permetterebbe in questo modo l’interazione tra la scheda che controlla la piantina con altri dispositivi “intelligenti“.

Sì, d’accordo, l’esperimento è banale e inutile, però se pensiamo alla grande sensibilità delle piante e alla loro alta percezione dell’ambiente circostante possiamo immaginare che queste loro caratteristiche possano essere usate per inviare informazioni a sistemi più complessi. Non a caso il professor Stefano Mancuso, neurobiologo di fama mondiale e direttore del LINV (International Laboratory of Neurobiology), da anni studia la possibilità di utilizzare le piante come biosensori in grado di percepire e monitorare minime variazioni di parametri ambientali.

Ora, in questo caso, i dati inviati non saranno misurati sulla piantina, ma sull’ambiente che la circonda, ma magari in una versione successiva si potrebbe pensare di completare l’esperimento in questo senso, al momento non saprei proprio come misurare variazioni di paramentri di una pianta.

Inevitabilmente dovrò suddividere il progetto in piccoli passi in modo che sia per me fattibile e realizzabile:

  1. Attivazione di un broker Mqtt per la raccolta dei dati (questo post).
  2. Invio a un broker Mqtt di alcuni dati dati (umidità e temperatura) misurati con una scheda Agrumino.
  3. Ricezione da un broker Mqtt di alcuni comandi e stampa del comando ricevuto nel log.
  4. Azionamento di una pompa per innaffiare la pianta in seguito ad alcuni eventi.
  5. Azionamento di una pompa per innaffiare la pianta in seguito a un comando ricevuto dal broker.
  6. Realizzazione di un circuito equivalente ad Agrumino con una scheda Arduino e sensori acquistati su Internet.
  7. Misurazione di alcuni parametri direttamente da una pianta… (leggere qualche articolo per verificare fattibilità).

Ok, iniziamo…

I. HiveMQ Cloud: Un semplice broker disponibile online

Il broker: HiveMQ

Come già dettop in [4] il protocollo Mqtt è un protocollo semplice e “leggero” che permette agli oggetti di comunicare tra loro, secondo il paradigma publish/subscribe. In pratica ci sono degli oggetti che pubblicano dei dati (publisher) e dei dispositivi che si registrano per “ascoltare” questi dati e agire di conseguenza (subscriber).

L’intermediario di questa comunicazione è il broker che riceve i dati dai subscriber e li inoltra ai publisher.

Nel nostro caso, Agrumino sarà il publisher e il mio pc e il mio cellulare saranno i subscriber.

Per quanto riguarda il broket Mqtt, almeno inizialmente, userò un servizio disponibile online e offerto gratuitamente, nella sua versione base, da HiveMq. Si chiama HiveMq Cloud.

Per attivare il broker (chiamato cluster da HiveMQ) basta:

  1. Registrarsi al servizio HiveMQ Cloud in questa pagina, indicando email e password e accettando i Termini e le condizioni d’uso. 
  2. Cliccare sul link che arriva all’indirizzo email precedentemente indicato, per confermare l’account.
  3. Accedere al servizio inserendo indirizzo email e password nella pagina che si è aperta automaticamente cliccando sul link o a questa pagina: accesso al servizio.
  4. Compilare i dati anagrafici richiesti: nome, cognome, azienda e numero di telefono.
  5. Scegliere e inserire lo username e la password che i dispositivi (la piantina, per esempio) dovranno fornire per inviare e ricevere dati dal broker e cliccare su add:
  6. Cliccare sul tab Overview per visualizzare l’indirizzo assegnato al cluster appena creato:
  7. Il broker è configurato e attivo. Segnarsi i seguenti dati da utlizzare per vertificarne il funzionamento: username, password, hostname, port. HiveMQ cloud usa esclusivamente il protocollo TLS per comunicare, quindi bisognerà utilizzare un client che lo supporti.

Publisher: MQTT-Explorer

Ci sono vari client disponibili gratuitamente sia applicazioni online sia programmi per Windows, Linux o Mac, ma soltanti alcuni supportano il protocollo TLS che è l’unico supportato da HiveMQ. Per fare dei test velocemente, su Windows, si può utilizzare MQTT-Explorer [9].

I passi da seguire sono:

  1. Scaricare MQTT-Explorer dal sito o dal Microsoft Store.
  2. Configurarlo utilizzando i dati della sezione precendente:
  3. Inviare un messaggio, così fatto:
    • topic: casaclaudio/piantine
    • tipo: json
    • corpo: {“id”: “BS1”, “name”:”Basilico1″, “humidity”: 4, “temperature”: 23}
  4. Dallo stesso programma è possibile verificare i messaggi arrivati sul topic “casaclaudio/piantine”:

Subscriber: MQTT Client

Su Android è possibile:

    1. scaricare  e installare l’app MQTT Client [10].
    2. Installarla e configurarla come nel caso precedente:
    3. Cliccare sulla connessione appena creata e verificare che sia effettivamente connessa al broker.
    4. Inviare un messaggio dal primo client (MQTT-Explorer).
    5. Vertificare che arrivi sul cellulare:

 

 

Fonti e riferimenti:

  1. Sito ufficiale di Arduino.
  2. Sito ufficiale di Agrumino e del progetto Lifely 3.0.
  3. Recensione di Greta Galli su Agrumino.
  4. Mqtt il porotocollo per far comunicare le cose di Claudio Battaglino.
  5. Sito del LINV di Firenze.
  6. Plants as biosensors, articolo sul sito di Linv.
  7. Stefano Mancuso su Wikipedia.
  8. Sito ufficiale di HiveMQ Cloud.
  9. MQTT-Explorer: Sito e app su Microsoft Store.
  10. MQTT-Client su Google Play.

 

3 years ago

Leave a Reply

Your email address will not be published. Required fields are marked *