Türschloss: Difference between revisions

From CCC Basel Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
* Raspberry Pi Zero W
* Raspberry Pi Zero W
* «Eqiva BLUETOOTH SMART» Türschlossantrieb
* «Eqiva BLUETOOTH SMART» Türschlossantrieb
** Bluetooth-Chip vom PCB gerissen
** Steuerung durch Knopfdruck-Simulation via MOSFETs
* Lichtschranke im Türrahmen
* Lichtschranke im Türrahmen
* Pogopin-«Kontaktsensor»
* Pogopin-«Kontaktsensor»

=== Türschlossantrieb ===

# Das Bluetooth-Modul (zu sehen in Abb. 5) wurde entfernt. Lötarbeiten sind nicht notwendig, der Chip lässt sich einfach mit einem Seitenschneider vom PCB trennen.
# An die folgenden Testpads wurden Drähte angelötet und ins Batteriefach geführt:
#* MP10 (Taster «Öffnen»)
#* MP11 (Taster «Schliessen)
#* MP16 (GND)
#* MP17 (Vcc)

<gallery>
File:Eqiva1.jpg|thumb|Der unmodifizierte Türschlossantrieb mit 2 Knöpfen und einem '''sehr''' unhandlichen Knauf zur manuellen Bedienung.
File:Eqiva6.jpg|thumb|Detailansicht des Teils, der über das bestehende Schloss mit Schlüssel gesteckt wird.
File:Eqiva2.jpg|thumb|Der Türschlossantrieb mit entfernter Abdeckung.
File:Eqiva3.jpg|thumb|Detailansicht der PCB-Vorderseite, im Gehäuse eingebaut und mit den anderen Komponenten verbunden.
File:Eqiva4.jpg|thumb|Detailansicht der PCB-Rückseite, besonders prominent sind hier der Microcontroller sowie das Bluetooth-Modul.
File:Eqiva5.jpg|thumb|Detailansicht des mechanischen Aufbaus.
File:Eqiva7.jpg|thumb|Drähte werden aus dem Innenraum in das Batteriefach geführt, und von dort weiter nach aussen.
File:Setup1.jpg|thumb|Experimentelles Setups aus modifiziertem Türschlossantrieb, einem Raspberry Pi und 2 MOSFETs.
</gallery>

=== Lichtschranke ===

* Die beiden Lichtschrankenteile wurden in einer 3D-gedruckte Halterung befestigt.
* Die Halterung wurde durch das Loch für den Riegel in den Rahmen geführt und von aussen durch bereits existierende Löcher mit Schrauben befestigt.
* Die Kabel der Lichtschranke wurden durch ein ebenfalls bereits existierendes Loch nach aussen geführt.

<gallery>
File:Sensor1.jpg|thumb|Eine Hälfte der Lichtschranke, innerhalb des Türrahmens montiert.
</gallery>

=== Kontaktsensor ===

* Der Kontakt zwischen Tür und Rahmen wird mittels 4 Pogopins realisiert.
* Die 4 Kontakte erfüllen 2 Zwecke:
** Erkennen, ob die Tür geschlossen ist (Pogopin-Kontakt).
** Erkennen, ob die Tür '''ab'''geschlossen ist (Anschluss der Lichtschranke via Pogopins).

<gallery>
File:Pogo1.jpg|thumb|Pogopin-Kontakte, geöffnet.
File:Pogo2.jpg|thumb|Pogopin-Kontakte, geschlossen.
</gallery>


== Software ==
== Software ==
Line 13: Line 53:
* Python-Skript zum öffnen/schliessen via Raspi-GPIO-Pins
* Python-Skript zum öffnen/schliessen via Raspi-GPIO-Pins
* Ansteuerung via SSH Pubkey + ForceCommand
* Ansteuerung via SSH Pubkey + ForceCommand
** ssh open@<door> &rarr; öffnet das Schloss
** <code>ssh open@<door></code> &rarr; öffnet das Schloss
** ssh close@<door> &rarr; schliesst das Schloss
** <code>ssh close@<door></code> &rarr; schliesst das Schloss
** ssh status@<door> &rarr; Status-Abfrage des Schlosses
** <code>ssh status@<door></code> &rarr; Status-Abfrage des Schlosses
* Ansteuerung via SSH (Alternative für Kompatibilität mit der «Trigger»-App)
** <code>ssh door@<door> open</code> &rarr; öffnet das Schloss
** <code>ssh door@<door> close</code> &rarr; schliesst das Schloss
** <code>ssh door@<door> status</code> &rarr; Status-Abfrage des Schlosses
* Ansteuerung via TLS Client Certificate + HTTP cgi-bin
* Ansteuerung via TLS Client Certificate + HTTP cgi-bin
** https://<door>/door/open &rarr; öffnet das Schloss
** <code>https://<door>/door/open.py</code> &rarr; öffnet das Schloss
** https://<door>/door/close &rarr; schliesst das Schloss
** <code>https://<door>/door/close.py</code> &rarr; schliesst das Schloss
** https://<door>/door/status &rarr; Status-Abfrage des Schlosses
** <code>https://<door>/door/status.py</code> &rarr; Status-Abfrage des Schlosses

=== Clients ===

{|class="wikitable"
! Name
! Plattform
! Installation
|-
| Trigger
| Android
| [https://f-droid.org/en/packages/com.example.trigger/ F-Droid] [https://github.com/mwarning/trigger GitHub]
|}

=== Status-Anzeige ===

Format: JSON
<pre>
{
"latch": "OPEN|CLOSED|UNKNOWN",
"lock": "UNLOCKED|LOCKED|UNKNOWN"
}
</pre>


[[Category:Projekt]]
[[Category:Projekt]]

Revision as of 20:07, 20 September 2020

Hardware

  • Raspberry Pi Zero W
  • «Eqiva BLUETOOTH SMART» Türschlossantrieb
  • Lichtschranke im Türrahmen
  • Pogopin-«Kontaktsensor»

Türschlossantrieb

  1. Das Bluetooth-Modul (zu sehen in Abb. 5) wurde entfernt. Lötarbeiten sind nicht notwendig, der Chip lässt sich einfach mit einem Seitenschneider vom PCB trennen.
  2. An die folgenden Testpads wurden Drähte angelötet und ins Batteriefach geführt:
    • MP10 (Taster «Öffnen»)
    • MP11 (Taster «Schliessen)
    • MP16 (GND)
    • MP17 (Vcc)

Lichtschranke

  • Die beiden Lichtschrankenteile wurden in einer 3D-gedruckte Halterung befestigt.
  • Die Halterung wurde durch das Loch für den Riegel in den Rahmen geführt und von aussen durch bereits existierende Löcher mit Schrauben befestigt.
  • Die Kabel der Lichtschranke wurden durch ein ebenfalls bereits existierendes Loch nach aussen geführt.

Kontaktsensor

  • Der Kontakt zwischen Tür und Rahmen wird mittels 4 Pogopins realisiert.
  • Die 4 Kontakte erfüllen 2 Zwecke:
    • Erkennen, ob die Tür geschlossen ist (Pogopin-Kontakt).
    • Erkennen, ob die Tür abgeschlossen ist (Anschluss der Lichtschranke via Pogopins).

Software

  • Python-Skript zum öffnen/schliessen via Raspi-GPIO-Pins
  • Ansteuerung via SSH Pubkey + ForceCommand
    • ssh open@<door> → öffnet das Schloss
    • ssh close@<door> → schliesst das Schloss
    • ssh status@<door> → Status-Abfrage des Schlosses
  • Ansteuerung via SSH (Alternative für Kompatibilität mit der «Trigger»-App)
    • ssh door@<door> open → öffnet das Schloss
    • ssh door@<door> close → schliesst das Schloss
    • ssh door@<door> status → Status-Abfrage des Schlosses
  • Ansteuerung via TLS Client Certificate + HTTP cgi-bin
    • https://<door>/door/open.py → öffnet das Schloss
    • https://<door>/door/close.py → schliesst das Schloss
    • https://<door>/door/status.py → Status-Abfrage des Schlosses

Clients

Name Plattform Installation
Trigger Android F-Droid GitHub

Status-Anzeige

Format: JSON

{
  "latch": "OPEN|CLOSED|UNKNOWN",
  "lock": "UNLOCKED|LOCKED|UNKNOWN"
}