Also, hier jetzt mal ein paar Daten:
dahinter steht immer Temp / Luftfeuchte
000000110010101100111001100001001110010111 30,8 / 53
000000110010101001110101100010001110010011 29,6 / 50
000000110010100111110101100010001110010001 29,5 / 49
000000110010100101110101100001001100011010 29,4 / 49
000000110010100000110101100000001100100001 29,1 / 48
000000110001100110100001100001010010101001 25,0 / 65
000000110001101011100001100001010010100001 25,2 / 65
000000110001101100100001100010010010101111 25,3 / 65
000000110001101101100001100001010010100110 25,3 / 65 (25,4 / 65)
000000110001100000100101100000010010101001 25,6 / 64
Bei dem einen Ausreißer ist das Thermometer beim Ablesen umgesprungen. Ich kann nicht sagen, welcher der beiden Werte richtig ist. Da diese Reihe sich von der vorherigen unterscheidet, vermute ich den Klammerwert.
Wie bin ich an die Binärdaten gekommen? So:
boolean sbit=false;
void setup() {
Serial.begin(115200);
Serial.println("go!");
pinMode(2, INPUT);
}
void loop() {
unsigned long LowVal=pulseIn(2,LOW);
unsigned long LowVal2=pulseIn(2,LOW);
if (LowVal > 7000 && LowVal2 > 7000) {
sbit=true;
}
if (sbit== true) {
// Es geht los!
// startbit zurücksetzen
sbit=false;
for(unsigned int j=0; j<42; j++) {
LowVal=pulseIn(2,LOW);
if (LowVal < 3200) {
Serial.print(0);
} else if(LowVal >= 3200 && LowVal < 7000) {
Serial.print(1);
}
}
Serial.println("");
}
}
Wenn ich dann den Tx-Button gedrückt habe, kammen immer 5 oder 6x die gleichen Zahlenfolgen schnell hintereinander. Also scheine ich den Startcode gefunden zu haben.
Wie komme ich auf den Wert 42? Wenn ich mir die Zeiten ausgeben lasse, erscheinen 42 Zeiten zwischen zwei Startblöcken. Daher vermute ich 42 Bits.
Jetzt weiß ich nicht mehr weiter.
ich habe noch diese Seite entdeckt, aber was er da für Daten hat, deckt sich nicht mit meinen.
http://hobbyelektronik.org/w/index.php?title=Tchibo_Wetterstation
Ich habe ja 42 Bits, er hat 32.
Das Modell der Wetterstation von ihm ist wohl ein älteres, vom Aufbau vermute ich aber, sie sind sich sehr ähnlich. Das Design ist schon fast gleich.
Ach ja, ich habe noch eine Parallelmessung gemacht mit Arduino und Bus Pirate Logic Analyzer. Und wenn ich - analog zu der Webseite oben - die kurzen Abstände als 0 werte und die langen als 1, dann kommt mit Abzählen an der Logic-Grafik das gleiche raus, wie aus meinem Arduino Programm. Von daher scheint mein Programm zu funktionieren.
Nachtrag:
Jetzt habe ich den LogicAnalyzer mal direkt an den DataPin beim Sender und gleichzeitig am DataPin des Conrad Empfängers gehängt und eine Runde laufen lassen.
Man sieht, der Arduino empfängt genau das, was der Tchibo sendet (siehe Bildanhang, die Werte: 28,2°C und 53% Feuchte).