Comunicazione 5 arduino nano e 1 Mega con Pjon e visualizzazione su Tablet Andr.

Ciao a tutti,
in questi giorni sto testando la libreria Pjon di Gioblu per usarla nel mio piccolo progetto di domotica senza usare eventuali rs485 o ethernet per ricevere dati da vari sensori e poi visualizzarli su un tablet.
Per test ho connesso 5 arduino mini, i quali inviano i dati ad un arduino mega con shield ethernet, connesso ad un router wifi, che poi invia invia il tutto tramite UDP su un tablet android.
Se date un’occhiata agli sketch, vedrete che uso delle stringhe per inviare i valori, non ho ottimizzato volutamente il protocollo usando byte per rendere semplice la lettura. Consiglio, se sviluppate qualcosa di definitivo, di ottimizzare il tutto usando byte e non inviare caratteri “inutili”.
Nel test su breadboard le distanze sono molte ravvicinate ma vi posso confermare che lo sto usando da qualche settimana con cavi Ethernet di una lunghezza superiori ai 15mt. (compresi i 5v per l’alimentazione dei mini) per ricevere dati da 3 mini dislocati in vari punti della casa:

Questa è la schermata del tablet dove ricevo vari dati dai sensori (scritte rosse) ed anche i consumi dei 2 contatori, la grafica non è finita ci devo lavorare un bel po’ e perfezionare un po’ di cose.

Per quanto riguarda il test con Pjon questa è la schermata del tablet che ho creato:

c’è lo schema (anche se semplice) creato con fritzing dove si vedono i 5 nano tutti connessi tramite il pin12, ognuno di questi invia dati ogni 3sec. ad un mega (pin9) con scheda ethernet. Sempre dal tablet è possibile accendere/spegnere il led13 di ogni nano premendo i relativi tasti mini1, mini2 etc…, l’ho inserito solo per dimostrare che alla fine non c’è un master / slave ma ogni device può comunicare con gli altri.
L’unico modulo 485 serve per la comunicazione con il power meter sdm220-Modbus sul mini1, è la stringa più lunga che invio al mega (circa 46byte), avrei altre informazioni da poter visualizzare ma m’interessava solo mostrare qualche valore…
Per farvi vedere che tutto funziona ho fatto anche un video non è bellissimo ma qualcosa si capisce.

Per quanto riguarda la parte android, io ho usato B4A, vi allego sorgenti e APK nel caso vogliate modificare qualcosa, fate attenzione agli ip, arduino mega (192.168.1.123) comunica al tablet con indirizzo 192.168.1.176

Un ringraziamento particolare a Gioblu per il suo lavoro, e perché no, un ringraziamento speciale anche a tutta la comunity di Arduino per la passione che ci mettete.

In allegato vi lascio gli sketch per arduino, mentre su Gdrive trovate tutto il resto.
Se avete bisogno di aiuto o spiegazioni chiedete pure, nel possibile vi aiuto…

ciao
Mauro

Pjon Test.zip (12.2 KB)

@mauroz che bel progetto!!! :) Come si comportano i pulsanti di accensione e spegnimento del LED 13 di ogni arduino sul tablet? L'accensione avviene immediatamente? Uno sviluppo di test veramente professionale, complimenti!!

Parlando del tuo setup in casa, come si sta comportando? Che accuratezza media hai nel segnale? Utilizzi qualche discreto per ridurre le interferenze?

Che bello vedere che PJON e' utile :) Vista la complessita' della rete (che e' anche multimaster), in ogni caso il wiring e il software sono veramente semplici :) :) :)

Ciao Gio, scusa per il ritardo nella risposta, cmq. si l'accensione è immediata, l'ho inserita solo per testare la comunicazione, in un futuro potrebbe tornami utile per comunicare con i vari arduini oltre che a ricevere dati

Adesso che anche l'ESP8266 e' compatibile si aprono un sacco di altre possibilita' :)

Ciao Mauroz, sono molto interessato al tuo progetto e ti ho mandato un messaggio privato. Spero tu possa rispondermi. Grazie 1000

>gpmissi: essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

Ciao mauroz. Anch'io ho realizzato un mio impianto Domotico in casa Tra accensioni Luci, controllo Tende, sistema meteo, scenari di illuminazioni ecc. La mia soluzione è un po diversa, perchè ho in giro per casa tutte schede Arduino NANO e la parte da padrone la fa il tablet, posizionato all'ingresso. quindi il cervello che gestisce il tutto è il tablet. Il tutto collegati via bluetooth. Adesso sto inserendo la video sorveglianza con antifurto per il controllo esterno con una sheda Arduino UNO e una ethernet W5500. Volevo chiederti tu come hai risolto per lo screen saver sul tablet ? Ho hai lasciato la maschera domotica sempre attiva ?

Anch'io ringrazio molto il Forum per l'aiuto su alcune cose. In Particolare un ringraziamento va a Guglielmo che sempre in prima linea ti aiuta su molti problemi.

Anche se in ritardo vedo solo ora il bel progetto di Mauroz a cui ho partecipato in maniera del tutto marginale con le librerie per l' SDM prese da un sito spagnolo.. E proprio li vado a cascare:

come si sta comportando la libreria "SimpleModbusMasterV2.h" ? Ricordo che c'era un problema per l'impossibilità di poter usare una seriale emulata per la comunicazione con il modulo RS485. Come hai risolto?

Grazie per l'eventuale risposta. Franco

Franchelli: .... come si sta comportando la libreria "SimpleModbusMasterV2.h" ? Ricordo che c'era un problema per l'impossibilità di poter usare una seriale emulata per la comunicazione con il modulo RS485. Come hai risolto?

Grazie per l'eventuale risposta. Franco

Ciao Franchelli, non uso la sofwareserial , quindi alla fine non ho approfondito la cosa. Non so se ci sono stati ulteriori sviluppi sulla libreria. :)

Ciao Mauroz! :)

Salve ragazzi, il sistema mi dice che sono 120 GG che non si aggiorna questo post, è arrivato momento di rinfrescarlo unpo :slight_smile:

Prima di chiedere una cosa a Mauroz volevo fare i più sinceri complimeti a Gioblu creatore del protocollo PJON.

Detto quanto più mi premeva volevo fare una domanda a Mauroz (complimenti anche a te e grazie per aver condiviso il tuo esempio) . Sto cercando di replicare quanto hai fatto tu solo che nel momento in cui inserisco sul mega (in realta sto facendo dei test con arduino uno)

Ethernet.begin(mac, ip);
Udp.begin(localPort);

nella void setup il protocollo PJON smette di funzionare puoi dirmi dove sbaglio?

…dimenticavo l’allegato

test_con_udp.ino.ino (5.16 KB)

Ciao Francesco, grazie dei complimenti. Allora, vedo che stai cercando di utilizzare UDP insieme a PJON in maniera custom. Purtroppo non ho il tempo fisico ora di testare e debuggare il codice pero’ posso consigliarti di usare TCP e UDP direttamente con PJON perche’ sono supportati PJON/examples/ARDUINO/Local/GlobalUDP/PingPong at master · gioblu/PJON · GitHub
forse la reimplementazione custom che hai fatto crea qualche collisione o rompe PJON.

Qui un esempio che usa TCP ma puo’ essere facilmente adattato per quello che hai bisogno:

Qui un esempio base di implementazione di un router / gateway / extender:
https://github.com/gioblu/PJON/tree/master/examples/ARDUINO/Local/SoftwareBitBang/Extender

Buona sperimentazione :slight_smile:

Ah mi sono dimenticato di ricordare che adesso PJON funziona anche su Linux e Windows usando TCP, UDP e la seriale quindi puoi far girare PJON anche sul computer che dovrebbe ricevere il dato :)

Ciao gioblu e grazie per la risposta, sei sempre disponibile con tutti e questo ti fa onore .......allora proverò quanto mi hai consigliato . Ti faccio sapere se ci riesco

Ci sto provando , una domanda ma non c’è un modo per far coesistere due strategie Pjon? PJON bus(id); e PJON bus(id); perchè altrimenti sarei costretto a mettere una ethernet shield su ogni nano.

No tranquillo non c’e’ bisogno di mettere una Eth shield per device, assolutamente si, puoi far coesistere due istanze di PJON con strategie diverse nello stesso sketch vedi esempio: PJON/Surrogate.ino at master · gioblu/PJON · GitHub :slight_smile:

grazie gioscarab e scusa se ti disturbo. Ho provato ma come nell'esempio precedente con configurazione Custom con Ethernet.begin(mac, ip, gateway, subnet); anche nell'esempio tuo non mi funziona PJON appena lo commento riesco a comunicare tra gli arduino. Cosa può essere? ho provato anche a installare altre librerie ETHERNET , di diverse versioni ma nulla. Proverò su un'altro computer :-)

..............Non posso crederci ......che errore da principiante .................... avevo impostato il pin 9 come comunicazione con l'altro arduino......probabilmente questo viene utilizzato dalla ethernet shield :-D.............anche se da qui https://www.arduino.cc/en/Reference/Ethernet vedo che non è così mhaaaa...non saprei.

grazie ancora Gioblu

Ciao Francesco, e' un piacere aiutarti :) Hehehe, niente di strano capita sempre anche a me! Buon divertimento con la libreria spero possa esserti utile!