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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
/* * 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.