Pages: 1 [2] 3 4 ... 7   Go Down
Author Topic: Souliss, Domotica e IoT basata su Arduino ed Android  (Read 26463 times)
0 Members and 1 Guest are viewing this topic.
Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si ho visto e letto una volta, oggi e domani volevo fare alcuni test ed inserire la doc pdf in doxygen, ma mi si sono rotti gli occhiali da vista e praticamente sono cieco (quasi).

Comunque, io non uso l'ide, quindi sono stato costretto ad importare il progetto in modo da gestirlo con QtCreator. Lo sviluppo con questo ide è tipico di tutti gli ide. Quindi ho dovuto generare delle librerie statiche. Ho deciso per semplicità di dividerlo in due lib, libMaCaco.a e libvNet.a ho compilato il tutto con successo dopo un paio di modifiche al codice di tipo non funzionale.

Ci sono alcune #include con dentro specificato il file .cpp anziché .h, è un errore o e necessario. Ho dovuto modificare l'estensione del file chb_cmd.c in .cpp perchè dentro c'è una chiamata a codice C++ ed il compilatore C non sa come risolvere il link ad una funzione metodo.

Probabilmente il preprocessore di arduino ide, sistema le cose.

Appena ho un paio di occhiali nuovi riprendo la sperimentazione.

Ciao.

Si, tranquillo non c'è fretta. Era una guida preparata un poco di tempo fa, per dare un'idea di come lavorare con gli indirizzamenti.

Relativamente alle librerie, ci sono alcune forzature dovute all'IDE. In pratica non riuscivo a far riconoscere i file all'interno delle sottocartelle, trovava il .h ma non il corrispondente .c/.cpp. Per ovviare, nel file principale viene incluso direttamente il codice e non il solo header. Mi aspetto che con altre IDE il problema non si riproponga.

Relativamente a chibi_cmd.c è una libreria derivante da Chibiduino, se non sbaglio nel codice viene incluso direttamente il contentuto del file .c e per questo motivo l'IDE non si accorgeva dell'errore.
La libreria gestisce il parse dei comandi derivanti dalla linea seriale, nella prossima release eliminerò direttamente il file, attualmente non è usato ed a mio avviso non dovrebbbe far parte di Souliss ma al limite di una libreria esterna.

Saluti,
Dario.
Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho inserito una guida utente per Souliss, spero semplifichi la comprensione di tale libreria. E' disponibile al seguente link https://sourceforge.net/projects/veseo-souliss/files/User%20Guide/

Saluti,
Dario.
Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Per rendere più chiare le funzionalità di Souliss ho documentato uno degli esempi proposti nella libreria “Example 5 – Garage Door”.

https://sourceforge.net/projects/veseo-souliss/files/Examples%20Guidelines/

Questo esempio usa il tipico no. 3, la gestione di un dispositivo a quattro stati con un unico pulsante di comando. Un dispositivo è a quattro stati se ha due linee di attuazione, ad esempio la serranda di un garage ha una linea di attuazione per l'apertura e l'altra per la chiusura. In totale gli stati possibili sono quattro, anche se in realtà solo tre sono usati : apri, chiudi, fermo.

La logica implementa ne più, ne meno, quanto fatto da una classica centralina per la gestione delle serrande. Ad ogni pressione sul pulsate di comando, corrisponde un cambio di stato.
Premendo il pulsante con la serranda aperta, la serranda si chiude e viceversa. Premendolo durante la chiusura o l'apertura si la serranda si ferma ed inverte la marcia alla successiva pressione del pulsante.

Questa semplice logica (implementata in Souliss come tipico 3, T03) utilizzata in unione alle librerie MaCaco e vNet offre un sistema di controllo remoto.
Nell'esempio proposto, il pulsate di comando è hardwired ad un modulo wireless (Freakduino Chibi) mentre il comando ai relé di attuazione del motore sono su un modulo Arduino Ethernet. In mezzo c'è un bridge (Freakduino con Ethernet Shield).

Inoltre, un ulteriore Freakduino Chibi è utilizzato come monitor seriale. Acquisisce lo stato direttamente dal modulo Ethernet agente sui relé, e li visualizza sullo schermo del PC. E' inoltre possibile inviare i comandi dal PC, con la stessa funzionalità del pulsante hardwired.
Ad ogni cambio di stato, il modulo Arduino Ethernet invia i dati al monitor seriale (publishing/subscribing).

Saluti,
Dario.
Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nei giorni dal primo rilascio di Souliss ho avuto modo di rivedere il programma di sviluppo del progetto, ponendo maggiore attenzione all'interfaccia grafica ed alla documentazione.

La prima interfaccia grafica disponibile (di cui è disponibile un'immagine di seguito) è basata su AJAX/JSON, riprende parzialmente TinyWebServer con la particolarità di non utilizzare le schede Arduino come fonte della pagina web, ma dei soli contenuti.
Come illustrato qui, il browser (in questo caso Firefox o Chrome) è utilizzato come ambiente di esecuzione, la pagina web è caricata localmente sul PC o dispositivo mobile e periodicamente richiede dati al nodo Arduino, il quale risponde in JSON.
E' strutturata come un semplice menu a tendina, lo stato attivo (ricevuto via JSON) viene evidenziato con un colore del fondo blu.

Questa soluzione (diversa da quanto ipotizzato al primo rilascio) prevede un nodo collettore dei dati, il quale riporterà lo stato dei dispositivi controllati via JSON. Lo stesso nodo cura la gestione dei comandi dall'interfaccia grafica verso i dispositivi della rete. In pratica, la rete continua ad essere distribuita, ma l'interfaccia utente è basata su due entità (arduino+browser) e non su una.

La soluzione di portare il framework su diversi OS (tra i quali Android) rimane, ma è stata data maggiore priorità ad una soluzione web-based per ridurre i tempi necessari ad avere un'interfaccia utente.

Dunque, il nodo Arduino (necessariamente basato su Ethernet Shield o Arduino Ethernet) colletterà i dati via MaCaco e riporterà via HTTP all'interfaccia grafica.
Ovviamente possono essere raggiunti sia nodi basati su Ethernet, sia nodi basati su Chibiduino, la libreria vNet cura le operazioni di bridging e routing all'interno della rete di nodi in modo trasparente all'interfaccia.

Il rilascio è previsto per fine gennaio 2012, insieme ad un arrichimento delle logiche "tipiche" incluse in Souliss, nel frattempo chi volesse iniziare a sperimentare l'interfaccia come Alpha-tester è il benvenuto.

Sullo stesso principio possono essere sviluppate anche interfacce non web-based, una per iPhone è in lavorazione da parte di BoomTakZaag.

Le seguenti modifiche sono state apportate,

Souliss Rev A2:
- Supporto in vNet della libreria Ethernet standard per garantire compatibilità con altre librerie,
- Aggiunta di una libreria per il supporto HTTP

Saluti,
Dario.



Video

Nota: Basato su jQuery Tabbed Interface / Tabbed Structure Menu Tutorial
« Last Edit: December 31, 2011, 06:20:45 am by veseo » Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Su SourceForge ho rilasciato la revisione A2 di Souliss, la modifica principale è nel supporto contemporaneo di vNet Ethernet (modalità P2P) e la classe Ethernet nativa (modalità Server, Client) di Arduino. Sfruttando questa modifica sono stati aggiunti metodi per la gestione di un server JSON ed un interfaccia HTML da avviare localmente ad un dispositivo con browser Firefox e Chrome.

Altre modifiche hanno riguardato l'aggiunta di nuovi tipici (logiche pronte all'uso orientate alla domotica).

Sulla base di queste modifiche, tutti gli esempi sono stati riscritti, molti di essi dispongono anche di un'interfaccia pronta all'uso.

http://sourceforge.net/projects/veseo-souliss/

Saluti,
Dario.
Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 28
Posts: 5515
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Stupendo, vaseo stai facendo un ottimo lavoro davvero, complimenti !
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Verona
Offline Offline
Jr. Member
**
Karma: 0
Posts: 79
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bel lavoro davvero, appena mi arriva un w5100 farò delle prove smiley-grin
Logged

Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie ad entrambi.

Saluti,
Dario.
Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

0
Offline Offline
Faraday Member
**
Karma: 47
Posts: 5981
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

innanzitutto complimenti per il lavoro.

Io, come molti altri facenti parte della categoria "poveri", abbiamo comprato la ethernet shield appositamente prodotta per noi, quella con chip non wiz, questa http://www.nuelectronics.com/estore/index.php?main_page=project_eth

e' molto famosa in quanto costa poco. e' supportata dal tuo progetto ? oppure se hai interesse nel supportarla potrei fare da test.
Un'altro punto a suo favore e' che e' costruibile con integrati DIP (ENC28J60), quindi ottimo per standalone, mentre con il wiz non e' possibile
« Last Edit: January 07, 2012, 12:13:26 pm by Testato » Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

0
Offline Offline
Faraday Member
**
Karma: 47
Posts: 5981
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

scusa il consuma poco era un errore, corretto in COSTA POCO

resta il fatto che e' costruibile con integrati dip e che dopo il wiz5100 credo che il ENC28J60 sia il piu' usato.
« Last Edit: January 07, 2012, 12:51:10 pm by Testato » Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Offline Offline
Edison Member
*
Karma: 40
Posts: 1964
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Su SourceForge ho rilasciato la revisione A2 di Souliss, la modifica principale è nel supporto contemporaneo di vNet Ethernet (modalità P2P) e la classe Ethernet nativa (modalità Server, Client) di Arduino. Sfruttando questa modifica sono stati aggiunti metodi per la gestione di un server JSON ed un interfaccia HTML da avviare localmente ad un dispositivo con browser Firefox e Chrome.

Altre modifiche hanno riguardato l'aggiunta di nuovi tipici (logiche pronte all'uso orientate alla domotica).

Sulla base di queste modifiche, tutti gli esempi sono stati riscritti, molti di essi dispongono anche di un'interfaccia pronta all'uso.

http://sourceforge.net/projects/veseo-souliss/

Saluti,
Dario.

Vaseo ho provato a dare un'occhiata ma no  ci ho capito na sega! Io ho già un impianto Arduino Based co Ethernet shield, collegati tramite Switch PoE.

Non riesco a comprendere come potrei usare il tuo software.

Essendo un Tecnico elettronico più che un Softwerista, saresti in grado di fornirmi uno schema elettrico e come implementare il tuo software dentro gli Arduino?

Thanks
Logged

0
Offline Offline
Faraday Member
**
Karma: 47
Posts: 5981
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie legacy del tuo ultimo post molto interessante.
chissa' perche' hanno sclto il wiz, rimanendo sul ENC avrebbero quindi fatto due cose buone, sia perche' e' migliore, sia perche' esiste in DIP. Con l'ENC si ci puo' costruire una arduino ethernet standalone senza problemi di case
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

innanzitutto complimenti per il lavoro.

Io, come molti altri facenti parte della categoria "poveri", abbiamo comprato la ethernet shield appositamente prodotta per noi, quella con chip non wiz, questa http://www.nuelectronics.com/estore/index.php?main_page=project_eth

e' molto famosa in quanto costa poco. e' supportata dal tuo progetto ? oppure se hai interesse nel supportarla potrei fare da test.
Un'altro punto a suo favore e' che e' costruibile con integrati DIP (ENC28J60), quindi ottimo per standalone, mentre con il wiz non e' possibile

Ciao Testato,

in linea generale è possibile aggiungere altro hardware senza dover modificare nulla nel codice, è sufficiente predisporre la libreria dell'integrato da supportare per il funzionamento il P2P e fornire dei metodi per interfacciarlo con lo "strato" superiore di vNet.

Non conosco l'ENC28J60, ma guardando velocemente il riassuntivo del datasheet trovo: "Integrated MAC and 10BASE-T PHY". Ciò significa che non c'è il supporto in hardware del IP e TCP/UDP, è corretto?

In passato lessi di librerie specifiche per tale chip, se l'implementazione dello stack IP non ruba troppo spazio (RAM/FLASH) può essere considerata come una possibile integrazione futura. Un aspetto fondamentale è nel non gravare eccessivamente sul 328, ad esempio per la gestione dei ACK e delle connessioni.

In linea di principio, si potrebbe anche fare a meno di IP e protocolli annessi, lavorando direttamente con a livello MAC (il chip a 2.4 Ghz di Chibiduino implementa anchesso solo i livelli MAC a PHY), ma si perderebbero alcune facilitazioni come ad esempio HTTP (che richiede TCP).
Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Economica? Consuma poco ? Mah ... Ho realizzato un modulo rete con cirrius C8900 che consuma 1/10 di quell'accrocchio pagando il chip solo $6. Il problema e' che C8900 non e' spi ma necessita di essere memory mapped.

Vaseo, vorrei dei chiarimenti sulle modifiche introdotte al protocollo modbus, cosa e perche'.

Il protocollo Modbus è basato sul concetto Master/Slave, MaCaco è un protocollo P2P con funzionalità di sottoscrizione dei dati. Per il resto i concetti sono analoghi, ma l'implementazione è semplificata in varie parti.

Se hai qualche curiosità in particolare, ne possiamo parlare.

Saluti,
Dario.
Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Napoli
Offline Offline
Sr. Member
****
Karma: 7
Posts: 356
Post fata resurgo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Vaseo ho provato a dare un'occhiata ma no  ci ho capito na sega! Io ho già un impianto Arduino Based co Ethernet shield, collegati tramite Switch PoE.

Non riesco a comprendere come potrei usare il tuo software.

Essendo un Tecnico elettronico più che un Softwerista, saresti in grado di fornirmi uno schema elettrico e come implementare il tuo software dentro gli Arduino?

Thanks

Dipende da cosa ti serve fare. Relativamente agli schemi elettrici non c'è nulla di speciale, sono digital input o output (niente triac fatti a mano) qualche optoisolatore e darlington risolvono i problemi. La parte software è corredata di esempi funzionanti che possono essere usati come base.

Se vuoi possiamo discutere delle tue necessità e capire cosa possa risultarti utile del codice di Souliss, ma ti chiedo di aprire un Topic a parte, non vorrei uscire troppo fuori tema all'interno di questo spazio.

Saluti,
Dario.
Logged

Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Pages: 1 [2] 3 4 ... 7   Go Up
Jump to: