Hack en lås

Af · februar 1, 2021

I Hal9k har alle medlemmer (normalt) fri adgang til spacet 24 timer i døgnet. Da det er ret upraktisk at holde styr på 50 nøgler, har medlemmerne i stedet adgangskort (som tidligere beskrevet her).

En lille, men væsentlig, del af adgangskontrolsystemet er selvfølgelig selve dørlåsen. Det har hidtil været en forholdsvis billig magnetlås, men da kommunen for nyligt valgte at udskifte alle døre og vinduer i bygningen, er der også kommet en ny hoveddør, og det er naturligvis en dør med trepunktslukning, som det er standard for moderne døre. Det betyder at den gamle magnetlås ikke kan bruges længere, og vi måtte derfor finde en anden løsning.

Det letteste er selvfølgelig at montere en ny magnetlås, og det findes da også – men prisen er omkring 10.000 kr, og formodentlig ville vi også skulle have noget hjælp fra en låsesmed, så det ville blive en dyr løsning. Heldigvis findes der forskellige IoT-dimser, som er beregnet til at montere på en eksisterende lås, og som typisk betjenes via Bluetooth med en app på telefonen. Den der er nemmest at få fat på i Danmark er den danskproducerede Danalock, som kan fås til omkring en tusse.

Jeg bestilte en Danalock til afhentning i et lokalt varehus og prøvede den på min egen yderdør, og det fungerede fint med den tilhørende app. Men til brug i spacet dur det selvfølgelig ikke, der skal den kunne kontrolleres fra adgangskontrolsystemet. Den oplagte løsning var at erstatte elektronikken med noget andet, og kun bruge selve mekanikken.

Det første trin var derfor at skille låsen ad og se hvordan den var konstrueret.

Danalock set oppefra

Her ses motoren til venstre, den centrale akse i midten, og printet nederst.

Mekanikken er forholdsvis simpel og består af tre dele:

En central akse, som er fast sammenkoblet med låsecylinderen. På forsiden af låsen sidder et håndtag som bruges til at dreje aksen og dermed låsecylinderen manuelt.

En “rotary encoder” som aflæser positionen af den centrale ekse. Det er en standard kvadraturencoder med to optiske sensorer, dvs. der er ikke nogen decideret nulposition.

Pulser fra encoder

Her ses hvordan de to udgange fra encoderen reagerer når aksen drejes rundt.

Motoren og tilhørende gearing. De fleste af tandhjulene er stationære, men et par stykker af dem sidder på en arm der kan rotere. Det betyder at når motoren tændes, vil de bevægelige tandhjul efter kort tid gribe ind i det tandhjul der sidder på den centrale akse, som herved bringes til at rotere. På grund af de bevægelige tandhjul kan låsen stadig betjenes manuelt uden at motoren drejer med.

Motor og gearing

Her ses motoren og nogle af tandhjulene.

Elektronikken består af et lille print hvor de primære komponenter er en microcontroller og en motordriver.

Jeg fjernede printet og metalstrimlerne i batteriboksen, hvilket gav rigelig plads til den nye elektronik. Designet af denne blev drevet af hvad jeg havde på lager, og blev

  • et modul med en TB6612 motordriver
  • en Wemos D1 mini (ESP8266)
  • et stepdown modul til at konvertere 12V til 5V

Motordriveren passede fint der hvor det originale print sad:

Ny motordriver

Et par klatter klar silicone sørger for at ledningerne ikke kommer i karambolage med de bevægelige dele.

Jeg designede en erstatning for batteridækslet i OpenSCAD, og efter et par iterationer havde jeg noget der kunne bruges. Det originale batteridæksel er blot klipset fast til en skrue, men jeg valgte at lade den same skrue gå igennem et hul i det nye “batteridæksel”.

Ny side

Den 3D-printede del der erstatter batteridækslet. Der er udskæring til det USB-micro-stik der sidder på ESP8266, et hul til et JST PH-stil til 12V, og naturligvis en LED.

Og så kunne det hele samles:

Montering

ESP8266, stepdown og LED monteret på den nye side.

 

Færdigsamlet

Monteret og lukket. Som det ses passer den nye side ikke perfekt, men det ser man ikke når klaveret spiller.

Herefter var der kun tilbage at lave noget software, og status i skrivende stund er at låsen fungerer fint på min egen dør. Så nu venter jeg kun på at kunne sætte den op i spacet.

 

Se kode osv. på https://github.com/bullestock/danalock-wired.

Gemt under: Projekter