Sommario:

Apriporta per garage Raspberry Pi 3: 15 passaggi (con immagini)
Apriporta per garage Raspberry Pi 3: 15 passaggi (con immagini)

Video: Apriporta per garage Raspberry Pi 3: 15 passaggi (con immagini)

Video: Apriporta per garage Raspberry Pi 3: 15 passaggi (con immagini)
Video: Raspberry Pi Controlled Garage Door & Sensor (complete instructions) 2024, Luglio
Anonim
Apriporta per garage Raspberry Pi 3
Apriporta per garage Raspberry Pi 3

Ho creato questo istruibile nel 2014. Da allora molto è cambiato. Nel 2021, ho aggiornato l'apriporta intelligente del garage qui.

Usa un Raspberry Pi e uno smartphone per aprire, chiudere e monitorare una porta del garage. L'apertura e la chiusura della porta è garantita dall'utilizzo di certificati autofirmati installati sui telefoni cellulari della famiglia. Se la porta del garage è aperta quando non dovrebbe essere, invia un messaggio di testo (SMS) a un telefono cellulare.

La porta del garage è in uso continuo dalla fine del 2014. Nel corso degli anni, ho cercato di mantenere aggiornate le modifiche. C'è un'appendice che descrive le modifiche all'istruibile.

Gli obiettivi di questo progetto sono:

  • Crea il mio primo istruibile - non avevo intenzione di pubblicarlo, ma ho ricevuto molte richieste
  • Apri una porta del garage con un telecomando standard
  • Apri una porta del garage con l'apriporta da garage con campanello a parete
  • Apri una porta del garage con uno smartphone
  • Monitorare lo stato della porta del garage da remoto tramite cellulare o laptop (è aperta o chiusa?)
  • Invia un messaggio di testo al mio cellulare se la porta è aperta quando dovrebbe essere chiusa
  • Mantieni sicura la porta del garage (ad esempio, in caso di interruzione di corrente, la porta non deve aprirsi)
  • Non consentire a nessun altro in rete di aprire la porta (certificato SSL autofirmato a due vie)
  • Usa il WiFi invece di una connessione cablata
  • Usa un Raspberry Pi 3

La base per questa implementazione di Garage Door Opener è stata derivata da Instructable: Raspberry Pi Garage Door Opener di quartarian. Inizialmente, ho usato un modello B + Raspberry Pi, quindi sono passato a un modello B Raspberry Pi 2 e ora utilizza un Raspberry Pi 3.

Ho usato un MacBook per comunicare con il Raspberry Pi, ma è possibile utilizzare qualsiasi computer.

Non c'è una ragione convincente per costruire questo dispositivo, ma è stato divertente. È più conveniente acquistarne uno. Un dispositivo simile può essere acquistato per circa $ 130 USD.

  • Ascensore maestro 828LM
  • Ciambellano MyQ $129
  • Porta GoGo $ 179
  • Artigiano $ 100

Appunti:

  • Il testo racchiuso tra picche, come questo sostituisci-questo♣ dovrebbe essere sostituito con un valore effettivo
  • Il testo blu sottolineato Arduino è un collegamento. In questo caso, è un collegamento a una versione arduino di un apriporta per garage.
  • Ho cercato di accreditare ogni fonte utilizzata. Le mie scuse per eventuali omissioni. La maggior parte di questo documento si basa sul lavoro di altre persone.
  • $ indica un comando eseguito in una finestra di terminale sul MacBook e di solito viene eseguito sul Raspberry Pi

Passaggio 1: raccogliere le parti

Acquista o raccogli parti e strumenti (prezzi in USD).

  • Raspberry Pi 3 Modello B Newark Element14 $ 35
  • Adattatore di alimentazione USB da 5,2 V 2,5 A da Amazon $ 9,99
  • Cavo da Micro USB a USB 6 piedi da Amazon $ 7,99
  • Custodia da Amazon $ 6,99
  • SanDisk Ultra 16 GB microSDHC Classe 10 con adattatore (SDSQUAN-016G-G4A) da Amazon $ 8,99
  • Modulo scudo relè SunFounder 2 canali 5V per Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $ 6,79
  • 3x cavi jumper femmina-femmina. Acquistato da Fry's per $ 4,95.
  • DNS dinamico $ 40 all'anno per 30 nomi (dyn.com)
  • 1-Gang 18 cu. in. Vecchio interruttore a parete pesante e scatola di derivazione, $ 3,12
  • Piatto da parete bianco a spazzola singola Ultra Pro, $ 7,88
  • SECO-LARM SM 226L, sensore per porta del garage, il prezzo varia ampiamente, $ 9,99 su Amazon con spedizione gratuita
  • 50 piedi di cavo termostato solido, Home Depot o Lowe's, ~ $ 20

Il mio totale: ~$172,00

Ho avuto le seguenti parti, strumenti e servizi:

  • Cavo Ethernet CAT5
  • Cavo di piccolo calibro, lungo 6 piedi
  • Cacciavite a croce
  • Pinze ago
  • Taglierini
  • Cacciavite a testa piatta per gioiellieri, necessario per allentare le viti sul relè
  • MacBook (è possibile utilizzare un PC)
  • AT&T GigaPower (è possibile utilizzare qualsiasi provider di servizi Internet)

Passaggio 2: configura Raspberry Pi senza monitor o tastiera

Configura Raspberry Pi senza monitor o tastiera
Configura Raspberry Pi senza monitor o tastiera

Tutti i progetti Raspberry Pi richiedono un qualche tipo di configurazione. Mi piace usare lo stesso insieme di istruzioni e, quando necessario, avere un posto per aggiornare tali istruzioni.

Imposta Raspberry Pi utilizzando il seguente comando:

Configura Raspberry Pi senza monitor o tastiera

L'istruzione sopra include passaggi facoltativi nell'appendice. Assicurati di fare il passaggio:

Aggiungi certificati lato client ai server web

Spegnimento Raspberry Pi

$ sudo spegnimento -h 0

Una volta spento, rimuovere

  • cavo Ethernet
  • Cavo seriale USB

Questi non saranno più necessari. Usa wifi, ssh e una finestra di terminale sul Mac Book per eseguire comandi sul Raspberry Pi.

Scollegare l'alimentazione e ricollegarla e il raspberry pi dovrebbe riavviarsi.

Passaggio 3: installa Wiring Pi, Apache e PHP

Installa cablaggio più

Apri una finestra di terminale sul Mac Book. Accedi a Raspberry Pi, quindi scarica, compila e installa Wiring Pi. Questo software consente il controllo dei pin GPIO. Ecco una guida passo passo:

wiringpi.com/download-and-install/

Ecco una versione ridotta delle istruzioni:

$ ssh pi@♣raspberry-pi-ip♣

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

Eseguire il comando gpio per verificare l'installazione:

$ gpio -v

gpio versione: 2.29 Copyright (c) 2012-2015 Gordon Henderson Questo è un software gratuito con ASSOLUTAMENTE NESSUNA GARANZIA. Per i dettagli, digitare: gpio -warranty Dettagli Raspberry Pi: Tipo: Modello 2, Revisione: 1.1, Memoria: 1024 MB, Produttore: Sony [OV] L'albero dei dispositivi è abilitato. Questo Raspberry Pi supporta l'accesso GPIO a livello di utente. -> Vedi la pagina man per maggiori dettagli $ gpio readall +-----+-----+---------+------+---+--- Pi 2---+---+------+---------+-----+-----+ | BCM | wPi | Nome | Modalità | V | Fisico | V | Modalità | Nome | 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 | FUORI | 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 | Nome | Modalità | V | Fisico | V | Modalità | Nome | wPi | BCM | +-----+-----+---------+------+---+---Pi 2---+---+--- ---+---------+-----+-----+

I comandi precedenti dovrebbero darti una certa sicurezza sul fatto che cablaggioPi funzioni correttamente.

Installa Apache e PHP

Esegui i seguenti comandi:

$ cd..

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

Per verificare che il server web funzioni, apri un browser e nella casella dell'URL inserisci:

raspberry-pi-ip♣

Il sito Web predefinito di Apache risponde con "Funziona!"

Passaggio 4: sito web

Apri una finestra di terminale sul Mac Book. Accedi a Raspberry Pi, quindi rimuovi il file index.html predefinito, modifica i permessi nella directory del sito Web e modifica un file chiamato index.php.

$ ssh pi@♣raspberry-pi-ip♣

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

E inserisci il seguente codice:

Apri garage

Domotica

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

"; } altrimenti { eco"

"; } ?>

Apriporta del garage Manuale dell'apriporta del garage chiuso 1 aperto 0
<?php if ($trigger == 0) { echo " <td colspan=\"4\" } else { echo"

var13 -->

CTRL-o e ENTER per scrivere il file e CTRL-x per uscire dall'editor.

Modificare i permessi sul file

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

Passaggio 5: immagine del sito web

Immagine del sito web
Immagine del sito web
Immagine del sito web
Immagine del sito web

Prendi un apriporta da garage remoto ad alta risoluzione dal web. Modifica l'immagine come desideri utilizzando il pennello Mac. Nell'immagine sopra, è stato utilizzato un Genie Garage Opener ad alta risoluzione, è stato aggiunto un logo Raspberry Pi e il led è stato rimosso.

Un'immagine è lo sfondo (remote-background.jpg) e l'altra è l'immagine attiva (remote-press.jpg).

Il piano era che premendo un pulsante, invece di far lampeggiare il led, il lampone lampeggiasse. Ho semplificato il sito.

Copia le immagini nel Raspberry Pi:

$ scp *-j.webp

password: password♣

Il sito web ha un solo pulsante. Per verificare, apri un browser e inserisci ♣raspberry-pi-ip♣. Invece del sito Web predefinito di Apache, che dice "Funziona!", dovrebbe apparire il pulsante. Premilo.

Passaggio 6: controllo remoto del server Web

Per facilitare l'accesso a Garage Door Opener da una posizione remota, utilizzo un nome DNS dinamico. Perché non mi piace ricordare gli indirizzi IP.

Con questa funzione, inserisco ♣dynamic-hostname♣.getmyip.com nel campo URL di un browser. Nota: l'IP sui router domestici può cambiare senza preavviso, ma ciò accade raramente. Ho scelto di utilizzare DynDNS. Dovrai conoscere l'indirizzo IP pubblico del tuo router.

IP del router U-Verse: uverse-public-ip♣

Puoi visualizzare i tuoi nomi host e i dettagli dell'account DynDNS Pro. Ecco alcuni suggerimenti per iniziare:

  • Crea il tuo nome host DNS dinamico (1 di 30):

    • nome-host dinamico♣
    • Chiave di aggiornamento: dynamic-ip-updater-key♣
  • Installa un client di aggiornamento per assicurarti che il tuo nome host sia sempre puntato sull'indirizzo IP corretto.

    • Scarica e installa su MacBook
    • Gli IP AT&T U-verse cambiano raramente, quindi il programma di aggiornamento sopra può essere eseguito ogni volta che cambia
    • Segui le indicazioni:

      • Aggiungi account
      • Inserisci nome utente e password: nomeutente-ip-dinamico♣ password-ip-dinamico♣
      • Seleziona il nome host
      • Fare clic su Configura host selezionati
      • L'host dovrebbe diventare attivo
    • Configura la tua rete per consentire l'accesso al tuo dispositivo da Internet. Puoi utilizzare la nostra procedura guidata Dyn per alcune istruzioni generali su come eseguire questa operazione, utilizzare risorse come PortForward.com o contattare il produttore del dispositivo per assistenza.

      • AT&T U-verso
      • Port Forwarding per 3801HGV 2-Wire - questo è il router AT&T U-Verse che ho. Vedere Aggiornamenti in un'appendice per informazioni su come eseguire il port forwarding sul router AT&T U-verse 5268ac.
      • Apri il browser e vai su raspberry-pi-ip♣
      • Password: password♣
      • Impostazioni
      • Firewall

        • Scegli raspberry-pi-hostname♣
        • Server

          • Porta Web Server 80
          • Server HTTPS – porta 443
        • Aggiungere
      • Salva

Fatto ciò, il server web funzionerà da Internet. Per verificare, inserisci "nome host dinamico" e dovresti vedere il pulsante di apertura della porta del garage.

Passaggio 7: collegare il circuito al Raspberry Pi

Collega il circuito al Raspberry Pi
Collega il circuito al Raspberry Pi

Per il codice fornito (passi 4 e 6), ho usato il pin 7 GPIO. È una coincidenza che GPIO 7 sia uguale al pin 7 di cablaggioPi. Nel codice PHP, vengono utilizzati i numeri di pin Pi di cablaggio e NON i numeri di pin GPIO. Puoi usare quello che vuoi, ma assicurati di cambiare il codice.

Ho provato a usare un cavo intrecciato, ma il relè non regge bene sul cavo intrecciato. Il filo solido è meglio.

Al mio primo tentativo, ho creato tre cavi di collegamento (femmina-maschio).

  • Utilizzare tre cavi jumper da femmina a femmina
  • Tagliare tre pezzi di filo solido a circa 1 pollice.

    Spelare 1/4 di pollice su entrambe le estremità del filo solido

  • Inserire un filo solido in un cavo jumper femmina.

Ecco un modo migliore per creare cavi di collegamento (femmina-maschio):

  • Utilizzare solo filo solido
  • Taglia tre pezzi da 4 pollici di filo pieno
  • Spelare 1/4 di pollice su entrambe le estremità del filo solido
  • Utilizzare pin di collegamento femmina
    • Far scorrere un pin di collegamento femmina su un'estremità del filo solido e crimpare

      Il perno femmina non deve allentarsi, saldare se necessario

    • Far scorrere il pressacavo sul perno di collegamento femmina o sul perno di copertura con nastro da elettricista

Collegare il relè al pi come mostrato nello schema:

  • Collegare l'estremità femmina del cavo al pin Raspberry Pi.
  • Inserire il filo solido nel relè.

Passaggio 8: creare un servizio di avvio

La maggior parte dei relè, compreso quello acquistato, funziona in questo modo:

  • Quando il segnale è ON il circuito rimane spento.
  • Quando il segnale è OFF, il circuito è acceso.

Se il Raspberry Pi perde potenza, il relè ha un meccanismo di sicurezza che mantiene il circuito spento.

Potrebbe verificarsi un problema quando il Rapberry Pi e il relè vengono ripristinati, ma prima che il Raspberry Pi abbia terminato l'avvio per attivare il segnale necessario per mantenere il circuito spento. Potresti svegliarti la mattina con il tuo garage aperto e potenzialmente qualche nuovo amico!

Tuttavia, il relè non si inizializza effettivamente finché la modalità pin GPIO non viene impostata tramite questo comando: gpio mode 7 out. Inoltre, se il pin GPIO è su ON (gpio write 7 1) prima di impostare la modalità GPIO, il relè rimarrà spento una volta inizializzato.

Per fare in modo che questa inizializzazione venga eseguita all'avvio e non risvegli con nuovi amici, usa il seguente script di avvio.

$ ssh pi@♣raspberry-pi-ip♣

$ sudo nano /etc/init.d/garagerelay

Quindi incolla questo script:

#! /bin/bash

# /etc/init.d/garagerelay # Esegue funzioni specifiche quando richiesto dal sistema case "$1" in start) echo "Starting Relay" # Attiva 7 che mantiene il relè spento /usr/local/bin/gpio write 7 1 #Avvia Gpio /usr/local/bin/gpio mode 7 out;; stop) echo "Stop gpio";; *) echo "Utilizzo: /etc/init.d/garagerelay {start|stop}" exit 1;; esac uscita 0

Per salvare: CTRL-o, ENTER

Per uscire da nano, CTRL-x

Rendi eseguibile il file:

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

Ora dì al tuo pi di eseguire questo script all'avvio:

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

(Nota: puoi tranquillamente ignorare l'avviso "tag LSB mancanti".)

Assicurati che lo script di avvio sia in esecuzione

$ sudo reboot

Apri un browser e fai clic sull'apri. Il relè dovrebbe fare clic.

Passaggio 9: collegare Raspberry Pi al garage

Collega Raspberry Pi al Garage
Collega Raspberry Pi al Garage

Quando sposti il Raspberry Pi, assicurati di eseguire:

$ spegnimento -h 0

Potresti voler togliere l'alimentazione al garage. Quindi, l'apriporta non ti fulmina:). Il vero motivo è che ogni volta che metti in corto i fili, la porta si alza e si abbassa.

Svitare le viti a muro dall'apriporta campanello, che fissa il campanello alla parete.

Fai un buco attraverso il garage dietro l'apriporta all'interno della casa. In Texas, il Raspberry Pi non dovrebbe essere in garage, la variazione di temperatura nel garage è al di fuori delle specifiche operative del Raspberry Pi.

Fai passare i cavi del relè attraverso il foro (usa un appendiabiti).

Allentare entrambe le viti sul retro dell'apriporta.

Spellare entrambe le estremità dei cavi del relè: 1) circa 1/8 di pollice dal lato del relè e circa ½ pollice dal lato del campanello. Piega il lato del cavo del campanello in un mezzo anello abbastanza grande da adattarsi alla vite sul retro.

Collega un cavo relè a ciascuna vite sul retro del campanello e stringi la vite. I collegamenti sono come mostrato nell'immagine. Poiché il relè isola il circuito, la direzione non importa nemmeno quale relè è collegato a quale vite.

Passaggio 10: collegare Raspberry Pi a SECO-LARM

Collega Raspberry Pi a SECO-LARM
Collega Raspberry Pi a SECO-LARM
Collega Raspberry Pi a SECO-LARM
Collega Raspberry Pi a SECO-LARM

Prima che avessi finito il codice, io e la mia famiglia eravamo in vacanza e ho aperto il mio browser. L'ultima visualizzazione del mio browser riguardava l'apriporta del garage: la pagina si aggiornava e la porta del garage si apriva. Pochi giorni dopo un vicino ha chiamato e ha chiesto se la porta del garage doveva essere aperta? Fortunatamente, potrei chiuderlo da 500 miglia di distanza.

Questo intoppo mi ha costretto a cambiare il codice in modo che ciò non accadesse e ad aggiungere un sensore e lo stato della porta del garage al sito web.

Questo è un collegamento all'istruzione originale per l'aggiunta di un sensore. Tuttavia, dato tutto ciò che è già stato completato, l'installazione del sensore può essere notevolmente semplificata e invece di utilizzare python aggiungere un paio di righe di codice a index.php.

closed

Il magnete è fissato al lato interno sinistro superiore della porta del garage e il sensore è fissato alla parete del garage. Quindi, ho dovuto far passare il cavo del termostato solido dal sensore al raspberry pi. Ciò ha richiesto un foro dal garage nella soffitta e dalla soffitta nel muro contenente l'apriporta del garage (interruttore del campanello).

Ho inserito una scatola di giunzione blu tra il sensore SECO-LARM e i fili pieni.

A casa mia, c'è uno spazio di 18 pollici tra il soffitto del primo piano e il fondo del secondo piano. Presumo che sia qui che corrono i condotti di riscaldamento e raffreddamento. Avevo bisogno di un'estensione della punta del trapano abbastanza lunga da passare attraverso il secondo piano e attraverso la parte superiore 2x4 (piastra superiore) contenente il campanello.

La parte più importante è che quando si fora dalla soffitta nell'area in cui i cavi andranno all'apriporta del garage è NON perforare l'elettricità. Risolvere questo problema non è stato divertente. Vedere le scintille e far spegnere le luci è stato davvero emozionante!

Il sensore richiede due cavi solidi del termostato o un cavo invisibile per recinto per cani.

Il Raspberry Pi ha più descrizioni di pin (BCM, wPi, fisico). Il codice utilizza i numeri di pin del cablaggio pi. Per vedere tutti i pin e le mappature dei pin e i valori dei pin, inserisci:

$ gpio readall

Per un manuale gpio, inserisci:

$ gpio uomo

Nelle istruzioni originali, il pin fisico 9 è a massa e si collega a uno dei cavi SECO-LARM. Tuttavia, questo non funziona per me. Collegare invece i cavi ai pin fisici 15 e 17

Il pin fisico 15 (wPi pin 3) va a 3,3V quando il sensore SECO-LARM è chiuso. Il pin fisico 17 è 3.3v. Se non funziona, cambiare i collegamenti sul SECO-LARM.

Attacca SECO-LARM alla porta del garage e al muro. Esegui i cavi e connettiti a Raspberry Pi.

Passaggio 11: inviare un avviso se la porta è aperta quando dovrebbe essere chiusa

Se la porta del garage è aperta quando non dovrebbe essere, invia un messaggio di testo a un telefono cellulare.

Installa e configura SMTP semplice.

Ho un cellulare AT&T e uso cellular-phone-number♣@txt.att.net per i messaggi di testo. Ho anche un account Gmail e l'esempio seguente utilizza ♣gmail-account♣@gmail.com. Se utilizzi servizi diversi, apporta le modifiche appropriate.

Per i comandi $ di seguito, apri una finestra di terminale sul MacBook e accedi al tuo Raspberry Pi.

Assicurati che i repository siano aggiornati:

$ sudo apt-get update

Installa semplici utility SSMTP e di posta:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

Modifica il file di configurazione SSMTP:

$ sudo nano /etc/ssmtp/ssmtp.conf

come segue:

mailhub=smtp.gmail.com:587 hostname=♣your-hostname♣ AuthUser=♣gmail-account♣@gmail.com AuthPass=♣gmail-password♣ UseSTARTTLS=YES

Modifica il file degli alias SSMTP:

$ sudo nano /etc/ssmtp/revaliases

Crea una riga per ogni utente che potrà inviare email. Per esempio:

Imposta i permessi del file di configurazione SSMTP:

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

I permessi del file /etc/ssmtp/ssmtp.conf determinano chi sarà in grado di inviare email dal Raspberry Pi. Per impostazione predefinita, questo file è di proprietà dell'utente root e anche il gruppo del file è root.

Modifica il file degli alias SSMTP, che contiene i dati sugli account di posta elettronica:

$ sudo nano /etc/ssmtp/ssmtp.conf

Una volta completato il processo di installazione e configurazione di cui sopra, testarlo inviando un'e-mail dalla riga di comando.

$ echo "chiudi la porta del garage" | mail -s "Porta del garage aperta" numero-cellulare♣@txt.att.net

Crea uno script per verificare se la porta del garage è aperta quando non dovrebbe essere, quindi invia un messaggio di testo.

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

e aggiungi quanto segue:

#!/bin/bash

# controlla se la porta del garage è aperta. # Se aperto invia alert e scrivi su syslog up=0; porta=$(/home/pi/wiringPi/gpio/gpio read 3) if ["$door" -eq "$up"] then logger ♣your-hostname♣: Garage Door Open echo "close the garage door" | mail -s "Porta del garage aperta" numero-cellulare♣@txt.att.net fi exit 0

Quindi aggiungi un crontab da eseguire durante le ore richieste:

$ sudo crontab –e

e aggiungi:

# Di notte, controlla ogni ora se la porta del garage è aperta

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

Se tutto funziona, vai al passaggio successivo.

Passaggio 12: inserisci Raspberry Pi nel libro segreto

Metti Raspberry Pi nel libro segreto
Metti Raspberry Pi nel libro segreto
Metti Raspberry Pi nel libro segreto
Metti Raspberry Pi nel libro segreto

Metti il lampone pi in un libro segreto. Ho preso questo da Michael per circa $ 7. Ho praticato dei piccoli fori per i fili e il cavo di alimentazione.

Passaggio 13: Appendice: Riferimenti

Modulo scudo relè SunFounder 2 canali 5V per Arduino UNO 2560 1280 ARM PIC AVR STM32

  • Scheda di interfaccia relè 5V a 2 canali e ognuna necessita di 15-20 mA
  • Corrente del driver Dotato di relè ad alta corrente, AC250V 10A; DC30V 10A
  • Interfaccia standard controllabile direttamente da microcontrollore (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, logica TTL)
  • LED di indicazione per stato uscita relè Link per scaricare il documento:

Passaggio 14: Appendice: Aggiornamenti

21FEB2016

  • Nelle istruzioni originali, c'erano problemi con la correzione automatica, la formattazione e la chiarezza delle indicazioni.

    • Un problema di esempio è quando le virgolette doppie all'interno del codice vengono modificate in qualcosa che assomiglia a virgolette in corsivo. Tuttavia, se lo tagli e incolli in uno script, non funzionerà.
    • L'editor istruibile ama la correzione automatica, quindi wlan si trasforma in piano e la rimozione automatica si trasforma in rimozione automatica. Questi cambiamenti sono difficili da individuare.
    • Alcune delle mie indicazioni potrebbero non essere state abbastanza chiare.
    • Normalmente, uso le parentesi angolari come indicatore di qualcosa che deve essere sostituito. L'editor li converte in html. Quindi, sono passato alle parentesi quadre, ma queste possono causare problemi perché sembrano codice. Quindi, alla fine ho optato per s come indicatore per la sostituzione con un valore effettivo.
  • Nel tempo ho anche migliorato alcuni script.
  • Passaggi modificati 21-26

03APR2016

  • Creazione di un'appendice con risoluzione dei problemi, riferimenti e aggiornamenti (passaggi 27-29)
  • Risoluzione dei problemi spostata nell'appendice dal precedente passaggio 2
  • Aggiornata e in ordine alfabetico la pagina di risoluzione dei problemi
  • Nome del file modificato da test2wifi.sh a garage.sh - solo più descrittivo.
  • Cron aggiornato per usare garage.sh
  • Modificato 1, 20-26 (Crea un servizio di avvio per passare prima dell'appendice)

04APRILE2016

  • Sostituito i passaggi 2-11 e 16-20 con il mio standard era di configurare un Raspberry Pi
  • Elenco delle parti aggiornato, passaggio 1
  • Foto aggiunte/unite

05APRILE2016

Sito web e immagine semplificati (passi 4 e 5)

01MAGGIO2016

Aggiunta la risoluzione dei problemi per il sensore Secolarm/raspberry Pi

01MAGGIO2016

Le modifiche precedenti non sono state salvate correttamente?

11NOV2016

  • Aggiornato ad AT&T GigaPower e cambiato il router in 5268ac
  • 5268ac non supporta il loopback, quindi il server Garage Opener non è accessibile dai computer sulla LAN. Affinché un MacBook acceda al server Web di apertura del garage, procedi come segue:

$ sudo nano /etc/hosts

e aggiungi la riga

192.168.1.64 nome-dominio-esterno-del-server♣

Salva ed esci, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • Le regole di port forwarding integrate del 5268ac, come server HTTPS, server HTTP e server Web, non funzionano. Per far funzionare il port forwarding:

    • Apri un browser e vai a 192.168.1.254
    • Login
    • Seleziona Impostazioni, Firewall, Applicazioni, pinhole e DMZ.
    • Seleziona il web server dell'apri garage
    • Seleziona Definito dall'utente
    • Fare clic su una nuova applicazione definita dall'utente

      • In Nome profilo applicazione inserire: PortForwarding
      • In Crea definizione applicazione aggiungere ciascuno dei seguenti elementi e fare clic su Aggiungi all'elenco:

        • TCP da 80 a 80, mappa alla porta host 443
        • TCP da 443 a 443 mappa per ospitare la porta 443
        • UDP da 443 a 443, mappa alla porta host 443
        • UDP da 80 a 80, mappa per ospitare la porta 443
    • Fare clic su Indietro
    • Riseleziona il tuo server web
    • Seleziona Definito dall'utente
    • Aggiungi PortForwarding
    • Fare clic su Salva

21GEN2018

  • Aggiornato a Raspberry Pi 3
  • Diverse modifiche ai passaggi
  • Aggiornate alcune parti e prezzi

Passaggio 15: Appendice: risoluzione dei problemi

Spazio su disco utilizzato

L'ultima riga mostra lo spazio su disco totale utilizzato. La scheda SD ha 8 GB.

$ cd../..

$ sudo du –hx –c

e-mail

Se hai problemi, prova questo:

$ echo "prova" | sendmail -v tuo-account-gmail♣@gmail.com

Se l'e-mail è impostata correttamente, dovresti ricevere un'e-mail nel tuo account Gmail.

Se ricevi un errore di autenticazione:

Potrebbe essere necessario ridurre la sicurezza sul tuo account. Tuttavia, NON è consigliabile ridurre la sicurezza. Google invierà un'email con un link per ridurre l'impostazione di sicurezza.

Puoi passare dal tuo attuale lettore di email per utilizzare www.gmail.com per accedere al tuo account (consigliato) o modificare le tue impostazioni su https://www.google.com/settings/security/lesssecu… in modo che il tuo account non sia più protetti dai moderni standard di sicurezza.

Non consiglio di abbassare gli standard di sicurezza.

Se ricevi un errore di autorizzazione:

La causa più probabile di ciò è che hai specificato un nome utente o una password errati per il tuo account Gmail nel file /etc/ssmtp/ssmtp.conf. Ricontrolla i valori dei campi AuthUser e AuthPass.

Se si perde la connessione durante l'elaborazione:

È probabile che tu abbia specificato la porta sbagliata per Google smtp da qualche parte in /etc/ssmtp/ssmtp.conf o in /etc/ssmtp/revaliases.

Controlla le ultime righe dei tuoi log. Dovrebbero esserci alcuni messaggi di errore rilevanti:

$ tail /var/log/mail.log

$ tail /var/log/syslog

La porta del garage non si apre

Se tutto funzionava e si ferma, prova a riavviare. Se non funziona, stacca il cavo di alimentazione da Raspberry Pi, quindi ripristina l'alimentazione. Il Raspberry Pi dovrebbe riavviarsi in meno di 2 minuti e tutto dovrebbe funzionare correttamente. Ciò è generalmente causato da una perdita di alimentazione al Gateway residenziale.

GPIO

Se qualcosa va storto, il modo migliore per vedere cosa sta succedendo è con il seguente comando:

$ gpio readall

Accedi a Raspberry Pi da MacBook

terminal è un'utilità MacBook: disco/applicazioni/utilità/terminale. Continuo l'app del terminale nel dock.

Su MacBook, apri il terminale

$ ssh pi@♣raspberry-pi-ip♣

password♣

Accedi al gateway residenziale

Su MacBook, apri il browser

URL = raspberry-pi-ip♣

Login: password-gateway♣

Registri

Se qualcosa va storto, controlla questi log per errori, avvisi o altri problemi.

$ cat /var/log/messaggi

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

Elenco MAC

Directory su MacBook in cui sono archiviati i file del sito Web

Directory MAC = /Utenti/♣il mio macbook♣/Desktop/casa abilitata al wi-fi/apriporta del garage abilitato al wifi/sito web

Parola d'ordine

Password = raspberry-pi-password♣

RAM e CPU utilizzate

$ in alto

CTRL-c per uscire

Directory principale di Raspberry Pi

$ pwd

/home/pi

Nome host Raspberry Pi

$nomehost

hostname = hostname♣

IP Raspberry Pi

lampone-pi-ip♣ = 192.168.1.93

Directory del sito Web Raspberry Pi

/var/www

Secolarm smette di funzionare

Il 01 MAGGIO 2016 il Secola-larm ha smesso di funzionare. Questa è la terza volta che il sensore smette di funzionare. Per dirlo correttamente, il pin fisico 15 sul Raspberry Pi ha smesso di rilevare l'ingresso 3.3v. Ho provato i pin fisici 1 e 17 a 3.3v ed entrambi stavano ancora emettendo 3.3v. Sono passato dal pin fisico 15 a un altro GPIO, pin fisico 16 (GPIO 4) e ha ripreso a funzionare. Quindi, non c'è niente di sbagliato nel Secolarm. Il problema sembra essere con il Raspberry Pi GPIO.

GPIO 3, il pin fisico 15 è morto. È un ottimo post su come testare i pin GPIO.

Sono passato da GPIO 3 a GPIO 4 e ho modificato il codice di conseguenza. Non sono sicuro del motivo per cui il pin GPIO ha smesso di funzionare. Ecco due possibili ragioni:

  • Ho montato il sensore Secola-larm, quindi quando la porta è chiusa emette 3.3v. La porta del garage viene chiusa più spesso di quanto sia aperta. Forse, il pin GPIO non può accettare un input più o meno costante di 3.3v.
  • Il guasto è coinciso con una perdita di potenza, forse c'è stato un picco di corrente.

Gateway residenziale U-verse

Ho AT&T U-verse con un gateway residenziale, ma qualsiasi servizio dovrebbe funzionare.

Se il gateway U-verse viene riavviato o perde alimentazione, potrebbe essere necessario riavviare il Raspberry Pi.

Gateway residenziale U-verse IP pubblico = IP-pubblico-router♣

L'IP pubblico di un gateway residenziale U-verse può cambiare, ma lo fa molto raramente

Home page del gateway residenziale U-verse = 192.168.1.254

SSID del punto di accesso wireless del router U-verse = ssid♣

Il throughput WiFi è più lento del previsto

Cambia router su un canale meno utilizzato. Per impostazione predefinita, tutti i provider di circuiti sintonizzano il Wi-Fi di tutti sul canale 1. Passa a un canale meno utilizzato, ad esempio 11. Prova a utilizzare un numero dispari.

Nota: ho detto a un paio di vicini cosa ho fatto per migliorare il wi-fi e ora tutti sono su 9 o 11, quindi sono tornato a 1. Dovresti sempre usare un canale dispari.

Apri un browser.

Per U-verse, inserisci 192.168.1.254 nella casella URL.

Fare clic su Collegamento wireless e selezionare il canale 6 o 11.

C'è un'app per smartphone chiamata analizzatore wifi. Uno dei display mostra tutti i punti di accesso wifi vicini che trasmettono su un determinato canale. Nel mio quartiere, tutti sono impostati sul canale 1.

Scollega Raspberry Pi, quindi ripristina l'alimentazione

Consigliato: