Pages: 1 [2] 3 4 ... 9   Go Down
Author Topic: Souliss, Domotica e IoT basata su Arduino ed Android  (Read 20646 times)
0 Members and 1 Guest are viewing this topic.
Napoli
Offline Offline
Sr. Member
****
Karma: 5
Posts: 349
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: 5
Posts: 349
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: 5
Posts: 349
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: 5
Posts: 349
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: 5
Posts: 349
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: 26
Posts: 5480
фон Крыса
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: 5
Posts: 349
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: 39
Posts: 5611
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] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Offline Offline
God Member
*****
Karma: 5
Posts: 873
View Profile
 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'.
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5611
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] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Offline Offline
God Member
*****
Karma: 5
Posts: 873
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Guarda wiz5100 dal mio punto di vista e' una schifezza e la versione precedente era anche piena di bachi hw particolarmente fastidiosi. Per fortuna le librerie per arduino tendono a non far trasparire quanto sia brutto usare quel'integrato che fra tutti i difetti c'e' che scalda troppo, e ti assicuro che a scrivere il driver da zero (come ho dovuto fare a suo tempo) e' un'impresa tuttaltro che simpatica.

ENC28J60 di Microchip invece e' nettamente migliore. Documentato molto meglio e con molti meno problemi hw. Vero anche che questa volta non ho dovuto scrivere il driver da zero perche' me lo sono trovato gia' bello che fatto da adattare alle mie esigenze traendo spundo dalle lib avr.

Entrambi consumano molto di piu' del C8900. Peccato che questo integrato non vada bene con arduino perche' l'integrato e' pensato per il device memory mapping, feature che arduino non ha.
Logged

Offline Offline
Edison Member
*
Karma: 38
Posts: 1914
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: 39
Posts: 5611
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] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Offline Offline
God Member
*****
Karma: 5
Posts: 873
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Con l'ENC si ci puo' costruire una arduino ethernet standalone senza problemi di case

Se vuoi si puo' fare. Attualmente sto usando un mini con accrocchio ENC in piggyback, occupa troppo sapazio. Appena posso vorrei seguire l'esempio di Daniela e mettere il mini e l'enc su una picocla piattina smd, tu dici 328 e ENC tutto DIP ? Nessun problema anche per quella, tanto le lib per avr ci sono.
Logged

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