Difference between revisions of "Doorbot"

From Technologia Incognita
Jump to: navigation, search
Line 97: Line 97:
  
 
==Hardware==
 
==Hardware==
 +
 +
==Software==
 +
 +
=== Cubieboard ===
 +
 +
https://github.com/techinc/doorbot
  
 
=== Authentication arduino ===
 
=== Authentication arduino ===
Line 149: Line 155:
  
 
https://github.com/techinc/matrixpad
 
https://github.com/techinc/matrixpad
 
==Software==
 
 
https://github.com/techinc/doorbot
 

Revision as of 22:55, 16 February 2014

Projects
Participants Brainsmoke
Skills
Status Active
Niche Mechanics
Purpose Infrastructure

Usage

Entering the space: (normally)

  1. scan your fob
  2. enter your pin
  3. press the bell button

Opening the door when in Open mode (like during social night?)

  1. press bell

Changing your pin:

  1. scan your fob
  2. enter 999
  3. press bell
  4. enter your current pin
  5. press bell
  6. enter your new pin (min 4 characters)
  7. press bell
  8. repeat new pin
  9. press bell

Resetting your pin when you have forgotten:

  1. Ask a doorbot maintainer (brainsmoke for now) to trigger a pin reset
  2. scan your fob
  3. enter your new pin (min 4 characters)
  4. press bell
  5. repeat new pin
  6. press bell

Add a fob:

  1. Trick a doorbot maintainer into starting an addkey procedure
  2. scan your fob
  3. enter your new pin (min 4 characters)
  4. press bell
  5. repeat new pin
  6. press bell

Administration

doorbot shell (doorsh.py)

ssh doorbot@doorbot

Administration:

doorbot> list
doorbot> enable <fobid>
doorbot> disable <fobid>
doorbot> delete <fobid>
doorbot> addkey                  # add key using key reader + pinpad
doorbot> addkey <fobid> <pin>    # add key using doorbot shell only
doorbot> resetpin                # reset pin using reader + pinpad
doorbot> resetpin <fobid> <pin>  # reset pin using shell

doorctl.py

python doorctl.py initdb

# import fob db using plain-text pin
# rfid authorised pin
python doorctl.py import-plain << EOF
5431553 1 12345
5431554 1 12345
5431555 1 12345
5431556 1 12345
EOF

python doorctl.py export     # export fob db

python doorctl.py import     # import fob db

python doorctl.py rfidlisten # print fob IDs of fobs being scanned

Design

       5V 2A
    _____|______       [door sensor]          5V   ___12V____
   |            |            |                 |  |          |
   |            |-----[ Lock arduino ]--opto--[relay]   [door lock]
   | Cubieboard |                                 |__________|
   |            |-----[ Auth arduino ]
   |____________|       |          |
         |         [HID reader] [keypad]
       Earth            ^----------------- with red||green led + beeper
    (for keypad)

Hardware

Software

Cubieboard

https://github.com/techinc/doorbot

Authentication arduino

source

https://github.com/techinc/doorbot/blob/master/doorauth/doorauth.ino

protocol

Serial, 9600 baud

send:

LED ON\n
LED OFF\n
LED BLINK\n
BEEP\n        (short beep)
DENIED\n      (distorted sound)
GRANTED\n     (double short beep)

receive:

RESET\n       (arduino has reset)
KEY [0-9]\n   (keypad press)
RFID [01]*\n  (rfid scanned)

Lock arduino

https://github.com/techinc/doorbot/blob/master/doorauth/doorlock.ino

protocol

Serial, 9600 baud

send:

UNLOCK\n
LOCK\n

receive:

RESET\n        (arduino has reset) 
OPEN\n         (door has opened)
CLOSED\n       (door has closed)

keypad

Project page [matrixpad]

source

https://github.com/techinc/matrixpad