Forum: Mikrocontroller und Digitale Elektronik Funkprotokoll Temperatursensor


von Michael K. (mad_axe)


Lesenswert?

Hallo,

ich hab mich gerade mal daran gemacht einen Funk-Temperatur Sensor zu 
dekodieren. Das Signal hab ich an der Wetterstation (ist ne 
Wetterstation von Aldi) direkt abgegriffen und per Soundkarte sowie 
At90s2313 aufgezeichnet. Soundkarte hatte ich zum Schluss genommen wegen 
Probleme auf meinem Testboard.
Immerhin hab ich auch schon etwas rausgefunden. Allderings hab ich noch 
keine Lösung gefunden, die Temperatur daten zu dekodieren.
Hier sind mal ein paar geloggte Daten :
24,6 58
11 0001 0110 1111 0101 0110 1011 1
11 0001 0110 1111 0101 0110 1101 1

25,9 59
11 0001 0110 1111 1010 1111 1110 111
11 0001 0110 1111 1010 1111 1111 011

24,1 52
11 0001 0110 1110 0101 1001 0111
11 0001 0110 1110 0101 1001 1011

23,6 53
11 0001 0110 1110 1101 0110 1011 1
11 0001 0110 1110 1101 0110 1101 1

8,2 40
11 0001 0110 1100 0111 1010 0111
11 0001 0110 1100 0111 1010 1011

10,7 65
11 0001 0111 0001 0111 1011 0011
11 0001 0111 0001 0111 1011 0101

Die ersten beiden bits sagen mir nichts, die nächsten 4 sind definitiv 
der Hauscode. Man kann den Hauscode von 1 - 15 einstellen, und die 4 
Bits ändern sich auch passend.
In den Daten oben ist z.B. 10,7 für die Temperatur und 65 für dich 
Luftfeuchtigkeit.
Vielleicht hat ja einer ne Idee womit das codiert ist.
So, danke schonmal im vorraus

Gruß
Micha

von Markus (Gast)


Lesenswert?

Ich kann mir nicht so richtig vorstellen, dass die Telegramme 
unterschiedlich lang sind. Vielleicht müssen die mit 0en aufgefüllt 
werden oder Du hast falsch gemessen?

Kannst Du nach Möglichkeit mal nur einen Wert ändern und den anderen 
stabil lassen? Wahrscheinlich ist auf den Werten noch irgendein Offset 
drauf, wie ist denn der Messbereich angegeben?

Markus


von Michael K. (mad_axe)


Angehängte Dateien:

Lesenswert?

Tja, wegen den Unterschiedlichen längen hab ich mich auch schon 
gewundert. Manchmal tritt es auch nicht auf. Festzustellen ist, das auch 
eventuell das letzte "bit" zeitlich kürzer ist (ich hab das kurze 
Intervall als 1 angenommen (Hauscode)) Vielleicht ist es auch 
andersherum. Die unterschiedliche Länge könnte man sich vielleicht auch 
mit einer Checksumm erklären.
Zur Verdeutlichung hab ich mal ein paar Bilder eingefügt. Es sind 
jeweils die 3 Datensätze von 2 Messungen. Wenn ich nachher zu Hause bin 
versuche ich mal 2 Messungen mitzuloggen wo sich die Temp (oder was wäre 
besser??) nur um eine Stelle unterscheidet. Ist halt nich so einfach, da 
das halt immer mal um die kommastelle schwank. Aber es wird schon 
irgendwie hinhaun.

Für weitere Anregungen und gewünschte Testprotokolle bin natürlich offen 
...

Micha

von Markus (Gast)


Lesenswert?

Auch mit Prüfsumme sollte das Telegramm immer gleich lang sein.

Wenn die Nachkommastelle sich ändert ist das genau das, was Du hier 
brauchst: Eine möglichst kleine Änderung, damit Du das niederwertigste 
Bit identifizieren kannst. Am besten bei beiden Werten.

Markus

von Martin K. (maart)


Lesenswert?

Ich finde im Moment leider meine Unterlagen von damals nicht, ich habe 
mir auch mal die Zähne an so einer Aldi-Station ausgebissen. Bei mir 
waren die Telegramme auch unterschiedlich lang. Ich habe zu Testzwecken 
die empfangenen Telegramme exakt wieder gesendet: Sie konnten immer 
empfangen werden.

Edit: war keine Aldi sondern Lidl
Im Anhang mal die empfangenen Telegramme. Diese Telegramme wurden zwecks 
Kontrolle auch von mir gesendet um so kontrollieren ob die Station sie 
auch auswertet.

von Martin K. (maart)


Angehängte Dateien:

Lesenswert?

Anhang
Edit: wieso klappt das mit dem Anhang eigendlich so oft nicht auf 
Anhieb?

von Sonic (Gast)


Lesenswert?

Darfst nicht auf 'Vorschau' klicken, das haut den Anhang 'raus!
Könnte ruhig mal geändert werden!

von Peter D. (peda)


Lesenswert?

Das hatten wir doch schonmal:

http://www.mdewendt.de/funk/ws7030.html


Peter

von Michael K. (mad_axe)


Lesenswert?

Ja solch einen Sensor hab ich auch schon decodiert. Dort ist es ja auch 
relativ einfach. (Fast alles BCD). Ausserdem sendet solch ein Sensor 
auch keine Luftfeuchtigkeit, welches es hier noch schwerer macht. Aber 
ich habe gerade noch ein paar Testaufnahmen gemacht und werde sie in der 
nächste 0,5-1 h hier posten.

von Michael K. (mad_axe)


Angehängte Dateien:

Lesenswert?

so, ich habe jetzt mal weiter analysiert. Diesmal hab ich mir die Mühe 
gemacht genau zu schauen in den Aufnahmen (also auch nur richtig saubere 
Aufnahmen verwendet).  Dabei habe ich folgendes herausgefunden. Pakete 
die die selben Werte übertragen sind diesmal auch richtig gleich (hatte 
erst eins was nicht gestimmt hat, aber anscheinend habe ich nich richtig 
auf den Wert an der Anzeige geschaut oder dieser hat sich innerhalb 
kurzer Zeit geändert). Wie auch immer,die gleichen wären hierbei :

21,2 55 test9
110001011011111010111011001
1100010110111110101110110111
1100010110111110101110111011

21,2 55 test10
110001011011111010111011001
1100010110111110101110110111
1100010110111110101110111011

Ausserdem habe ich noch 3 brauchbare werte aufgenommen, bei denen sich 
nur die kommastelle der Temperatur verändert:

21,4 56 test12
110001011011100101110111011
110001011011100101110111101
1100010110111001011101111111
21,5 56 test13
11000101101110010111100011
11000101101110010111100101
11000101101110010111100111
21,6 56 test14
110001011011100101111010111
110001011011100101111010111
110001011011100101111011011

Aber irgendwie denke ich das ich auf dem Holzweg bin mit der 
Puls-Frequenz-Modulation. In dem Bild was ich angehängt habe sind 
jeweils die ersten pakete der 3 Temperatur Messungen von oben zu sehen. 
Die Länge eines solchen Paketes ist bei allen gleich lang. Allerdings 
ist das LowLevel zwischen zwei einsen kürzer als bei einer 0. Dadurch 
kommen auch die unterschiedlichen Längen nach meiner Überlegung zu 
stande.
Nun also die Frage, hat jemand ne Idee wie das ganze noch Verschlüsselt 
sein könnte (mir fällt gerade ein ich könnte ja mal bei Manchester Code 
nachlesen).

Na mal schauen ob einer was erkennt :)
Gruß
Micha

von Michael K. (mad_axe)


Angehängte Dateien:

Lesenswert?

Nachdem mir das mit Manchester eingefallen ist musste ich doch gleich 
mal schauen. Also es könnte gut sein das es damit codiert ist. Lege ich 
mal eine Maske drüber ala Manchester (verwendet ist dabei Standard, also 
fallende Flanke = 1, wobei ich mir nicht sicher bin die Quasi 
syncronisation richtig getroffen zu haben, aber immerhin würde das die 
beiden "einsen" nach alter Methode am Anfang erklären) habe ich auch die 
gleiche Anzahl von Bits.
Bei den 3 Werten wo sich nur die Nachkommastelle ändert sind nun nur 
noch 8Bit verschieden. Hierbei könnte natürlich die Checksumme drinne 
stecken. Ich hab mal versucht das ganze in einer Grafik zu verdeutlichen 
(man is das ein Krampf wenn man mal ein Bildbearbeitungsprogramm sucht 
was nur ein paar Linien und Zahlen einfügen kann :)) )
Ich hoffe man kann etwas erkennen :)

Was haltet ihr von der Idee?

Ich bin mal guter zuversicht das ich nun ein Stückchen weiter auf dem 
richtigen Weg bin.

Gruß
Micha

von Markus (Gast)


Lesenswert?

Manche Funkmodule verlangen eine gleichstromfreie übertragung. Deswegen 
wird dort gerne die Manchestercodierung benutzt.

Eine Prüfsumme ist im Telegramm sicher auch enthalten, denn sonst müßte 
man öfters mal völlig falsche Werte sehen.

Markus

von alfsch (Gast)


Lesenswert?

biphase könnte es auch sein >
http://de.wikipedia.org/wiki/Biphase-Mark-Code

von Uwe N. (ulegan)


Lesenswert?

Biphase Mark ist wohl die Lösung!
Betrachte das so: an jeder Bitgrenze ist eine Flanke, bei einer 1 auch 
in der Mitte. Dann liefern die Dateien 24_6_58_x.. aus deinem ZIP-File 
folgendes:
110000010011  0011 1010  0100 1010 1010  0011  58 24,6 0x4aa=1194
110000010011  0011 1010  0100 1010 1010  0110
110000010011  0011 1010  0100 1010 1010  1001
Die ersten zwölf Bits sind Startbit, Hauscode, BatLow usw.
Dann kommen 8 Bit mit der Luftfeuchtigkeit, einfach binär 0x3a=58 
dezimal.
Danach 12 Bit mit der Temperatur und zwar in 1/16°C +50°.
1194/16-50=24,625
Die letzten 4 Bit ändern sich wahrscheinlich bei jeder Übertragung. Eine 
Prüfsumme ist es nicht, die müsste ja immer gleich sein.
Oder sind es etwa 16 Bit für die Temperatur?
Die anderen Dateien und das MessungManchester.jpg bestätigen das.
War mal wieder ein nettes Puzzle...
Welche Aldi-Station war das? Ich habe eine so eine silberne, bei der man 
rechts die Tastatur umklappen kann. Die hat aber ein anderes Protokoll.

von Michael K. (mad_axe)


Lesenswert?

He supi,
muss ich gleich mal schauen. Hab mir gerade die Zeit damit vertrieben 
mir ein kleinen LogicAnalyser in C# für die Soundkarte zu schreiben 
(also genauer gesasgt für Wave files). Es funktioniert zumindest 
schonmal für die Wavefiles von den tests. Werde ich dann hier mal posten 
wenn es relativ stabil läuft (hab momentan noch ein paar Methoden für 
Manchester drin, aber das hat sich dann wohl jetzt erstmal erledigt).

Die Wetterstation hatte ich mir neulich bei Aldi (ich glaub vorrige 
Woche) geholt. Ist eigentlich nen ganz lustiges Teil für 25€. Wenn man 
überlegt das da zig Bauteile drin sind die man brauchen kann (z.B. ist 
das ein ganz normales 433 MHz Empfangsmodul (so wie das von Conrad z.B.) 
was man ohne Aufwände rausbauen kann wenn man will.

http://www.dmv-electronics.com/site_1.php?lg=de

(auf der Website sieht man die Wetterstation)

Wenn das alles so stimmt wie du schreibst werde ich das dann mal in ein 
kleines Programm für nen at90s2313 reinpacken und ebenfalls hier posten.

Danke schonmal an alle

von Michael K. (mad_axe)


Lesenswert?

So, hab mal kurz mein C# Programm umgebaut auf deinen Hinweis hin. Und 
siehe da, es funktioniert mit den von mir aufgenommen Wave files.
Werde es morgen dann mal in den at90s2313 reinbauen und noch ein paar 
Tests fahren. Aber ich bin da guter Zuversicht das es nun so klappt.

Hab ich mal wieder einiges dazugelernt (immerhin bin ich schonmal 
draufgekommen das es keine Puls-Frequenz-Modulation war, aber für das 
von dir (@Uwe) hätte ich wohl noch ein paar Tage gebraucht.

DANKE nochmal an alle ...
Ist echt ein Super Forum hier... hat mir bis jetzt immer geholfen

Micha

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.