Projekt:Tuerschloss

Aus Schaffenburg
Version vom 1. November 2017, 18:53 Uhr von MaesterK (Diskussion | Beiträge) (→‎Details: update wg steckdosen und wol)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
Crystal Clear action run.png
Türschloß

Status: stable

Windows Phone 20151209 004.jpg
Beschreibung wunderschön
Ansprechpartner Karsten


Erstmal nur um Fotos und paar Punkte zu sammeln...bitte noch nicht verlinken!

Griffiger Name wär auch nicht schlecht

Übersicht

  • Ermöglicht das Aufschließen unserer Räumlichkeiten über das interne Netz und damit das WLAN für Mitglieder per Handy.
  • Von innen kann die Tür per Button oder notfalls mechanisch aufgeschlossen werden.
  • Status (verriegelt/offen) wird auf der Vereinswebsite angezeigt
  • Unterstüzt "zusperren beim gehen". Nach Tastendruck wartet die Tür mit dem verriegeln bis diese geschlossen wurde.
  • Der Raspberry sollte ursprünglich gleichzeitig als Mediacenter dienen (wurde verworfen)
  • Eine Erweiterung für das Schließen RFID Chips war geplant (aus Sicherheitsgründen verworfen)
  • Aktuell ist eine Neukunstruktion auf Basis eines ESP8266 bereits in Planung, daher wird diese Version wohl nichtmehr abgeschlossen und weiterhin ohne Gehäuse betrieben

Verantwortlicher

Karsten

Beteiligte

  • Karsten
  • Jonas (Entwurf und 3D-Druck des "Adapters" für den Servo, "Platinenlayout")
  • Hendrik (Unterstützung bei Entstörung)
  • Fabian (Status-Polling für Website)
  • Jochen (Code Review)


Details

  • Arduino steuert den Servo am Schloß, überwacht per Hall-Sensor (frühe Versionen: Reed-Kontakt aus 5.- Tür-Alarm) ob die Tür geschlossen ist und führt Öffnen / Schließen per Button (von innen) aus
  • Ein Raspberry Pi ist mit dem Arduino per I2C verbunden (keine Pegelkonversion nötig, da beim Arduino kein eigener Pull-Up verbaut ist und er die 3V des PI noch als HIGH erkennt)
  • Dieser fragt den aktuellen Status (verriegelt/offen) ab und sendet Kommandos zum Öffnen oder Absperren an den Arduino.
  • Als Nutzerschnittstelle dient eine Website, die über einen Apache Webserver mit PHP-Modul läuft, und ggf ein C++ Programm zur Kommunikation über i2c aufruft.
  • Code auf Github
  • Inzwischen schaltet die Tür beim Öffnen und Schließen auch Steckdosen (Typ A Gruppe "11111" ID "C"; Typ B Gruppe 4 ID 4)
  • ..und versendet magic pakets für wake-on-lan für den Rechner im Konfi

Geschichte

  • Ursprünglich kam die Idee auf, dass ein (mit Eisenstangen verstärktes) CD-Schloß eine witzige Türverrieglung ergeben würde
  • Allgemeine Belastungstests damit liefen recht erfolgreich, aber bei Tests am Einsatzort stellte sich (und auch für ein paar andere Ideen) heraus, dass die Tür immer etwa 1mm nachgab, wenn man sie mit heruntergedrückter Klinke aufdrücken wollte, was ein instabiles Gefühl vermittelte.
  • Daher war dann doch die sinnvollste Maßnahme, den Schließmechanismus in der Tür selbst zu verwenden
  • Nach erfolglosen Experimenten mit kleinen Basteleien aus Holz und Metal entschied ich mich schließlich ein altes Schloß zu zersägen, um an den Mitnehmer zu gelangen, den ich dann mit gekonterten Muttern an einer großen Schraube fixierte (wir hatten damals noch keinen 3D-Drucker im Space)
  • Als Antrieb entschied ich mich für einen Servo, da dieser sich am einfachsten für fixe Positionen einsetzbar ist
  • Wegen dem durch die "nicht so ganz perfekte" Arduino Servo-Library verursachte Jittering sorgt ein Relais dafür, dass der Servo nur dann Saft hat, wenn die "Schließposition" geändert wird
  • Eigentlich hatte ich die ursprüngliche Version mit Breadboard nur an die Tür geklebt um bei Stammtisch zu demonstrieren, dass es schon funktionieren würde..aber da einige Mitglieder das System unbedingt schon nutzen wollten, blieb es dort und die Weiterentwicklung wurde daher etwas anstrengender, da das ganze im funktionsfähigen Zustand erhalten bleiben musste
  • Störungen im i2c Bus stellten sich als Problematisch heraus - es ist keine gute Idee ein einzelnes Byte als Kommando zum aufschließen zu verwenden!... Inzwischen verwendet das System stringbasierende Befehle, wie "open" und "close"