Ger Koper’ s blog
sleutelhangers met afstandsbediening worden meestal gebruikt voor garagedeuren en dergelijke. Ook auto deuropening systemen gebruiken ze. Het protocol van deze apparaten lijkt relatief standaard. Bij het indrukken van een van de knoppen worden series radiofrequentiepulsen (rf) verzonden die vervolgens door de deuropeningsapparatuur worden ontvangen. Deze vergelijken de ontvangen code sequentie met de intern opgeslagen code en wanneer gelijk open of sluit de deur. Dit principe wordt ook gebruikt voor het regelen van verlichting, het verzenden van weerstation informatie, enz.
dit kleine rapport gaat over zogenaamde sleutelhangers zoals hierboven weergegeven. Deze zijn momenteel overvloedig beschikbaar op het web. Ze hebben het voordeel dat ze een mechanisme hebben waarmee ze vanaf een andere sleutelhanger kunnen worden geprogrammeerd. De procedure is relatief eenvoudig, maar vereist enige volharding: uiteindelijk zal het werken:
- druk tegelijkertijd op de A-en B-knoppen. De LED gaat aan en na enige tijd begint het snel te knipperen. Dit geeft aan dat de sleutelhanger wordt gewist en de knoppen kunnen worden vrijgegeven.
- bij het indrukken van een van de knoppen knippert de LED slechts één keer heel kort. Dit geeft aan dat er geen code wordt verzonden.
- laten we dit “lege” sleutel fob nummer 1 noemen. De sleutelhanger waaruit we willen kopiëren is nummer 2.
- we kopiëren nu de code van knop X, A, B, C of D, van Sleutel fob 2 naar Sleutel fob 1 knop Y (A, B, C, of D).
- drukknop X op sleutelhanger 2 brandt de LED continu om aan te geven dat de codesequenties worden verzonden.
- drukknop Y op Sleutel fob 1, de LED geeft een eerste korte knipper en blijft dan uit.
- breng de twee sleutelhangers samen, terwijl de knoppen ingedrukt blijven, meestal van voor naar voren, maar andere posities kunnen ook werken, totdat de LED op toets 1 begint te knipperen. Dan kunnen de knoppen worden vrijgegeven.
- druk nu op toets Y op Sleutel fob 1 en de LED moet continu schijnen om aan te geven dat het een code verzendt. Als alles goed ging deze code activeert ook de deur die werd gecontroleerd door Sleutel fob 2.
- dit kan worden herhaald voor alle vier de knoppen. Identieke codes voor twee verschillende knoppen kunnen ook worden geprogrammeerd, de sleutel zal niet klagen.
belangrijk om op te merken is dat op dezelfde manier uitziende sleutelhangers verschillende, zij het vergelijkbare protocollen kunnen hebben. Volg de instructies van de verkoper waar nodig.
men kan ook een besturingseenheid aanschaffen die twee relais bevat die kunnen worden bediend met twee knoppen van een hierboven beschreven sleutelhanger. Deze eenheden moeten ook worden geprogrammeerd, hoewel ze worden geleverd met voorgeprogrammeerde sleutelhangers. Het apparaat heeft een dip-selector die de regelmodus instelt. Hier gebruiken we dat een enkele knop zowel aan als uit schakelt. De unit heeft twee LED ‘ s die naast de relais staan en de status van het relais aangeven: aan of uit. Dicht bij de keuzetoets is nog een LED aanwezig. Het knippert na ontvangst van een gecodeerd RF-signaal van een sleutelhanger.
als men met andere codes wil werken dan die van de fabriek, gaat men als volgt te werk
- de codes worden gewist door op de knop te drukken totdat de LED begint te knipperen.
- nu kunnen de toetsen de relais niet meer schakelen, hoewel de LED kan knipperen om aan te geven dat er een code is ontvangen.
- wanneer u de knop op de unit drukt, gaat de LED aan.
- druk eerst op de sleutelhanger de knop die relais A moet bedienen. de LED knippert om de ontvangst aan te geven. Laat de knop los. De LED blijft aan.
- druk nu op de sleutelhanger de knop om Relais B te bedienen. de LED knippert om ontvangst aan te geven en gaat uit.
- de eenheid is nu geprogrammeerd. Het indrukken van de twee knoppen activeert nu relais A en B.
- merk op dat het indrukken van twee keer dezelfde knop alleen relais A zal programmeren!
het kan interessant zijn om een geheel andere code te gebruiken met de sleutelhangers en de eenheid. Dergelijke wordt beschreven voor een Raspberry Pi door een instructable geschreven door george7378. Hieronder een voorbeeld van een trace van een knopcode.
het rf-signaal is aan tijdens de “hoge” Tijd, Meestal ongeveer 0,5 ms, en uit tijdens het “lage” signaal, ongeveer 1 ms. Deze opeenvolgingen worden herhaald met een interval van ongeveer 10 lidstaten zodat honderden codeopvolgingen worden verzonden door de knoop voor een tweede of zo te drukken. De code kan gemakkelijk gelezen worden, een korte high gevolgd door een lange low wordt geïnterpreteerd als een binair 1 terwijl een lange high gevolgd door een korte low een binair 0 is. De binaire codevolgorde bestaat dus uit 25 bits, hier 1111 0000 0101 0110 0101 1110 1. Er zijn 225 = 33.554.432 verschillende codes mogelijk met deze 25 bits.
met het kleine Python programma beschreven door de bovengenoemde instructable is het relatief eenvoudig om je eigen code in te voeren. Het gebruik van een 17,2 cm antenne op de 433 MHz zender maakt het coderen van de Sleutelhangers een stuk eenvoudiger. Vooral als men het aantal sequentie herhalingen groot maakt, dat wil zeggen verander NUM_ATTEMPTS van 10 naar 100.
er zijn al veel verschillende codes mogelijk met deze 25 bit-reeks, maar als men zich voorstelt dat het aantal bits, De “Hoge” tijd, de “lage” tijd en de herhalingstijd naar believen kunnen worden gevarieerd, dan ziet men waarom er meestal niet te veel interferentie is tussen eenheden en sleutelhangers van verschillende oorsprong. Er zullen grenzen zijn aan de gebruikte timing en codes, maar er blijft veel variatie over voor een bepaalde set.
enkele opmerkingen over de in instructable beschreven programma ‘ s.
- het gebruikt dezelfde GPIO-poort voor verzenden en ontvangen. Ik vond het makkelijker om verschillende te hebben, zodat beide eenheden tegelijkertijd kunnen worden aangesloten.
- door op de eerste regel de code
#!/usr/bin/python
te gebruiken en deze uitvoerbaar te maken met bijvoorbeeld
chmod +x TransmitRF.py
, kan men het programma eenvoudiger aanroepen als
./TransmitRF.py a_on
en de werking ervan herhalen.
- in plaats van gebruik te maken van ReceiveRF.py, het programma om de codevolgorde van sleutelhangers te lezen, gebruik ik liever mijn Logic 4 Digital + Analog Logic Analyzer van Saleae. Het geeft veel meer vrijheid in het analyseren van de gegevens.