Door System

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen
Oh hi, da ich weder ein grosser grafiker noch ein wiki syntax benutzer bin 
wuerde ich jemanden der sich zustaendig fuehlt bitten diese seite richtig zu formatieren ;)
Okay here we go. Lange schon ist es her das viel diskutiert wurde und keienr was gemacht hat.
Nun bau ich (naxx) das tuer system wobei mir marius bei der hardware helfen wird.
Ich habe keine lust jetzt zig jabber/email messages zu bekommen oder hier wieder ne grundsatz
diskussion loszutreten. Ich mach das jetzt und basta. wer denkt er kann es besser oder 
umbedingt das nutzlose feature will -> mach was und wenns besser ist als meine loesung 
machen wirs (write code and show us the whole thing works)

Concept

*Lock Policy:
 Members have tokens that can unlock the door(for 1 minute)!
 "Keymembers" also have a real key for the door (about 10 keys or so)
  Other persons have to use the door bell
  Partymode can and will be implemented!
*Webinterface:
 Es wird ein webinterface geben welches auf einem der server im metalab laufen wird.
 Options:
          - Log in (using nickname + tokenid/password)
          - Adduser (all full members can add new tokens to the system(will be logged))
          - List/Edit User
          - Unlock Door (can be turned off)
*Hw Side:
          - Arduino
          - Fonero
          - 2x Keyreader
          - Tokens        (cost about 2 euros each)
          - Steampunk pc (for user management) 
          - Metalab Server
*Sw Side:
          - Arduino Software (ask marius)
          - Web interface (same as unlock script)
          - Unlock Script (requires mysql, httpd, php, php-mysql, ssl certs)
          - Door Deamon (runs on the fonera -> on openwrt)

Unlock

The Token touches the pad or whatever


                                

 #############                *********                      +++++++++++++++
 #Tokenreader# -> 64bit id -> *Arduino*  -> (if rs232 ==1) ->++ Door.open ++
 #############                *********                      +++++++++++++++
                              |     |
                              |   32 char                       
                 .-->---------.    String (over rs232)          
                 |                  |                           
      0/1(rs232) |   ********<------.                           
                 .--<*FONERA*<-----------------------------. 
                     ********                              |
                       |                                   |
                       |                                 https_GET(over ethernet) result: TRUE/FALSE/TEMP 
                      https_GET(over ethernet)             |
                       |                                   |
                       .-> XXXXXXXXXX ---------------------.                                     
                           X Server X (https://authserver.in.metalab.at/unlock.php?id=$id => TRUE/FALSE/TEMP)
                           XXXXXXXXXx


Eigentlich ist alles recht simpel:
Der arduino kriegt ein signal from tokenreader welches ne 64bit beinhaltet.
Er macht draus nen 32 chracter string und schickt diesen ueber rs232 an den fonero.
dieser macht daraufhin ein request ueber https an https://authserver.in.metalab.at/unlock.php?id=32charidgoeshere
und je nachdem ob es ein TRUE oder FALSE ist geben wir das ergebnis per rs232 zurueck an den Arduino 
Welcher dann die tuer entsperrt.

New Token

Um Neue tokens in system hinzufuegen zu koennen
werden wir den steampunk pc mit einem tokenreader austatten
funktioniert dann per commandozeilen app die entweder fullscreen läuft
oder per http using firefox

Unlock.now

Theory:
 If a member has forgotten his key/token
 they still can unlock the door
Method:
 -Go to the webinterface (only thru https over wireless lan4unlock.now)
 -Log in (username:password)
 -Klick unlock me+Get logged out
 -Go to the door
 -Hit the Letmein button
 - .. and pray ;)

FAIL

Power Fail:
 - usv 4 the lock system (aruino, fonero, lock, keyreader)
Network Fail:
 - fonero chaches full members for unlimited, but checks if they still are members
   on every login (removes members from the list if needed)
Human Fail:
 the "gau" scenario -> kill the person by throwing paper balls at her/him ;)
 alternative: get process id's for all humens and kill -9 them ;)

Code_Done


Hardware Interface

Arduino:

  • RX - grey
  • TX - white
  • GND - black

Fonera:

  • purple-grey-white-black - > black should face the side of the connectors