Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
J

jsondag

@jsondag
About
Posts
4
Topics
0
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Combo entry scene trigger?
    J jsondag

    Here is a basic untested code that might do what you're wanting. I combined a my sensors button sketch with the following.
    http://www.instructables.com/id/Arduino-door-lock-with-password/
    I might build one up at some point, but currently I haven't tested it.

    #include <MySensor.h>
    #include <SPI.h>
    #include <Password.h> //http://playground.arduino.cc/uploads/Code/Password.zip //tells to use password library
    #include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip  //tells to use keypad library
    
    
    #define CHILD_ID 3
    
    
    Password password = Password( "0000" ); //password to unlock, can be changed
    
    const byte ROWS = 4; // Four rows
    const byte COLS = 4; // columns
    // Define the Keymap
    char keys[ROWS][COLS] = {
    {'1','2','3'},
    {'4','5','6'},
    {'7','8','9'},
    {'*','0','#'}
    };
    // Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
    byte rowPins[ROWS] = { 9, 8, 7, 6 };// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
    byte colPins[COLS] = { 5, 4, 3 };
    
    MySensor gw;
     
    int oldValue=-1;
    
    // Change to V_LIGHT if you use S_LIGHT in presentation below
    MyMessage msg(CHILD_ID,V_TRIPPED);
    // Create the Keypad
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    void setup()  
    {  
      gw.begin();
      delay(200); 
      pinMode(11, OUTPUT);  //green light
      pinMode(12, OUTPUT);  //red light
     
      keypad.addEventListener(keypadEvent); //add an event listener for this keypad
    
      
      
      // Register binary input sensor to gw (they will be created as child devices)
      // You can use S_DOOR, S_MOTION or S_LIGHT here depending on your usage. 
      // If S_LIGHT is used, remember to update variable type you send in. See "msg" above.
      gw.present(CHILD_ID, S_DOOR);  
    }
    
    
    void loop(){
      keypad.getKey();
      }
      //take care of some special events
      void keypadEvent(KeypadEvent eKey){
      switch (keypad.getState()){
      case PRESSED:
      
      Serial.print("Enter:");
      Serial.println(eKey);
      delay(10);
      
      Serial.write(254);
      
      switch (eKey){
        case '*': checkPassword(); delay(1); break;
        
        case '#': password.reset(); delay(1); break;
        
         default: password.append(eKey); delay(1);
    }
    }
    }
    void checkPassword(){
      
    if (password.evaluate()){  //if password is right open
        
        Serial.println("Accepted");
        Serial.write(254);delay(10);
        //Add code to run if it works
        gw.send(msg.set(1));
            digitalWrite(11, HIGH);//turn on
        delay(5000); //wait 5 seconds
        digitalWrite(11, LOW);// turn off
        delay(5000);
        gw.send(msg.set(0));
        
    }else{
        Serial.println("Denied"); //if passwords wrong keep locked
        Serial.write(254);delay(10);
        //add code to run if it did not work
        gw.send(msg.set(0));
        digitalWrite(12, HIGH); //turn on
        delay(5000); //wait 5 seconds
        digitalWrite(12, LOW);//turn off
        
    }
    }```
    Hardware
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular