Home
Accesso / Registrazione
 di 

Arduino, Modbus ed Android in tre passi

Diagram

Animare gli oggetti è sempre più economico e semplice, vediamo come realizzare un nodo Ethernet interfacciato attraverso Android e Modbus in mezz'ora.

Circa un anno fa, Elettronica Open Source fu il primo sito su cui iniziammo a parlare di Souliss, era in corso Make4Cash e partecipammo per ricevere critiche e suggerimenti e capire quanto potesse interessare un progetto del genere. L'idea era fondamentalmente quella di semplificare la vita a tutte quelle persone che volevano cimentarsi in piccole automazioni in stile fai-da-te, per rendere trasparente all'utente tutta la parte di "basso" livello, dai protocolli ai driver per le interfacce di comunicazione. La partecipazione ebbe un buon esito, dando spinta e visibilità a Souliss.

Di base c'era già quanto serviva, con una struttura che pur mutata ha mantenuto inalterati i principi fondamentali, quali la comunicazione in peer-to-peer tra tutti i nodi della rete, sviluppando il supporto per diverse soluzioni hardware ed arrivare a poter realizzare i propri oggetti interconnessi in tre passi : configura, carica e divertiti. Nel frattempo siamo riusciti a realizzare anche una documentazione di supporto, è quindi tempo di parlare di Souliss in termini concreti, mostrando una semplice realizzazione basata su schede Olimex. Nell'esempio viene realizzato un nodo interfacciabile via Modbus (un protocollo binario molto usato in ambito industriale) ed Android, che permettono di controllare i relé a bordo scheda.

Il primo componente da analizzare è il modulo Ethernet, nell'esempio basato sul Microchip ENC28J60 e sullo stack uIP modificato per Souliss, utilizzato per connettere la scheda a microcontrollore (Atmel Atmega32U4, lo stesso di Arduino Leonardo) al mondo Ethernet/IP e di conseguenza è il punto di accesso per l'applicazione Android e Modbus. I relé sono contenuti nella MOD-IO2, un'estensione a relé controllata con un semplice protocollo trasferito via I2C. Le tre schede sono collegate tra loro attraverso un cavo piatto con due connettori maschio a 10 pin (5 su 2 file) ed uno femmina.

 

 

 

 

L'interconnessione viene realizzata attraverso il connettore UEXT, che permette di trasferire i principali protocolli di comunicazione (SPI, I2C, USART) tra schede diverse, rendendo l'interconnessione molto agevole, nel nostro caso è sufficiente rimuovere i pin centrali (5 e 6) dal connettore dedicato al modulo Ethernet, perché in comune con I2C.

 

 

 

 

Il connettore femmina può essere utilizzato sul modulo a microcontrollore AVR-T32U4, utilizzando il connettore maschio senza i pin centrali per il MOD-ENC28J60 ed il rimanente per il modulo a relé MOD-IO2. E' sufficiente collegare i tre moduli ed il gioco è fatto.

A questo punto si può passare al codice, open-source e gratuito, disponibile su Google Code e seguire le istruzioni per il primo caricamento attraverso la IDE di Arduino.

Dall'Arduino IDE è sufficiente navigare nella cartella Olimex da Examples->Souliss->hardware, dove sono disponibili tutti gli esempi del caso, quello in nostro esame ssOlimex_ex02_Lights, a questo punto si verifica la configurazione QuickConfiguration e si compila.

La configurazione consiste nello specificare l'hardware in uso, in modo che vengano caricati i driver corretti per gestire la scheda, dalla lista delle soluzioni disponibili la nostra è "Olimex OLIMEXINO-328 with MOD-ENC28J60 and MOD-IO2" identificata dal codice 0x15, abilitando inoltre l'opzione Modbus TCP gateway.

A questo punto possiamo provare la prima comunicazione via Modbus; è sufficiente fornire l'indirizzo IP della scheda, una spiegazione passo-passo è disponibile nel nostro wiki Modbus TCP Master .

 

 

 

 

 

 

Attraverso Modbus è possibile controllare i relé e leggere il loro stato, inoltre collegando un interuttore monostabile tra GPIO0 o GPIO1 e GND si possono controllare i relé manualmente, in questo caso lo stato in Modbus segue l'effettiva condizione dei relé.

Come promesso è anche possibile controllare il nodo via Android, l'applicazione è disponibile gratuitamente su proprio qui su GooglePlay fornendo una connessione diretta alla scheda (che a sua volta deve essere connessa ad uno switch o router WiFi), basta inserire l'indirizzo IP ed effettuare una ricerca dei nodi disponibili.

 

 

Quello che vi abbiamo mostrato è solo un "Hello World" ma è possibile realizzare reti di oggetti interconnessi, utilizzando nel contempo connessioni su filo come Ethernet e soluzioni Wireless ma per saperne di più dovrete attendere il prossimo articolo.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Emanuele

Domotica 2.0

Da quando progettavo antifurto ne è passato di tempo.... Mi ricordo che la domotica ancora non esisteva e le prime frasi piene di "building automation" riempivano la bocca di installatori/elettricisti ignari di cosa fosse fino in fondo la domotica, ripetendo frasi fatte probabilmente arrivate dall'altra parte dell'oceano o del mediterraneo (anche gli Israeliani era forti nel settore all'epoca).

Oggi di sistemi domotici ne esistono centinaia, più o meno all'avanguardia, più o meno intelligenti... più o meno domotici :)

Il sistema Souliss che ormai ben conosciamo rientra sicuramente nelle nostre simpatie, sia per la dedizione con la quale gli sviluppatori vi si dedicano, sia per lo spirito open del progetto.

Ma detto questo offre delle caratteristiche che vorrei sottolineare, come la gestione peer-to-peer che rende ogni nodo autonomo (fondamentale in caso di guasto) che la facile interfacciabilità con Android.

Al giorno d'oggi non credo abbiano senso sistemi domotici senza possibilità di gestione tramite app.

configura, carica e divertiti

ritratto di veseo

In tema di antifurti e domotica...

Parlando di antifurti, proprio ieri è stata rilasciata l'ultima versione con integrate le logiche per l'integrazione (o la realizzazione) con sistemi antifurto, in sostanza, si può trasformare un classico antifurto ad una zona in uno con più zone (per ora fino a 10) ed interfaccia su Android con annesso accesso remoto.

Tornando in tema al commento, personalmente credo che la domotica come è conosciuta oggi sia un concetto in larga parte superato.
L'aspetto a mio avviso più critico è nella modularità e scalabilità dei sistemi attuali, perché troppo spesso non sono adatti ad introdurre automazioni parziali.

In generale, la domotica tenderà ad essere inglobata in un sottoinsieme dell'Internet of Things, ponendo in primo piano il problema dell'interoperabilità (ad oggi irrisolto in tutti gli aspetti dell'IoT) e della semplicità dell'installazione.

Sopratutto nell'ottica della realizzazione di automazioni parziali e spesso temporanee, legate alle esigenze di turno, pone come obiettivo quello di superare il concetto d'impianto. In questa direzione si possono percorrere diverse soluzioni.
Gli oggetti che a mio avviso domineranno, verranno semplicemente connessi alla rete elettrica attraverso una classica spina ed utilizzeranno la comunicazione wireless. Un esempio è WeMo.

Noi per ora con Souliss giochiamo intorno a questo mondo, ci siamo allontanati dall'idea iniziale di realizzare dell'hardware di progetto, per affidarci al supporto di soluzioni già presente nell'ambito del fai-da-te, ma credo ad oggi nessuno abbia ancora trovato la giusta formula per passare ad un concetto di Domotica 2.0

Saluti,
Dario.

ritratto di Piero Boccadoro

Ecco, questa credo che

Ecco, questa credo che potrebbe essere una soluzione davvero interessante! Farò leggere presto questo commento ad un amico che proprio l'altro giorno mi parlava di alcune necessità di un caso :)

Però vorrei rimanere un attimo sul tema.
La domotica, come le reti neurali ed altre possibilità, sono, purtroppo, in realtà, ancora embrioni o poco più.
Non sono ancora entrati nel nell'immaginario collettivo, nel mondo produttivo vero né tanto meno nell'ingranaggio delle economie di scala.
Sospetto che sia successo semplicemente perché non si è creato il solito "cartello" ma indipendentemente dal motivo per cui successo, o meglio per cui non è successo, all'economia di scala risponde la libera iniziativa.
Risponde la capacità di inventare, la voglia di fare e la curiosità dello sfruttare i sistemi che già esistono in un modo del tutto nuovo.

È significativo che non siamo ancora in grado di delineare il concetto dell'Internet delle cose in maniera classica, canonica… Dandone una definizione precisa, che già pensiamo alla sua evoluzione.

Sinceramente penso che Souliss, in questo, giochi un ruolo fondamentale e per questo mi incuriosisce e mi piace.

ritratto di illupo89

ciao un bello articolo e

ciao un bello articolo e soprattutto una scheda interessante che permette a gente non espertissima di elettronica di divertirsi con la tecnologia "fai da te" che poi è il pregio (e il successo) di arduino.
Ho cercato qualcosa del genere qualche anno ha (quasi 5 ormai )per il progettino della maturità delle scuole superiori ma con i vecchi telefonini era complesso (io avevo un nokia con symbian) e soprattutto io non avevo le competenze necessarie.
Comunque anche io sono d'accordo con Emanuele gli smartphone entreranno sempre più prepotentemente nella vita di tutti i giorni e quindi anche nella domotica.A chi non farebbe piacere controllare la propria abitazione tramite il cellulare,senza pensare ad esempio al risparmio sulle utenze come i riscaldamenti accendendoli solamente prima di tornare a casa.

ritratto di veseo

Smartphone e smarthome

Gli smartphone avranno sicuramente un ruolo, ma amio avviso non centrale, dopotutto per accendere o spegnere una luce entrando in una stanza, è sempre più comodo premere l'interuttore a muro.

Credo che molte funzioni verranno invece raggruppate in un tablet dedicato alla casa, tutte quelle di uso non quotidiano o comunque per le quali ci sia un carattere di ripetitività, come la gestione del riscaldamento o dell'antifurto.

Altri aspetti di interesse sono legati all'interazione, come ad esempio l'esecuzione di azioni basate su informazioni proveninenti da sensori, che non necessarimente dovranno essere installati in casa. Ad esempio si può pensare di regolare l'attività del condizionamento dell'aria basandosi sulla temperatura esterna rilevata attraverso il web.

Saluti,
Dario.

ritratto di illupo89

è già il futuro

il discorso è che secondo me gli smartphone cambieranno la loro forma e saranno sempre più integrati con il corpo umano, vedi ad esempio gli occhiali di google,saremo come i saiyan di dragon ball :-p.
A quel punto sarà inutile parlare di differenze avremo un unico sistema che servirà per tutto e con cui gestiremo la nostra vita (o la gestiranno loro).
Lasciando perdere le idee fantascientifiche comunque secondo me questo sarà il prossimo futuro anche perché le case gestibili da un unico dispositivo sono il presente esistono sistemi di questo tipo anche se non sono ancora di massa in quanto hanno ancora un costo molto elevato.
saluti
Roberto

ritratto di Piero Boccadoro

Ecco si, infatti.... :) Non

Ecco si, infatti.... :)
Non avevo letto il tuo commento :D

ritratto di Piero Boccadoro

Sai, vero, che ci sono

Sai, vero, che ci sono persone che non sono assolutamente d'accordo col concetto che premere l'interruttore a muro sia effettivamente più comodo? :)
Ma soprattutto, non è altrettanto "cool".... :D
Ma soprattutto, il problema non è soltanto "accendere la luce" in quanto tale ma pensare ad un sistema che sia in grado, per esempio, di rendersi conto che se una persona è entrata in casa probabilmente vuole che le tapparelle siano state, se è giorno che la luce non sia accesa e comunque, se è inverno, per esempio, che il riscaldamento cominci a funzionare.
Per esempio, se si entra in casa, il sistema potrebbe essere in grado di comandare l'accensione dell'impianto wi-fi e disabilitare la connessione dati del cellulare, per esempio… Tutto questo contemporaneamente innescando un meccanismo non di intelligenza basata sul fatto che il sistema riconosca effettivamente le necessità dell'utente ma una serie di azioni programmate come conseguenti che rendono il sistema almeno in grado di seguire queste azioni meccanicamente…
Questo sarebbe, almeno all'apparenza, altrettanto "cool" :)
Anche perchè, in questo modo, il tuo smartphone diventa davvero un comando universale, altro che quelle app che ogni tanto si trovano in giro...

ritratto di illupo89

hai colto nel sengno

infatti è proprio questo quello che intendevo e che penso pio sia proprio il significato di domotica cioè rendere la casa intelligente e quindi capace di prendere decisioni (meccaniche naturalmente) che aiutano la gestione della casa rendendola più comoda cosa che si raggiunge con tutti gli esempi che tu hai esposto.
Una idea che avevo un po di tempo fa era gestire la persiana della finestra della mia camera per alzarla al suono della sveglia per invogliarmi ad alzarmi (almeno per richiuderla :-p) solo che abitando in una casa non mia (sono uno studente fuori sede) non è stato possibile ma prima o poi lo farò.
saluti
Roberto

ritratto di Piero Boccadoro

Tieniti stretta questa

Tieniti stretta questa idea... Presto potresti trovarti a proporla qui :D

ritratto di Ivan Scordato

Io sono fra quelle :D Più che

Io sono fra quelle :D
Più che altro per la questione Cool...
Anche se comunque, dato che come si è visto in un articolo su questo blog la migliore cosa da fare è quella di tenere il più distante possibile il cellulare da noi, quando si è a casa si potrebbe utilizzare un tablet :)
Un altra funzione che potrebbe essere aggiunta a questa applicazione è la possibilità di accendere e comandare i vari dispositivi tramite un telecomando IR, magari implementando in ogni stanza un paio di sensori vicino al classico pulsante a muro o sul lampadario per avere un punto di riferimento.
A dir la verità questo è un progetto sul quale sto lavorando, e sono già arrivato ad un buon punto e perciò mi auguro di pubblicarlo presto!
Perciò,
A presto :)

ritratto di veseo

@piero, illupo

In effetti la mutazione verso dispositivi maggiormente integrati è un'aspetto importante e sicuramente avrà effetti anche nella gestione dell'ambiente che ci circonda.

Sono meno d'accordo nel guardare a quanto sia alla moda accendere le "luci" con il telefonino, almeno a mio avviso l'argomentazione di avere una casa con scenari pre-programmati, è quella che ne ha maggiormente offuscano le potenzialità.

L'aspetto principale è che non tutte le case avranno un'automazione spinta, per problemi di costo, l'attenzione va quindi rivolta agli oggetti di tutti i giorni e la loro futura integrazione nell'ottica di un IoT domestica.

Ad esempio, non mi meraviglierebbe vedere in un prossimo futuro dispositivi comuni (televisioni, condizionatori ed altro) con integrato un microcontrollore + radio aperto alla programmazione ed in grado di dialogare con i sistemi di gestione chiusi attraverso una comunicazione seriale e librerie fornite dal costruttore.

In pratica, affiancare al sistema a microcontrollore che i produttori vorranno mantenere chiuso, un'ulteriore microcontrollore per fornire all'utente la possibilità di renderlo interagente. In tutto questo, lo smartphone avrà un ruolo centrale, dovuto alla sua estrema diffusione, ma l'oggetto del contendersi sarà come sarà possibile interagire in modo integrato con questo tipo di dispositivi.

Saluti,
Dario.

ritratto di illupo89

ok ma...

scusa ma il tuo commento mi sembra un po contrastante tra la parte iniziale e finale
comunque io penso che il costo sia dovuto solo alla novità dell'applicazione d'altronde per l'elettronica è sempre cosi lo è stato per i telefonini per i lettori dvd per i lettori mp3 non che per le pennine USB .
inoltre penso che per un'azienda inserire un microcontrollore e poco più su un sistema non sia tanto costoso o almeno non incida in maniera tanto importante sul costo anche perchè poi la complessità del micro richiesto può essere non eccessiva siccome dovrebbe svolgere solo funzioni di comunicazione (come ad esempio la gestione dei telecomandi attuali )poi la gestione viene svolta dal sistema pilota.
Salve
Roberto

ritratto di veseo

intendo dire...

Finché si guarderà all'automazione in casa con gli occhi della domotica, non si guarderà mai al potenziale dell'interazione tra oggetti. Sono argomenti affini, ma diversi nei presupposti.

Perché non è più un sistema per automatizzare dispotivi elettrici (domotica), ma sono oggetti in grado di interconnettersi. Il primo presuppone il concetto di impianto, il secondo richiede standard e soluzioni aperte e condivise.

Saluti,
Dario.

ritratto di Ivan Scordato

Giustissimo... In questa

Giustissimo...
In questa maniera possono essere anche tenuti sotto controllo e migliorati i consumi.
Infatti se in una stanza non c'è nessuno e c'è la luce accesa, perchè tenerla accessa?
Lo stesso vale per il riscaldamento

Vedere diventare il progetto degli elettrodomestici Open Source credo proprio che non sarà mai possibile perchè se per primo un azienda investe parecchi soldi nella ricerca e produzione di un prodotto e rende completamente open source il progetto, sicuramente arriveranno tanti Pinco Pallino che approfitteranno della situazione prendendo il progetto già completo, effettuano un paio di modifiche e vendono il prodotto (anche rendendolo open source) ma non ha investito nemmeno 1/4 di denaro di quello che ha investito l'azienda originale per progettarlo.
Così facendo, Pinco Pallino venderà quel prodotto ad un prezzo minore attirandosi molti clienti facendo a sua volta concorrenza all'azienda originale.
L'azienda originale non può vendere al prezzo che propone Pinco Pallino perchè ha investito risorse ed ha affrontato dei costi.

Che ne pensate? forse mi sbaglio?

ritratto di illupo89

secondo me prodotti open

secondo me prodotti open source e commerciali sono due cose nettamente separate la prima è per diffondere il sapere senza importarsi del profitto la seconda è importarsi del profitto senza trasmettere sapere detto ciò la questione può essere risolta semplicemente con uno standard o comunque dando la possibilità all'utente della sola modifica dell'interfaccia e delle funzionalità.
Alla fine mettere in collegamento tutti gli oggetti della cosa potrebbe essere fatto semplicemente anche con le soluzioni attuali senza nulla di fantascientifico e la scheda dell'articolo ne è la prova.
basterebbe inserire una scheda ad esempio wireless in ogni oggetto da controllare e tramite una rete lan comandarli tutti da un unico terminale.

ritratto di Emanuele

Open Source Vs Commercial

"secondo me prodotti open source e commerciali sono due cose nettamente separate..... "

Non sono d'accordo,
in questo articolo
http://it.emcelettronica.com/cultura-dellopen-source

ci sono esempi che dimostrano come l'open source può far parte di un modello di business vincente e non di beneficenza/dopo-lavoro/se-ho-tempo-collaboro :)

ritratto di illupo89

Come ho già risposto in

Come ho già risposto in quell'articolo non sono pienamente d'accordo secondo me gli esempi portati non stanno in piedi e L'open source nei prossimi anni avrà comunque uno sviluppo affiancato a sistemi commerciali ,copiera quest'ultimi, come è stato negli ultimi anni nella maggior parte dei casi, riducendo il costo dei sistemi e rendendoli più "facili" e divertenti per chi come noi si diverte a modificarli e a svilupparli. Però le idee innovative vengono principalmente dal commerciale dove le idee vengono pagate profumatamente e quindi "giustamente" protette.
Naturalmente nei miei commenti non voglio intendere che i sistemi open non generano ricchezza e prosperità ma solamente che non è paragonabile a quella delle grandi aziende.
E poi la nostra società è una società basata sulla pubblicità e quindi che favorisce le grandi aziende altrimenti chi li comprerebbe gli iphone ??

ritratto di Emanuele

Spostiamoci per non essere OT

La discussione sta prendendo una piega interessante,
direi di spostarci però sull'articolo specifico per non essere OT
e quindi continuare lì la discussione

http://it.emcelettronica.com/cultura-dellopen-source

ritratto di veseo

Economia open source

L'open source ha generato un'economia e non è affatto in contrapposizione con le possibilità di guadagno, nel caso, basta introdurre un microcontrollore per la parte "aperta" interfacciato in seriale con un ulteriore microcontrollore che gestisce la parte "chiusa".

Saluti,
Dario.

ritratto di Piero Boccadoro

Allora, forse mi son perso

Allora, forse mi son perso qualcosa ma qui di fronte a noi ci sono due soluzioni possibili: la prima è fatta di oggetti intelligenti con più funzioni e capacità "relazionali" sia con chi li possiede (in primis) sia, forse, un giorno, col resto degli oggetti. La seconda è fatta di un sistema centrale che sia in grado di attivare gli oggetti nelle loro funzionalità (indipendetemente da quali siano).
Giusto?
Bene, allora, se le cose stanno così, i comandi altro non sono che routine, giusto?
E i comportamenti altro non sono che sequenze di azioni. Corretto?
Scusa ma, per essere chiari: se non doti l'intero sistema di una intelligenza artificiale "centralizzata", in realtà non è possibile uscire dall'automatismo...
O mi sbaglio?

ritratto di illupo89

dipende cosa si intende per

dipende cosa si intende per automatismo.
se per automatismo si intende una serie di operazioni svolte in automatico allora perchè ci si dovrebbe uscire? alla fine quello che intendo io per domotica (anche se non è formalmente corretto) e rendere la casa più confortevole e "intelligente" ma nel senso di dotarla di una sensoristica (in senso lato)capace di capire alcune situazione ricorsive che si verificano (esempio nella stanza non c'è nessuno) e gestirle nel modo più appropriato.
Sinceramente io al concetto di "intelligenza artificiale" ci credo poco io penso che la ricerca non si sia ancora neanche avvicinata ad una forma di intelligenza artificiale e non lo farà ancora per molto.

ritratto di Ivan Scordato

al momento non posso

al momento non posso rispondere ma lo farò presto :)

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 0 utenti e 30 visitatori collegati.

Ultimi Commenti