Go Down

Topic: Repetidor de RF 433MHz con modulos- SOLUCIONADO (Read 274 times) previous topic - next topic

DOMPA

Mar 19, 2019, 02:01 pm Last Edit: Apr 14, 2019, 05:14 pm by DOMPA
Hola Chicos.
Soy novato en esto de arduino. Me apasionan los temas de radiofrecuencia y estoy empezando a jugar con modulos RF 433.
Después de aprender un poco con montajes básicos, he empezado con un tutorial que he encontrado en la  red:
https://z4ziggy.wordpress.com/2014/06/27/rf-sniffer-open-gates-cars-and-rf-remote-controlled-devices-with-ease/

A la hora de compilar me sale un error:
exit status 1
Error compilando para la tarjeta Arduino/Genuino Uno.

El código que he copiado y pegado es este:

Code: [Select]
/*
 * RF Sniffer (C) Elia Yehuda 2014
 *
 * This program was coded.
 *
 * No warranty whatsoever.
 * Using this program will cause something, most likely problems.
 *
 */
 
#include <RCSwitch.h>
 
// number of times to resend sniffed value. use 0 to disable.
#define RESEND_SNIFFED_VALUES 10
 
// ye, thats the led pin #
#define LED_PIN 13
 
// class for 315 receiver & transmitter
RCSwitch rf315Switch = RCSwitch();
// class for 434 receiver & transmitter
RCSwitch rf434Switch = RCSwitch();
 
void setup()
{
        // print fast to console
        Serial.begin(115200);
 
        // 315 receiver on interrupt #0 (pin #2)
        rf315Switch.enableReceive(0);  
        // 315 transmitter on pin #4
        rf315Switch.enableTransmit(4);
        // how many resends
        rf315Switch.setRepeatTransmit(RESEND_SNIFFED_VALUES);
        
        // 434 receiver on interrupt #1 (pin #3)
        rf434Switch.enableReceive(1);  
        // 434 transmitter on pin #5
        rf434Switch.enableTransmit(5);
        // how many resends
        rf434Switch.setRepeatTransmit(RESEND_SNIFFED_VALUES);
        
        Serial.println("[+] Listening");
}
 
// simple decimal-to-binary-ascii procedure
char *tobin32(unsigned long x)
{
        static char b[33];
        b[32] = '\0';
        
        for ( int z = 0; z < 32; z++) {
                b[31 - z] = ((x >> z) & 0x1) ? '1' : '0';
        }
        
        return b;
}
 
void process_rf_value(RCSwitch rfswitch, int rf)
{
        char str[120];
        unsigned long value;
 
        // flash a light to show transmission
        digitalWrite(LED_PIN, true);
        
        value = rfswitch.getReceivedValue();
        if (value) {
                sprintf(str, "[+] %d Received: %s / %010lu / %02d bit / Protocol = %d",
                        rf, tobin32(value), value, rfswitch.getReceivedBitlength(), rfswitch.getReceivedProtocol() );
        } else {
                sprintf(str, "[-] %d Received: Unknown encoding (0)", rf);
        }
        Serial.println(str);
 
        // resend the sniffed value (RESEND_SNIFFED_VALUES times)
        rfswitch.send(value, rfswitch.getReceivedBitlength());
        
        // reset the switch to allow more data to come
        rfswitch.resetAvailable();
        // stop light to show end of transmission
        digitalWrite(LED_PIN, false);
}
 
void loop()
{
 
        if (rf315Switch.available()) {
                process_rf_value(rf315Switch, 315);
        }
 
        if (rf434Switch.available()) {
                process_rf_value(rf434Switch, 434);
        }
}


Mi arduino es un uno, pero supongo que lo pedí por error, según fotos de internet, tengo un UNO ATMEGA 328P.
Con la configuración actual, ya he compilado y subido pequeños codigos y funcionan. Quiero decir que no creo que sea problema de puerto ni de selección de placa, que tengo en Arduino/Genuino UNO.
Agradecería ayuda de donde puede estar el problema para poder seguir.
Gracias

surbyte

Moderador:
Edita el enlace que has puesto que apunta a tu disco y obviamente no podemos ver nada del disco de tu PC.



DOMPA

Hola
Alguien le podría echar un vistazo al codigo y decirme si ve algo extraño ???
Gracias

tauro0221

Hi,
El error que estas teniendo es debido a que no tienes instalada la libreria #include <RCSwitch.h>. Necesitas buscala y instalarla. Adjunto link donde puedes bajarla y instalarla. Suerte
https://github.com/sui77/rc-switch

DOMPA

#4
Mar 27, 2019, 06:06 pm Last Edit: Apr 09, 2019, 03:58 pm by DOMPA
Hola Tauro0221
Gracias por tu mensaje.
Antes de comprobarlo, he pinchado en tu link, he bajado el zip y al descomprimir en la carpeta de las librerias me indica que ya la tengo. Con lo cual la he instalado igual encima.
He probado a compilar y el error sigue igual:




Arduino:1.8.9 (Windows 7), Tarjeta:"Arduino/Genuino Uno"


Code: [Select]
libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::setProtocol(RCSwitch::Protocol)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::setProtocol(int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::RCSwitch()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::nReceiveTolerance'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::nReceivedValue'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::RCSwitch()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::setProtocol(int, int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::setPulseLength(int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::setRepeatTransmit(int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::setReceiveTolerance(int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::enableTransmit(int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::disableTransmit()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::getCodeWordA(char const*, char const*, bool)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::getCodeWordB(int, int, bool)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::getCodeWordC(char, int, int, bool)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::getCodeWordD(char, int, bool)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::transmit(RCSwitch::HighLow)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::enableReceive()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::nReceivedBitlength'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::handleInterrupt()'

DOMPA

#5
Mar 27, 2019, 06:19 pm Last Edit: Apr 14, 2019, 05:26 pm by DOMPA
Y sigue:

Code: [Select]
sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::enableReceive(int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::disableReceive()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::send(unsigned long, unsigned int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::sendTriState(char const*)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOn(char, int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOff(char, int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOn(char, int, int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOff(char, int, int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOn(int, int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOff(int, int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOn(char const*, char const*)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOn(char const*, int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOff(char const*, char const*)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::switchOff(char const*, int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::send(char const*)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::available()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::resetAvailable()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::getReceivedValue()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::getReceivedBitlength()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::getReceivedDelay()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::nReceivedDelay'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::getReceivedProtocol()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::nReceivedProtocol'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::getReceivedRawdata()'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::timings'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::receiveProtocol(int, unsigned int)'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\rc-switch-master\RCSwitch.cpp.o (symbol from plugin): In function `RCSwitch::setProtocol(RCSwitch::Protocol)':

(.text+0x0): multiple definition of `RCSwitch::nSeparationLimit'

sketch\RCSwitch.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compilando para la tarjeta Arduino/Genuino Uno.

Este informe podría contener más información con
"Mostrar salida detallada durante la compilación"
opción habilitada en Archivo -> Preferencias.



Lo siento...ha salido larguisimo.
Gracias de antemano

tauro0221

Hi,
Instale la libreria y compile tu sketch y corrio sin problemas usando la lireria adjunto en el link. No tuve problemas. Puede ser que tienes problema con la primera libreria. Trata de remover ambas libreria e instala la que yo adjunte para ver si te trabaja.

DOMPA


DOMPA

Lo siento pero no hay manera.
Donde tengo el ejecutable de arduino para esta prueba, es en C/AAArduino/Arduino
En esa carpeta tengo el ejecutable .exe y carpetas que una de ellas es libraries.
Dentro de la carpeta libraries tengo varias carpetas corrspondientes a varias librerias que he ido bajando para pruebas.
Una de ellas es la carpeta C/AAArduino/Arduino/rc-switch-master que se instaló ahí al bajar tu link.
Dentro de esa carpeta está, entre otros, el archivo RCSwitch.h que es al que te refieres.

Soy novato, lo siento, pero no se donde puede estar el problema.
Gracias


tauro0221

Hi,
Sugerencia remueve o dale "delete" a esa carpeta completa y vuelve a instalar la libreria con el link que adjunte.Debes de tener solamente una libreria rc-switch. Posiblemente al compilar estas usando la primera que instalastes

DOMPA

Ya lo hice...Borré la carpeta rc-switch-master y volví a bajar el zip. Lo descomprimí indicando carpeta libraries. Volvía a copiar y pegar el código y nada. No compila.
Cuando tuve ese problema la primera vez, bajé otras librerias en zip de la misma maner, las descomprimí en la carpeta libraries y funcionaron perfecto.
Sigo buscando.
Gracias

DOMPA

Ya compiló....No sé porqué.. Desinstalé el arduino y volvía a instalarlo. Volvía descomprimir el zip de tu link y lo metí en la carpeta libraries. Por cierto al desinstalar, me ha borrado algunas carpetas de librerías pero no importa.
Esta vez ha compilado. Mañana toca probar ya con el hardware RX y TX.
Gracias, muy amable

Go Up