ronwal il 18/2/2015, 22:03
trasmissione 433mhz
Salve a tutti, vorrei provare a trasmettere tramite un arduino uno ,tre segnali analogici ad un arduino nano e visualizzarli su un disp 20x4...
ronwal il 18/2/2015, 22:04
Re:trasmissione 433mhz
i due modulini che ho sono questi:
[
ronwal il 18/2/2015, 22:08
Re:trasmissione 433mhz Su arduino 1 su A0 collego un partitore per la lettura di tensione di un banco 24v,suA1e A2 due sensori di corrente ad effetto hall.. e mi andranno a misurare la corrente di due stringhe differenti di pannelli fotovoltaici del mio impianto ad isola!
Chi ha voglia di aiutarmi?...
Io non sono un gran che per la programmazzione!!
ElettroshockNow il 19/2/2015, 16:25
Re:trasmissione 433mhz
Devi trasmettere usando una codifica Manchester.
Con Arduino puoi farlo usando semplicemente la libreria virtualwire.
Credo di averla usata nel progetto powermeter (trovi sia il tx che rx).
Unica nota dolente....
I moduli ricevitori non funzionano bene.
I tx Ok (oltre 30m)
Ciao
Elettro
ronwal il 19/2/2015, 18:06
Re:trasmissione 433mhz
Ciao elettro...cosa vuol dire? non riesco a trasmettere da una stanza all'altra?
ronwal il 19/2/2015, 18:15
Re:trasmissione 433mhz
Ho dato un occhio al tuo progetto, fuori dalla mia portata...
Purtroppo non ho capito come funziona la virtualwire!
ElettroshockNow il 19/2/2015, 18:47
Re:trasmissione 433mhz
CITAZIONE (ronwal, 19/02/2015 18:15:03 ) [quote]Ciao elettro...cosa vuol dire? non riesco a trasmettere da una stanza all'altra?
Per esperienza non ho mai superato i 5 metri con quei moduli
, e il responsabile è il modulo ricevitore.
Usando il Tx e un ricevitore Aurel è tutta un'altra storia, 30 metri garantiti.
Per oltrepassare tale distanza oltre agli accurati accorgimenti sull'antenna bisogna sostituire anche il tx.
Magari con un BoostTx sempre dell'Aurel con i 500m garantiti .... fino a 1Km
: ..
Tornando alla distanza stanza stanza con i moduli in tuo possesso (forse i miei erano difettosi).
Usa la libreria VirtualWire sia per il tx che per RX impostando nel setup i piedini che utilizzerai per la trasmissione e ricezione
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
vw_set_ptt_inverted(true);
vw_setup(2000);-----------Trasmettitore--------------------Poi quello che trasmetti lo metti in un array
char msg[3] = {Tensione,Corrente,ecc}; indicando quanti byte trasmetterai nell'istruzione successiva
vw_send((uint8_t *)msg, 3 );
vw_wait_tx(); ----------Ricevitore---------------------------------------Sul Ricevitore avrai:
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen))
{
Tensione = [1];
Corrente = buf[2]);
ecc = buf[3]);
}Io uso questo metodo
Unico neo .... trasmette solo byte ,quindi valori da 0 a 255 ....
Per gli int o float devi convertirli in byte --> trasmettere ---->riconvertirli
Forse esisteranno altre librerie ,ma io non le conosco
ronwal il 19/2/2015, 19:06
Re:trasmissione 433mhz
ecco...le cose incominciano ad essere piu chiare....quindi se io prendo il valore analogico letto che va da 0-1024 non lo posso inviare......
ElettroshockNow il 19/2/2015, 19:42
Re:trasmissione 433mhz
CITAZIONE (ronwal, 19/02/2015 19:06:52 ) [quote]ecco...le cose incominciano ad essere piu chiare....quindi se io prendo il valore analogico letto che va da 0-1024 non lo posso inviare......
Direttamente No.
Devi dividere la variabile a 16bit in due byte da 8bit : (in realtà la tua variabile è a 10Bit)
Lettura = XXXXbyte Lettura1 = Lettura&0xFF;
byte Lettura2=(Lettura&0xFF00)>>8;A questo punto invii i due byte
char msg[2] = {Lettura1,Lettura2};
vw_send((uint8_t *)msg, 2 );
vw_wait_tx();
TX ------------->-------->------->> RXRiceverai i due byte :
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen))
{
Lettura1 = buf[1];
Lettura2 = buf[2]);
}
e ricrei la variabile
Lettura = (int(buf[2]<<8)+buf[1]);Lettura = XXXXronwal il 19/2/2015, 20:32
Re:trasmissione 433mhz
le operazioni matematiche le devo fare prima o dopo la trasmissione?
ElettroshockNow il 19/2/2015, 20:51
Re:trasmissione 433mhz
CITAZIONE (ronwal, 19/02/2015 20:32:59 ) [quote]le operazioni matematiche le devo fare prima o dopo la trasmissione?
Leggi il valore analogico
Converti in Byte
Trasmetti i Byte
-------------------->
Ricevi i byte
Converti nel valore
ElettroshockNow il 19/2/2015, 21:13
Re:trasmissione 433mhz
TX//---------------------------------------------------------------
#include < VirtualWire.h >
void setup() {
vw_set_tx_pin(12);
vw_set_rx_pin(11);
vw_set_ptt_pin(3);
vw_set_ptt_inverted(true);
vw_setup(2000);
}
void loop() {
int Tensione_adc = analogRead(A0);
byte Tens1 = Tensione_adc&0xFF;
byte Tens2=(Tensione_adc&0xFF00)>>8;
char msg[2] = {Tens1,Tens2};
vw_send((uint8_t *)msg, 2 );
vw_wait_tx();
}
//-----------------------------------------------------------------
RX//------------------------------------------------------------------
#include < VirtualWire.h >
int Tensione_adc;
void setup() {
vw_set_tx_pin(12);
vw_set_rx_pin(11);
vw_set_ptt_pin(3);
vw_set_ptt_inverted(true);
vw_setup(2000);
}
void loop() {
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen))
{
Tensione_adc = (int(buf[1]<<8)+buf[0]);
}
}
//------------------------------------------------------------NOTA: Togliere gli spazi in < VirtualWire.h > per evitare errori nella compilazione <VirtualWire.h>ronwal il 19/2/2015, 21:19
Re:trasmissione 433mhz
tensione adc sara un valore compreso tra 0-1024 giusto?
per farlo vedere su disp....il solito lcd print (tensione adc)
ElettroshockNow il 19/2/2015, 21:25
Re:trasmissione 433mhz
Sisi lcd.print("tensione_adc");
forse prima dovrai aggiungere
float tensione= Tensione_adc/fattore_conversione;
lcd.print("tensione,1"); //visualizzazione ad una cifra decimale
ronwal il 19/2/2015, 21:26
Re:trasmissione 433mhz
e per gli altri due valori copio e incollo?
ElettroshockNow il 19/2/2015, 21:26
Re:trasmissione 433mhz
CITAZIONE (ronwal, 19/02/2015 21:26:11 ) [quote]e per gli altri due valori copio e incollo?
Quali valori ?
ronwal il 19/2/2015, 21:28
Re:trasmissione 433mhz
Grazie Elettro...bimba permettendo faro due prove a giorni
ronwal il 19/2/2015, 21:28
Re:trasmissione 433mhz
devo trasmettere A0...A1....A2😁
ElettroshockNow il 19/2/2015, 21:32
Re:trasmissione 433mhz
CITAZIONE (ronwal, 19/02/2015 21:28:49 ) [quote]devo trasmettere A0...A1....A2😁
:lol:
Sisi li metti in sequenza
--------------TX------------------
int Tensione_adc = analogRead(A0);
int Corrente_adc = analogRead(A1);
byte Tens1 = Tensione_adc&0xFF;
byte Tens2=(Tensione_adc&0xFF00)>>8;
byte Corr1 = Corrente_adc&0xFF;
byte Corr2=(Corrente_adc&0xFF00)>>8;
char msg[2] = {Tens1,Tens2,Corr1,Corr2};
vw_send((uint8_t *)msg,
4 ); //aggiornare il numero di byte trasmessi
vw_wait_tx();
-------------------RX------------------
Tensione_adc = (int(buf[2]<<8)+buf[1]);
Corrente_adc = (int(buf[4]<<8)+buf[3]);
ronwal il 19/2/2015, 21:40
Re:trasmissione 433mhz
Come tempi di aggiornamento ricezione dove devo agire??
Dove trovo i moduli rx aurel?
Dopo questo devo fare prove!!
Grrrraaaazzzziiiieee
ps: ci vorrebbe un tutorial in italiano per arduino 👍
ElettroshockNow il 19/2/2015, 22:00
Re:trasmissione 433mhz
CITAZIONE (ronwal, 19/02/2015 21:40:20 ) [quote]Come tempi di aggiornamento ricezione dove devo agire??
Dove trovo i moduli rx aurel?
Con la sequenza:
vw_send((uint8_t *)msg, 2 );
vw_wait_tx();
invii la trasmissione.
Io di solito metto tutto all'interno di :
//-----------------------------------------------------------------
if (millis()>(Tmemoria + 60000)){ //Riesegui le istruzioni contenute nell'if ogni 60000mS
Tmemoria=millis();bla bla bla
bla bla bla
bla bla bla
} //------------------------------------------------------------------
Cosi facendo il codice non si ferma mai ;) e trasmette ogni tot secondi
Il ricevitore fà tutto solo.
ElettroshockNow il 19/2/2015, 22:08
Re:trasmissione 433mhz
Per i ricevitori compatibili al tuo trasmettitore puoi vedere qui.
ronwal il 20/2/2015, 19:15
Re:trasmissione 433mhz
Ciao elettro, ho provato lo sketc ma niente non va....ho collegato al pin 10 l'rx del nano, puo essere quello il problema?....e il vw set ptt pin (3) cosa vuol dire?
ElettroshockNow il 20/2/2015, 20:13
Re:trasmissione 433mhz
Sostituisci i moduli con due fili,forse sono loro ;)
Collegando :
gnd-gnd
tx-rx
il pin ptt non serve per il tuo scopo ,metti un pin a piacimento.
Ciao
Elettro
Ps:domani mattina provo anch'io
ElettroshockNow il 20/2/2015, 20:19
Re:trasmissione 433mhz
I'm sorry.
Aggiungi alla fine del setup dell'rx il comando:
vw_rx_start();
provando sempre con i cavi ,poi se funziona li sostituisci ;)
ronwal il 20/2/2015, 20:22
Re:trasmissione 433mhz
uguale risultato .....0 su display
ronwal il 20/2/2015, 20:25
Re:trasmissione 433mhz
ho provato con oscilloscopio e il segnale arriva al ricevente
ronwal il 20/2/2015, 20:27
Re:trasmissione 433mhz
ecco il ricevente nano
ronwal il 20/2/2015, 20:28
Re:trasmissione 433mhz
l'arduino uno come trasmittente funziona perche sul ricevente con l'oscilloscopio vedo la stessa cosa della trasmittente
ronwal il 20/2/2015, 20:30
Re:trasmissione 433mhz
ecco lo sketch che ho su arduino uno su tx
ronwal il 20/2/2015, 21:52
Re:trasmissione 433mhz
sono riuscito a trasmettereun valore....da 0 a 3 ...con un potenziometro su A0 del trasmittente....ma non doveva arrivare da 0 a 1024?... bo.... ho provato la portata.....da una stanza all'altra tranquillamente...
ronwal il 20/2/2015, 21:58
Re:trasmissione 433mhz
Mi sono accorto che sul piedino d10 del nano non funzionava, ho spostato sul 9 ed ho visualizzato qualcosa
ElettroshockNow il 21/2/2015, 9:06
Re:trasmissione 433mhz
Trovato errore
....
ronwal il 21/2/2015, 9:13
Re:trasmissione 433mhz
:clap.gif:
ronwal il 21/2/2015, 9:19
Re:trasmissione 433mhz
quindi?
ElettroshockNow il 21/2/2015, 9:21
Re:trasmissione 433mhz
--------------------------
TX-----------------------------
//-------------TX-RF------------------------------
#include <VirtualWire.h>
void setup() {
vw_set_tx_pin(12);
vw_setup(2000);
}
void loop() {
int Tensione_adc = analogRead(A0);
byte Tens1 = Tensione_adc&0xFF;
byte Tens2=(Tensione_adc&0xFF00)>>8;
char msg[2] = {Tens1,Tens2};
digitalWrite(13, HIGH);
vw_send((uint8_t *)msg, 2 );
vw_wait_tx();
digitalWrite(13, LOW);
delay(1000);
}
//----------------------------------------------------------------------------------------
RX-------------------------------
//-----------------------RX-RF-------------------------------
#include <VirtualWire.h>
int Tensione_adc;
unsigned long Tmemoria;
void setup() {
Serial.begin(9600) ;
vw_set_tx_pin(12);
vw_set_rx_pin(11);
vw_set_ptt_pin(3);
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_rx_start();
}
void loop() {
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen))
{
Tensione_adc = (int(buf[1]<<8)+buf[0]);
}
if (millis()>(Tmemoria + 1000 )){ //Esegui ogni 1000 mS
Tmemoria=millis();
Serial.print("Tensione_adc= ");
Serial.println(Tensione_adc);
digitalWrite(13, HIGH);
delay(50);
digitalWrite(13, LOW);
}
}
//----------------------------------------------------------
ElettroshockNow il 21/2/2015, 9:23
Re:trasmissione 433mhz
L'errore era :
Tensione_adc = (int(buf[
1]<<8)+buf[
0]);
.... pardon
Avevo contato male il numero del buffer ... si parte sempre da 0 ,ma spesso mi sbaglio con questi array :wacko:
ElettroshockNow il 21/2/2015, 9:33
Re:trasmissione 433mhz
CITAZIONE (ronwal, 21/02/2015 09:23:05 ) [quote]quindi?
e quindi?
Provato?
Distanza?
ronwal il 21/2/2015, 9:41
Re:trasmissione 433mhz
yes funziona.....ho dovuto fare un lcd clear...altrimenti il disp visualizzava male
ronwal il 21/2/2015, 9:47
Re:trasmissione 433mhz
non riesco a moltiplicare il valore....il fattore di conversione devo dichiararlo come int?
ElettroshockNow il 21/2/2015, 9:57
Re:trasmissione 433mhz
float Tensione = Tensione_adc*0.45; La variabile che trasmetti è un int ed equivale al valore letto sull'adc.
La tensione sarà tale valore per il fattore di conversione e per farlo devi creare una variabile float che sarà appunto la tensione
Ti consiglio però di dichiarare la variabile ad inizio listato cosi da averla come globale.
float tensione;
Tensione = Tensione_adc*0.45;
ronwal il 21/2/2015, 10:17
Re:trasmissione 433mhz
comunque da una stanza all'altra trasmette....provero a dare al tx 12v in modo da dargli piu potenza...cosi magari trasmette anche fuori!!👍
ElettroshockNow il 21/2/2015, 11:13
Re:trasmissione 433mhz
Metto in lista nuovi acquisti... sperando che la sfortuna non mi segua
ronwal il 21/2/2015, 15:48
Re:trasmissione 433mhz
ci sono riuscito
ronwal il 21/2/2015, 15:57
Re:trasmissione 433mhz
in linea d'aria siamo a circa 25 mt.....e max da una stanza all'altra....(con una parete in mezzo)!
ElettroshockNow il 21/2/2015, 20:01
Re:trasmissione 433mhz
ronwal il 21/2/2015, 20:03
Re:trasmissione 433mhz
Tutto merito tuo!!!!!
Una domanda....ma i moduli 2,4gh funzionano meglio?....si usano allo stesso modo?
ronwal il 21/2/2015, 20:03
Re:trasmissione 433mhz
se non e molto difficile potrei farci un pensierino!!
ElettroshockNow il 21/2/2015, 20:27
Re:trasmissione 433mhz
Non saprei ,ma credo di no.
In caso apri una discussione,magari qualche utente già li usa e può condividere ;)
Absolute il 22/2/2015, 15:36
Re:trasmissione 433mhz
CITAZIONE (ronwal, 21/02/2015 20:27:06 ) [quote]Una domanda....ma i moduli 2,4gh funzionano meglio?....si usano allo stesso modo?
Noi stiamo sperimentando
ort) dopo di che la si può caricare in qualsiasi applicativo per visualizzarla. Inoltre il modulo può essere impostato in modalità bridge (che loro chiamano AP+STA), ovvero impostato come client WiFi di un altro sistema WiFi e integrato in esso. La stringa a questo punto viene inviata all'interno di una rete e prelevata sempre alla stessa maniera dall'IP del modulo WiFi. Se si considera il costo del modulo di meno di 10$....
ronwal il 22/2/2015, 22:53
Re:trasmissione 433mhz
domandina facile facile....ma fa male alla salute la trasmissione 433mhz 10mw di pontenza?.....conviene ridurre la trasmissione a che so 5 -10 sec cadauna oppure non importa?
ElettroshockNow il 22/2/2015, 22:59
Re:trasmissione 433mhz
Altro che domandina ....
Cmq esiste una normativa (non ricordo ) che non consente una trasmissione continua a 433Mhz.
Il perché ?
Forse per non occupare la frequenza da un solo dispositivo..... forse.....
ronwal il 23/2/2015, 7:30
Re:trasmissione 433mhz
ronwal il 23/2/2015, 7:31
Re:trasmissione 433mhz date un occhio!