Souliss, Domotica e IoT basata su Arduino ed Android

Anche se con tempi molto più lunghi del previsto, è disponibile la versione A3 di Souliss, che tra le altre cose include il supporto al ENC28J60. Di fatto, l'utilizzo di ENC28J60 introduce Souliss alla prima scheda "pronta all'uso" supportata dal framework, la DINo di KMTronic.

Sul sito del progetto sono riportati maggiori dettagli sulle novità in atto e quelle future.

Saluti,
Dario.

Buongiorno e Buone Feste Forum,

dopo qualche mese di sviluppo è stata rilasciata la nuova versione (A4) di Souliss, con molte novità ed una struttura di base rinnovata e pensata per i prossimi sviluppi.

Ormai è passato più di un anno dalla prima versione di Souliss e le linee guida dello sviluppo sono parzialmente cambiate, pur rimanendo all'interno dell'idea originale.

Il passo in avanti più significativo è nell'adozione di protocolli binari per tutte le funzionalità, lasciando i protocolli ASCII ad un ruolo secondario. Fino alla versione precedente la comunicazione utilizzava un protocollo binario solo se intercorreva tra schede, non verso le interfacce utente, ora invece anche l'interfaccia Android usa MaCaco su vNet e per tutte le altre c'è Modbus in versione RTU e TCP.

Il perché di questa scelta ha dietro due aspetti, il primo era nella gestione di protocolli ASCII e contemporaneamente dello stack IP in software, pur funzionando il numero di iterazioni per processare i dati era eccessivo e le prestazioni di conseguenza non erano all'altezza, cosa che non accadeva usando lo stack IP in hardware.
L'utilizzo di protocolli binari permette di gestire tutte le informazioni senza frammentazione su diversi pacchetti, con il risultato di un'interazione immediata. Ottenendo anche una riduzione dell'uso di RAM, dovuta anche ad una nuova gestione dei buffer dati.

Ora l'interazione è immediata e ad un comando si ottiene in risposta lo stato in pochi istanti, anche se le informazioni devono passare tra più nodi, questo indipendentemente dal controller utilizzato (W5100, ENC28J60).

Un ulteriore vantaggio è nella iterazione basata su eventi, quindi lo smartphone non effettua più delle richieste periodiche a scadenze brevi, ma viene aggiornato direttamente dalla scheda solo se c'è variazione dei dati. Questo ha un impatto positivo in termini di batteria e carico.

Fino a qui, non si è fatto altro che dare vita ad idee nate da subito, ma implementate in modo graduale.

Una novità è invece nell'uso di Modbus ed in futuro di altri protocolli binari. Che Modbus non sia una novità in senso assoluto è noto, ma è un protocollo che all'inizio era stato scartato perché nato per l'automazione industriale e di conseguenza non sempre presente nelle interfacce per la domotica, sopratutto in quelle moderne.

Cosa è cambiato? Per la domotica ad oggi non esistono protocolli "liberi" e Modbus sta iniziando ad essere supportato da diversi progetti di domotica come openHAB o Freedomotic, inoltre le interfacce SCADA basate su Modbus sono tantissime.

Da oggi le schede possono essere viste come degli slave Modbus, resta sempre il concetto di aggregatore, si accede dunque ad un nodo per raccogliere i dati di tutte le schede. In pratica Modbus è un protocollo di front-end e sostituisce HTTP/JSON (che non è stato dismesso).

L'utilizzo di Modbus ha portato al supporto da parte di IntegraXor, uno SCADA basato su web e grafica sviluppata in Inkscape (SVG), quindi è possibile creare il proprio disegno di interfaccia e gestirlo come pagina web da cellullare o computer, andando ad interagire direttamente con i propri Arduino che montano Souliss.
Per ora non abbiamo ancora rilasciato un'interfaccia basata su Inkscape, ma chiunque può disegnarsi la propria.

Altre modifiche minori sono presenti, come la gestione IR e Climatizzatore; siamo passati alla IDE1 e l'applicazione Android è disponibile anche direttamente dal market Play Store.

Questo anno di lavoro credo abbia portato ad un progetto ben strutturato, con ancora margini di sviluppo, su cui è arrivato il momento di tirare le somme.
Sicuramente per l'inizio dell'anno ridurremmo il tempo speso nello sviluppo per dedicarci alla diffusione e l'uso di Souliss, provando a capire quanto sia effettivamente considerato valido. Inoltre cercheremo di impegnarci sugli aspetti di documentazione, ad oggi parziali e non sempre aggiornati.

L'appello è dunque a chi sia interessato agli argomenti della domotica ed Internet of Things, perché possa contribuire, si può partire dal semplice uso (commento e consigliando), passando per la pubblicizzazione fino ad arrivare allo sviluppo. Giusto per dare un'idea, riporto alcune attività in programma:

  • Integrazione via Modbus in sistemi di domotica per l'IoT come openHAB e di supervisione come Freedomotic;
  • Realizzazione di un'interfaccia grafica in Inkscape;
  • Introduzione di soluzioni in broadcasting;
  • Introduzione di soluzioni per l'autoconfigurazione.

Lato hardware ci stiamo muovendo su diversi fronti, il più probabile sarà quello di utilizzare l'hardware di Olimex, che attualmente offre dei blocchi funzionali da comporre per realizzare soluzioni wireless e wired.

Il prossimo anno sarà decisivo per il progretto, perché dall'uso che si determinerà andrà a dipendere come verrà supportato in futuro, se continuerà ad essere un progetto aperto o se si rinchiuderà nelle esigenze specifiche di pochi.

Buone feste.

Saluti,
Dario.

x iscrizione

Ricambio gli auguri di buone feste e mi fa piacere il progetto continui.
Mi chiedevo, visto gli investimenti che hai fatto in termini di tempo, quale è il target finale ? Intendi vendere il SW ? Vuoi fare hardware tuo ? Che licenza stai usando ?

Il codice sia lato AVR, sia lato Android, usa la licenza GPLv3. Altre librerie open source utilizzate possono avere licenze diverse, ma si tratta sempre di codice open-source.

Ho iniziato a lavorare su questo progetto perché avevo visto una grande partecipazione attorno gli argomenti inerenti la domotica, senza che ci fosse un progetto ben strutturato attorno. Non nascondo, che dopo il primo rilascio del codice l'anno scorso, immagginavo una partecipazione maggiore di quanto, lecitamente, avvenuto sia da parte della comunità e di Arduino stessa.
Fino ad oggi il progetto è andato avanti perché in due abbiamo avuto una passione ed un obiettivo comune, ed abbiamo portato avanti lo sviluppo pensado ad un lavoro pubblico e ci piacerebbe che divenisse maggiormente un progetto di comunità.

Questo per dire che non c'è un progetto di monetizzazione, l'attuale obiettivo è quello di rendere il framework utilizzato, perché crediamo che ci sarà margine per l'IoT e la customizzazione elettronica, non solo a livello didattico/prototipazione, ma a livello di prodotto.

Saluti,
Dario.

Ho avuto le tue stesse impressioni, ma ero piu' preparato in quanto gia' precedentemente ho visto bellissimi progetti senza poi seguito.
E' una tara da usare sul concetto generale di open source, di collaborazione, spesso al concetto di internet stesso.
Quando Masimo Banzi diceva di non essere ricco non ci credevo, visto la risonanza mondiale di Arduino, poi pian piano mi sono ricreduto. E' un mondo legato principalmente al fai da te, migliaia di persone al giorno leggono, buttano giu' un circuito, fine. Niente feedback, niente interfacciamento, niente contributi.

Che non tutti gli utenti contribuiscano è normale, io sono utente di vari progetti open-source ai quali non contribuisco, giusto per citarne alcuni Notepad++ ed Inkscape.

Non sono d'accordo nel generalizzare, perché ci sono tanti esempi di comunità che funzionano, tra cui c'è sicuramente quella di Arduino che forse si caratterizza rispetto alle altre per una maggiore influenza anarchica, ma non è detto che sia un difetto.

Saluti,
Dario.

Specialmente la sezione italiana XD

Testato:
Specialmente la sezione italiana XD

Solamente la sezione italiana :stuck_out_tongue_closed_eyes:

E' disponibile la nuova versione Alpha 4.1 di Souliss, la cui più importante novità è il supporto di diversi moduli prodotti da Olimex. L'idea di supportare le schede del produttore bulgaro è radicata nel tempo, ma si è concretizzata solo ora per via delle diverse scelte tecniche fatte rispetto al progetto Arduino stesso. Il tutto è diventato più fattibile con l'introduzione nella relase A3 dello stack uIP, rendendo possibile l'utilizzo di controller ethernet senza il supporto in hardware per la gestione TCP/IP.

Altri due aspetti di interesse sono la possibilità di realizzare soluzioni modulari attraverso l'estensione UEXT ed il costo contenuto dei moduli.

Le schede a microcontrollore attualmente supportate sono:

  • AVR T-32U4,
  • OLIMEXINO-32U4,
  • OLIMEXINO-328

I moduli di comunicazione attualmente supportate sono:

  • MOD-ENC28J60 (Ethernet)
  • MOD-WIFI (WiFi)

I moduli di I/O attualmente supportate sono:

  • MOD-IO2 (2 relé, 7 GPIO)

Ad esempio, un nodo ethernet con 2 relé e 7 GPIO costa (senza iva) 40 euro per dimensioni complessive compatte.

Saluti,
Dario.

Rilasciata sul Play market la versione 1.1.6 di SoulissApp

Il lavoro per l'integrazione dell'hardware prodotto da Olimex è praticamente terminato, nella nuove versione verranno aggiunti i driver per MOD-RGB e MOD-IO. Di seguito alcuni video che mostrano brevemente alcune funzionalità implementate con queste schede.

A Relay WiFi node controlled via Android application and/or Modbus TCP

A simple network of two nodes, a relay one and an RGB LED controller with p2p interaction

The same RGB LED controller driven by the music played by the smartphone via FFT

Saluti,
Dario.

Vi rinnovo i complimenti per il vostro progetto.
Credo che si possa spostare in MegaTopic. :wink:

Assolutamente megatopic

:smiley:

Ciao a tutti,
sono un utente nuovo e sono molto affascinato dalla possibilità di creare la domotica souliss nella mia nuova casa. Se qualcuno di voi riuscisse a darmi una mano gliene sarei molto grato.
Per iniziare vorrei acquistare una board con la quale iniziare a "smanettare" un po. Avrei pensato alla Kmtronic Di No. Da quanto ho letto ha 4 ingressi e 4 uscite relè. Siccome necessiterei di molti più attuatori posso collegare in cascata degli altri relè o devo replicare delle altre board con indirizzi ip diversi?
Sarei molto grato se qualcuno mi girasse dei progetti hw/sw funzionanti in modo da poterne trarre spunto.
Grazie ancora per l'attenzione e grazie a chi vorrà aiutarmi.
ciao

Ciao,

per partire fatti un giro sul wiki di Souliss (domani esce la nuova versione) per iniziare a capire cosa puoi realizzare e come, se hai domande generali puoi farle direttamente qui, se sono di dettaglio è meglio inserirle sul forum di Souliss.

In relazione alla tua domanda, la risposta è NI. La DINo supporta la connessione in RS485, puoi quindi utilizzare i moduli a relé di KMTronic per espandere il numero di relé, KMTronic dovrebbe aver diffuso degli esempi di utilizzo, perché in Souliss non è attualmente supportata l'estensione via RS485 dei relé, ma dovrebbe essere semplice realizzarla.

Sul sito trovi tutto l'hardware supportato, così puoi decidere come muoverti.

Saluti,
Dario.

salve sono un dummies ho seguito passo passo la procedura per il programma più semplice del souliss hello world con arduino uno rev. 3 ho installato le librerie in libraries e ho modificato il file QuickCfg.h dentro \conf ho caricato il progetto sulla scheda arduino ma non riesco nemmeno a pingarlo. ho seguito la guida passo passo. ip 192.168.1.17 netmask 255.255.255.0 .
il programma blink semplice funziona bene. Potreste darmi qualche altra dritta? tnks

Ciao,

certo, essendo un aspetto di dettaglio ti invito a spostarti sul forum del progetto (il nuovo su g group) in modo da vedere quale possa essere il problema.

Saluti,
Dario.

Qualche nuova funzionalità prima della pausa estiva.

http://www.souliss.net/2013/07/souliss-alpha-45-now-available-for.html

Saluti,
Dario.