Hallo Zusammen
Ich habe mir mit einem Arduino eine Funkwetterstation gebaut welche autonom mit Batterien im garten angebracht wird. Sie misst regelmäßig Temperatur, Luftfeuchte, Regen, und Helligkeit. Die Daten setzt Sie verschlüsselt per Funk an meinen Pi ab und geht danach wieder für 8 Minuten in den Sleep.
Der Raspi empfängt die Daten mit den 433Utils. Das alles funktioniert wunderbar. Allerdings bleibe ich jetzt an meinen wirklich mangelhaften C++ Kenntnissen hängen. Die Datei RFSniffer möchte ich nun so umschreiben, dass dieser wenn Werte empfangen werden, diese in eine Mysql Datenbank schreibt, welche auf meinem NAS Server läuft.
Vielleicht noch zu Info: Die Daten welche gesendet werden kommen verschlüsselt. Anhand dem Code kann später herausgefunden werden für welche Daten der übermittelte Wert steht.
Um nicht falsch verstanden zu werden. Ich verlange nicht nach einer Komplettlösung. Ich erhoffe mir mit diesem Beitrag aber einen Wegweiser für den richtigen Lösungsweg mit dem Hintergedanke, dass ich mich zwar in vielen Programmiersprachen auskenne ausser in C++
Hier meine RFSniifer:
/*
RFSniffer
Usage: ./RFSniffer [<pulseLength>]
[] = optional
Hacked from http://code.google.com/p/rc-switch/
by @justy to provide a handy RF code sniffer
*/
#include "RCSwitch.h"
#include <stdlib.h>
#include <stdio.h>
RCSwitch mySwitch;
int main(int argc, char *argv[]) {
// This pin is not the first pin on the RPi GPIO header!
// Consult https://projects.drogon.net/raspberry-pi/wiringpi/pins/
// for more information.
int PIN = 0;
#include <stdio.h>
if(wiringPiSetup() == -1) {
printf("wiringPiSetup failed, exiting...");
return 0;
}
int pulseLength = 0;
if (argv[1] != NULL) pulseLength = atoi(argv[1]);
mySwitch = RCSwitch();
if (pulseLength != 0) mySwitch.setPulseLength(pulseLength);
mySwitch.enableReceive(PIN); // Receiver on interrupt 0 => that is pin #2
while(1) {
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
printf("Unknown encoding\n");
} else {
// Hier müsse die Query stehen
}
mySwitch.resetAvailable();
}
}
exit(0);
}
Alles anzeigen
Vielen Dank schon Mal
Gruss GL