Garagentüröffner

27 Schritt:Schritt 1: Fehlersuche & Unique Daten Schritt 2: Teile Schritt 3: Erste Schritte Schritt 4: Kühlkörper und Chassis Schritt 5: Verkabelung und Strom Schritt 6: Startup Schritt 7: Raspi-config Schritt 8: WiFi Schritt 9: Setup WiFi Schnittstelle Datei- Schritt 10: WPA Supplicant Konfigurationsdatei Schritt 11: Schalten Sie WLAN Power Management Schritt 12: Crontab wifi zurückgesetzt, wenn etwas schlecht geht Schritt 13: Verdrahtung Pi, Apache und PHP Schritt 14: Website- Schritt 15: [optional] Verbessern Website Schritt 16: [optional] Remotesteuerung Webserver Schritt 17: Aktivieren Sie SSL und Zertifikat generieren (HTTPS) Schritt 18: Erstellen von Server / Client-Zertifikatspaar mit OpenSSL Schritt 19: Fügen Sie clientseitiges Zertifikat, Geräte Schritt 20: Disable Port 80 Schritt 21: Disable Port-Weiterleitung in WiFi Router Schritt 22: Verbinden Sie den Stromkreis an den Raspberry Pi Schritt 23: Erstellen Sie ein Startup-Service Schritt 24: Befestigen Sie Raspberry Pi zu der Garage Schritt 25: Befestigen Sie Raspberry Pi zu SECO-LARM Schritt 26: Senden von Alarmmeldungen, wenn Tür durch Google Mail-Konto geöffnet ist Schritt 27: Setzen Raspberry Pi in Geheimschrift

Garagentüröffner

Die Ziele des Projekts sind:

Machen Sie meine erste instructable - ich habe nicht auf dieses Posting zu planen, aber ich habe viele Anfragen erhielt Öffnen eines Garagentors mit einem Standard-Fern Öffnen Sie ein Garagentor mit der Wand montiert Türklingel Garagentoröffner Öffnen Sie ein Garagentor mit einem SmartPhone-Monitor den Status der das Garagentor aus der Ferne über ein Mobiltelefon oder Laptop (es ist offen oder geschlossen?) Halten Sie das Garagentor sicher (zB bei Stromausfall die Tür nicht öffnen sollte) Lassen Sie niemanden sonst auf dem Netz, um die Tür zu öffnen (zwei Weg selbst signiertes SSL-Zertifikat) Verwenden WiFi anstelle einer Kabelverbindung Verwenden Sie eine Raspberry Pi
Die Grundlage für diese Garagentüröffner Umsetzung wurde von der Instructable abgeleitet: Raspberry Pi Garagentüröffner von quartarian. Allerdings konnte ich ein Modell A Raspberry Pi durch quartarian verwendet nicht bestellen. Anstatt also habe ich ein Modell B + Raspberry Pi. Die B + ist eine neuere Version und hat mehr USB-Ports, die einige der Schritte vereinfacht.
Viele der Schritte sind wahrscheinlich zu offensichtlich.
Der Wechsel von einem A zu einem B + Plattform verursachte einige Änderungen vom ursprünglichen Anweisungen quartarian ist.
Ich habe ein MacBook mit dem Rspberry Pi kommunizieren, aber jeder beliebige Computer verwendet werden.
Es gibt keinen zwingenden Grund, dieses Gerät zu bauen, aber es hat Spaß gemacht. Es ist kostengünstiger, einen zu kaufen. Eine ähnliche Vorrichtung kann für ca. € 130 USD erworben werden.
Lift Master 828LM Chamberlain MyQ 129 € GoGo-Tor 179 € Craftsman 100 €
Bitte beachten Sie: In diesem Dokument
Text eingeschlossen in sollte mit einem tatsächlichen Wert ersetzt Arduino unterstrichen blauen Text ist ein Link. In diesem Fall ist es ein Link zu einem Arduino-Version eines Garagentoröffner. Ich habe versucht, jede verwendete Quelle gutschreiben. Ich entschuldige mich für Auslassungen. Die meisten von diesem Dokument ist auf die Arbeit anderer Personen. $ Zeigt einen Befehl auf dem Raspberry Pi ausgeführt

Schritt 1: Fehlersuche & Unique Daten


  1. Bitte Beachten Sie:
    Text Klammern [] in sollte mit einem tatsächlichen Wert ersetzt werden. Also, sollten [Kennwort] mit einem echten Passwort Ich habe versucht, jede verwendete Quelle Kredit ersetzt werden. Ich entschuldige mich für Auslassungen. Fast alle von diesem Dokument ist auf die Arbeit anderer Personen. $ Zeigt einen Befehl auf dem Raspberry Pi ausgeführt, während ich war immer dies funktioniert, bezog ich mich auf diese Daten viel, so dass ich es am Anfang
    Festplattenspeicher, RAM und CPU verwendet
    Letzte Zeile zeigt Gesamtspeicherplatz benutzt. SD-Karte verfügt über 8 GB.
    $ Cd ../ ..
    $ Sudo du -HX -c
    Zeigt, RAM und CPU-Auslastung
    $ Top
    Dynamische IP-Adresse Login
    Username = [Benutzername]
    Password = [Kennwort]
    Garagentor öffnet sich nicht
    Ziehen Sie das Netzkabel von Raspberry Pi, und dann wieder einzuschalten. Raspberry Pi sollte in weniger als 2 Minuten neu gestartet, und alles sollte okay sein.
    Logs
    Wenn etwas schief geht, überprüfen Sie diese Protokolle für Fehler, Warnungen oder andere Probleme.
    $ cat / var / log / messages
    $ Cat / var / log / syslog
    $ Cat / var / log / dmesg
    Passwort
    Password = [Raspberry Pi Kennwort]
    MAC-Verzeichnis
    Verzeichnis auf dem MacBook Website-Dateien gespeichert sind
    MAC Directory = / Users / [mein MacBook] / Desktop / Wi-Fi-fähigen home / wifi aktiviert Garagentoröffner / Webseite
    Raspberry Pi Home-Verzeichnis
    $ Pwd
    / Home / pi
    Raspberry Pi-Hostnamen
    $ Hostname
    hostname = [Hostname]
    Raspberry Pi Login von MacBook:
    Raspberry Pi IP = 192.168.1.93
    Raspberry Pi Login von MacBook:
    Terminal ist ein MacBook Dienstprogramm: Festplatte / Programme / Dienstprogramme / Terminal
    Auf MacBook, offene Klemme
    ssh pi @ [U-Vers öffentlichen IP]
    [Kennwort]
    Ich habe AT & T U-Vers mit einem Router (oder Gateway), aber jeder Dienst arbeiten sollten
    Wenn die U-verse Router neu gestartet oder mit Strom versorgt wird, muss der Raspberry Pi neu gestartet werden.
    U-Vers öffentlichen IP = [öffentliche IP des Routers]
    Ein U-Vers öffentliche IP ändern kann, tut dies aber nur sehr selten
    U-verse Router Homepage = 192.168.1.254
    U-verse Router SSID = [SSID]
    U-Vers WiFi Router Login von MacBook
    Auf MacBook, offenen Browser
    URL = [Raspberry Pi IP]
    Login-Passwort]
    Website-Verzeichnis
    / Var / www
    WiFi schaltet unerwartet
    Ändern Router zu einem weniger genutzt Kanal. Standardmäßig sind alle Schaltungs
    wifi Anbieter tune jeden zu 1. Wechseln Sie in einer weniger gebrauchte Kanal Kanal, entweder 6 oder 11.
    Hinweis: Ich habe ein paar Nachbarn, was ich tat, um Wi-Fi zu verbessern und jetzt jeder auf 9, 10 oder 11, so dass ich wieder zurück nach 1. sollten Sie immer eine ungerade Kanal. Verwenden Sie keine 10. Arrgh!
    Öffnen Sie einen Browser.
    Für U-Vers, geben Sie 192.168.1.254 in das URL-Feld.
    Klicken Sie auf Wireless-Link, und wählen Sie Kanal 6 oder 11.
    Es gibt eine App für Smartphones genannt WiFi Analyzer. Eines der Displays zeigt alle in der Nähe WLAN Access Points sendet auf einem bestimmten Kanal. In meiner Nachbarschaft, jeder ist auf Kanal 1.
    Trennen Sie Raspberry Pi, und dann die Stromversorgung wiederherstellen
    Auf MacBook, offene Klemme
    ssh pi @ [U-Vers öffentlichen IP]
    [Kennwort]
    $ Iwconfig

Schritt 2: Teile


  1. Kaufen oder sammeln Teile und Werkzeuge.
    A) Raspberry Pi - Modell B + Start Kit - 59,99 €
    Enthält die neue Raspberry Pi Modell B + (B Plus) 512 MB - Made in UK (Sony Factory) 8 GB Samsung MicroSD-Karte - Raspberry Pi Foundation Empfohlen MicroSD-Karte mit den neuen NOOBS (New Out Of Box Software) CanaKit WiFi Dongle vorinstalliert (Ralink RT5370 Chipsatz) CanaKit 2.5A USB-Netzteil mit Micro-USB-Kabel speziell für den Raspberry Pi B + (UL Listed) High Quality Raspberry Pi B + Case, Premium-Qualität HDMI-Kabel, GPIO Quick Reference Card Case 2.5V Stromversorgung ausgelegt
    B) SunFounder 2-Kanal-5V Relais-Schild-Modul für Arduino UNO 2560 1280 PIC AVR ARM STM32 Raspberry Pi - 6,79 €
    5V 2-Kanal-Relais-Schnittstellenkarte, und jeder braucht Fahrer-15-20mA Aktuelle Ausgestattet mit Hochstrom-Relais, AC250V 10A; : DC30V 10A Standardschnittstelle, die direkt durch Mikrocontroller gesteuert werden kann (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL-Logik) Anzeige LED für Relaisausgangsstatus Link zum Herunterladen des Dokuments https: //app.box .com / s / tn34l4ub64ndeo1mb0ec
    C) 3x Buchse-Buchse Schaltdrähte (ich hasse Löten. Radio Shack 5,99 € nicht in meinem Speicher). Gekauft bei Frys für 4,95 €.
    D) [optional] Dynamic DNS 25 € pro Jahr für 30 Namen (dyn.com)
    E) 1-Gang 18 cu. in. Old Arbeitsschwerwandschalter und Anschlussdose, 3,12 €
    F) Ultra Pro einzigen Pinsel Weiße Wandplatte, 7,88 €
    G) SECO-LARM SM 226L, Garage Door Sensor variiert Preis weit, 9,99 € auf Amazon versandkostenfrei
    Meine Total: 117,72 €
    Ich hatte die folgenden Teile und Werkzeuge:
    H) Fernseher oder Monitor mit HDMI-Anschluss
    I) USB-Tastatur
    J) USB-Maus
    K) CAT5-Ethernet-Kabel
    L) Kleine Gauge-Kabel, 6 ft lang
    M) Kreuzschlitzschraubendreher
    N) Flachrundzange
    O) Box Schneider
    P) Jewelers Flathead Schraubendreher benötigt, um Schrauben an Relais lösen
    Q) MacBook
    R) AT & T U-verse

Schritt 3: Erste Schritte

  1. Garagentüröffner

    Check Parts
    Packen Sie Kasten und sicherzustellen, dass alle Teile vorhanden sind
    USB Keyboard
    Holen Sie sich eine USB-Tastatur. ~ 5 € bei Discount Electronics. Ich benutze eine kabellose Tastatur. Also, ich habe genug USB Keyboards herum.
    Installieren Sie SD Card
    Die ursprüngliche Garagentüröffner instructable brachte keine Schritte für die Einrichtung der Raspberry Pi haben, habe ich SETUP RASPBERRY B + durch printrbot932 für viele der folgenden Schritte.
    Auf der Rückseite des Raspberry PI, installieren Sie die SD-Karte wie unten gezeigt. Metallbelägen stellen Rückseite Raspberry Pi.
    Die SD-Karte gekauft kommt mit NOOBS vorinstalliert

Schritt 4: Kühlkörper und Chassis

  1. Garagentüröffner

    Kühlkörper
    Entfernen Sie das Klebeband und drücken Sie fest auf dem Prozessor. Der Kühlkörper und Chip sind fast gleich groß. Es war ziemlich offensichtlich wurden sollte sie gehen. Ich habe nicht ein Bild.
    Chassis
    Nehmen Chassis auseinander. Die Reihenfolge Version besteht aus drei Teilen: oben, unten und Mitte.
    Schieben Raspberry Pi in unteren Teil des Chassis
    Schieben Raspberry Pi in Boden. Es gibt zwei Clips auf dem Ende, wo die SD-Karte eingesetzt ist. Die Karte muss unter diesen Clips. Er gleitet in einfacher, keine Notwendigkeit, es zu erzwingen. Auch dies schien sehr einfach. So gibt es kein Foto.
    Es war gut, die pi in das Chassis zu halten, bis ich herausgefunden, einen besseren Ort dafür.

Schritt 5: Verkabelung und Strom

  1. Garagentüröffner

    Einstecken
    Stecken Sie das folgende in die Raspberry Pi:
    USB-Maus (nicht im Bild) USB-Tastatur WiFi HDMI-Kabel mit Ethernet-TV (dies erforderlich ist, bis wifi funktioniert)
    Netzkabel
    Nach jeder Sache eingesteckt ist, und stecken Sie das Netzkabel.

Schritt 6: Startup

  1. Garagentüröffner

    Garagentüröffner

    Start-Up
    Wenn darauf angetrieben wird einige Sekunden dauern, und zeigt eine Setup-Seite wählen raspbian dann auf Installieren.
    Ein Bestätigungsdialog erscheint, klicken Sie auf Ja.
    Die raspbian Betriebssystem (OS) Boot wird etwa 15 Minuten dauern.

Schritt 7: Raspi-config

  1. Garagentüröffner

    Raspi-config
    Sobald der Betriebssystemstart abgeschlossen ist, läuft einige OS Setup-Code für ein paar Minuten wird die Anzeige ein blaues zeigen einzurichten Seite.
    Verwendung Raspi-config change:
    Ich habe versucht, die Partition mit Raspi-config zu dehnen, wurde aber gesagt, das Betriebssystem nicht unterstützt diese. Nach Amerika, Central, Verwenden US English UTF 8 Password = [Kennwort] Internationalisierung Optionen Zeitzone - sonst bekommen Sie Britische Tastatur Shift 2 ist "Ich denke, \ ist # Erweiterte Optionen set: Wenn nötig, vielleicht kann ich diese später Change User Password tun Hostname [Raspberry Pi Hostname] aktivieren SSH
    Wählen Sie Fertig stellen und neu starten
    Ein schwarzer Bildschirm erscheint, und einige Code ausgeführt wird. Und Sie sollten mit dazu aufgefordert werden:
    [Raspberry Pi hostname] Login: pi
    Passwort: [Passwort]
    Und Sie sollten $ Prompt
    Entfernen GUI
    Entfernen Sie die GUI, um Speicher freizugeben. Wenn Sie eine große SD haben, können Sie diese überspringen. Die B + gestartet Kit kommt mit einer 8 GB SD-Karte. Um die GUI zu entfernen, geben Sie folgende Befehle ein:
    $ Sudo apt-get remove --purge x11-common
    $ Sudo apt-get autoremove
    Dadurch werden alle Pakete, die auf X11, die die meisten der GUI ist abhängen.

Schritt 8: WiFi


  1. Holen WiFi Parameter
    Setup Wifi
    Auf MacBook, öffnen Sie einen Browser und gehen Sie zu [U-verse Router Home Page]. Dies ist die WiFi-Seite für das AT & T U-Verse Router. Holen Sie sich das folgende von der Hauptseite, die im nächsten Schritt verwendet wird:
    SSID = "[U-verse Router SSID]"
    psk = "[Passwort]"
    # Protokolltyp kann sein: RSN (für WP2) und WPA (für WPA1)
    proto = WPA
    # Key-Management-Typ kann sein: WPA-PSK oder WPA-EAP (Pre-Shared oder Enterprise)
    key_mgmt = WPA-PSK
    # Paarweise kann CCMP oder TKIP (für WPA2 oder WPA1) sein
    paarweise = TKIP
    Setup WiFi Schnittstelle Datei-
    Die WiFi-Dongle ist problematisch. Erste das WiFi zuverlässig arbeiten war der schwierigste Teil des Projekts. Ich empfehle über eine Kabelverbindung statt WiFi.
    Setup wifi von der Kommandozeile, so dass die Kontrolle über die Raspberry Pi entfernt über MacBook, Terminal und ssh.
    Bearbeiten Sie die Konfigurationsdatei:
    $ Sudo nano / etc / network / interfaces
    In der Texteditor nano, werden Sie so etwas wie dies sehen:
    auto lo
    iface lo inet loopback
    iface eth0 inet dhcp
    Bearbeiten Sie die Datei so dass es wie folgt aussieht:
    auto lo
    iface lo inet loopback
    iface eth0 inet dhcp
    Wireless-Gerät aus
    Auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    WPA-conf /etc/wpa_supplicant/wpa_supplicant.conf
    Drücken Sie STRG + X, um die Datei zu speichern und das nano-Editor.

Schritt 9: Setup WiFi Schnittstelle Datei-


  1. Die WiFi-Dongle ist problematisch. Erste das WiFi zuverlässig arbeiten war der schwierigste Teil des Projekts. Ich empfehle über eine Kabelverbindung statt WiFi.
    Setup wifi von der Kommandozeile, so dass die Kontrolle über die Raspberry Pi entfernt über MacBook, Terminal und ssh.
    Bearbeiten Sie die Konfigurationsdatei:
    $ Sudo nano / etc / network / interfaces
    In der Texteditor nano, werden Sie so etwas wie dies sehen:
    auto lo
    iface lo inet loopback
    iface eth0 inet dhcp
    Bearbeiten Sie die Datei so dass es wie folgt aussieht:
    auto lo
    iface lo inet loopback
    iface eth0 inet dhcp
    Wireless-Gerät aus
    Auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    WPA-conf /etc/wpa_supplicant/wpa_supplicant.conf
    Drücken Sie STRG + X, um die Datei zu speichern und das nano-Editor.

Schritt 10: WPA Supplicant Konfigurationsdatei


  1. wpa_supplicant ist ein freies Software-Implementierung eines IEEE 802.11i Supplicant für Linux. An der Eingabeaufforderung geben Sie den folgenden Befehl ein:
    sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
    Vergleichen Sie den Inhalt der Datei, wenn es vorhanden ist, um den folgenden Code. Wenn die Datei leer ist, können Sie diesen Code verwenden, um sie zu füllen. Beachten Sie die Kommentarzeilen (durch die # Marken angegeben) zu verweisen, welche Variable sollten Sie auf Ihrem aktuellen WLAN-Knoten-Konfiguration verwenden.
    ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev
    update_config = 1
    network = {
    SSID = "[U-verse Router SSID]"
    psk = "[Passwort]"
    # Protokolltyp kann sein: RSN (für WPA2) und WPA (für WPA1)
    proto = RSN
    # Key-Management-Typ kann sein: WPA-PSK (Pre-Shared) oder WPA-EAP (Enterprise)
    key_mgmt = WPA-PSK
    # Paarweise kann CCMP oder TKIP (für WPA2 oder WPA1) sein
    paarweise = CCMP TKIP
    #Authorization Option sollte OPEN sowohl WPA1 / WPA2 (in weniger häufig verwendet werden, gemeinsam genutzt und LEAP)
    auth_alg = OPEN
    }
    Wenn Sie fertig sind Editieren der Datei, drücken Sie STRG + X, um zu speichern und das Dokument.
    An der Eingabeaufforderung geben Sie den folgenden Befehl ein:
    sudo reboot
    Wenn das Gerät neu gestartet wurde, sollte es automatisch eine Verbindung zum Wi-Fi-Knoten. Wenn aus irgendeinem Grund sie im Netzwerk angezeigt fehlschlägt, können Sie immer stecken Sie das Ethernet-Kabel wieder an, um überprüfen Sie die beiden Dateien und die Variablen, die Sie ändern.
    Auf einem Computer, öffnen Sie einen Browser und gehen Sie zu [U-verse Router Home Page]. Dies ist die WiFi-Seite für das AT & T U-Verse Router.
    Wenn alles gut geht, sobald Sie es einrichten und starten, wird Ihr pi eine IP-Adresse von Ihrem Router erhalten. Sie können diese IP Dazu suchen Sie in der DHCP-Tabelle zu finden und klicken Sie auf Details.
    Hinweis: Wenn der Raspberry Pi oder U-Vers-Router neu startet, wird die [Raspberry Pi hostname] IP-Adresse kann sich ändern. Aus diesem instructable, ist die IP-Adresse: [Raspberry Pi IP]
    Wenn Sie den Host-Namen [Raspberry Pi hostname] zu sehen, dann ist WiFi-Setup.

Schritt 11: Schalten Sie WLAN Power Management


  1. Diese instructable verwendet eine Ralink RT5370 USB WiFi Dongle.
    Es gibt auch andere Marken und Modelle von Wi-Fi-Dongle. Erste das WiFi-Dongle zu arbeiten, nahm bedeutende Versuch und Irrtum. Nach einer Zeit der Inaktivität, die weniger als 24 Stunden ist, kann Powermanagement weise Abschalten der wifi. Ohne Arbeits wifi, ist die Garage Opener nutzlos. Daher ist es notwendig, ständig abgeschaltet Power-Management auf wlan0.
    Befehl zu drehen Power-Management-off auf wlan0:
    $ Sudo iwconfig wlan0 Abschaltung
    Bestätigen Gerät ausgeschaltet ist
    $ Iwconfig
    Immer, wenn der Raspberry Pi neu gestartet wird, wird es auf "on" zurück. Permanent drehen wifi Power-Management-off:
    $ Sudo mkdir /etc/pm/power.d
    Bearbeiten einer Startdatei:
    $ Sudo nano /etc/pm/power.d/wireless
    Geben Sie die folgenden Zeilen:
    #! / Bin / sh
    / Sbin / iwconfig wlan0 Abschaltung
    Machen Sie die Datei ausführbar
    $ Sudo chmod + x /etc/pm/power.d/wireless
    Brauchen Sie, um das Skript zu einem Skript, das beim Booten ausgeführt wird hinzufügen:
    $ Sudo nano /etc/rc.local
    Fügen Sie die Zeile:
    /etc/pm/power.d/wireless

Schritt 12: Crontab wifi zurückgesetzt, wenn etwas schlecht geht


  1. Auch bei den vorherigen Schritten können wifi erlöschen. Diese Schritte fügen Sie einen Scheck an wifi wiederherzustellen, wenn etwas schief geht.
    Fügen Sie den folgenden an die blacklist.conf:
    $ Sudo nano /etc/modprobe.d/blacklist.conf
    Bearbeiten Sie wie folgt vor:
    Blacklist rt2x00usb
    Blacklist rt2x00lib
    Erstellen Sie ein Skript, um wlan0 wach zu halten.
    $ Sudo nano /usr/local/bin/testwifi.sh
    Gebe folgendes ein:
    #! / Bin / bash
    # Definieren Sie einen Zeitstempel-Funktion
    Zeitstempel-Funktion () {
    Datum '+% b% d% H:% M:% S'
    }
    TESTIP = 192.168.1.254
    ping -c1 $ {TESTIP}] / dev / null
    if [$? ! = 0]
    dann
    echo "$ (Zeitstempel) rpiGarageOpener: WiFi scheint nach unten, Neustart"]] /tmp/testwifi.log
    sudo / sbin / ifdown wlan0 --force
    Schlaf 10
    sudo / sbin / ifup wlan0
    sonst
    echo "$ (Zeitstempel) rpiGarageOpener: WiFi scheint in Ordnung"]] /tmp/testwifi.log
    fi
    exit 0
    Machen Sie die Datei ausführbar
    $ Sudo chmod ug + x /usr/local/bin/testwifi.sh
    oder
    $ Sudo chmod 0755 /usr/local/bin/testwifi.sh
    Machen /tmp/testwifi.log beschreibbar:
    $ Sudo chmod 666 /tmp/testwifi.log
    Crontab das Skript alle 2 Minuten laufen
    $ Sudo crontab -e
    und geben Sie alle 2 Minuten laufen lassen:
    * / 2 * * * * /usr/local/bin/testwifi.sh]] /tmp/testwifi.log
    CTRL-X und speichern Sie die Datei

Schritt 13: Verdrahtung Pi, Apache und PHP

  1. Garagentüröffner

    Entfernen Sie Ethernet-Kabel und benutzen WiFi
    Shutdown Raspberry Pi
    $ Sudo shutdown -h 0
    Nach Abschaltung, entfernen Sie das Ethernet-Kabel.
    Ziehen Sie den Netzstecker und Stromversorgung wieder in, und Raspberry Pi sollte neu starten.
    Install Wiring Pi
    Melde dich an, Raspberry Pi. dann laden, kompilieren und installieren Wiring Pi. Diese Software ermöglicht die Kontrolle über die GPIO-Pins. Hier ist eine Schritt-für-Schritt-Anleitung:
    http://wiringpi.com/downloman ad-and-install /
    Und die Anweisungen sind:
    sudo apt-get install git-core
    git clone git: //git.drogon.net/wiringPi
    cd wiringPi
    git pull Herkunft
    ./Build
    Führen Sie die GPIO-Befehl, um die Installation zu überprüfen:
    gpio -v
    gpio ReadAll
    Das obige Kommando sollte Ihnen einige Vertrauen, dass wiringPi funktioniert OK.
    Installieren Sie Apache und PHP über diese Befehle ein:
    cd ..
    sudo apt-get update
    sudo apt-get install apache2 php5 libapache2-mod-php5
    Um zu überprüfen, die Web-Server-Werke in einem Browser eingeben [Raspberry Pi IP]. Apaches mitgelieferte Website antwortet mit: "Es funktioniert!"

Schritt 14: Website-


  1. Laden Sie die Garage Opener Webseite
    Ändern Sie die Standard-Web-Server, so dass es das Relais in einem zukünftigen Schritt auslösen.
    Hier sind die Schritte für das Hochladen des Web-Servers:
    sudo rm /var/www/index.html
    sudo chown pi: root / var / www
    cd / var / www
    mkdir js
    mkdir css
    Auf einem MAC [PC Anweisungen unterschiedlich sind] klicken Sie auf diesen Link
    http://www.instructables.com/files/orig/FAO/O1ZT/HMMFCJE7/FAOO1ZTHMMFCJE7.zip
    Die ZIP-Datei wird in Download-Verzeichnis gespeichert. Ziehen Sie die Zip-Datei von Downloads auf [MAC Verzeichnis] ​​und doppelklicken Sie auf die ZIP-Datei. Die Dateien werden entpackt
    Freie Klemme im MAC (Programme / Dienstprogramme / Terminal)
    cd [MAC-Verzeichnis]
    Kopieren Sie alle Dateien von Mac zu Raspberry Pi. Jede Datei Kopie Passwort [Raspberry Pi hostname] erfordern:
    scp index.php pi @ [Raspberry Pi IP]: / var / www
    cp apple-touch-icon-ipad.png pi @ [Raspberry Pi IP]: / var / www
    scp apple-touch-icon-iphone-Retina-Display pi @ [Raspberry Pi IP]: / var / www
    scp apple-touch-icon-iphone.png pi @ [Raspberry Pi IP]: / var / www
    cd js
    scp * pi @ [Raspberry Pi IP]: / var / www / js
    cd ..
    cd css
    scp * pi @ [Raspberry Pi IP]: / var / www / css
    Der Web-Server hat einen einzigen Tastendruck. Um zu überprüfen, öffnen Sie einen Browser und geben Sie [Raspberry Pi IP]. Statt Apaches mitgelieferte Website, die sagt: "Es funktioniert!", Sollte die Schaltfläche angezeigt. Drücken Sie die Taste.

Schritt 15: [optional] Verbessern Website

  1. Garagentüröffner

    Garagentüröffner

    Die Website des Original instructable ist schlicht, aber funktional. Dieser Schritt ist optional. Auch c it / sollte verbessert werden.
    Meine Familie und ich waren im Urlaub und ich in meinem Browser geöffnet. Letzter Blick in meinem Browser war der Garagentoröffner - die Seite aktualisiert und Garagentor geöffnet. Ein paar Tage später ein Nachbar rief an und fragte, ob das Garagentor offen sein sollte? Glücklicherweise konnte ich sie von 500 Meilen entfernt zu schließen.
    Diese snafu mich gezwungen, den Sensor und den Zustand des Garagentor hinzuzufügen.
    Schnappen Sie sich einen hochauflösenden Fern Garagentoröffner aus dem Web. Ändern Sie das Bild, wie Sie möchten mit Mac Pinsel. In der folgenden Abbildung wurde eine hochauflösende Genie Garage Opener verwendet, ein Raspberry Pi-Logo wurde zugegeben und die LED wurde entfernt.
    Ein Bild ist der Hintergrund, und die andere ist das aktive Bild, wenn die Taste gedrückt wird. Auf Tastendruck, anstatt zu blinken der LED, die Himbeere blinkt.
    Kopieren Sie die Bilder auf den Raspberry Pi:
    scp * .jpg pi @ [Raspberry Pi IP]: / var / www
    geben Sie das Passwort aus Schritt 11
    Ändern Sie den Code wie folgt:
    style.css
    html, body {
    margin: 0px;
    padding: 0px;
    }
    header {
    margin-left: auto;
    margin-right: auto;
    width: 70%;
    display: block;
    }
    footer {
    margin-left: auto;
    margin-right: auto;
    width: 70%;
    display: block;
    }
    div.awrap {
    display: block;
    width: 400px;
    height: 400px;
    padding: 0px 0 0 0;
    background: url ('../ remote.jpg') links oben no-repeat;
    margin: 0px 0px 0px;
    text-align: center;
    }
    ein {
    display: block;
    width: 400px;
    height: 400px;
    padding: 0px 0 0 0;
    }
    a: active {
    background: url ('../ fern press.jpg') links oben no-repeat;
    }
    Kopieren Sie style.ccss an den Raspberry Pi:
    scp style.css pi @ [Raspberry Pi IP]: / var / www / css
    geben Sie das Passwort aus Schritt 11
    Hinzugefügt wurde die Triggervariable $ und überprüft, weil, wenn das Fenster geöffnet ist die Taste gedrückt wird. Ich möchte ausdrücklich den Knopf drücken.
    index.php
    <? Php
    $ Schalter = exec ('gpio lesen 3');
    if (isset ($ _ GET ['Trigger']) && $ _GET ['Trigger'] == 1) {
    error_reporting (E_ALL);
    exec ('gpio Schreib 7 0');
    usleep (1000000);
    exec ('gpio Schreib 7 1');
    $ Trigger = 1;
    } Else {
    $ Trigger = 0;
    }
    ?>
    <! DOCTYPE html>
    <Html>
    <Head>
    <Title] Garagentüröffner [/ title>
    <Link rel = "stylesheet" href = "/ css / style.css" type = "text / css">
    <Meta name = "apple-mobile-web-app-fähige" content = "yes">
    <Script type = "text / javascript" src = "/ js / jquery-1.10.2.min.js"> $
    <Script type = "text / javascript" src "/ js / script.js"> </ script>
    </ Head>
    <Body>
    <Div class = "container">
    <Div class = "header">
    Garagentüröffner
    <? Php
    if ($ Schalter == 1) {
    echo "öffnen 1";
    } Else {
    echo "geschlossen 0";
    }
    ?>
    </ Div>
    <Div class = "awrap>
    <? Php
    if ($ Trigger == 0) {
    echo "<a href='/?trigger=1'> </a>";
    } Else {
    echo "<a href='/'> </a>";
    }
    ?>
    </ Div>
    <Div class = "footer">
    <a href="acrobat_file.pdf"> Garagentüröffner Anleitung </ $
    </ Div>
    </ Div>
    </ Body>
    </ Html>
    Kopieren Sie index.php an die Raspberry Pi:
    scp index.php pi @ [Raspberry Pi IP]: / var / www
    Passwort eingeben]
    Kopieren Sie manual.pdf an den Raspberry Pi:
    scp manual.pdf pi @ [Raspberry Pi IP]: / var / www / manuell
    Passwort eingeben]

Schritt 16: [optional] Remotesteuerung Webserver


  1. Um den Garagentüröffner von einem entfernten Standort zugreifen zu können, verwende ich eine dynamische DNS-Namen. Weil ich weiß nicht wie die Erinnerung an IP-Adressen. Mit dieser Funktion geben Sie I [name] .getmyip.com in das URL-Feld des Browsers. Hinweis: Die IP auf Heim-Router können ohne vorherige Ankündigung geändert, aber das geschieht selten. Ich entschied mich zu bedienen DynDNS . Sie müssen die öffentliche IP-Adresse des Routers kennen.
    U-Verse Router IP: [U-Vers öffentlichen IP]
    Sie können Ihren Hostnamen und DynDNS Pro anzuzeigen Kontodaten . Hier sind ein paar Tipps, um loszulegen:
    Erstellen Sie Ihr Dynamic DNS Hostnamen (1 von 30):
    [Dynamische IP-URL] Updater Key: [dynamische IP-Updater-Taste] Installieren Sie ein Update-Client , um sicherzustellen, dass Ihr Hostname immer wies auf die richtige IP-Adresse. Downloaden und installieren Sie auf MacBook AT & T U-verse IPs selten ändern, so der Updater können oben ausgeführt werden, wann immer es ändern Befolgen Sie die Anweisungen: Fügen Konto Benutzername und Passwort eingeben: [dynamische IP-Benutzername] [dynamische IP-Passwort] Ausgewählte Select Hostname Klicken Sie auf Konfigurieren Hosts Die hosts sollte aktiv Configure werden Ihr Netzwerk den Zugriff auf das Gerät über das Internet zu ermöglichen. Sie können unsere verwenden Dyn Wizard für einige allgemeine Anweisungen, wie dies zu tun, verwenden Sie Ressourcen wie PortForward.com , oder kontaktieren Sie den Hersteller des Geräts wenden.
    AT & T U-verse Portweiterleitung für 2-Draht 3801HGV - das ist die AT & T U-Verse Router habe ich. Open-Browser und gehen Sie zu [Raspberry Pi IP] Kennwort: [Kennwort] Einstellungen Firewall
    Wählen Sie [Raspberry Pi hostname] Servers
    Web Server-Port 80 HTTPS Server - Port 443 hinzufügen Speichern
    Sobald dies geschehen ist, wird der Web-Server im Internet zu arbeiten. Um zu überprüfen, geben Sie [dynamische IP-URL] und Sie sollten Garagentoröffner Taste sehen.

Schritt 17: Aktivieren Sie SSL und Zertifikat generieren (HTTPS)


  1. Instructable auf dieser Stufe
    Generieren Sie ein Zertifikat für den Web-Server
    $ Sudo openssl genrsa -des3 -out server.key 1024
    Sie werden aufgefordert, eine Passphrase einzugeben. Diese Passphrase kann alles sein. Ich habe [Passwort]
    $ Sudo openssl rsa -in server.key -out server.key.insecure
    Re-enter Passphrase
    Der nächste Befehl erzeugt das Zertifikat und fragt mehrere Fragen (nur die FQDN Sachen):
    $ Sudo openssl req -new -Taste server.key -out server.csr
    $ Sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    Kopieren Sie das Zertifikat (CERT) in das SSL-Verzeichnis
    $ Sudo cp server.crt / etc / ssl / certs
    $ Sudo cp server.key / etc / ssl / private
    Weiterführende Literatur über SSL und Zertifikate
    SSL aktivieren
    $ Sudo a2enmod ssl
    $ Sudo a2ensite default-ssl
    Starten Sie Apache (Ich bin nicht sicher, welche zu benutzen. Also, ich habe beides)
    $ Sudo /etc/init.d/apache2 restart
    $ Sudo Service apache2 restart
    Öffnen Sie einen Browser und in das URL-Feld ein:
    https: // [IP Raspberry Pi] /
    Ein Zertifikat Warnung über sie nicht aus einer vertrauenswürdigen Quelle wird angezeigt. Weiter, eine Ausnahme machen und es sollte funktionieren.

Schritt 18: Erstellen von Server / Client-Zertifikatspaar mit OpenSSL


  1. Quellenbefehlen für diesen Schritt
    SSL-Verschlüsselung erleichtert und Vertrauen ermöglicht ein Web-Browser, um die Echtheit einer Website zu überprüfen. Allerdings können Client-SSL-Zertifikate verwendet, um eine mobile oder Laptop-Gerät an einen Web-Server zu authentifizieren.
    Ein Server / Client-Zertifikatspaar verhindert nicht autorisierte Benutzer das Öffnen des Garagentores aus. Für eine Client-Vorrichtung die Garagentür zu öffnen, muss er das Client-Zertifikat installiert.
    Schritt 20 und Schritt 21 könnte in der Lage, kombiniert werden können. Schritt 20 erstellt einen serverseitigen Zertifikat. Schritt 21 schafft sowohl eine serverseitige und clientseitigen Zertifikats.
    Auch könnte man, um eine eindeutige Client-Seite cert für alle Geräte oder Nutzer, die Ihnen erlauben, eine Lizenz zu einem späteren Zeitpunkt widerrufen erstellen.
    Öffnen Sie ein Terminal-Fenster auf dem Mac und Login-
    $ Ssh pi @ [Raspberry Pi IP]
    Login-Passwort]
    Entfernen Sie Schlüssel in vorherigen Schritt gemacht:
    $ Sudo rm server.key
    $ Sudo rm server.crt
    $ Sudo rm server.csr
    $ Sudo rm server.key.insecure
    Generieren Certificate Authority (CA)
    Vor der Erstellung Server / Client-Zertifikat, Setup ein selbstsigniertes Certificate Authority (CA), die verwendet werden können, um die Server / Client-Zertifikate signieren. Einmal erstellt, wird das CA-Zertifikat als vertrauenswürdigen Stelle sowohl für Ihren Server und Client-Zertifikate (oder Zertifikate) zu handeln.
    $ Sudo openssl req -newkey rsa: 4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
    Passwort-Satz = [Kennwort]
    Generiert: ca.cer, ca.key
    Generieren Sie Apache-Server SSL-Schlüssel und Zertifikat
    Generieren server.key:
    $ Sudo openssl genrsa -out server.key 4096
    Erzeugen Sie eine Zertifikatserzeugung Anfrage.
    $ Sudo openssl req -new -Taste server.key -out server.req
    Verwenden Sie die Zertifikat-Erzeugungsanforderung und die CA-Zertifikat, um die Server-Zertifikat generieren
    $ Sudo openssl x509 -in -req server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extensions Server -days 1460 -outform PEM -out server.cer
    Clean up - jetzt, dass das CERT erstellt wurde, den Antrag benötigen wir nicht mehr.
    $ Sudo rm server.req
    Installieren Sie das Serverzertifikat in Apache
    Kopieren Sie das CA-Zertifikat auf einen festen Platz. Wir müssen unser CA Zertifikat in Apache angeben, da es sich um ein selbst erzeugt CA und nicht eine, die in Betriebssystemen überall enthalten ist.
    $ Sudo cp ca.cer / etc / ssl / certs /
    Kopieren Sie die Server-Zertifikat und privaten Schlüssel, um dauerhaften Platz.
    $ Sudo cp server.cer /etc/ssl/certs/server.crt
    $ Sudo cp server.key /etc/ssl/private/server.key
    Aktivieren Sie das SSL-Modul in Apache.
    $ Sudo a2enmod ssl
    Aktivieren Sie die SSL-Site in Apache
    $ Sudo a2ensite default-ssl
    Deaktivieren Sie die HTTP-Site
    $ Sudo a2dissite Standard
    Bearbeiten Sie die Konfigurationsdatei für die SSL aktiviert Website und fügen Sie die folgenden Zeilen:
    $ Sudo nano / etc / apache2 / sites-enabled / 000-default-ssl
    SSLCACertificateFile /etc/ssl/certs/ca.cer
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
    Übernehmen Sie die Konfiguration in Apache.
    $ Sudo Service apache2 restart
    Gerade jetzt, wenn Sie Ihr https Website besuchen, werden Sie ein SSL-Fehler ähnlich bekommen, um "SSL Peer war nicht in der Lage, um eine akzeptable Menge der Sicherheitsparameter zu verhandeln." Das Gute ist - es bedeutet, dass Ihre Website wird eine Verbindung nicht akzeptieren, es sei denn, der Browser mit einem vertrauenswürdigen Client-Zertifikat. Wir werden jetzt einen erstellen.
    Generieren Sie eine Client-SSL-Zertifikat
    Generieren Sie einen privaten Schlüssel für die SSL-Client.
    $ Sudo openssl genrsa -out client.key 4096
    Verwenden Sie den privaten Schlüssel des Clients, um eine cert Anforderung zu erzeugen.
    $ Sudo openssl req -new -Taste client.key -out client.req
    Geben Sie den Client-Zertifikat mit dem Zertifikat Anforderung und die CA-Zertifikat / Schlüssel.
    $ Sudo openssl x509 -in -req client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extensions Client -days 365 -outform PEM -out client.cer
    Konvertieren Sie das Client-Zertifikat und den privaten Schlüssel zu PKCS # 12-Format für die Verwendung von Browsern.
    $ Sudo openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12
    [Jetzt SKIP - ich habe nie tun Sie diesen Schritt] Clean up - entfernen Sie die Client privaten Schlüssel, Client-Zertifikat und Client-Anforderung Dateien als die pkcs12 hat alles, was benötigt wird.
    $ Sudo rm client.key client.cer client.req

Schritt 19: Fügen Sie clientseitiges Zertifikat, Geräte


  1. Importieren Sie die P12-Datei in Ihrem Browser.
    Um client.p12 aus dem Raspberry Pi auf einen Mac zu kopieren, öffnen Sie ein Terminalfenster und geben Sie den Befehl:
    scp pi @ [Raspberry Pi IP]: client.p12 / Users / [Ihr Name]
    Klicken Sie doppelt auf die Datei, um in Schlüsselspeicher des Betriebssystems, die von IE und Chrome verwendet wird importieren.
    Für Firefox, öffnen Sie die Optionen -] Erweitert -] Zertifikate -] Aussicht Zertifikate -] Ihre Zertifikate und importieren Sie das Zertifikat.
    Für Android-Handys, muss der Browser Chrome ist.
    Email client.p12 als Anhang
    Öffnen Sie die E-Mail auf dem Android-Handy und speichern Sie die Befestigung an Downloads
    Zum Home-Bildschirm und offene Einstellungen
    Sicherheit
    Anmeldeinformationsspeicher
    Installieren von Gerätespeicher
    Öffnen Sie die Datei client.p12
    Enter passphrase: [Kennwort]
    Verwenden Sie das schrecklich, Standardnamen
    Für Apple-Telefon, per E-Mail das CERT und doppelklicken Sie darauf, und folgen Sie den Anweisungen.
    Email client.p12 und ca.cer als Anhänge

Schritt 20: Disable Port 80


  1. $ Sudo nano /etc/apache2/ports.conf
    Kommentieren Sie die folgenden Zeilen:
    Namevirtualhost *: 80
    Listen 80
    So wie es aussieht:
    # Namevirtualhost *: 80
    Listen 80
    Namevirtualhost *: 80
    [Virtualhost *: 80]
    Servername [Raspberry Pi Hostname]
    Redirect permanent / https: // [U-Vers öffentlichen IP] /
    [/ Virtualhost]
    Speichern Sie die Datei
    $ Sudo Service apache2 restart

Schritt 21: Disable Port-Weiterleitung in WiFi Router


  1. Melde dich an, U-Vers 2-Draht-WiFi-Router
    Öffnen Sie Browser und geben Sie [U-verse Router Home Page]
    Firewall-Einstellungen >> >> Anwendungen, Pinholes und DMZ
    Wählen Sie [Raspberry Pi Hostname]
    Anwendungen, die Port 80 erlauben durch "Web Server" entfernen
    Muss Port 443 auf HTTPS-Server zu halten
    Jetzt besuchen Sie Ihre Website mit dem Browser, wo Sie das Client-Zertifikat importiert. Werden Sie wahrscheinlich aufgefordert, für die Client-Zertifikat zu verwenden - wählen Sie diese aus. Dann werden Sie authentifiziert und in erlaubt sein!

Schritt 22: Verbinden Sie den Stromkreis an den Raspberry Pi

  1. Garagentüröffner

    Jetzt zum lustigen Teil - wir überweisen Sie die Relais in die pi! Für den Code I bereitgestellt (Schritt 4 und 6) Ich habe GPIO-Pin 7. Es ist Zufall, dass GPIO 7 ist die gleiche wie wiringPi Stift 7. In der PHP-Code, Verdrahtung Pi Pin-Nummern verwendet werden und NICHT GPIO Pin-Nummern. Sie können je nachdem, welche Sie wollen, aber seien Sie sicher, den Code zu ändern.
    Dieser Abschnitt enthält ein Diagramm. Ich benutzte Buchse auf Buchse Jumper Kabel und Massivdraht, versteckten Zaun Hund Draht.

Schritt 23: Erstellen Sie ein Startup-Service


  1. Die meisten Relais einschließlich der, gekauft, betrieben werden wie folgt aus:
    Wenn das Signal auf der Leiter bleibt ausgeschaltet. Wenn das Signal ausgeschaltet ist, dann ist die Schaltung auf.
    Wenn der Raspberry Pi Leistung verliert, hat das Relais einen Sicherheitsmechanismus, der die Schaltung OFF hält. Ein Problem könnte auftreten, wenn die Rapberry Pi und Relais erhalten die Stromversorgung wiederhergestellt, aber bevor der Raspberry Pi hat booten, um das Signal drehen fertig, auf dem die Notwendigkeit besteht, den Schaltkreis zu halten. Sie könnten am Morgen aufwachen mit Ihrer Garage geöffnet und möglicherweise ein paar neue Freunde!
    Das Relais nicht wirklich zu initialisieren, bis die GPIO-Pin-Modus wird über diesen Befehl ein: GPIO-Modus 7 aus. Außerdem, wenn der GPIO-Pin auf ON (GPIO-Schreib 7 1), bevor Sie legen Sie die GPIO-Modus wird das Relais ausgeschaltet bleiben einmal initialisiert.
    Um diese Initialisierung beim Systemstart ausgeführt zu machen, habe ich ein Startskript.
    $ ssh pi@[Your Pi's IP]
    $ sudo nano /etc/init.d/garagerelay
    Then paste this script:
    #! /bin/bash
    # /etc/init.d/garagerelay
    # Carry out specific functions when asked to by the system
    case "€ 1" in
    start)
    echo "Starting Relay"
    # Turn 7 on which keeps relay off
    /usr/local/bin/gpio write 7 1
    #Start Gpio
    /usr/local/bin/gpio mode 7 out
    ;;
    stop)
    echo "Stopping gpio"
    ;;
    *)
    echo "Usage: /etc/init.d/garagerelay {start|stop}"
    exit 1
    ;;
    esac
    exit 0
    Make the file executable:
    $ sudo chmod +x /etc/init.d/garagerelay
    Now tell your pi to run this script at boot:
    $ sudo update-rc.d -f garagerelay start 4
    (Note: You can safely ignore the "missing LSB tags" warning.)
    Ensure startup script is running
    $ sudo reboot
    Open a browser and click on the opener. The relay should click.

Step 24: ​Attach Raspberry Pi to the Garage

  1. Garagentüröffner

    If you move the Raspberry Pi, be sure to shutdown first.
    You may want to turn off power to the garage. So, the doorbell opener doesn't electrocute you :). The real reason is each time you short the wires, the door will go up and down.
    Undo the wall screws from the doorbell type opener, which attaches the doorbell to the wall.
    Poke a hole through from the garage behind the doorbell opener to inside the house. In Texas, the Raspberry Pi should not be in the garage, the temperature variation is out side the Raspberry Pi's operating specifications.
    Run the relay wires through the hole (use a coat hanger).
    Loosen both screws on the backside of the doorbell opener.
    Strip both ends of the relay wires: 1) about 1/8” inch of the relay side, and about ½” inch on the doorbell side. Bend the doorbell side of the wire into a half loop large enough to fit around the backside screw.
    Connect the one relay wire to each screw on the backside of the doorbell, and tighten the screw. The connections are as shown in the image below. Since the relay isolates the circuit, the direction doesn't even matter which relay is attached to which screw.

Step 25: ​Attach Raspberry Pi to SECO-LARM

  1. Garagentüröffner

    This is a link to the original instructable for adding a sensor. However, given everything that has already been completed, installing the sensor can be greatly simplified and instead of using python add a couple of lines of code to index.php.
    The sensor is attached to the front of the garage. So, I had to run wire from the sensor back to the raspberry pi. This required a hole from the garage into the attic and from the attic into the wall containing the garage door opener (doorbell switch).
    In my house there is an 18 inch gap between the ceiling of the first floor and the bottom of the second floor. I assume this is where the heating and cooling ducts run. I needed a drill bit extension long enough to go through the second floor and through the top 2x4 (top plate) containing the doorbell.
    The most important part is when drilling from the attic into the area where the wires will run to the garage door opener is to NOT drill through the electricity. Fixing this was not fun. Seeing the sparks and having the lights go out was pretty thrilling!
    The sensor requires two solid thermostat wires or invisible dog fence wire.
    The Raspberry Pi has multiple pin descriptions (BCM, wPi, physical). The code uses the wiring pi pin numbers. To see all pins, and pin mappings and pin values enter:
    $ gpio readall
    For a gpio manual, enter:
    $ gpio man
    Physical pin 9 is ground and connects to one of the SECO-LARM leads. Physical pin 15 (wPi pin 3) goes to 3.3V when the SECO-LARM sensor is closed. If it doesn't work then switch the connections on the SECO-LARM.
    Attach SECO-LARM to garage door and wall. Run wires and connect to Raspberry Pi.

Step 26: ​Send alerts if door is open through gmail account


  1. If the door is open at night, then I want to send a text message to my cell phone. Install and configure SSMTP. Note: exim is installed on Raspberry Pi and can be used instead.
    I have AT&T cellular and use: [phone number]@txt.att.net. The example below uses [your account]@gmail.com
    Ensure repositories are up-to-date:
    $ sudo apt-get update
    Install SSMTP and mail utilities:
    $ sudo apt-get install ssmtp
    $ sudo apt-get install mailutils
    Edit the SSMTP configuration file:
    $ sudo nano /etc/ssmtp/ssmtp.conf
    wie folgt:
    root=postmaster
    mailhub=smtp.gmail.com:587
    hostname=raspberrypi
    AuthUser=[your account]@gmail.com
    AuthPass=[your gmail password]
    UseSTARTTLS=YES
    Edit the SSMTP aliases file:
    This file contains data about the email accounts
    $ sudo nano /etc/ssmtp/revaliases
    Create one line for each user in your system that will be able to send emails. Zum Beispiel:
    root: [email protected] :smtp.gmail.com:587
    The Garage Door Opener Raspberry Pi doesn't have a domain name, so use this:
    root:root@[ U-verse Public IP ]:smtp.gmail.com:587
    Set the permissions of the SSMTP configuration file:
    $ sudo chmod 774 /etc/ssmtp/ssmtp.conf
    The permissions of the file /etc/ssmtp/ssmtp.conf determine who will be able to send emails from the Raspberry Pi. By default this file is owned by the user root and the group of the file is also root.
    Once you're done with the above setup and configuration process, you can send emails from the command line,.
    $ sudo nano /usr/local/bin/test2wifi.sh
    and add the following:
    #!/bin/bash
    # Define a timestamp function
    function timestamp() {
    date '+%b %d %H:%M:%S'
    }
    up=1;
    door=$(/home/pi/wiringPi/gpio/gpio read 3)
    if [ “$door” -eq “$up” ]
    then
    echo "$(timestamp) rpiGarageOpener: Door is up ($door), sending text message" ]] /tmp/testwifi.log
    echo "Close Garage Door: [U-verse Public IP]" | mail -s "Garage Door Open" [your cell phone number]@txt.att.net
    else
    echo "$(timestamp) rpiGarageOpener: Door is down ($door)" ]] /tmp/testwifi.log
    fi
    exit 0
    Then add a crontab to run during the required hours:
    $ sudo crontab –e
    and add
    # At night, check every hour if garage door is open
    0 22-23/1 * * * /usr/local/bin/test2wifi.sh ]] /tmp/testwifi.log
    0 0-5/1 * * * /usr/local/bin/test2wifi.sh ]] /tmp/testwifi.log
    Troubleshooting email
    Authentication failure:
    Google won't like this and you need to lower security on account. Google will send an email with a link to lower security setting.
    If this was you
    You can switch to an app made by Google such as Gmail to access your account (recommended) or change your settings at https://www.google.com/settings/security/lesssecu... so that your account is no longer protected by modern security standards.
    Authorization failed (535 5.7.1 http://support.google.com/mail/bin/answ … swer=14257 a1sm11494547eep.2 – gsmtp
    The most probable cause of this is that you have specified a wrong username or password for your GMail account in the /etc/ssmtp/ssmtp.conf file. Double check the values of the AuthUser and AuthPass fields.
    $ echo "test" | sendmail -v [your account]@gmail.com
    Connection lost in the middle of processing:
    send-mail: Connection lost in middle of processing
    Chances are you specified the wrong port for the Google smtp somewhere in /etc/ssmtp/ssmtp.conf or in /etc/ssmtp/revaliases.
    Check the logs
    Check the last lines of your logs. There should be some relevant error messages in there:
    tail /var/log/mail.log
    tail /var/log/syslog

Step 27: Put Raspberry Pi in Secret Book

  1. Garagentüröffner

    Garagentüröffner

    Put the raspberry pi in a secret book. I got this one at Michael's for about € 7. I cut some small holes for the wires and the power cord.