Difference between revisions of "Doorbot"

From Technologia Incognita
Jump to: navigation, search
(Design)
(Usage)
Line 6: Line 6:
 
==Usage==
 
==Usage==
  
Entering the space: (normally)
+
=== Entering the space: (normally) ===
  
 
# scan your fob
 
# scan your fob
Line 13: Line 13:
  
  
Opening the door when in Open mode (like during social night?)
+
=== Opening the door when in Open mode (like during social night?) ===
  
 
# press bell
 
# press bell
  
  
Changing your pin:
+
=== Changing your pin: ===
  
 
# scan your fob
 
# scan your fob
Line 31: Line 31:
  
  
Resetting your pin when you have forgotten:
+
=== Resetting your pin when you have forgotten: ===
  
 
# Ask a doorbot maintainer (brainsmoke for now) to trigger a pin reset
 
# Ask a doorbot maintainer (brainsmoke for now) to trigger a pin reset
Line 41: Line 41:
  
  
Add a fob:
+
=== Add a fob: ===
  
 
# Trick a doorbot maintainer into starting an addkey procedure
 
# Trick a doorbot maintainer into starting an addkey procedure

Revision as of 22:42, 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)

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:

OPEN\n         (door has opened)
CLOSED\n       (door has closed)

Hardware

Software

https://github.com/techinc/doorbot