Buongiorno, sono nuovo del forum quindi mi presento.
Sono Daniele, appassionato di elettronica e microcontrollori da circa un paio di anni, ancora alle prime armi. Insegno in una scuola superiore e mi diletto con Arduino per progetti scolastici e personali, ad ogni modo senza scopo di lucro. Di formazione sono laureato in fisica con qualche anno di esperienza di programmazione nel mondo dei database.
Mi sto affacciando ora al mondo della trasmissione dati via radio e sono finito su questo fantastico spazio in cui trovo che sia tutto molto dettagliato, complimenti!
Ho qualche domanda sulla configurazione e sul trasferimento dati con la scheda sopra citata E32 433T30D.
Ho seguito tutti i passi indicati in questo sito per il cablaggio e per la configurazione, ho ancora un po’ di problemi di trasferimento e di comprensione del codice.
Domanda sul cablaggio: io ho collegato tutti i pin della scheda LORA come indicato nei vari schemi di collegamento, con resistenze di pull up sui pin RX e TX. Ho quindi collegato i pin M0, M1 e AUX direttamente alle porte GPIO di Arduino, rispettivamente su 7, 6 e 5. Ho quindi richiamato i pin di riferimento nel costruttore nel seguente modo:
LoRa_E32 e32ttl(2, 3, 5, 7, 6);
Quando si parla di gestire i valori di M0 e M1 via codice, io ho pensato di impostarli aggiungendo una define dei due pin e portando a “HIGH” o “LOW” i pin di riferimento direttamente da codice per impostare le varie mode, nel seguente modo:
Mi chiedo se è corretto impostare le varie “mode” della scheda in questo modo, nell’esempio riportato sopra sarei in modalità sleep.
Devo portare a HIGH anche il pin di AUX?
Per quanto riguarda la trasmissione in transparent mode, riesco a ricevere il messaggio dall’Arduino ricevente, ma con caratteri indecifrabili. Ad esempio se invio il messaggio “Ciao“, nel monitor seriale del ricevente ottengo caratteri del tipo “ÿ@ÿ“. Ho provato a cercare online e non ho capito quale potrebbe essere il problema.
Domanda in merito alla trasmissione in fixed transmission.
Dal manuale tecnico del modulo Lora leggo che in Mode 3 (M0=M1=HIGH), la trasmissione e l’invio dei dati risulta N/A.
Nelle guide presenti sul sito leggo che per la trasmissione in fixed mode devo impostare M0=M1=HIGH
Non capisco quindi: in modalità fixed point to point, come devono essere impostati i pin M0 e M1?
Nel tutorial leggo di replicare la seguente condizione per il dispositivo che invia:
Tali impostazioni devo impostarle con il codice di configuration setup o direttamente dallo sketch che uso per inviare/ricevere i dati?
La domanda mi sorge perché vedo che nella parte iniziale degli sketch di invio/ricezione dati c’è una parte di configurazione di ADDH, ADDL e CHAN, quindi mi sembra ridondante far girare prima il configuration setup e poi il codice che invia/riceve perché la configurazione verrebbe sovrascritta dal secondo codice.
Domanda sui canali di invio/ricezione.
Nell’esempio riportato nel tutorial per il codice di invio, si dice di usare il seguente (invio solo un estratto):
Qua mi sembra di capire che imposto l’indirizzo del ricevente su 03 00 04.
Se invio il messaggio verso 00 03 04, non dovrei avere la stessa impostazione di ADDH, ADDL e CHAN nel codice del ricevente? Per quale motivo ADDH, ADDL non coincidono nella configurazione del ricevente con l’indirizzo al quale sto inviando il messaggio nel codice del trasmettitore?
In ogni caso, anche cambiando gli indirizzi di invio/ricezione non riesco a ricevere dati. Nel monitor seriale vedo solo il messaggio “Start listening” ma non ricevo mai nulla, infatti anche facendo una print di e32ttl.available(), questa vale sempre 0, quindi non entra nel loop di ricezione.
Ho controllato i cablaggi varie volte e non capisco cosa può esserci che non vada.
Ultima domanda: nel codice vedo spesso questo commento:
// After set configuration comment set M0 and M1 to low // and reboot if you directly set HIGH M0 and M1 to program
Non capisco come usare questa informazione.
Mi scuso per le troppe domande ma sto lavorando a un progetto scolastico per il quale questa parte di invio dati è fondamentale ma non so bene come muovermi per risolvere i problemi.
Grazie in anticipo della disponibilità e buona giornata!
Ciao Daniele,
il tuo messaggio era finito in spam, lo vedo solo ora.
Il problema dei caratteri non corretti potrebbe essere causato da un’errata configurazione del dispositivo o dal solito problema di corrente non sufficiente.
I pinMode dei pin dell’E32 non sono necessari lascia fare alla libreria.
Per quanto riguarda M0 e M1, ti puoi affidare alla libreria che se ne occupa senza fare nulla.
La configurazione la puoi impostare sullo stesso sketch, ma ti conviene usare un sketch a parte, tanto poi usando WRITE_CFG_PWR_DWN_SAVE rimane memorizzato sull’E32.
Se imposti
ADDL ADDH e CHAN 0 1 4 sul config dell’inviante
e
ADDL ADDH e CHAN 0 2 4 sul config del ricevente
l’inviante dovrà usare un comando tipo ResponseStatus rs = e32ttl.sendFixedMessage(0, 2, 4, "Message to 00 02 04 device");
Grazie molte per la risposta, questa volta sono arrivato in ritardo io 🙂
Ho risolto il problema dei caratteri strani, mea culpa 🙂 Questo succede solo quando trasmittente e ricevente sono collegati allo stesso PC, su porte seriali diverse. Se apro il seriale di chi riceve, ricevo i messaggi ma con questi caratteri strani.
Se collego trasmittente e ricevente a due PC diversi non c’è nessun problema di caratteri strani, quindi riesco a inviare e ricevere messaggi con successo, in modalità trasparente!
Purtroppo ho avuto dei problemi di distanza di trasmissione con l’antenna ricevente, credo di dover utilizzare una trasmittente omnidirezionale e una ricevente unidirezionale, per aumentarne l’efficienza (almeno in campo aperto).
Nel codice che ho usato io fino a oggi ho impostato i pin da codice in modo da gestire la modalità di trasmissione, adesso proverò senza specificare nulla, in modo da far gestire tutto alla libreria. Nei prossimi giorni mi dedico ad altre prove per invio in fixed mode 🙂
Grazie molte del supporto e dei tuoi fantastici tutorial!
Mantenere un repository, un sito o un forum è come prendersi cura di un giardino - richiede costante attenzione e cura per farlo prosperare. Se sei un abile giardiniere (o programmatore!) e vuoi aiutarci a far fiorire il nostro sito, saremmo felici di averti nel nostro team! Cerchiamo anche scrittori talentuosi e moderatori per il nostro forum per aiutarci a far crescere la nostra comunità. Se sei interessato a unirti a noi, non esitare a contattarci per farci sapere in che modo puoi contribuire!
Sei un appassionato di elettronica o programmazione? Condividi la tua conoscenza con gli altri, scrivi un semplice tutorial o come fare un grande progetto Contattami. share_your_ideas@mischianti.org
The content displayed on this website is protected under a CC BY-NC-ND license. Visitors are prohibited from using, redistributing, or altering any content from this website for commercial purposes, including generating revenue through advertising. Any unauthorized use is a violation of the license terms and legal action may be taken against individuals or entities found to be in violation.
You must also provide the link to the source.
Per offrire le migliori esperienze, utilizziamo tecnologie come i cookie per memorizzare e/o accedere alle informazioni del dispositivo. Acconsentire a queste tecnologie ci permetterà di elaborare dati come il comportamento di navigazione o gli ID unici su questo sito. Non acconsentire o ritirare il consenso può influire negativamente su determinate funzionalità e funzioni.
Functional
Sempre attivo
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Per offrire le migliori esperienze, utilizziamo tecnologie come i cookie per memorizzare e/o accedere alle informazioni del dispositivo. Acconsentire a queste tecnologie ci permetterà di elaborare dati come il comportamento di navigazione o gli ID unici su questo sito. Non acconsentire o ritirare il consenso può influire negativamente su determinate funzionalità e funzioni.
Functional
Sempre attivo
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.