Detektera om dörren är låst

Låste jag dörren när jag gick hemifrån? Det är en fråga vi ofta ställt oss. Istället för att byta ut hela låset till ett smart lås bestämde vi oss för att lösa det med den befintliga installationen!

För detta projekt behövs

1st Micro switch
1st Fibaro Door/Window Sensor (gamla versionen) eller en Aeotec door/window sensor. Alternativt en Z-uno.
Lite lågspänningskabel

Gör så här:

Om du använder Fibaros/Aeotecs Door/Window sensor

Börja med att koppla switchen till ingången på din Door/Window Sensor genom att ansluta den till ingång 1 och 2 på plinten.

Redan nu kan du testa om det fungerar genom att klicka på brytaren, då skall nämligen den blåa lysdioden på Door/Window blinka till lite snabbt.

Om du använder Z-uno

Börja med att följa Z-uno Quick Start Guide.

Läs sedan in följande programkod (den är kraftigt baserad på ett av exemplen som finns i guiden). Vi har valt att använda pin 9 på Z-unon för knappen, men det kan enkelt ändras till vilken pin som helst genom att ändra på rad 11.

/*
 * Lock detector
 * 
 * Created by Erik Karlsson @ m.nu
 */
 
// LED pin number
#define LED_PIN     13

// button pin number
#define BTN_PIN     9

// channel number
#define ZUNO_CHANNEL_NUMBER_ONE   1

// variable to store current button state
byte lastButtonState;

// sets up the Z-Uno channels
ZUNO_SETUP_CHANNELS(ZUNO_SENSOR_BINARY(ZUNO_SENSOR_BINARY_TYPE_DOOR_WINDOW, getter));

void setup() {
 pinMode(LED_PIN, OUTPUT); // set LED pin as output
 pinMode(BTN_PIN, INPUT_PULLUP); // set button pin as input
}

void loop() {
  // sample current button state
  byte currenButtonState = digitalRead(BTN_PIN);
  
  if (currenButtonState != lastButtonState) { // if state changes
    lastButtonState = currenButtonState; // save new state
    zunoSendReport(ZUNO_CHANNEL_NUMBER_ONE); // send report over the Z-Wave to the controller
    if (currenButtonState == LOW) { // if button is pressed
      digitalWrite(LED_PIN, HIGH);  // shine the LED
    } else {                        // if button is released
      digitalWrite(LED_PIN, LOW);   // turn the LED off
    }
  }
}


// function, which returns the previously saved button state
// this function runs only once the controller asks
byte getter(){
  if (lastButtonState == 0) { // if button is pressed
    return 0xff;              // return "Triggered" state to the controller
  } else {                    // if button is released
    return 0;                 // return "Idle" state to the controller
  }
}

Koppla in brytaren mellan jord och pin 9 (eller den pin du valt). Trycker du nu på knappen så skall lysdioden tändas.

Montering

Nu till det svåra! Brytaren måste monteras i slutblecket på något sätt. I vårt fall var inte slutblecket tillräckligt djupt, så istället fick vi förlita oss på att toppen av låskolven aktiverar brytaren.

Detta kräver betydligt noggrannare placering av brytaren, så vi använde oss av massor med dubbelhäftande tejp och provade oss fram.

För att göra det lättare för låskolven att träffa vår brytare böjde vi även den lilla armen lite.

Efter att vi hittat korrekt position monterar vi den lite mer permanent, lägger till enheten till vår styrenhet och voilá – vi kan nu ha koll på om vi låste dörren eller inte!

I Fibaros Home Center 2 dyker den upp som en dörrsensor.

Lämna ett svar