www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Funkprotokoll Temperatursensor


Autor: Michael Kentschke (mad_axe)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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


Autor: Michael Kentschke (mad_axe)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin Kreiner (maart)
Datum:
Angehängte Dateien:

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

Autor: Sonic (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hatten wir doch schonmal:

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


Peter

Autor: Michael Kentschke (mad_axe)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Kentschke (mad_axe)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Kentschke (mad_axe)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: alfsch (Gast)
Datum:

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

Autor: Uwe Nagel (ulegan)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Kentschke (mad_axe)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Kentschke (mad_axe)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.