Funkthermometer decodieren (die zweite)

Hi Leute,

ich bin auch dabei zu versuchen ein 433MHZ Funkthermometer zu decodieren.
Leider bin ich noch nicht mal annähernd so weit wie mein Vorposter hier: http://arduino.cc/forum/index.php/topic,67545.0.html

Folgender Code:

void loop()
{
  duration = pulseIn(pin, HIGH);
  Serial.println(duration);
}

ergibt bei mir folgendes:

67
66
53
81
20
35
90
90
109
77
33
52
57
60
60
40964
20225
4243
3130
986
1362
8538
2081
20083
6896
4727
3725
3279
7126
4195
2815
233
2097
12775
29878
5383
4484
45
316
4744
90
7809
200
991
658
11745
5701
1581
5023
2563
4189
5375
3962
5755
4256
2689
216
77
9603
1167
25753
7588
60
725
1308
5783
1674
31
23496
1610
82
15790
6014
10587
2820
24
8038
20201
37
2766
15005
1547
397
1264
1005
8635
24235
5202
14408
5118
4467
7666
6244
4871
4993
8961
2082
5869
10073
17518
25177
71
3147
1611
2509
574
52
50
29
52
65
32
44
82
6600
15418
28
112
107
65
77
45
102
66
75
60
96
45
81
85
36
54
33
96
24
86
53
58
48
64
48

was fange ich mit diesen daten jetzt an? könnte mir da jemand eine kleine starthilfe geben?
im vorherigen post wird die duration zwischen 600~1000 als 1 und andernfalls als 0 gesetzt.

bei mir zumindest scheinen es andere werte zu sein. hat jemand eine idee?
bin für jede hilfe dankbar!

Das sieht mir doch etwas unregelmäßig aus. Versuche mal den Senderythmus herauszufinden. Mein Thermo sendet jede Minute einmal. D.h. jede Minuten kommt eine Bit-/Puls-Reihe an. Versuche erstmal die Reihen herauszubekommen...

genau da liegt für mich das problem.
sendet dein gerät zwischendurch gar nicht? was kommt am sensor zwischendurch an?

Ja. Mein Gerät, also der Sender des Thermometers, senden dazischen nichts. Das machen aber alle Thermo's so. Kontinuierlich Senden ist ja auch Sinnlos. Welchen RX hast Du denn? Und: wenn man nicht aufpasst kann es sein, dass der 433 MHz RX selbst Festplattenkopfbewegungen aufschnappt und als High/Low ausgibt - also Störungen. Da kommen dann die "tollsten" Werte heraus.

ich hab den hier: http://www.watterott.com/de/RF-Link-2400bps-Empfaenger-434MHz

Sollte passen. Wie lang ist die Antenne? Berechne sie genau nach

Gib da mal 433.92 ein. Es kommt 164.4mm, also 16,44cm heraus. Mache die Antenne genauso lang. Dann empfängst Du schonmal auf der richtigen Frequenz.

Was ich vorher gemacht habe: ich habe den TX, den DATA-Pin, mit einem Spannungsteil an die Soundkarte angeschlossen und die TTL-Pegel mit Audacity aufgenommen und angesehen:

http://arduino.cc/forum/index.php/topic,67984.0.html

Du kannst aber auch gleich den RX mit Teiler an die Karte anschließen.

Das habe ich gemacht um mal die Pegel zu visualisieren. Ich habe kein Oszilloskop, ya know?! Ist aber, glaube ungenau. Aber dann siehst Du mal was vom Thermo :slight_smile:

okay, also die antennenlänge habe ich angepasst, danke!
das hatte allerdings vorher nicht viel geholfen.

ich hatte meinen digital input mit dem digital data ouput am empfänger verbunden (pin2 siehe hier: http://www.sparkfun.com/datasheets/RF/KLP_Walkthrough.pdf).

nun habe ich meinen digitalen eingang am arduino testweise mal mit dem pin3 "Linear Output/Test" verbunden, jetzt kommt auf jeden fall etwas besseres an:

0
0
0
0
0
0
0
86874
1478
1456
498
1460
486
472
493
484
482
490
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
759
747
678
662
655
634
640
615
645
621
624
615
621
621
608
606
596
594
595
602
590
591
600
587
606
596
598
596
587
578
585
579
590
570
571
574
578
579
583
581
587
582
578
566
575
571
562
570
570
575
569
591
575
574
589
566
570
578
590
577
570
573
568
569
585
594
583
578
574
571
573
573
564
571
591
575
594
586
575
577
575
579
561
573
570
573
565
573
570
577
583
577
578
583
565
568
574
577
570
579
570
586
574
568
579
590
579
590
566
594
571
577
569
575
571
586
587
575
581
594
591
579
577
590
583
574
577
574
566
578
598
579
595
568
573
589
578
582
564
594
583
591
592
571
583
573
570
578
573
575
578
562
570
566
570
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

sieht besser aus oder? wobei ich mir nicht ganz sicher bin, warum es immer 2 blöcke sind.

Sowas hier

1478 1456 498 1460 486 472 493 484 482 490

könnte

0 0 1 0 1 1 1 1 1 1

sein. Der Rest ist fast immer gleich: ~600. Das wären alles 1 oder 0 oder sonstwas. Das kann nicht sein... Was kommt bei Digital Data Output? Das sollten TTL Pegel sein (0V/5V)....

aber eigentlich ist das doch der falsche pin an dem ich das ganze angeschlossen habe oder? Oo

// hm am digital output kommen nur ~2v an, auch mit 9v stecker.

??? Wo steht, dass man den Empfänger mit 9V betreiben kann? Ich lese "Operating Voltage (Receiver) 4.5 – 5.5 V oder 3.3 – 6V". Nicht aber was von 9V. Du weißt, was Du machst, oder? Womit misst Du die "~2v"?

Lies bitte nochmal das .pdf. Da steht doch alles drinnen....

nein nein, ich betreibe den arduino mit dem 9v eingang.
an den vcc eingängen am empfänger liegen überall ca 4.9v an. am digital out kommen 0.8~2.2 volt raus.

messe mit einem einfachen multimeter.

Du kannst doch keine 5V bei einer Frequenz messen?! Wenn dann kommt das was mit 3Vss heraus oder so... Versuche einfach nochmal mit pulseIn die reihen zu ermitteln. Anders geht es nicht ohne Oszi.

Finde sie Sendeintervalle des Thermometers heraus. Falls nur Kram herauskommt: lege den RX woanders hin... Oder stelle den Sender direkt neben den RX. Hast Du einen Radio Scanner? Dann suche die Frequenz 433.9xx und finden damit den Sendeintervall heraus...

Wenn du das ermittelt hast und Regeln erkennst wie 1400 1400 400 400 1400 400 1400 oder so, dann kannst Du dort 0 und 1 drauflegen und die Bitreihen aufzeichnen...

Good Luck :smiley:

Moin choise,

bit Du hier weiter gekommen?