0
Offline
Sr. Member
Karma: 4
Posts: 341
A SWL life as a coder... I'll try.
|
 |
« on: July 25, 2011, 11:52:51 am » |
Moin, ich denke schon seit gestern über diese Bitfolge nach: 000010111111101100111011111110101111000 000010011111101101100111111111010001000 000011110111101101100111111110001110000 000001110111101101100111111100001000000 000010010111101101100111111101010101000 Ich habe sie von einem 9,- EURO Funkthermometer extrahiert. Egal wie ich sie umstelle, ich bekomme nicht die Temperatur und die Luftfeuchtigkeit heraus: Block 1 20,2° 23% 0000 10111111 10110011 10111111 10101111 000 20,6° 20% 0000 10011111 10110110 01111111 11010001 000 21° 20% 0000 11110111 10110110 01111111 10001110 000 21,1° 20% 0000 01110111 10110110 01111111 00001000 000 21,6° 20% 0000 10010111 10110110 01111111 01010101 000
Block 1a 20,2° 23% 0000 101 11111 10110011 10111111 10101111 000 20,6° 20% 0000 100 11111 10110110 01111111 11010001 000 21° 20% 0000 111 10111 10110110 01111111 10001110 000 21,1° 20% 0000 011 10111 10110110 01111111 00001000 000 21,6° 20% 0000 100 10111 10110110 01111111 01010101 000
Block 1b 20,2° 23% 0000101 11111101 10011101 11111101 01111000 20,6° 20% 0000100 11111101 10110011 11111110 10001000 21° 20% 0000111 10111101 10110011 11111100 01110000 21,1° 20% 0000011 10111101 10110011 11111000 01000000 21,6° 20% 0000100 10111101 10110011 11111010 10101000
Hat jemand eine Idee? Es gibt anscheinend Gemeinsamkeiten bei den Werten 20° und/oder 23%. Siehe Block 1: Block 1 20,2° 23% 0000 101 11111=20°? 10110011=23%? 10111111 10101111 000 20,6° 20% 0000 100 11111=20°? 10110110=20%? 01111111 11010001 000 21° 20% 0000 111 10111=21°? 10110110=20%? 01111111 10001110 000 21,1° 20% 0000 011 10111=21°? 10110110=20%? 01111111 00001000 000 21,6° 20% 0000 100 10111=21°? 10110110=20%? 01111111 01010101 000
Oder hat jemand eine Idee welche Codierung es sein könnte? Habe schon BCD probiert. Kam keine 23 heraus...
|
|
|
|
« Last Edit: July 25, 2011, 11:55:06 am by DE8MSH »
|
Logged
|
|
|
|
|
Germany, Osnabrück
Offline
Sr. Member
Karma: 8
Posts: 339
E-Technik Student - Master
|
 |
« Reply #1 on: July 25, 2011, 01:14:33 pm » |
Die nach Kommastellen ,2 ,1 ,6 habe ich entschlüsselt. Der Rest folgt gleich ;-)
Das ist Gehirnjogging, das macht Spaß.
|
|
|
|
|
Logged
|
~Es ist so grausam, das der Intelligenz Grenzen gesetzt sind und der Dummheit keine.~
|
|
|
|
Hamburg, Germany
Offline
Sr. Member
Karma: 3
Posts: 285
|
 |
« Reply #2 on: July 25, 2011, 01:23:24 pm » |
Welches Funkthermometer hast Du denn überhaupt?
markbee
|
|
|
|
|
Logged
|
|
|
|
|
Germany, Osnabrück
Offline
Sr. Member
Karma: 8
Posts: 339
E-Technik Student - Master
|
 |
« Reply #3 on: July 25, 2011, 01:28:38 pm » |
Ich schreib mal eben wie die Temperatur abzulesen ist, die Feuchtigkeit habe ich noch nicht rausbekommen.
|
|
|
|
|
Logged
|
~Es ist so grausam, das der Intelligenz Grenzen gesetzt sind und der Dummheit keine.~
|
|
|
|
Germany, Osnabrück
Offline
Sr. Member
Karma: 8
Posts: 339
E-Technik Student - Master
|
 |
« Reply #4 on: July 25, 2011, 01:33:15 pm » |
0000 1011 1111 1011 => 20,2
Im Detail: LSB First und umgekehrte Logic
0000 => 1111 => 1111 => (Vermutlich Vorzeichen der Temperatur) 1011 => 0100 => 0010 => 0,2 1111 => 0000 => 0000 => 0 1011 => 0100 => 0010 => 2
von unten nach oben gelesen ergibt 20,2
0000 1001 1111 1011 = 20,6 0000 => 1111 => 1111 => (Vermutlich Vorzeichen der Temperatur) 1001 => 0110 => 0110 => 0,6 1111 => 0000 => 0000 => 0 1011 => 0100 => 0010 => 2
von unten nach oben gelesen ergibt 20,6
das klappt auch mit den anderen werten und den ersten 4 Nibbles
|
|
|
|
« Last Edit: July 25, 2011, 01:36:26 pm by Jomelo »
|
Logged
|
~Es ist so grausam, das der Intelligenz Grenzen gesetzt sind und der Dummheit keine.~
|
|
|
|
Germany, Osnabrück
Offline
Sr. Member
Karma: 8
Posts: 339
E-Technik Student - Master
|
 |
« Reply #5 on: July 25, 2011, 02:08:42 pm » |
Die Feuchtigkeit bekomme ich noch nicht heraus. Kannst du da auch mal ein oder zwei Reihen an 0..1.. online Stellen, die mehr als 30 % Feuchtigkeit besitzen ?
|
|
|
|
|
Logged
|
~Es ist so grausam, das der Intelligenz Grenzen gesetzt sind und der Dummheit keine.~
|
|
|
|
0
Offline
Sr. Member
Karma: 4
Posts: 341
A SWL life as a coder... I'll try.
|
 |
« Reply #6 on: July 25, 2011, 02:38:26 pm » |
Hi, ich weiß nicht welcher Gott Du bist? Aber Du bist der Bitshifter-Gott  Ja, ich poste gleich mal > 20%. Ist ja schon später...
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Sr. Member
Karma: 4
Posts: 341
A SWL life as a coder... I'll try.
|
 |
« Reply #7 on: July 25, 2011, 03:20:43 pm » |
Die Feuchtigkeit bekomme ich noch nicht heraus. Kannst du da auch mal ein oder zwei Reihen an 0..1.. online Stellen, die mehr als 30 % Feuchtigkeit besitzen ?
Hier die Reihe für 16,9° bei 39%: 000001101001011101100011111110000010000 Könnte das passen? 0000 1111 = +??? 0110 1001 = 9 1001 0110 = 6 0111 1000 = 1 0110 1001 = 9 0011 1100 = 3 1111 0000 = ? 1000 0111 = ? 0010 1101 = ? 000 111 = ? Demnach ist 20,2° 23% 000010111111101100111011111110101111000 0000 1111 = +? 1011 0100 = 2 1111 0000 = 0 1011 0100 = 2 0011 1100 = 3 1011 0100 = 2 1111 0000 = ? 1010 0101 = ? 1111 0000 = ? 000 111 = ? Was die Werte mit ? sind: keine Ahnung. Das Thermomometer zeigt nur Temp. und Feucht. an. Vieleicht Kanal oder sowas?!
|
|
|
|
« Last Edit: July 25, 2011, 03:30:19 pm by DE8MSH »
|
Logged
|
|
|
|
|
0
Offline
Sr. Member
Karma: 4
Posts: 341
A SWL life as a coder... I'll try.
|
 |
« Reply #8 on: July 25, 2011, 04:01:48 pm » |
Welches Funkthermometer hast Du denn überhaupt?
markbee
Ditte hier:  Baumarkt für 9,90 EURO.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
BZ (I)
Online
Brattain Member
Karma: 162
Posts: 15719
+39 349 2158303
|
 |
« Reply #9 on: July 25, 2011, 04:18:09 pm » |
Hier die Reihe für 16,9° bei 39%:
000001101001011101100011111110000010000
Könnte das passen?
0000 1111 = +??? 0110 1001 = 9 1001 0110 = 6 0111 1000 = 1
0110 1001 = 9 0011 1100 = 3
1111 0000 = ? 1000 0111 = ? 0010 1101 = ? 000 111 = ?
Demnach ist 20,2° 23% 000010111111101100111011111110101111000
0000 1111 = +? 1011 0100 = 2 1111 0000 = 0 1011 0100 = 2
0011 1100 = 3 1011 0100 = 2
1111 0000 = ? 1010 0101 = ? 1111 0000 = ? 000 111 = ?
Was die Werte mit ? sind: keine Ahnung. Das Thermomometer zeigt nur Temp. und Feucht. an. Vieleicht Kanal oder sowas?!
Für die restlichen Bits können: Anfangs und Endschleife eine Prüfsumme eine Seriennummer des Sensors. Viele Grüße Uwe
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Sr. Member
Karma: 4
Posts: 341
A SWL life as a coder... I'll try.
|
 |
« Reply #10 on: July 25, 2011, 04:24:57 pm » |
Hi Uwe,
ja. Dass könnte sein. Am Ende scheint immer die 7 zu kommen... VIeleicht so eine Art Endesignal. Übringens habe ich ca. 13x 0 am Anfang der Aussendung weggelassen. Das scheint auch immer der Fall zu sein.
|
|
|
|
|
Logged
|
|
|
|
|
Germany, Osnabrück
Offline
Sr. Member
Karma: 8
Posts: 339
E-Technik Student - Master
|
 |
« Reply #11 on: July 25, 2011, 04:46:55 pm » |
Hi, meine Antwort ist auch schon etwas später:
Deine Rechnung stimmt nicht ganz.
z.B der Zahlenwert ist 1, dann berechnet man das wie folgt zurück.
1 = 0001
Der Wert muss dann erst gespiegelt werden, also einfach umdrehen, damit das niedrigste Bit in dem 4er Block als erstes gesendet wird.
0001 => 1000
Dieser Wert wird dann anschließend invertiert somit erhalten wir
0111
Nun zur Darstellung der 39 Die Kette sieht ja so aus, die Buchstaben darunter erklär ich gleich insofern ich diese verstanden habe 0000 | 0110 | 1001 | 0111 | 0110 | 0011 | 1111 | 1000 | 0010 | 000 a b c d e f g h i j
a: Ist vermutlich das Vorzeichen der Temperatur, wenn das Termometer auch negative Zahlen anzeigen kann Ansonsten dient die 0000 wohl als steuer Signal, bzw leitet b: Ist die Nachkommastelle, in diesem Beispiel oben ergibt sich die wie folgt: 0110 1001 inventieren 1001 Wert umdrehen, macht hier keinen Sinn da beide Seiten gleich aussehen 1001 => 9 c: Ziffer 1 der Temperatur 1001 0110 inventieren 0110 Wert umdrehen, macht auch hier keinen Sinn da beide Seiten gleich sind 0110 => 6 d: Ziffer 2 der Temperatur 0111 1000 inventieren 0001 Wert umdrehen, damit der Zahlenwert raus kommt 0001 => 1 e: Ziffer 1 der Luftfeuchtigkeit (passt aber nicht immer, mehr dazu unten) 0110 1001 inventieren 1001 vertauschen 1001 => 9 f: Ziffer 2 der Luftfeuchtigkeit (passt leider auch nicht immer, mehr dazu weiter unten) 0011 1100 inventieren 0011 vertauschen 0011 => 3 g: Diese Reihe dient als Steuer Signal um mitzuteilen das die Daten nun gesendet wurden h + i: Da bei jeder Übertragung die Zahl anders ist, vermute ich mal das hier ein Counter mit läuft, der die Anzahl der Übertragungen überwacht oder aber ein Key für Irgendwas, aber es handelt sich nicht um Nutzdaten, da die Werte zu weit auseinander liegen. Ein Muster kann ich hier nicht erkennen. Es könnte auch die Prüfsumme sein um zu überprüfen ob die Übertragenen Bits Richtig sind. j: 000 scheint mir das End Signal der Übertragung zu sein.
So nun nochmal zu den Werten für die Luftfeuchtigkeit. Bei 23% und bei 39% passen die Werte. Aber bei 20% nicht, da muss man nochmal mehr Werte überprüfen oder ob das bei allen geraden zehner Zahlen (10, 20, 30, ...) der Fall ist. Wenn man den Wert von 20% aus den vier Beispielen decodiert erhält man immer 19%.
Vielleicht hilft es auch wenn noch mehr Werte bereitgestellt werden. Dann kann man mehr ausschließen oder noch andere Überlegungen machen. Interessant wäre es auch mal eine Luftfeuchtigkeit von 19% darzustellen um festzustellen ob dann auch 20% ausgegeben werden ;-)
Ein Gott bin ich nicht, aber Logik ist schön ;-)
Gruß Jomelo
|
|
|
|
« Last Edit: July 25, 2011, 04:49:51 pm by Jomelo »
|
Logged
|
~Es ist so grausam, das der Intelligenz Grenzen gesetzt sind und der Dummheit keine.~
|
|
|
|
0
Offline
Sr. Member
Karma: 4
Posts: 341
A SWL life as a coder... I'll try.
|
 |
« Reply #12 on: July 26, 2011, 01:56:42 am » |
Hi Jomelo, ich habe bei meinen Berechnungen den visuellen Schritt des Spiegelns weggelassen  D.h. Du hast den Code geknackt. Vieleicht bekommen wir ja noch die Prüsummenroutine heraus... Auf jeden Fall danke, danke, danke für die serh schnelle Hilfe!!! Jetzt zurück zur Technik. Ich muss ja nun die Werte mit dem Ardu auslesen. Ich habe ein 433 MHz Empfangsmodul liegen, welches ich dazu nehmen will. Habe ermittelt, dass vor Bitreihe 37ms Low kommt und 0 = 24ms High + 25 ms Low ist, und 1 = 20ms High + 23ms Low ist. Um nicht invertieren zu müssen kann ich auch 1 = 24ms High + 25 ms Low 0 = 20ms High + 23ms Low annehmen. Gibt es eine schleue Routine wie ich die Bitreichen zu weiteren Verarbeitung nun seriell einlese? Muss ich pulseIn() benutzen?
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Sr. Member
Karma: 4
Posts: 341
A SWL life as a coder... I'll try.
|
 |
« Reply #13 on: July 26, 2011, 03:48:59 am » |
Meine Idee zum Biteinlesen: ich messe High, un wenn es auf Low springt messe ich die Dauer von Low. Sehr Lang = Beginn, Kurz = 1, Lang = 0.
Gure Idee? Oder gibt's schon gebackenes?
|
|
|
|
« Last Edit: July 26, 2011, 03:52:44 am by DE8MSH »
|
Logged
|
|
|
|
|
0
Offline
Sr. Member
Karma: 4
Posts: 341
A SWL life as a coder... I'll try.
|
 |
« Reply #14 on: July 26, 2011, 06:47:15 am » |
So nun nochmal zu den Werten für die Luftfeuchtigkeit. Bei 23% und bei 39% passen die Werte. Aber bei 20% nicht, da muss man nochmal mehr Werte überprüfen oder ob das bei allen geraden zehner Zahlen (10, 20, 30, ...) der Fall ist. Wenn man den Wert von 20% aus den vier Beispielen decodiert erhält man immer 19%.
Öhm, Du hast Recht. Entweder ich habe die Werte falsch abgeschrieben oder irgendwo ist noch ein Witz drinnen... Ich versuche nochmal mehr Reihen zu loggen. Wäre schön, wenn ich das schon mit dem Ardu machen könnte  Derzeit mache ich es nämlich mit Audacity (ja, DEM TTL Analyseprogramm schlecht hin  ).
|
|
|
|
« Last Edit: July 26, 2011, 06:49:12 am by DE8MSH »
|
Logged
|
|
|
|
|
|