Hallo, ich Google und google aber bekomme es einfach nicht hin einen Hexadezimalen 4 Byte Code / String über die RC Switch Libary und einem 433Mhz Sender zu senden, und am Raspberry mit 433 Utils und RFSniff wieder zu empfangen. Die myswitch.send() Funktion geht ja anscheinend nur bis zu 24 Bit. Zuerst hatte ich die Idee den Hex Code in Dezimal umzuwandeln und dann zu senden aber sobald die Dezimalzahl 9 und mehr Zahlen hat kommen beim Raspberry nur noch komische Sachen an. Beispiel:
myswitch.send(12345678, 24) // Code wird vom Raspberry als 12345678 Empfangen
myswitch.send(123456789 , 24) // Beim Raspberry kommt an: 6016277
Wenn anstatt den 24 Bit 48 reinschreibe kommt beim Raspberry nichts mehr an.
Wenn ich z.B. den Hex Code: ABEA939B senden will ist das die Dezimalzahl: 2884277147
Wenn ich dann den Code ausführe:
myswitch.send(2884277147, 24)
dann kommt beim Rasperry sowas an:
[ROOT@Raspberry /opt/Projekt/433Utils/RPi_utils]$ ./RFSniffer
Received 15373211
Das Projekt besteht darin die vom NFC Scanner gescannte UID per Funk an den Raspberry zu senden welcher Prüft ob diese Zugangsberechtigt ist und wenn ja soll er eine Lampe angehen.
Hier nochmal der komplette Arduino Programm Code:
#include <KeyDuino.h>
#include <RCSwitch.h>
KeyDuino keyDuino;
RCSwitch mySwitch = RCSwitch();
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };
uint8_t uidLength;
void setup(void) {
Serial.begin(115200);
keyDuino.begin();
mySwitch.enableTransmit(10); // Der Sender wird an Pin 10 angeschlossen
Serial.println("KeyDuino is ready, please scan a tag.");
}
void loop(void) {
uint8_t success;
String readID;
success = keyDuino.readTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
if (success){
Serial.print("Tag found: ");
readID = keyDuino.convertUintToString(uid, uidLength);
mySwitch.send(2884277147, 24); // Der 433mhz Sender versendet die UID
Serial.println(readID);
}
}
}
kann mir irgendjemand helfen ?