Reverse engineering luftkonditioneringen IR Remote control protocol (2 / 4 steg)

Steg 2: Samla in Data

Vi går ut.
Obs 1: kommandot inspelning är en repetitiva och lite tråkig process, men nödvändigt.
NOTE2: Jag äger inte ett oscilloskop så det enda sättet för min att rita de inspelade värdena är att använda en plottning program (gnuplot) på rådata. Detta kan användbart att ha en visuell uppfattning om vad som händer, men det kräver vissa anpassning i raw-data och är enligt min mening inte nödvändigt alls. Därför har jag inte gjort någon graf.

Jag använde instruktioner från denna sida: http://alexba.in/blog/2013/01/06/setting-up-lirc-... att ansluta mottagaren på Pi och förbereda lirc.
Jag spelade sedan in kommandon med alternativet - raw och utdata till en fil. Målet är att ha en post för varje värde för ON och bort av kursen, men också för varje läge (AUTO, COOL, värme, torr), för varje gång och fläkt värde och, säger, för min och max temperatur (16-30 ° C i mitt fall). Den viktiga delen här är att göra en referens post och göra en inspelning för varje ändring av alternativ, att göra bara ett alternativ ändra varenda gång. När en post är gjort, tryck på CTRL + C för att avsluta kommandot och gör det igen med nästa kommando/fil

$ läsläge2 -d/dev/lirc0 -m > auto_21C_swing0_fan0

Det kan vara nödvändigt att få super behörighet för att köra detta kommando ("sudo läsläge2...") och lirc daemon kan blockera filen, så det kan vara nödvändigt att döda det först:

$ sudo /etc/init.d/lirc stopp
$ sudo läsläge2 -d/dev/lirc0 -m > filnamn
$ [...]
$ sudo /etc/init.d/lirc start

När man läser de genererade filerna, vad vi ser är alla nummer, organiserade i 6 kolumner. Dessa siffrorna anger varaktigheter i mikrosekunder. Kolumnerna arbetar i par, så

740 1495 920 1345 735 1335

betyder: "IR LED var ON för 740us, sedan OFF för 1495us, sedan ON för 920us, sedan OFF för 1345us, etc."

Exemple:

3523 1766 414 451 418 1312
423 448 419 452 418 452
428 443 417 453 418 457
418 452 418 452 416 454
419 452 417 453 417 1316
418 452 418 466 410 451
419 453 414 457 416 452
418 453 417 1316 418 1315
418 1320 426 443 419 451
419 1314 419 452 418 452
418 452 418 452 418 457
419 450 420 451 419 452
421 451 417 452 418 452
418 452 419 457 418 452
418 449 422 451 418 452
419 451 420 451 426 444
418 457 418 452 417 452
419 452 416 454 420 450
418 452 419 452 419 456
418 452 418 1323 411 1313
421 451 419 451 418 452
418 452 418 454 419 9997
3521 1764 417 452 419 1315
418 449 421 452 418 453
417 453 418 451 427 448
419 453 417 453 417 452
419 452 417 453 417 1317
417 451 419 456 419 451
420 458 411 452 418 452
416 455 418 1315 418 1315
418 1321 417 452 419 452
416 1318 418 452 418 451
419 451 419 452 418 457
418 452 418 452 420 448
422 451 419 457 412 452
417 452 419 457 418 1315
417 453 419 449 421 452
418 452 418 452 418 453
424 450 418 453 419 1314
418 452 418 452 418 1316
418 1315 417 453 418 465
410 452 419 452 416 453
418 452 418 452 418 452
418 453 417 1338 418 1316
415 1318 418 1315 419 1314
418 452 418 1315 419 449
421 1328 410 452 418 453
417 452 418 452 420 450
419 451 417 455 416 457
419 451 418 452 419 452
419 453 417 453 417 453
418 451 419 456 418 453
418 1315 418 1315 418 452
419 459 411 451 419 451
416 460 418 452 419 451
418 453 417 453 418 451
418 1315 419 1313 420 458
425 445 413 460 418 445
422 452 418 452 418 452
418 452 419 455 421 450
420 463 407 452 417 452
418 453 418 452 418 452
418 457 418 450 421 452
418 452 417 453 419 451
424 445 419 451 419 1321
417 453 417 454 416 452
418 452 419 452 418 452
418 452 418 468 408 452
417 1313 422 1314 418 452
420 451 418 452 418 452
419 456 418 453 416 454
418 1315 417 452 418 1315
418 452 418 1316 418 451
422

OK, det verkar vansinniga :)
Observera att filen börjar med en rad med ett enda värde: det är tid som förflutit mellan inspelning startdatum och ankomsten av den första IR-signalen. Denna linje bör ignoreras.

Naturligtvis, eftersom dessa åtgärder, med en så liten som mikrosekund tidsskala är alla tiderna annorlunda, vilket gör att upptäcka små skillnader mellan 2 kommandon omöjligt.
Det kan noteras att värden är alltid nära 400 eller 1300us, utom 3 (närmare 4400, 9900 och 1700). Så vad vi ska göra för att göra siffrorna jämförbara är "runda" nummer till närmast av dessa 2 "referens" (ett kalkylblad är praktiskt först).
Vad denna manipulation visar är att förutom de 3 singulära värdena på tid är alltid 400us, vilka ändringar är endast den OFF tid.

Låt oss göra hypotesen att den OFF tid koder 0 och 1, och låt oss anta att 400us är för 0 och 1300us för 1. Med detta antagande är det möjligt att ändra varje parar av kolonner till en enda bit.
Låt oss också göra ett påpekande: delen mellan 3 "singular timings" är alltid samma, i alla inspelningar. Det kan antas att:
-Det är en inledning, kanske identifiera fjärrkontrollen eller luftkonditioneringen, och det kommer aldrig att ändra
-de olika tiderna är lås och avgränsare mellan införandet och faktiska nyttolasten

Det går därför att ta del av meddelandet som ett invariant och inte studera den.

För att underlätta för att utnyttja data skrev jag ett litet c program att runda värdena och omvandla det till binära siffror. Hoppa över intro del för att underlätta läsa koden. Om du vill använda den här koden timing värdena är definierade i början av programmet, kommer du förmodligen behöva anpassas.

Efter sammanställningen (gcc -o avkoda decode.c) du kan använda den på alla datafiler:

$. / avkoda auto_21C_swing0_Fan0 auto_21C_swing0_Fan0.decoded

Exempel med läge auto target temperaturen 25 ° C:

$ mer auto_25.decode
01000000 00000100 00000111 00100000 00000000 10000000 01001100 00000001 11110101 00000000 00000000 01100000 00000110 00000000 00000000 00000001 00000000 01100000 00101010

Se Steg
Relaterade Ämnen

RS-232 IR-mottagare i en seriell anslutning (LIRC) dator Remote Control

detta instructable avser att visa dig hur du skapar en liten och enkel infraröda (IR) mottagare för din dator. Konfigurationen av programvaran är utanför omfånget för detta instructable, men jag använder denna mottagare med LIRC (Linux Infrared Remot...

Reverse Engineering: RGB LED-lampa med IR fjärrkontroll

vi köpte 20 av dessa RGB LED-lampor för en fest på jobbet, men jag var lite besviken med funktionerna färg bleknar de. Så jag bestämde mig att ta en apart, reverse engineer IR-protokollet, och se om det hade fler funktioner än de som är tillgängliga...

Reverse Engineering ett elstängsel laddare

Reverse engineering något kan vara en bra form av både underhållning och utbildning. Jag har ofta köpt något bara för att tillgodose demontera dem för att avgöra hur de fungerar och hur de är utformade. Längs vägen kan du lära dig en hel del, förbätt...

Live Reverse Engineering

Jag började i elektronik före tillkomsten av internet och mest solida state komponenter, så får datablad och scheman inte var lätt för mig. Idag med tillverkar att göra anpassade ICs och LCD-skärmar för allt från telefoner till TV-spel, tinkers att b...

Remote Control sällskapsdjur dörren

Dilemma:6 på morgonen den 1 januari. Du festade till 03: 00. Nu ska du sova det off när du väcks av ett påträngande avlysningen kommer från bakdörren. Din hund behöver gå ut och ta hand om sin verksamhet, men du är varm, skön, och golvet är kallt och...

Reverse Engineering

många av ledamöterna här på Instructables fråga om datablad eller pin outs av en enhet eller display-svar, tyvärr du skränande alltid få ett datablad och scheman, i dessa fall du har bara ett val bakåtkompilering.Reverse engineering är en färdighet s...

Remote Control pipig leksak

detta är en enkel leksak för sällskapsdjur. Jag kom upp med detta att underhålla min hund. Du kan använda olika storlek fjärrkontroll bilar för olika stora hundar och olika typer av terräng.Steg 1: material Vad som behövs:Remote Control bilPipig leks...

Laddning Remote Control Robot

laddning Remote Control RobotFÖRST AV ALLT VILL JAG KLARA DIN ALLA TVIVEL INNAN DU BÖRJAR. JAG ÄR INTE NÅGON TEKNISK OCH MEKANISK EXPERT I MASKIN SÅ DU INTE BEHÖVER SPENDERA 100 DOLLAR I DETTA PROJEKT DET ÄR SÅ BILLIGT OCH ENKELT PROJEKT. Du kan bygg...

Reverse engineering: USB kontrollerade hemautomation hacka

hacka ett trådlöst hem automationssystem för att vara USB kontrolleras med hjälp av två AVR microcontrollers!Kolla in videon! Systemet är verkligen mer lyhörd, men webbläsaren på min telefon är långsam.Om du gillar detta, kanske du också gillar detta...

Spela in IR-koder för någon fjärrkontroll för användning med Linux Infrared Remote Control (LIRC) på Raspberry Pi GPIO-baserade infraröd mottagare

IntroduktionDe fjärrkontroller som är föräldralösa när enheten kontrollerar de kan slutat fungera återanvändas på din Raspberry Pi. Efter att ha avslutat detta instructable, du kan bli intresserad i försökande ute den följande instructables:Återanvän...

Installera Linux Infrared Remote Control (LIRC) paket

IntroduktionLinux Infrared Remote Control (LIRC) är en svit av program som styr den IR hårdvaran av Pi-hallon. Lirc debian-paketet innehåller ett antal program:ircat - Skriv ut strängar när du trycker på knapparnairrecord - ansökan om inspelning IR-k...

Hur man gör en Remote Controlled Stunt bil hemma

I detta Instructable lär vi att göra en fantastisk gadget som varje kille önskat och hade också iallafall försökte en gång göra det under hans barndom. Det är inget annat än en Remote Controlled bil och gissa vad, i detta instructable, vi kommer inte...

Remote Controlled Arduino Car

Jag har alltid gillat att gå till lägren, etc där det finns många av mina vänner, jag har alltid gillat att ha en massa vänner och en dag när jag letade upp youtube för fjärrkontroll bilar, och hur de gjordes, jag listat ut att jag kunde göra en till...

Öka känsligheten för IR Remote Control

detta instructables är att guida dig på hur du kan förbättra känsligheten av IR-fjärrkontrollen. Modell av fjärrkontrollen är AXD7461 för din information.Steg 1: Höljet blockerar IR-signalen Gemensamma anledningen till att IR-fjärrkontrollen inte är...

Remote Control mörkar för $20

Så jag var trött på den mödosamma uppgiften att manuellt öppna och stänga mörkarna varje dag... och jag hade gjort motoriserade persienner innan med en kontinuerlig revolution servo vända staven när jag var liten men som inte ser trevligt med en serv...

Göra en arbetande nyckel från skrot genom reverse engineering ett lås

har du förlorat alla nycklar för ditt lock och behöver göra en ny nyckel från grunden? Låssmeden saknar en nyckel tomt som passar din lås kilspår? Ta en metall fil, några skrot plåt, och Läs vidare för en grov & tumla hemmafixare nyckel att göra guid...

Remote Control Robot Arm

detta är talet High School Science Olympiad Robot Arm som tävlade på Minnesota 2012 staten Science Olympiad turneringen med 32 andra lag. Jag byggde och körde denna fjärrkontroll robotarm för turneringen, utsläppande 8 (på grund av oförutsedda proble...

USB hacka genom Reverse Engineering

USB är ett mycket komplext protokoll, mycket mer komplicerat än seriell eller parallell, SPI och I2C även. USB används bara två trådar men de används inte som "få" och "överföra" som följetong. Snarare, data är dubbelriktad och differe...

LinkSprite Ethernet Shield + yeelink WEB remote control IO

Ethernet-Shield kan omedelbart Internetkonnektivitet för Arduino projekt. En ombord Wiz5100 ethernet styrenhet hanterar upp till fyra TCP och UDP-anslutningar, stack bara det till en Arduino att skapa dina egna enheter på nätverket. Enkelt kontroller...