Hur man avkodar en trådlös termometer! [bilder]

Berätta om dina pågående projekt.
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Hur man avkodar en trådlös termometer! [bilder]

Inlägg av oJsan »

Denna dag har jag spenderat oavbrutet i hemmalabbet (läs: vid köksbordet). Resultatet är att jag nästan helt lyckats avkoda en trådlös termometer från Kjell&Company. Vet inte vad jag fick idén ifrån men jag tror att det var en kombination av följande:
* Jag hade i princip hårdvaran för mottagaren färdig
* Termometern var billig
* Jag kan ha nytta av det i hemautomationen
* Att jag faktiskt kan göra det :)

Termometern ifråga är denna, art.nr 48640:
Bild

Strategi:
1. Lista ut hur den kommunicerar
Öppnar manualen: 433MHz, sänder data en gång per minut.

2. Försöka "se" det data som skickas
Här krävs någon form av logger för att sampla signalen(har inget oscilloskop). Öppnade sändaren och såg att termometern och RF-modulatorn var fint separerade på kretskortet. Mellan de två delarna fanns en signalledare. Men stor sannolikhet det data jag ville kika på.
Som logger använder jag hårdvaran från en sån här. *smygreklam* (har gjort stora delar av programvaran och sitter på utvecklingsverktygen). Inuti sitter en en DSP som piskar de flesta AVR/PIC och naturligtvis är det väldigt "overkill" för att sampla en termometer :)
Anyway.. en timer sattes upp till 192kHz och en cirkulär buffert på några sekunder används för att sampla datapinnen på sändaren.

3. Analysera data
När jag "såg" datat på en skvaller-LED stoppade jag emulatorn och dumpade bufferten till en fil på datorn som jag sedan öppnade i Adobe Audition(bild).
Efter en del klurande kunde jag konstatera att pulslängen definerade '1' (~300us) eller '0' (~700us). Mellan varje bit fanns ett space-tecken (~520us).
Totalt skickas 44 bitar och alla dessa skickas dessutom en gång till med ca 30ms paus emellan.
Att gruppera bitarna var inte helt trivialt. Genom att göra flera olika samplingar och samtidigt skriva upp vad den riktiga termometern visade kunde jag lista ut det viktigaste. Följande bild kan se lite förvirrande ut men lugn, jag ska förklara:
Bild

Varje rad är en samplingssekvens (ett helt meddelande alltså), temperaturen står längst till vänster. Totalt är det 6 samplingar gjorda, uppdelade i 5 jämförelser (rad 2 och 3 är samma, 4 och 5 osv..).
I varje jämförelse är skillnader markerade med rött.
Vad jag kom fram till:
Kolumn A: Ändras inte, är förmodligen enhetens adress men eftersom jag bara ha en sändare kan jag inte verifiera.
Kolumn B: Ingen aning...
Kolumn C: Tiotalssiffran+5 (antar att man vill slippa 2-komplement..)
Kolumn D: Entalssiffran
Kolumn E: Tiondelen
Kolumn F: Kopia av C
Kolumn G: Kopia av D
Kolumn H: Ingen aning...

Paketet borde innehålla någon form av felkontroll/checksumma så det inte står orimlig temperatur på displayen i en minut.

4. Implementera
Jag vet tillräckligt för att kunna avläsa temperaturen och gjorde därför en liten enkel flanktriggad rutin som lyssnar efter data (trådbundet), mäter pulslängder och skriver ut den binära strängen. Fungerade! :tumupp: Den sista röda raden i bilden ovan är data avkodad med rutinen i fråga, men inte via radio.
Än så länge bara trådbundet alltså, plockade upp för mycket skräp när jag testade via radio, måste lägga in ett filter och tänka över flanktriggningen lite mer.

5. Klura vidare...
De sista bitarna (bokstavligt talat) är inte lösta... här behöver jag elektronikforumets smarta hjärnor till hjälp.

6. Användningsområden...
* Avläsa termometern med en liten uC och billig RF-demodulator... kan ju användas till många saker. Mer intressant:
* Skicka data till termometerdislayen. Man skulle t.ex. kunna visa antal mail i inboxen på termometern! :glasogon:


PS. Vår "Konftel 300" som jag länkat till släpps officiellt i morgon men tydligen så har tyskarna smygstartat, därav länken till den tyska sidan :) . DS.
Lullen
Inlägg: 140
Blev medlem: 16 oktober 2006, 17:37:32

Inlägg av Lullen »

häftigt, grattis o lycka till o lösa dom sista bitarna i pusslet :)
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Mycket bra och troligen ett mycket användbart projekt. :tumupp:
Användarvisningsbild
JimmyAndersson
Inlägg: 26456
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Snyggt och väldokumenterat inlägg! :tumupp:

Kul att du lyckades läsa av temperaturen. :)


Det ska bli kul att se hur det här konferens-systemet tas emot bland kunderna.
Kul att se den färdiga apparaten. :) Lycka till!
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

Tack!
Följ nedräkningen på http://www.konftel.com :)
AndersL
EF Sponsor
Inlägg: 148
Blev medlem: 17 september 2004, 21:39:22
Ort: Ängelholm

Inlägg av AndersL »

En observation är att kolumnerna A tom E innehåller udda antal 1or (eller 0or för den delen också), kolumn B kanske är någon slags paritetskontroll. Dock bara en grov chansning, väntar med spänning på lösningen.
Off-topic: Skulle testa en Konftel 200 men vi fick något konstigt eko. Ännu märkligare var det när vi stängde mikrofonen men ljudet fortfarande var kvar. Efter ett tag såg vi en annan telefon på samma linje som stod med luren av...
Användarvisningsbild
PeterH
Inlägg: 8636
Blev medlem: 15 mars 2006, 15:57:10
Ort: Gävle/Valbo

Inlägg av PeterH »

Våra Konftel åker snart ut eftersom ljudet är kasst! (eko och dålig känslighet på micarna).

/PeterH
sdujolo2
Inlägg: 158
Blev medlem: 2 oktober 2007, 13:50:35
Ort: Sundsvall

Inlägg av sdujolo2 »

Hej intressant jag har nämligen tänkt att göra samma ska men inte fått tid än. :D Bra jobb.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7427
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Kolumn B fick jag också till att vara en paritetsbit, som någon annan redan hunnit före med att upptäcka.

Ändring, nu var jag dum...

Kolumn H hänger samman med heltalsdelen av temperaturen. Samma heltalsdel tycks ge samma värde i denna kolumn. Däemot har jag inte lyckats hitta det exakta sambandet.

Andring 2

Både 25 och 9 som heltalsdel ger värdet 10 i kolumn H. Skillnaden mellan 25 och 9 råkar vara 16. Intressant, men utan mera data säger det inget alls.

Kan Du inte generera testvärden som ligger i sekvens på heltalsdelen?
kimmi
Inlägg: 221
Blev medlem: 13 april 2007, 12:25:00

Inlägg av kimmi »

Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

Tack kimmi! Någon har alltså haft samma tanke som mig... men han verkar inte ha kommit längre än jag själv gjort. =) Får skriva några rader till honom och se om han kommit på något nytt...'
Jag har också försökt räkna paritet men inte fått det att stämma. Troligen vill man ha mer än en bit som felkoll när det gäller radio.
Ska försöka generera mer testdata. På thomas pfeifer´s sida finns ju några till att analysera.

(PeterL: Vilken modell har ni, på vilken sida ekar det?)
Användarvisningsbild
PeterH
Inlägg: 8636
Blev medlem: 15 mars 2006, 15:57:10
Ort: Gävle/Valbo

Inlägg av PeterH »

Vi har både den äldre med bakrundsbelyst LCD-display och den nyare med blåtand. Det ekar ibland lokalt och ibland i andra änden, mest är det ett "burkigt" ljud hela tiden och dom flesta gånger får man lägga sig på bordet och gapa in i micen... "Vrider" man upp känsligheten blir det rundgång så det är inte heller kul... Det ska sägas att det ibland funkar ganska bra, men i den prisklassen som Konftel ligger vill man att det ska funka hela tiden :?

Vi har ett antal konferansrum och jag har inte kollat alla men jag upplever det som att dom flesta mötesdeltagarna har upplevt samma fenomen. I ärlighetens namn ska man också säga att telefonlinjen inte alltid är den bästa men även när man har bra linje så strular det med micarna...

Den nya 300:an ser intressant ut på pappret men vi kommer nog sondera terrängen (scanna marknaden) lite bättre inför nästa köp av konferenstelefon :roll:

/PeterH
Användarvisningsbild
maDa
Inlägg: 4079
Blev medlem: 11 november 2005, 22:13:16
Ort: Malmö
Kontakt:

Inlägg av maDa »

Vad nice. hade varit kul att bygga en seriell mottagare för det eller något, sedan logga med rrdtool i någon dator/server.
Användarvisningsbild
Glenn
Inlägg: 36400
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Inlägg av Glenn »

Jag har också funderat på detta men aldrig orkat ta tag i det.

En sak som jag inte vet om nån tänkt på är att alla sändare har olika ID, detta är ju också inkodat i signalen på något sätt.. min väderstation hemma har ju tex möjlighet tilol två sensorer och jag tror nog att man vill undvika att få in grannens sensordata.

Det jag ville göra var framförallt att logga värdena till en dator och sen presentera en graf på temperatur, det finns det ju många byggen som gör, men inte trådlöst afaik.
sdujolo2
Inlägg: 158
Blev medlem: 2 oktober 2007, 13:50:35
Ort: Sundsvall

Inlägg av sdujolo2 »

När jag kodade av sanyo ir protokoll för värmepump vad den svårta biten att lista ut hur checksumman räknades fram.
Skriv svar