Ger Koper’ s blog
Remote control key fobs används vanligtvis för garageportar och liknande. Även bildörröppningssystem använder dem. Protokollet för dessa enheter verkar vara relativt standard. När du trycker på en av knapparna skickas serier av radiofrekvenspulser (rf) som därefter mottas av dörröppningsutrustningen. Dessa jämför den mottagna kodsekvensen med den internt lagrade koden och när lika öppna eller stänga dörren. Denna princip används också för att styra belysning, överföra väderstationsinformation etc.
denna lilla rapport är på så kallade nyckelbrickor som visas ovan. Dessa är för närvarande rikligt tillgängliga på webben. De har fördelen att de har en mekanism genom vilken de kan programmeras från en annan nyckelfob. Förfarandet är relativt enkelt men kräver viss uthållighet: så småningom kommer det att fungera:
- tryck på A-och B-knapparna samtidigt. Lysdioden tänds och efter en tid börjar den blinka snabbt. Detta indikerar att nyckelfoben raderas och knapparna kan släppas.
- nu, när du trycker på någon av knapparna blinkar lysdioden bara en gång mycket kort. Detta indikerar att ingen kod överförs.
- Låt oss kalla detta ”tomma” nyckelfob nummer 1. Nyckelfob som vi vill kopiera är nummer 2.
- vi kommer nu att kopiera koden för knapp X, antingen A, B, C eller D, från nyckelfob 2 till nyckelfob 1 knapp Y (A, B, C eller D).
- tryckknapp X på nyckelfob 2 kommer dess LED att brinna kontinuerligt för att indikera att den sänder kodsekvenserna.
- tryckknapp Y på nyckelfob 1, dess LED ger en första kort blinkning och förblir sedan avstängd.
- ta med de två tangenterna, samtidigt som knapparna trycks ihop, vanligtvis framifrån men andra positioner kan också fungera tills lysdioden på knapp 1 börjar blinka. Då kan knapparna släppas.
- Tryck nu på knappen Y på nyckelfob 1 och lysdioden ska lysa kontinuerligt för att indikera att den sänder en kod. Om allt gick bra aktiverar den här koden också dörren som styrdes av nyckelfob 2.
- detta kan upprepas för alla fyra knapparna. Identiska koder för två olika knappar kan också programmeras, nyckeln kommer inte att klaga.
viktigt att notera är att liknande nyckelfob kan ha olika, om än liknande protokoll. Följ säljarens instruktioner vid behov.
man kan också köpa en styrenhet som innehåller två reläer som kan styras från två knappar på en ovan beskriven nyckelfob. Dessa enheter måste också programmeras, även om de kommer med förprogrammerade nyckelbrickor. Enheten har en DIP-väljare som ställer in styrläget. Här använder vi att en enda knapp växlar både på och av. Enheten har två lysdioder som ligger bredvid reläerna och anger reläets status: på eller av. Nära kontrollknappen finns en annan LED. Den blinkar vid mottagandet av en kodad rf-signal från en nyckelfob.
om man vill arbeta med andra koder än kodade från fabriken fortsätter man enligt följande
- koderna raderas genom att trycka på knappen tills lysdioden börjar blinka.
- nu kan knapparna inte byta reläer längre, även om lysdioden kan blinka för att indikera att en kod har tagits emot.
- genom att trycka på knappen på enheten när den väl förs in i programmeringsläge tänds lysdioden.
- Tryck först på knappen för att styra relä A. lysdioden blinkar för att indikera mottagning. Släpp knappen. Lysdioden förblir på.
- Tryck nu på tangenten fob knappen som ska styra relä B. lysdioden blinkar för att indikera mottagning och släck.
- enheten är nu programmerad. Att trycka på de två knapparna aktiverar nu reläerna A och B.
- Observera att att trycka två gånger på samma knapp bara programmerar relä a!
det kan vara intressant att använda en helt annan kod med nyckelfob och enheten. Sådan beskrivs för en Raspberry Pi av en instructable skriven av george7378. Nedan ett exempel på ett spår av en knappkod.
rf-signalen är på under den ”höga” tiden, vanligtvis cirka 0,5 ms, och av under den ”låga” signalen, cirka 1 ms. Dessa sekvenser upprepas med ett intervall på cirka 10 ms så att hundratals kodsekvenser skickas genom att trycka på knappen i en sekund eller så. Koden kan lätt läsas, en kort hög följt av en lång låg tolkas som en binär 1 medan en lång hög följt av en kort låg är en binär 0. Den binära kodsekvensen består således av 25 bitar, här 1111 0000 0101 0110 0101 1110 1. Det finns 225 = 33,554,432 olika koder möjliga med dessa 25 bitar.
med det lilla Python-programmet som beskrivs av ovan nämnda instructable är det relativt enkelt att ange egen kod. Att använda en 17,2 cm antenn på 433 MHz-sändaren gör kodningen av nyckelfoberna ganska mycket enklare. Speciellt om man gör antalet sekvensrepetitioner stora, d.v. s. ändra NUM_ATTEMPTS från 10 till 100.
det finns många olika koder som redan är möjliga med denna 25-bitars sekvens, men om man föreställer sig att antalet bitar, den ”höga” tiden, den ”låga” tiden och repetitionstiden alla kan varieras efter behag ser man varför det vanligtvis inte är för mycket störningar mellan enheter och nyckelfob av olika ursprung. Det kommer att finnas gränser för tidpunkten och koder som används, men mycket variation kvarstår för en given uppsättning.
några kommentarer om de program som beskrivs i instructable.
- den använder samma GPIO-port för att skicka och ta emot. Jag fann det lättare att ha olika så att båda enheterna kan anslutas samtidigt.
- Använd på första raden koden
#!/usr/bin/python
och gör den körbar av till exempel
chmod +x TransmitRF.py
gör det möjligt att enklare ringa programmet som
./TransmitRF.py a_on
och upprepa dess funktion.
- snarare än att använda ReceiveRF.py, programmet för att läsa kodsekvensen från nyckelfob, föredrar jag att använda min Logic 4 Digital+Analog Logic Analyzer från Saleae. Det ger mycket mer frihet att analysera data.