Inhoudsopgave:

Raspberry Pi 3 garagedeuropener - Ajarnpa
Raspberry Pi 3 garagedeuropener - Ajarnpa

Video: Raspberry Pi 3 garagedeuropener - Ajarnpa

Video: Raspberry Pi 3 garagedeuropener - Ajarnpa
Video: Siri controlled garage opener. Working model. 2024, Juli-
Anonim
Raspberry Pi 3 garagedeuropener
Raspberry Pi 3 garagedeuropener

Ik heb deze instructable in 2014 gemaakt. Sindsdien is er veel veranderd. In 2021 heb ik de Smart Garage Door Opener hier geüpdatet.

Gebruik een Raspberry Pi en een smartphone om een garagedeur te openen, te sluiten en te bewaken. Het openen en sluiten van de deur wordt beveiligd met behulp van zelfondertekende certificaten die op de mobiele telefoons van het gezin zijn geïnstalleerd. Als de garagedeur open staat terwijl dat niet zou moeten, stuur dan een sms (sms) naar een mobiele telefoon.

De garagedeur is sinds eind 2014 continu in gebruik. In de loop der jaren heb ik geprobeerd de wijzigingen up-to-date te houden. Er is een bijlage waarin de wijzigingen in de instructable worden beschreven.

De doelen van dit project zijn:

  • Maak mijn eerste instructable - ik was niet van plan dit te posten, maar ik heb veel verzoeken ontvangen
  • Open een garagedeur met een standaard afstandsbediening
  • Open een garagedeur met de aan de muur gemonteerde deurbel garageopener
  • Open een garagedeur met een SmartPhone
  • Bewaak de status van de garagedeur op afstand via een mobiele telefoon of laptop (is deze open of gesloten?)
  • Stuur een sms naar mijn mobiele telefoon als de deur open is terwijl deze gesloten moet zijn
  • Houd de garagedeur veilig (bijv. bij stroomuitval mag de deur niet openen)
  • Sta niet toe dat iemand anders op het internet de deur opent (tweerichtings zelfondertekend SSL-certificaat)
  • Gebruik wifi in plaats van een bekabelde verbinding
  • Gebruik een Raspberry Pi 3"

De basis voor deze Garage Door Opener-implementatie is afgeleid van de Instructable: Raspberry Pi Garage Door Opener van quartarian. Oorspronkelijk gebruikte ik een model B+ Raspberry Pi, daarna verhuisde ik naar een Raspberry Pi 2 model B, en nu gebruikt het een Raspberry Pi 3.

Ik gebruikte een MacBook om met de Raspberry Pi te communiceren, maar elke computer kan worden gebruikt.

Er is geen dwingende reden om dit apparaat te bouwen, maar het was leuk. Het is voordeliger om er een te kopen. Een soortgelijk apparaat kan worden gekocht voor ongeveer $ 130 USD.

  • Liftmaster 828LM
  • Chamberlain MyQ $ 129
  • GoGo-poort $ 179
  • Ambachtsman $ 100

Opmerkingen:

  • Tekst tussen schoppen, zoals deze ♣vervang-dit♣ moet worden vervangen door een werkelijke waarde
  • Arduino onderstreepte blauwe tekst is een link. In dit geval is het een link naar een arduino-versie van een garagedeuropener.
  • Ik heb geprobeerd elke gebruikte bron te vermelden. Mijn excuses voor eventuele omissies. Het grootste deel van dit document is gebaseerd op het werk van anderen.
  • $ geeft een opdracht aan die wordt uitgevoerd in een terminalvenster op de MacBook en meestal wordt uitgevoerd op de Raspberry Pi

Stap 1: Verzamel onderdelen

Koop of verzamel onderdelen en gereedschappen (prijzen in USD).

  • Raspberry Pi 3 Model B Newark Element14 $ 35
  • 5.2V 2.5A USB-lichtnetadapter van Amazon $ 9,99
  • Micro-USB naar USB-kabel 6ft van Amazon $ 7,99
  • Hoes van Amazon $ 6,99
  • SanDisk Ultra 16 GB microSDHC klasse 10 met adapter (SDSQUAN-016G-G4A) van Amazon $ 8,99
  • SunFounder 2-kanaals 5V Relay Shield-module voor Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $6.79
  • 3x Vrouwelijk-Vrouwelijke Doorverbindingsdraden. Gekocht bij Fry's voor $ 4,95.
  • Dynamische DNS $ 40 per jaar voor 30 namen (dyn.com)
  • 1-Bende 18 cu. in. Oude zware wandschakelaar en stopcontactdoos, $ 3,12
  • Ultra Pro enkele borstel witte muurplaat, $ 7,88"
  • SECO-LARM SM 226L, garagedeursensor, prijs varieert sterk, $ 9,99 op Amazon met gratis verzending
  • 50ft solide thermostaatdraad, Home Depot of Lowe's, ~ $ 20

Mijn totaal: ~$172,00

Ik had de volgende onderdelen, gereedschappen en diensten:

  • CAT5 Ethernet-kabel
  • Draad van kleine dikte, 6 ft lang
  • Kruiskopschroevendraaier
  • Naaldbektang
  • Dozensnijders
  • Juweliers platte schroevendraaier, nodig om schroeven op relais los te draaien
  • MacBook (er kan een pc worden gebruikt)
  • AT&T GigaPower (elke internetprovider kan worden gebruikt)

Stap 2: Stel Raspberry Pi in zonder monitor of toetsenbord

Raspberry Pi instellen zonder monitor of toetsenbord
Raspberry Pi instellen zonder monitor of toetsenbord

Alle Raspberry Pi-projecten vereisen een bepaalde configuratie. Ik gebruik graag dezelfde set instructies en heb, indien nodig, één plek om die instructies bij te werken.

Stel Raspberry Pi in met behulp van de volgende instructable:

Raspberry Pi instellen zonder monitor of toetsenbord

De instructable hierboven bevat optionele stappen in de bijlage. Zorg ervoor dat u de stap uitvoert:

Client-side certificaten toevoegen aan webservers

Raspberry Pi afsluiten

$ sudo afsluiten -h 0

Eenmaal afgesloten, verwijder

  • ethernetkabel
  • USB seriële kabel

Deze zijn niet meer nodig. Gebruik wifi, ssh en een terminalvenster op de Mac Book om opdrachten op de Raspberry Pi uit te voeren.

Haal de stekker uit het stopcontact en steek de stekker er weer in, en de raspberry pi zou opnieuw moeten opstarten.

Stap 3: Installeer Wiring Pi, Apache en PHP

Bedrading Pi. installeren

Open een terminalvenster op de Mac Book. Log in op Raspberry Pi en download, compileer en installeer vervolgens Wiring Pi. Deze software maakt controle over de GPIO-pinnen mogelijk. Hier is een stapsgewijze handleiding:

wiringpi.com/download-and-install/

Hier is een verkorte versie van de instructies:

$ ssh pi@♣raspberry-pi-ip♣

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

Voer de gpio-opdracht uit om de installatie te controleren:

$ gpio -v

gpio versie: 2.29 Copyright (c) 2012-2015 Gordon Henderson Dit is gratis software met ABSOLUUT GEEN GARANTIE. Voor details type: gpio -garantie Raspberry Pi Details: Type: Model 2, Revisie: 1.1, Geheugen: 1024MB, Maker: Sony [OV] Apparaatstructuur is ingeschakeld. Deze Raspberry Pi ondersteunt GPIO-toegang op gebruikersniveau. -> Zie de man-pagina voor meer details $ gpio readall +-----+-----+---------+------+---+--- Pi 2---+---+------+---------+-----+-----+ | BCM | wPi | Naam | Modus | V | Fysiek | V | Modus | Naam | 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 | UIT | 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 | Naam | Modus | V | Fysiek | V | Modus | Naam | wPi | BCM | +-----+-----+---------+------+---+---Pi 2---+---+--- ---+---------+-----+-----+

De bovenstaande opdrachten zouden u enig vertrouwen moeten geven dat bedradingPi goed werkt.

Apache en PHP installeren

Voer de volgende opdrachten uit:

$ cd..

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

Om te controleren of de webserver werkt, opent u een browser en voert u in het URL-vak het volgende in:

framboos-pi-ip♣

De standaardwebsite van Apache reageert met "It Works!"

Stap 4: Website

Open een terminalvenster op de Mac Book. Log in op Raspberry Pi, verwijder vervolgens het standaard index.html-bestand, wijzig de machtigingen in de websitemap en bewerk een bestand met de naam index.php.

$ ssh pi@♣raspberry-pi-ip♣

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

En voer de volgende code in:

Garageopener

Domotica

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

"; } anders {echo"

"; } ?>

Garagedeuropener Handleiding garagedeuropener gesloten 1 open 0
<?php if ($trigger == 0) { echo " <td colspan=\"4\" } else { echo"

var13 -->

CTRL-o en ENTER om het bestand te schrijven en CTRL-x om de editor af te sluiten.

Machtigingen voor het bestand wijzigen

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

Stap 5: Websiteafbeelding

Website-afbeelding
Website-afbeelding
Website-afbeelding
Website-afbeelding

Pak een externe garagedeuropener met hoge resolutie van internet. Pas de afbeelding naar wens aan met Mac-penseel. In de bovenstaande afbeelding werd een Genie Garage Opener met hoge resolutie gebruikt, een Raspberry Pi-logo toegevoegd en de led verwijderd.

De ene afbeelding is de achtergrond (remote-background.jpg) en de andere is de actieve afbeelding (remote-press.jpg).

Het plan was dat bij het indrukken van de knop, in plaats van de led te knipperen, de framboos zou knipperen. Ik heb de website vereenvoudigd.

Kopieer de afbeeldingen naar de Raspberry Pi:

$ scp *-j.webp

wachtwoord: ♣wachtwoord♣

De website heeft een enkele drukknop. Om te verifiëren, opent u een browser en voert u "raspberry-pi-ip" in. In plaats van de standaardwebsite van Apache, die zegt "Het werkt!", zou de knop moeten verschijnen. Druk erop.

Stap 6: Webserver op afstand bedienen

Om het gemakkelijk te maken om vanaf een externe locatie toegang te krijgen tot de garagedeuropener, gebruik ik een dynamische DNS-naam. Omdat ik niet graag IP-adressen onthoud.

Met deze functie voer ik ♣dynamic-hostname♣.getmyip.com in het URL-veld van een browser in. Opmerking: het IP-adres op thuisrouters kan zonder kennisgeving worden gewijzigd, maar dit gebeurt zelden. Ik heb ervoor gekozen om DynDNS te gebruiken. U moet het openbare IP-adres van uw router weten.

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

U kunt uw hostnamen en DynDNS Pro-accountgegevens bekijken. Hier zijn een paar tips om te beginnen:

  • Maak uw dynamische DNS-hostnaam (1 van 30):

    • ♣dynamische-hostnaam♣
    • Updater-sleutel: ♣dynamische-ip-updater-sleutel♣
  • Installeer een update-client om ervoor te zorgen dat uw hostnaam altijd naar het juiste IP-adres verwijst.

    • Downloaden en installeren op MacBook
    • AT&T U-verse IP's veranderen zelden, dus de bovenstaande updater kan worden uitgevoerd wanneer deze verandert
    • Volg de aanwijzingen:

      • Account toevoegen
      • Voer gebruikersnaam en wachtwoord in: ♣dynamic-ip-username♣ ♣dynamic-ip-password♣
      • Selecteer hostnaam
      • Klik op Geselecteerde hosts configureren
      • De host moet actief worden
    • Configureer uw netwerk om toegang tot uw apparaat vanaf internet toe te staan. U kunt onze Dyn Wizard gebruiken voor enkele algemene instructies over hoe u dit moet doen, bronnen zoals PortForward.com gebruiken of contact opnemen met de fabrikant van het apparaat voor hulp.

      • AT&T U-vers
      • Port Forwarding voor 2-Wire 3801HGV - dit is de AT&T U-Verse router die ik heb. Zie Updates in een bijlage voor informatie over port forwarding op een AT&T U-verse 5268ac-router.
      • Open de browser en ga naar "raspberry-pi-ip"
      • Wachtwoord: ♣wachtwoord♣
      • Instellingen
      • Firewall

        • Kies "raspberry-pi-hostname"
        • Servers

          • Webserver-poort 80
          • HTTPS-server – poort 443
        • Toevoegen
      • Opslaan

Zodra dit is gebeurd, werkt de webserver vanaf internet. Om te verifiëren, voert u ♣dynamic-hostname♣ in en u zou de knop voor de garagedeuropener moeten zien.

Stap 7: Sluit het circuit aan op de Raspberry Pi

Sluit het circuit aan op de Raspberry Pi
Sluit het circuit aan op de Raspberry Pi

Voor de verstrekte code (stap 4 en 6) heb ik GPIO pin 7 gebruikt. Het is toeval dat GPIO 7 hetzelfde is als bedradingPi pin 7. In de PHP-code worden bedrading Pi-pinnummers gebruikt en NIET GPIO-pinnummers. U kunt gebruiken welke u wilt, maar zorg ervoor dat u de code wijzigt.

Ik heb geprobeerd gedraaide draad te gebruiken, maar het relais houdt niet goed vast op gedraaide draad. Stevige draad is beter.

Bij mijn eerste poging heb ik drie verbindingskabels gemaakt (vrouw-naar-man).

  • Gebruik drie vrouwelijke naar vrouwelijke startkabels
  • Knip drie stukken massief draad af tot ongeveer 1 inch.

    Strip 1/4 inch aan beide uiteinden van massieve draad

  • Steek een stevige draad in een vrouwelijke startkabel.

Hier is een betere manier om verbindingskabels te maken (vrouw-naar-man):

  • Gebruik alleen massieve draad
  • Knip drie stukken van 4 inch massief draad
  • Strip 1/4 inch aan beide uiteinden van massieve draad
  • Gebruik vrouwelijke verbindingspinnen

    • Schuif een vrouwelijke verbindingspen op het ene uiteinde van de massieve draad en krimp

      Vrouwelijke pin mag niet losraken, soldeer indien nodig

    • Schuif trekontlasting over vrouwelijke verbindingspen of afdekpen met elektricienstape

Sluit het relais aan op de pi zoals weergegeven in het diagram:

  • Sluit het vrouwelijke uiteinde van de kabel aan op de Raspberry Pi-pin.
  • Steek een stevige draad in het relais.

Stap 8: Maak een opstartservice

De meeste relais, inclusief het gekochte, werken als volgt:

  • Als het signaal AAN is, blijft het circuit uit.
  • Als het signaal UIT is, is het circuit aan.

Als de Raspberry Pi stroom verliest, heeft het relais een veiligheidsmechanisme dat het circuit UIT houdt.

Er kan een probleem optreden wanneer de Rapberry Pi en het relais weer stroom krijgen, maar voordat de Raspberry Pi klaar is met opstarten om het signaal AAN te zetten, wat nodig is om het circuit uit te houden. Je zou 's ochtends wakker kunnen worden met je garage open en mogelijk een paar nieuwe vrienden!

Het relais wordt echter pas echt geïnitialiseerd als de GPIO-pinmodus is ingesteld via dit commando: gpio-modus 7 uit. Bovendien, als de GPIO-pin op AAN staat (gpio write 7 1) voordat u de GPIO-modus instelt, blijft het relais uitgeschakeld nadat het is geïnitialiseerd.

Om deze initialisatie bij het opstarten uit te voeren en niet wakker te worden met nieuwe vrienden, gebruikt u het volgende opstartscript.

$ ssh pi@♣raspberry-pi-ip♣

$ sudo nano /etc/init.d/garagerelay

Plak dan dit script:

#! /bin/bash

# /etc/init.d/garagerelay # Voer specifieke functies uit wanneer daarom wordt gevraagd door het systeem case "$1" in start) echo "Starting Relay" # Zet 7 aan waardoor relais uitgeschakeld blijft /usr/local/bin/gpio write 7 1 #Start Gpio /usr/local/bin/gpio-modus 7 uit;; stop) echo "Gpio stoppen";; *) echo "Gebruik: /etc/init.d/garagerelay {start|stop}" exit 1;; esac uitgang 0

Om op te slaan: CTRL-o, ENTER

Om nano af te sluiten, CTRL-x

Maak het bestand uitvoerbaar:

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

Vertel je pi nu om dit script bij het opstarten uit te voeren:

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

(Opmerking: u kunt de waarschuwing "ontbrekende LSB-tags" negeren.)

Zorg ervoor dat het opstartscript actief is

$ sudo opnieuw opstarten

Open een browser en klik op de opener. Het relais moet klikken.

Stap 9: Bevestig Raspberry Pi aan de garage

Bevestig Raspberry Pi aan de garage
Bevestig Raspberry Pi aan de garage

Zorg ervoor dat u bij het verplaatsen van de Raspberry Pi het volgende uitvoert:

$ afsluiten -h 0

Misschien wilt u de stroom naar de garage uitschakelen. Dus de deurbelopener elektrocuteert je niet:). De echte reden is dat elke keer dat je de draden kortsluit, de deur op en neer gaat.

Maak de muurschroeven los van de deurbelopener, waarmee de deurbel aan de muur is bevestigd.

Prik een gat door van de garage achter de deurbelopener naar binnen in het huis. In Texas hoort de Raspberry Pi niet in de garage te staan, de temperatuurvariatie in de garage valt buiten de operationele specificaties van de Raspberry Pi.

Leid de relaisdraden door het gat (gebruik een kleerhanger).

Draai beide schroeven aan de achterkant van de deurbelopener los.

Strip beide uiteinden van de relaisdraden: 1) ongeveer 1/8” inch van de relaiszijde en ongeveer ½” inch aan de deurbelzijde. Buig de deurbelzijde van de draad in een halve lus die groot genoeg is om rond de schroef aan de achterkant te passen.

Sluit een relaisdraad aan op elke schroef aan de achterkant van de deurbel en draai de schroef vast. De aansluitingen zijn zoals weergegeven in de afbeelding. Omdat het relais het circuit isoleert, maakt de richting niet eens uit welk relais aan welke schroef is bevestigd.

Stap 10: Bevestig Raspberry Pi aan SECO-LARM

Bevestig Raspberry Pi aan SECO-LARM
Bevestig Raspberry Pi aan SECO-LARM
Bevestig Raspberry Pi aan SECO-LARM
Bevestig Raspberry Pi aan SECO-LARM

Voordat ik de code af had, waren mijn familie en ik op vakantie en opende ik mijn browser. Het laatste beeld van mijn browser was van de garagedeuropener - de pagina werd vernieuwd en de garagedeur ging open. Een paar dagen later belde een buurman en vroeg of de garagedeur open moest? Gelukkig kon ik hem op 500 mijl afstand sluiten.

Deze snafu dwong me om de code te wijzigen zodat dit niet zou gebeuren, en een sensor en de staat van de garagedeur toe te voegen aan de website.

Dit is een link naar de originele instructable voor het toevoegen van een sensor. Echter, gezien alles wat al is voltooid, kan het installeren van de sensor aanzienlijk worden vereenvoudigd en in plaats van python te gebruiken, voegt u een paar regels code toe aan index.php.

closed

De magneet wordt aan de linker binnenzijde van de garagedeur bevestigd en de sensor aan de garagemuur. Dus ik moest een stevige thermostaatdraad van de sensor terug naar de Raspberry Pi leiden. Hiervoor was een gat nodig van de garage naar de zolder en van de zolder naar de muur met daarin de garagedeuropener (deurbelschakelaar).

Ik heb een blauwe aansluitdoos tussen de SECO-LARM-sensor en massieve draden geplaatst.

In mijn huis is er een opening van 18 inch tussen het plafond van de eerste verdieping en de onderkant van de tweede verdieping. Ik neem aan dat hier de verwarmings- en koelkanalen lopen. Ik had een boorverlenging nodig die lang genoeg was om door de tweede verdieping en door de bovenste 2x4 (bovenplaat) met de deurbel te gaan.

Het belangrijkste is om bij het boren vanaf de zolder naar het gebied waar de draden naar de garagedeuropener gaan, NIET door de elektriciteit te boren. Dit repareren was niet leuk. Het was best spannend om de vonken te zien en de lichten uit te doen!

De sensor heeft twee stevige thermostaatdraden of onzichtbare hondendraad nodig.

De Raspberry Pi heeft meerdere pinbeschrijvingen (BCM, wPi, fysiek). De code maakt gebruik van de bedrading pi pin-nummers. Om alle pinnen en pintoewijzingen en pinwaarden te zien, voert u het volgende in:

$ gpio lees alles

Voer voor een gpio-handleiding het volgende in:

$ gpio man

In de originele instructies is fysieke pin 9 geaard en wordt aangesloten op een van de SECO-LARM-kabels. Dit werkt bij mij echter niet. Sluit in plaats daarvan de kabels aan op de fysieke pinnen 15 en 17

Fysieke pin 15 (wPi pin 3) gaat naar 3,3V als de SECO-LARM-sensor gesloten is. Fysieke pin 17 is 3.3v. Als het niet werkt, verwissel dan de aansluitingen op de SECO-LARM.

Bevestig SECO-LARM aan garagedeur en muur. Leid draden en maak verbinding met Raspberry Pi.

Stap 11: Stuur een waarschuwing als de deur open is wanneer deze gesloten moet zijn

Als de garagedeur open staat terwijl dat niet zou moeten, stuur dan een sms naar een mobiele telefoon.

Installeer en configureer eenvoudige SMTP.

Ik heb AT&T mobiel en gebruik ♣cell-phone-number♣@txt.att.net voor sms-berichten. Ik heb ook een gmail-account en in het onderstaande voorbeeld wordt ♣gmail-account♣@gmail.com gebruikt. Als u verschillende services gebruikt, breng dan de nodige wijzigingen aan.

Open voor de onderstaande $-opdrachten een terminalvenster op de MacBook en log in op uw Raspberry Pi.

Zorg ervoor dat de opslagplaatsen up-to-date zijn:

$ sudo apt-get update

Installeer eenvoudige SSMTP- en e-mailhulpprogramma's:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

Bewerk het SSMTP-configuratiebestand:

$ sudo nano /etc/ssmtp/ssmtp.conf

als volgt:

mailhub=smtp.gmail.com:587 hostname=♣uw-hostnaam♣ AuthUser=♣gmail-account♣@gmail.com AuthPass=♣gmail-wachtwoord♣ UseSTARTTLS=JA

Bewerk het SSMTP-aliassenbestand:

$ sudo nano /etc/ssmtp/revaliases

Maak één regel voor elke gebruiker die e-mails kan verzenden. Bijvoorbeeld:

Stel de machtigingen van het SSMTP-configuratiebestand in:

$ sudo chmod 664 /etc/ssmtp/ssmtp.conf

De permissies van het bestand /etc/ssmtp/ssmtp.conf bepalen wie e-mails kan versturen vanaf de Raspberry Pi. Standaard is dit bestand eigendom van de gebruiker root en de groep van het bestand is ook root.

Bewerk het SSMTP-aliassenbestand, dat gegevens over de e-mailaccounts bevat:

$ sudo nano /etc/ssmtp/ssmtp.conf

Zodra het bovenstaande installatie- en configuratieproces is voltooid, test u het door een e-mail te sturen vanaf de opdrachtregel.

$ echo "sluit de garagedeur" | mail -s "Garagedeur open" ♣mobiel nummer♣@txt.att.net

Maak een script om te controleren of de garagedeur open staat terwijl dat niet zou moeten, en stuur dan een sms.

$ sudo nano /usr/local/bin/garage.sh

en voeg het volgende toe:

#!/bin/bash

# controleer of de garagedeur open staat. # Indien open, stuur een waarschuwing en schrijf naar syslog up=0; door=$(/home/pi/wiringPi/gpio/gpio read 3) if ["$door" -eq "$up"] log dan ♣uw-hostnaam♣ in: Garagedeur Open echo "sluit de garagedeur" | mail -s "Garagedeur open" ♣mobiel nummer♣@txt.att.net fi exit 0

Voeg vervolgens een crontab toe om tijdens de vereiste uren uit te voeren:

$ sudo crontab –e

en voeg toe:

# Controleer 's nachts elk uur of de garagedeur open is

0 22-23/1 * * * sudo /usr/local/bin/garage.sh 0 0-5/1 * * * sudo /usr/local/bin/garage.sh

Als alles werkt, ga dan naar de volgende stap.

Stap 12: Zet Raspberry Pi in het geheime boek

Zet Raspberry Pi in Geheim Boek
Zet Raspberry Pi in Geheim Boek
Zet Raspberry Pi in Geheim Boek
Zet Raspberry Pi in Geheim Boek

Zet de Raspberry Pi in een geheim boek. Ik heb deze bij Michael's voor ongeveer $ 7. Ik sneed enkele kleine gaatjes voor de draden en het netsnoer.

Stap 13: Bijlage: Referenties

SunFounder 2 Kanaals 5V Relais Shield Module voor Arduino UNO 2560 1280 ARM PIC AVR STM32

  • 5V 2-kanaals relaisinterfacekaart, en elk heeft 15-20mA nodig
  • Driverstroom Uitgerust met hoogstroomrelais, AC250V 10A; DC30V 10A
  • Standaardinterface die direct kan worden bestuurd door microcontroller (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL-logica)
  • Indicatie-LED's voor status relaisuitgang Link om het document te downloaden:

Stap 14: Bijlage: Updates

21FEB2016

  • In de oorspronkelijke instructies waren er problemen met autocorrectie, opmaak en duidelijkheid van aanwijzingen.

    • Een voorbeeldprobleem is wanneer dubbele aanhalingstekens in code worden gewijzigd in iets dat eruitziet als een cursief dubbel aanhalingsteken. Als u dit echter in een script knipt en plakt, werkt het niet.
    • De instructable-editor houdt ervan om automatisch te corrigeren, dus wlan verandert in plan en autoremove verandert in automatisch verwijderen. Deze veranderingen zijn moeilijk te herkennen.
    • Sommige van mijn aanwijzingen waren misschien niet duidelijk genoeg.
    • Normaal gesproken gebruik ik punthaken als indicator voor iets dat moet worden vervangen. De editor zet deze om naar html. Dus ik ben overgestapt op vierkante haken, maar deze kunnen problemen veroorzaken omdat ze op code lijken. Dus koos ik uiteindelijk voor ♣s als de indicator voor vervanging door een werkelijke waarde.
  • In de loop van de tijd heb ik ook enkele van de scripts verbeterd.
  • Bewerkte stappen 21-26

03APR2016

  • Een bijlage gemaakt met probleemoplossing, referenties en updates (stappen 27-29)
  • Probleemoplossing verplaatst naar bijlage van vorige stap 2
  • De pagina voor het oplossen van problemen bijgewerkt en alfabetisch gerangschikt
  • Naam van bestand gewijzigd van test2wifi.sh in garage.sh - alleen meer beschrijvend.
  • Cron bijgewerkt om garage.sh. te gebruiken
  • Bewerkt 1, 20-26 (Maak een opstartservice om vóór appendix te gaan)

04APR2016

  • Vervangen stappen 2-11 en 16-20 met mijn standaard was het opzetten van een Raspberry Pi
  • Bijgewerkte onderdelenlijst, stap 1
  • Toegevoegde/samengevoegde foto's

05APR2016

Vereenvoudigde website en afbeelding (stappen 4 en 5)

01MEI2016

Probleemoplossing toegevoegd voor Seco-larm/raspberry Pi-sensor

01MEI2016

Eerdere bewerkingen niet goed opgeslagen?

11NOV2016

  • Bijgewerkt naar AT&T GigaPower en de router gewijzigd in 5268ac
  • 5268ac ondersteunt geen loopback, dus de Garage Opener-server is niet toegankelijk vanaf computers op het LAN. Om een MacBook toegang te geven tot de garageopener-webserver, doet u het volgende:

$ sudo nano /etc/hosts

en voeg de regel toe

192.168.1.64 ♣externe-domeinnaam van de server♣

Opslaan en afsluiten, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • De ingebouwde port forwarding-regels van de 5268ac, zoals HTTPS-server, HTTP Server en Web Server, werken niet. Om port forwarding te laten werken:

    • Open een browser en ga naar 192.168.1.254
    • Log in
    • Selecteer Instellingen, Firewall, Toepassingen, gaatjes en DMZ.
    • Selecteer de garageopener-webserver
    • Selecteer Door gebruiker gedefinieerd
    • Klik op een nieuwe door de gebruiker gedefinieerde toepassing

      • Voer bij Naam toepassingsprofiel in: PortForwarding
      • Voeg in Toepassingsdefinitie maken elk van de volgende dingen toe en klik op Toevoegen aan lijst:

        • TCP van 80 tot 80, map naar hostpoort 443
        • TCP van 443 naar 443 toegewezen aan hostpoort 443
        • UDP van 443 tot 443, map naar hostpoort 443
        • UDP van 80 tot 80, map naar hostpoort 443
    • Klik terug
    • Selecteer uw webserver opnieuw
    • Selecteer Door gebruiker gedefinieerd
    • PortForwarding toevoegen
    • Klik op Opslaan

21JAN2018

  • Bijgewerkt naar Raspberry Pi 3
  • Verschillende bewerkingen in stappen
  • Enkele onderdelen en prijzen bijgewerkt

Stap 15: Bijlage: Problemen oplossen

Gebruikte schijfruimte

De laatste regel toont de totale gebruikte schijfruimte. SD-kaart heeft 8 GB.

$ cd../..

$ sudo du –hx –c

e-mail

Als je problemen hebt, probeer dan dit:

$ echo "test" | sendmail -v uw-gmail-account♣@gmail.com

Als e-mail correct is ingesteld, moet u een e-mail ontvangen in uw Gmail-account.

Als u een verificatiefout krijgt:

Mogelijk moet u de beveiliging van uw account verlagen. Het verlagen van de beveiliging wordt echter NIET aanbevolen. Google stuurt een e-mail met een link om de beveiligingsinstelling te verlagen.

U kunt overschakelen van uw huidige e-maillezer om www.gmail.com te gebruiken om toegang te krijgen tot uw account (aanbevolen) of uw instellingen wijzigen op https://www.google.com/settings/security/lesssecu… zodat uw account niet langer beschermd door moderne veiligheidsnormen.

Ik raad niet aan om uw beveiligingsnormen te verlagen.

Als u een autorisatiefout krijgt:

De meest waarschijnlijke oorzaak hiervan is dat je een verkeerde gebruikersnaam of wachtwoord hebt opgegeven voor je gmail-account in het bestand /etc/ssmtp/ssmtp.conf. Controleer nogmaals de waarden van de velden AuthUser en AuthPass.

Als de verbinding verbroken wordt tijdens de verwerking:

De kans is groot dat je ergens in /etc/ssmtp/ssmtp.conf of in /etc/ssmtp/revaliases de verkeerde poort voor de Google smtp hebt opgegeven.

Controleer de laatste regels van uw logboeken. Er zouden enkele relevante foutmeldingen moeten zijn:

$ staart /var/log/mail.log

$ staart /var/log/syslog

Garagedeur gaat niet open

Als alles werkte en het stopt gewoon, probeer dan opnieuw op te starten. Als dat niet werkt, trekt u het netsnoer uit de Raspberry Pi en herstelt u de stroomvoorziening. De Raspberry Pi zou in minder dan 2 minuten opnieuw moeten opstarten en alles zou goed moeten werken. Dit wordt meestal veroorzaakt door een stroomstoring naar de Residential Gateway.

GPIO

Als er iets misgaat, kun je het beste zien wat er aan de hand is met het volgende commando:

$ gpio lees alles

Log in op Raspberry Pi vanaf MacBook

terminal is een MacBook-hulpprogramma: schijf/toepassingen/hulpprogramma's/terminal. Ik bewaar de terminal-app in het dock.

Op MacBook, open terminal

$ ssh pi@♣raspberry-pi-ip♣

♣wachtwoord♣

Inloggen op residentiële gateway

Open de browser op MacBook

URL = "framboos-pi-ip"

Login: ♣gateway-wachtwoord♣

Logboeken

Als er iets misgaat, controleer dan deze logboeken op fouten, waarschuwingen of andere problemen.

$ cat /var/log/berichten

$ cat /var/log/syslog $ cat /var/log/dmesg

MAC-map

Directory op MacBook waar websitebestanden worden opgeslagen

MAC Directory = /Gebruikers/♣mijn macbook♣/Desktop/wi-fi-enabled home/wifi-enabled garagedeuropener/website

Wachtwoord

Wachtwoord = raspberry-pi-wachtwoord♣

RAM en CPU gebruikt

$ top

CTRL-c om af te sluiten

Raspberry Pi-thuismap

$ pwd

/home/pi

Raspberry Pi-hostnaam

$hostnaam

hostnaam = "hostnaam"

Raspberry Pi IP

"framboos-pi-ip" = 192.168.1.93"

Raspberry Pi Website Directory

/var/www

Seco-Larm werkt niet meer

Op 01MEI2016 stopte de Seco-lamp met werken. Dit is de derde keer dat de sensor niet meer werkt. Om dit correct te zeggen, stopte fysieke pin 15 op de Raspberry Pi met het detecteren van de 3.3v-ingang. Ik heb de fysieke pinnen 1 en 17 van 3,3 V geprobeerd en beide gaven nog steeds 3,3 V af. Ik schakelde over van fysieke pin 15 naar een andere GPIO, fysieke pin 16 (GPIO 4) en het begon weer te werken. Er is dus niets mis met de Seco-larm. Het probleem lijkt te liggen bij de Raspberry Pi GPIO.

GPIO 3, fysieke pin 15 is dood. Dit is een zeer goede post over het testen van GPIO-pinnen.

Ik ben overgestapt van GPIO 3 naar GPIO 4 en heb de code dienovereenkomstig gewijzigd. Ik weet niet zeker waarom de GPIO-pin niet meer werkte. Hier zijn twee mogelijke redenen:

  • Ik heb de Seco-larm sensor gemonteerd, dus als de deur gesloten is, geeft deze 3,3 V af. De garagedeur is vaker dicht dan open. Misschien kan de GPIO-pin geen min of meer constante invoer van 3,3v aan.
  • De storing viel samen met een stroomuitval, misschien was er een stroompiek.

Residentiële Gateway U-vers

Ik heb AT&T U-verse met een Residential Gateway, maar elke service zou moeten werken.

Als de U-verse Gateway opnieuw wordt opgestart of de stroom uitvalt, moet de Raspberry Pi mogelijk opnieuw worden opgestart.

U-verse residentiële gateway Publieke IP = "router's-public-ip"

Het openbare IP-adres van een U-verse gateway voor thuisgebruik kan veranderen, maar gebeurt zeer zelden

U-verse Residential Gateway Homepage = 192.168.1.254

U-verse Router draadloos toegangspunt SSID = ♣ssid♣

WiFi-doorvoer is langzamer dan verwacht

Verander de router naar een minder gebruikt kanaal. Standaard stemmen alle circuitaanbieders ieders wifi af op kanaal 1. Schakel over naar een minder gebruikt kanaal, zoals 11. Probeer een oneven nummer te gebruiken.

Opmerking: ik heb een paar buren verteld wat ik deed om wifi te verbeteren en nu zit iedereen op 9 of 11, dus ben ik teruggegaan naar 1. Je moet altijd een vreemd kanaal gebruiken.

Open een browser.

Voer voor U-vers 192.168.1.254 in het URL-vak in.

Klik op Wireless link en kies kanaal 6 of 11.

Er is een app voor smartphones genaamd wifi-analysator. Een van de displays toont alle nabijgelegen wifi-toegangspunten die op een bepaald kanaal uitzenden. In mijn buurt is iedereen ingesteld op kanaal 1.

Koppel de Raspberry Pi los en herstel de stroomvoorziening

Aanbevolen: