Raspberry Pi 3 Garagentoröffner - Gunook
Raspberry Pi 3 Garagentoröffner - Gunook
Anonim
Raspberry Pi 3 Garagentoröffner
Raspberry Pi 3 Garagentoröffner

Ich habe dieses instructable im Jahr 2014 erstellt. Seitdem hat sich viel geändert. 2021 habe ich hier den Smart Garagentoröffner aktualisiert.

Verwenden Sie einen Raspberry Pi und ein Smartphone, um ein Garagentor zu öffnen, zu schließen und zu überwachen. Das Öffnen und Schließen der Tür wird durch selbstsignierte Zertifikate gesichert, die auf den Mobiltelefonen der Familie installiert sind. Wenn das Garagentor geöffnet ist, obwohl es nicht sein sollte, dann senden Sie eine Textnachricht (SMS) an ein Mobiltelefon.

Das Garagentor ist seit Ende 2014 im Dauereinsatz. Im Laufe der Jahre habe ich versucht, die Veränderungen aktuell zu halten. Es gibt einen Anhang, der die Änderungen an der instructable beschreibt.

Die Ziele dieses Projekts sind:

  • Machen Sie mein erstes instructable - ich hatte nicht vor, dies zu veröffentlichen, aber ich habe viele Anfragen erhalten
  • Öffnen Sie ein Garagentor mit einer Standard-Fernbedienung
  • Öffnen Sie ein Garagentor mit dem an der Wand montierten Türklingel-Garagenöffner
  • Öffnen Sie ein Garagentor mit einem SmartPhone
  • Überwachen Sie den Status des Garagentors aus der Ferne über ein Handy oder einen Laptop (ist es geöffnet oder geschlossen?)
  • Schicke mir eine SMS an mein Handy, wenn die Tür offen ist, wenn sie geschlossen werden soll
  • Halten Sie das Garagentor sicher (z. B. bei Stromausfall sollte das Tor nicht öffnen)
  • Erlauben Sie niemandem im Netz, die Tür zu öffnen (zwei-Wege-selbstsigniertes SSL-Zertifikat)
  • Verwenden Sie WLAN anstelle einer kabelgebundenen Verbindung
  • Verwenden Sie einen Raspberry Pi 3

Die Grundlage für diese Garagentoröffner-Implementierung wurde aus dem Instructable abgeleitet: Raspberry Pi Garagentoröffner von Quartarian. Ursprünglich habe ich ein Raspberry Pi Modell B+ verwendet, bin dann auf ein Raspberry Pi 2 Modell B umgestiegen, und jetzt verwendet es einen Raspberry Pi 3.

Ich habe ein MacBook verwendet, um mit dem Raspberry Pi zu kommunizieren, aber jeder Computer kann verwendet werden.

Es gibt keinen zwingenden Grund, dieses Gerät zu bauen, aber es hat Spaß gemacht. Es ist kostengünstiger, einen zu kaufen. Ein ähnliches Gerät kann für etwa 130 USD erworben werden.

  • Aufzugsmeister 828LM
  • Chamberlain MyQ $129
  • GoGo-Gate 179 $
  • Handwerker $100

Anmerkungen:

  • Text, der in Pik eingeschlossen ist, wie dieser ♣replace-this♣ sollte durch einen tatsächlichen Wert ersetzt werden
  • Arduino unterstrichener blauer Text ist ein Link. In diesem Fall ist es ein Link zu einer Arduino-Version eines Garagentoröffners.
  • Ich habe versucht, jede verwendete Quelle anzugeben. Ich entschuldige mich für etwaige Auslassungen. Der Großteil dieses Dokuments basiert auf der Arbeit anderer Personen.
  • $ bezeichnet einen Befehl, der in einem Terminalfenster auf dem MacBook ausgeführt wird und normalerweise auf dem Raspberry Pi ausgeführt wird

Schritt 1: Teile sammeln

Kaufen oder sammeln Sie Teile und Werkzeuge (Preise in USD).

  • Raspberry Pi 3 Modell B Newark Element14 $ 35
  • 5,2V 2,5A USB-Netzteil von Amazon $9.99
  • Micro-USB-zu-USB-Kabel 6ft von Amazon 7,99 $
  • Hülle von Amazon $6.99
  • SanDisk Ultra 16 GB microSDHC Klasse 10 mit Adapter (SDSQUAN-016G-G4A) von Amazon 8,99 €
  • SunFounder 2 Kanal 5V Relais Schildmodul für Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $6.79
  • 3x weiblich-weiblich Überbrückungsdrähte. Gekauft bei Fry für 4,95 $.
  • Dynamisches DNS 40 USD pro Jahr für 30 Namen (dyn.com)
  • 1-Gang 18 cu. in. Old Work Heavy Wandschalter und Outlet Box, $ 3,12
  • Ultra Pro Single Brush Weißer Wandteller, $7.88
  • SECO-LARM SM 226L, Garagentorsensor, Preis variiert stark, 9,99 $ bei Amazon mit kostenlosem Versand
  • 50 Fuß festes Thermostatkabel, Home Depot oder Lowe's, ~ $ 20

Mein Gesamtbetrag: ~172,00 $

Ich hatte folgende Teile, Werkzeuge und Dienstleistungen:

  • CAT5-Ethernet-Kabel
  • Kleiner Draht, 6 Fuß lang
  • Kreuzschlitzschraubendreher
  • Spitzzange
  • Kastenschneider
  • Juwelier-Senkkopfschraubendreher, wird zum Lösen der Schrauben am Relais benötigt
  • MacBook (ein PC kann verwendet werden)
  • AT&T GigaPower (jeder Internetdienstanbieter kann verwendet werden)

Schritt 2: Raspberry Pi ohne Monitor oder Tastatur einrichten

Raspberry Pi ohne Monitor oder Tastatur einrichten
Raspberry Pi ohne Monitor oder Tastatur einrichten

Alle Raspberry Pi-Projekte erfordern eine Art von Einrichtung. Ich verwende gerne dieselben Anweisungen und habe bei Bedarf einen Ort, um diese Anweisungen zu aktualisieren.

Richten Sie Raspberry Pi mit dem folgenden instructable ein:

Raspberry Pi ohne Monitor oder Tastatur einrichten

Das obige anweisbare enthält optionale Schritte im Anhang. Führen Sie unbedingt den Schritt aus:

Clientseitige Zertifikate zu Webservern hinzufügen

Raspberry Pi. herunterfahren

$ sudo Herunterfahren -h 0

Nach dem Herunterfahren entfernen

  • Ethernet Kabel
  • Serielles USB-Kabel

Diese werden nicht mehr benötigt. Verwenden Sie WLAN, ssh und ein Terminalfenster auf dem Mac Book, um Befehle auf dem Raspberry Pi auszuführen.

Trennen Sie die Stromversorgung und schließen Sie die Stromversorgung wieder an, und Raspberry Pi sollte neu starten.

Schritt 3: Installieren Sie Wiring Pi, Apache und PHP

Verkabelung installieren Pi

Öffnen Sie ein Terminalfenster auf dem Mac Book. Melden Sie sich bei Raspberry Pi an, laden Sie dann Wiring Pi herunter, kompilieren und installieren Sie es. Diese Software ermöglicht die Steuerung der GPIO-Pins. Hier ist eine Schritt-für-Schritt-Anleitung:

wiringpi.com/download-and-install/

Hier ist eine komprimierte Version der Anleitung:

$ ssh pi@♣raspberry-pi-ip♣

Passwort: ♣Passwort♣ $ sudo apt-get install git-core $ git clone git://git.drogon.net/wiringPi $ cd wiringPi $ git pull origin $./build

Führen Sie den gpio-Befehl aus, um die Installation zu überprüfen:

$ gpio -v

gpio-Version: 2.29 Copyright (c) 2012-2015 Gordon Henderson Dies ist kostenlose Software mit ABSOLUT KEINE GARANTIE. Für Details Typ: gpio -Garantie Raspberry Pi Details: Typ: Modell 2, Revision: 1.1, Speicher: 1024 MB, Hersteller: Sony [OV] Gerätebaum ist aktiviert. Dieser Raspberry Pi unterstützt den GPIO-Zugriff auf Benutzerebene. -> Weitere Informationen finden Sie in der Man-Page $ gpio readall +-----+-----+---------+------+------+----- Pi 2---+---+------+---------+-----+-----+ | BCM | wPi | Name | Modus | V | Physisch | V | Modus | Name | wPi | BCM | +-----+-----+---------+------+---+----++----+---+- -----+---------+-----+-----+ | | | 3.3v | | | 1 || 2 | | | 5v | | | | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5V | | | | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | | | 4 | 7 | GPIO. 7 | AUS | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 | | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 1 | IN | GPIO. 4 | 4 | 23 | | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | | | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | | | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 | +-----+-----+---------+------+---+----++----+---+- -----+---------+-----+-----+ | BCM | wPi | Name | Modus | V | Physisch | V | Modus | Name | wPi | BCM | +-----+---+---------+---+---+-----Pi 2---+-----+--- ---+---------+-----+-----+

Die obigen Befehle sollten Ihnen ein gewisses Vertrauen geben, dass wiringPi in Ordnung funktioniert.

Apache und PHP installieren

Führen Sie die folgenden Befehle aus:

$ cd..

$ sudo apt-get update $ sudo apt-get install apache2 php5 libapache2-mod-php5

Um zu überprüfen, ob der Webserver funktioniert, öffnen Sie einen Browser und geben Sie in das URL-Feld ein:

♣himbeer-pi-ip♣

Die Standard-Website von Apache antwortet mit "It Works!"

Schritt 4: Webseite

Öffnen Sie ein Terminalfenster auf dem Mac Book. Melden Sie sich bei Raspberry Pi an, entfernen Sie dann die Standarddatei index.html, ändern Sie die Berechtigungen im Website-Verzeichnis und bearbeiten Sie eine Datei namens index.php.

$ ssh pi@♣raspberry-pi-ip♣

Passwort: ♣Passwort♣ $ sudo rm /var/www/index.html $ sudo chown pi:root /var/www $ sudo nano /var/www/index.php

Und gib folgenden Code ein:

Garagenöffner

Heimautomatisierung

<?php if ($switch == 1) { echo"

"; } sonst { echo"

"; } ?>

Garagentor-Öffner Handbuch für Garagentoröffner geschlossen 1 offen 0
<?php if ($trigger == 0) { echo " <td colspan=\"4\" } else { echo"

var13 -->

STRG-o und ENTER, um die Datei zu schreiben, und STRG-x, um den Editor zu verlassen.

Berechtigungen für die Datei ändern

$ sudo chmod 664 /var/www/index.php

Schritt 5: Website-Image

Website-Bild
Website-Bild
Website-Bild
Website-Bild

Holen Sie sich einen hochauflösenden Garagentor-Fernöffner aus dem Internet. Ändern Sie das Bild wie gewünscht mit dem Mac-Pinsel. Im Bild oben wurde ein hochauflösender Genie Garage Opener verwendet, ein Himbeer-Pi-Logo hinzugefügt und die LED entfernt.

Ein Bild ist der Hintergrund (remote-background.jpg) und das andere ist das aktive Bild (remote-press.jpg).

Der Plan war, dass die Himbeere auf Knopfdruck blinkt, anstatt die LED zu blinken. Ich habe die Website vereinfacht.

Kopieren Sie die Bilder auf den Himbeer-Pi:

$ scp *-j.webp

Passwort: ♣Passwort♣

Die Website verfügt über einen einzigen Druckknopf. Öffnen Sie zur Überprüfung einen Browser und geben Sie ♣raspberry-pi-ip♣ ein. Anstelle der Standard-Website von Apache, auf der "It Works!" steht, sollte die Schaltfläche erscheinen. Drück es.

Schritt 6: Webserver aus der Ferne steuern

Um den Zugriff auf den Garagentoröffner von einem entfernten Standort aus zu vereinfachen, verwende ich einen dynamischen DNS-Namen. Weil ich mich nicht gerne an IP-Adressen erinnere.

Mit dieser Funktion gebe ich ♣dynamic-hostname♣.getmyip.com in das URL-Feld eines Browsers ein. Hinweis: Die IP auf Heimrouter kann sich ohne Vorankündigung ändern, dies geschieht jedoch selten. Ich habe mich für DynDNS entschieden. Sie müssen die öffentliche IP-Adresse Ihres Routers kennen.

U-Verse Router IP: ♣uverse-public-ip♣

Sie können Ihre Hostnamen und DynDNS Pro-Kontodetails anzeigen. Hier sind ein paar Tipps für den Anfang:

  • Erstellen Sie Ihren Dynamic DNS-Hostnamen (1 von 30):

    • ♣dynamischer-Hostname♣
    • Updater-Schlüssel: ♣dynamic-ip-updater-key♣
  • Installieren Sie einen Update-Client, um sicherzustellen, dass Ihr Hostname immer auf die richtige IP-Adresse verweist.

    • Herunterladen und auf MacBook installieren
    • AT&T U-verse IPs ändern sich selten, daher kann der obige Updater ausgeführt werden, wann immer er sich ändert
    • Folge den Richtungen:

      • Konto hinzufügen
      • Geben Sie Benutzername und Passwort ein: ♣dynamic-ip-username♣ ♣dynamic-ip-password♣
      • Hostnamen auswählen
      • Klicken Sie auf Ausgewählte Hosts konfigurieren
      • Der Gastgeber sollte aktiv werden
    • Konfigurieren Sie Ihr Netzwerk, um den Zugriff auf Ihr Gerät aus dem Internet zu ermöglichen. Sie können unseren Dyn-Assistenten verwenden, um einige allgemeine Anweisungen dazu zu erhalten, Ressourcen wie PortForward.com verwenden oder sich an den Hersteller des Geräts wenden, um Hilfe zu erhalten.

      • AT&T U-Vers
      • Portweiterleitung für 2-Draht 3801HGV - das ist der AT&T U-Verse Router, den ich habe. Informationen zur Portweiterleitung auf dem AT&T U-verse 5268ac-Router finden Sie unter Updates in einem Anhang.
      • Öffnen Sie den Browser und gehen Sie zu ♣raspberry-pi-ip♣
      • Passwort: ♣Passwort♣
      • Einstellungen
      • Firewall

        • Wählen Sie ♣raspberry-pi-hostname♣
        • Server

          • Webserver-Port 80
          • HTTPS-Server - Port 443
        • Hinzufügen
      • Speichern

Sobald dies erledigt ist, arbeitet der Webserver über das Internet. Um dies zu überprüfen, geben Sie ♣dynamic-hostname♣ ein und Sie sollten die Garagentoröffner-Schaltfläche sehen.

Schritt 7: Verdrahten Sie die Schaltung mit dem Raspberry Pi

Verdrahten Sie die Schaltung mit dem Raspberry Pi
Verdrahten Sie die Schaltung mit dem Raspberry Pi

Für den bereitgestellten Code (Schritt 4 und 6) habe ich GPIO-Pin 7 verwendet. Es ist Zufall, dass GPIO 7 mit wiringPi-Pin 7 identisch ist. Sie können einen beliebigen verwenden, aber achten Sie darauf, den Code zu ändern.

Ich habe es mit verdrilltem Draht versucht, aber das Relais hält nicht gut auf verdrilltem Draht. Massivdraht ist besser.

Bei meinem ersten Versuch habe ich drei Verbindungskabel (weiblich-zu-männlich) erstellt.

  • Verwenden Sie drei Überbrückungskabel von Buchse zu Buchse
  • Schneiden Sie drei Stücke massiven Draht auf etwa 1 Zoll.

    Streifen Sie 1/4 Zoll an beiden Enden des massiven Drahtes ab

  • Stecken Sie einen massiven Draht in ein weibliches Überbrückungskabel.

Hier ist eine bessere Möglichkeit, Verbindungskabel (weiblich-zu-männlich) zu erstellen:

  • Nur Massivdraht verwenden
  • Schneiden Sie drei 4-Zoll-Stücke aus massivem Draht
  • Abisolieren von 1/4 Zoll an beiden Enden des massiven Drahtes
  • Verwenden Sie weibliche Verbindungsstifte

    • Schieben Sie einen weiblichen Verbindungsstift auf ein Ende des Massivdrahts und crimpen Sie

      Der Buchsenstift sollte sich nicht lösen, ggf. löten

    • Zugentlastung mit Elektrikerklebeband über Anschlussbuchse oder Abdeckstift schieben

Verdrahten Sie das Relais wie im Diagramm gezeigt mit dem Pi:

  • Verbinden Sie das weibliche Ende des Kabels mit dem Raspberry Pi-Pin.
  • Führen Sie einen massiven Draht in das Relais ein.

Schritt 8: Erstellen Sie einen Startdienst

Die meisten Relais, einschließlich des gekauften, funktionieren wie folgt:

  • Wenn das Signal eingeschaltet ist, bleibt der Stromkreis ausgeschaltet.
  • Wenn das Signal AUS ist, ist die Schaltung eingeschaltet.

Wenn der Raspberry Pi Strom verliert, verfügt das Relais über einen Sicherheitsmechanismus, der den Stromkreis ausgeschaltet hält.

Ein Problem kann auftreten, wenn der Rapberry Pi und das Relais wieder mit Strom versorgt werden, aber bevor der Raspberry Pi den Bootvorgang abgeschlossen hat, um das Signal einzuschalten, das den Stromkreis ausgeschaltet halten muss. Sie könnten morgens mit geöffneter Garage und möglicherweise ein paar neuen Freunden aufwachen!

Das Relais initialisiert sich jedoch erst dann, wenn der GPIO-Pin-Modus über diesen Befehl eingestellt wird: gpio mode 7 out. Wenn der GPIO-Pin auf ON (gpio write 7 1) gesetzt ist, bevor Sie den GPIO-Modus einstellen, bleibt das Relais nach der Initialisierung ausgeschaltet.

Um diese Initialisierung beim Booten auszuführen und nicht mit neuen Freunden aufzuwachen, verwenden Sie das folgende Startskript.

$ ssh pi@♣raspberry-pi-ip♣

$ sudo nano /etc/init.d/garagerelay

Fügen Sie dann dieses Skript ein:

#! /bin/bash

# /etc/init.d/garagerelay # Führt bestimmte Funktionen aus, wenn das System dazu aufgefordert wird "$1" beim Start) echo "Starting Relay" # Schalte 7 ein, wodurch das Relais ausgeschaltet bleibt /usr/local/bin/gpio write 7 1 #Starte Gpio /usr/local/bin/gpio-Modus 7 out;; stop) echo "Gpio stoppen";; *) echo "Verwendung: /etc/init.d/garagerelay {start|stop}" exit 1;; esac-Ausgang 0

Zum Speichern: STRG-o, ENTER

Um nano zu beenden, STRG-x

Machen Sie die Datei ausführbar:

$ sudo chmod +x /etc/init.d/garagerelay

Sagen Sie Ihrem Pi nun, dass es dieses Skript beim Booten ausführen soll:

$ sudo update-rc.d -f garagerelay start 4

(Hinweis: Sie können die Warnung "fehlende LSB-Tags" ignorieren.)

Stellen Sie sicher, dass das Startskript ausgeführt wird

$ sudo Neustart

Öffnen Sie einen Browser und klicken Sie auf den Öffner. Das Relais sollte klicken.

Schritt 9: Raspberry Pi an die Garage anschließen

Raspberry Pi an die Garage anhängen
Raspberry Pi an die Garage anhängen

Führen Sie beim Verschieben des Raspberry Pi unbedingt Folgendes aus:

$ Herunterfahren -h 0

Möglicherweise möchten Sie die Stromversorgung der Garage ausschalten. Der Türklingelöffner verursacht also keinen Stromschlag:). Der wahre Grund ist, dass die Tür jedes Mal, wenn Sie die Drähte kurzschließen, auf und ab geht.

Lösen Sie die Wandschrauben des Türklingelöffners, der die Türklingel an der Wand befestigt.

Stechen Sie ein Loch von der Garage hinter dem Türklingelöffner in das Innere des Hauses. In Texas sollte der Raspberry Pi nicht in der Garage stehen, die Temperaturschwankungen in der Garage liegen außerhalb der Betriebsspezifikationen des Raspberry Pi.

Führen Sie die Relaisdrähte durch das Loch (verwenden Sie einen Kleiderbügel).

Lösen Sie die beiden Schrauben auf der Rückseite des Türklingelöffners.

Beide Enden der Relaisdrähte abisolieren: 1) etwa 1/8 Zoll von der Relaisseite und etwa ½ Zoll von der Türklingelseite. Biegen Sie die Türklingelseite des Drahtes zu einer halben Schlaufe, die groß genug ist, um um die hintere Schraube zu passen.

Schließen Sie ein Relaiskabel an jede Schraube auf der Rückseite der Türklingel an und ziehen Sie die Schraube fest. Die Anschlüsse sind wie im Bild gezeigt. Da das Relais den Stromkreis isoliert, spielt die Richtung keine Rolle, welches Relais an welcher Schraube befestigt ist.

Schritt 10: Raspberry Pi an SECO-LARM anschließen

Raspberry Pi an SECO-LARM anschließen
Raspberry Pi an SECO-LARM anschließen
Raspberry Pi an SECO-LARM anschließen
Raspberry Pi an SECO-LARM anschließen

Bevor ich den Code fertig hatte, waren meine Familie und ich im Urlaub und ich öffnete meinen Browser. Die letzte Ansicht meines Browsers war der Garagentoröffner - die Seite wurde aktualisiert und das Garagentor geöffnet. Ein paar Tage später rief ein Nachbar an und fragte, ob das Garagentor geöffnet werden soll? Zum Glück konnte ich es aus 500 Meilen Entfernung schließen.

Dieser Snafu zwang mich, den Code zu ändern, damit dies nicht passiert, und einen Sensor und den Zustand des Garagentors zur Website hinzuzufügen.

Dies ist ein Link zum ursprünglichen anweisbaren zum Hinzufügen eines Sensors. Da jedoch alles bereits abgeschlossen ist, kann die Installation des Sensors stark vereinfacht werden und anstelle von Python ein paar Codezeilen in die index.php einfügen.


Fatal error: Uncaught Error: Call to undefined function exec() in W:\www\langs\.php-gen-lang\v3-core\macros.php(127) : eval()'d code:518 Stack trace: #0 W:\www\langs\.php-gen-lang\v3-core\macros.php(127): eval() #1 W:\www\langs\.php-gen-lang\v3-core\index-global.php(231): Macros->macros_parse('<!DOCTYPE html>...') #2 W:\www\langs\howwhatproduce.com\howwhatproduce.com\index.php(9): require_once('W:\\www\\langs\\.p...') #3 {main} thrown in W:\www\langs\.php-gen-lang\v3-core\macros.php(127) : eval()'d code on line 518