Tabla de contenido:
- Paso 1: Reúna las piezas
- Paso 2: configura Raspberry Pi sin monitor o teclado
- Paso 3: Instale Wiring Pi, Apache y PHP
- Paso 4: sitio web
- Paso 5: imagen del sitio web
- Paso 6: Control remoto del servidor web
- Paso 7: conecte el circuito a la Raspberry Pi
- Paso 8: crear un servicio de inicio
- Paso 9: conecte la Raspberry Pi al garaje
- Paso 10: conecte Raspberry Pi a SECO-LARM
- Paso 11: envíe una alerta si la puerta está abierta cuando debería estar cerrada
- Paso 12: Pon tu Raspberry Pi en el libro secreto
- Paso 13: Apéndice: Referencias
- Paso 14: Apéndice: Actualizaciones
- Paso 15: Apéndice: Solución de problemas
Video: Abre-puerta de garaje Raspberry Pi 3: 15 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Creé este instructable en 2014. Mucho ha cambiado desde entonces. En 2021, actualicé el abre-puertas de garaje inteligente aquí.
Use una Raspberry Pi y un teléfono inteligente para abrir, cerrar y monitorear una puerta de garaje. La apertura y el cierre de la puerta se asegura mediante el uso de certificados autofirmados instalados en los teléfonos móviles de la familia. Si la puerta del garaje está abierta cuando no debería, envíe un mensaje de texto (SMS) a un teléfono celular.
La puerta del garaje ha estado en uso continuo desde finales de 2014. A lo largo de los años, he intentado mantener actualizados los cambios. Hay un apéndice que describe los cambios en el instructable.
Los objetivos de este proyecto son:
- Haga mi primer instructable: no tenía intención de publicar esto, pero he recibido muchas solicitudes
- Abra una puerta de garaje con un control remoto estándar
- Abra una puerta de garaje con el abridor de garaje con timbre montado en la pared
- Abra una puerta de garaje con un SmartPhone
- Controle el estado de la puerta del garaje de forma remota a través de un teléfono celular o computadora portátil (¿está abierta o cerrada?)
- Enviar un mensaje de texto a mi teléfono celular si la puerta está abierta cuando debería estar cerrada
- Mantenga la puerta del garaje segura (por ejemplo, en caso de pérdida de energía, la puerta no debe abrirse)
- No permita que nadie más en la red abra la puerta (certificado SSL autofirmado bidireccional)
- Use WiFi en lugar de una conexión por cable
- Usa una Raspberry Pi 3
La base para esta implementación del abre-puertas de garaje se derivó del Instructable: Raspberry Pi Garage Door Opener de quartarian. Originalmente, usé una Raspberry Pi modelo B +, luego me mudé a una Raspberry Pi 2 modelo B, y ahora usa una Raspberry Pi 3.
Usé una MacBook para comunicarme con la Raspberry Pi, pero se puede usar cualquier computadora.
No hay una razón convincente para construir este dispositivo, pero fue divertido. Es más rentable comprar uno. Se puede comprar un dispositivo similar por alrededor de $ 130 USD.
- Maestro de elevación 828LM
- Chamberlain MyQ $ 129
- Puerta GoGo $ 179
- Artesano $ 100
Notas:
- El texto encerrado entre espadas, como este ♣ reemplazar-esto ♣ debe reemplazarse con un valor real
- El texto azul subrayado de Arduino es un enlace. En este caso, es un enlace a una versión arduino de un abridor de puerta de garaje.
- Intenté acreditar todas las fuentes utilizadas. Mis disculpas por cualquier omisión. La mayor parte de este documento se basa en el trabajo de otras personas.
- $ indica un comando ejecutado en una ventana de terminal en la MacBook y generalmente se está ejecutando en la Raspberry Pi
Paso 1: Reúna las piezas
Compra o recolecta repuestos y herramientas (precios en USD).
- Raspberry Pi 3 Modelo B Newark Element14 $ 35
- Adaptador de corriente USB 5.2V 2.5A de Amazon $ 9.99
- Cable micro USB a USB de 6 pies desde Amazon $ 7.99
- Caja de Amazon $ 6.99
- SanDisk Ultra 16 GB microSDHC Class 10 con adaptador (SDSQUAN-016G-G4A) de Amazon $ 8.99
- Módulo de protección de relé SunFounder de 2 canales y 5 V para Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $ 6.79
- 3 cables de puente hembra-hembra. Comprado en Fry's por $ 4,95.
- DNS dinámico $ 40 por año por 30 nombres (dyn.com)
- 1 unidad 18 pies cúbicos en. Caja de tomacorrientes y interruptor de pared pesada de trabajo antiguo, $ 3.12
- Placa de pared blanca Ultra Pro Single Brush, $ 7.88
- SECO-LARM SM 226L, Sensor de puerta de garaje, el precio varía ampliamente, $ 9.99 en Amazon con envío gratis
- 50 pies de cable de termostato sólido, Home Depot o Lowe's, ~ $ 20
Mi total: ~ $ 172.00
Tenía las siguientes piezas, herramientas y servicios:
- Cable Ethernet CAT5
- Alambre de calibre pequeño, 6 pies de largo
- Destornillador Phillips
- Pinzas de punta de aguja
- Cortadores de caja
- Destornillador de cabeza plana para joyeros, necesario para aflojar los tornillos del relé
- MacBook (se puede utilizar una PC)
- AT&T GigaPower (se puede utilizar cualquier proveedor de servicios de Internet)
Paso 2: configura Raspberry Pi sin monitor o teclado
Todos los proyectos de Raspberry Pi requieren algún tipo de configuración. Me gusta usar el mismo conjunto de instrucciones y, cuando es necesario, tengo un lugar para actualizar esas instrucciones.
Configure Raspberry Pi usando el siguiente instructable:
Configurar Raspberry Pi sin monitor o teclado
El instructable anterior incluye pasos opcionales en el apéndice. Asegúrese de realizar el paso:
Agregar certificados del lado del cliente a los servidores web
Apagar Raspberry Pi
$ sudo shutdown -h 0
Una vez apagado, elimine
- Cable de ethernet
- Cable serial USB
Estos ya no serán necesarios. Use wifi, ssh y una ventana de terminal en el Mac Book para ejecutar comandos en la Raspberry Pi.
Desenchufe la energía y vuelva a enchufarla, y la Raspberry Pi debería reiniciarse.
Paso 3: Instale Wiring Pi, Apache y PHP
Instalar Wiring Pi
Abra una ventana de terminal en el Mac Book. Inicie sesión en Raspberry Pi, luego descargue, compile e instale Wiring Pi. Este software permite el control de los pines GPIO. Aquí hay una guía paso a paso:
wiringpi.com/download-and-install/
Aquí hay una versión condensada de las instrucciones:
$ ssh pi @ ♣ frambuesa-pi-ip ♣
contraseña: ♣ contraseña ♣ $ sudo apt-get install git-core $ git clone git: //git.drogon.net/wiringPi $ cd cableadoPi $ git pull origin $./build
Ejecute el comando gpio para verificar la instalación:
$ gpio -v
gpio versión: 2.29 Copyright (c) 2012-2015 Gordon Henderson Este es un software gratuito SIN NINGUNA GARANTÍA. Para obtener detalles, escriba: gpio -warranty Raspberry Pi Detalles: Tipo: Modelo 2, Revisión: 1.1, Memoria: 1024 MB, Fabricante: Sony [OV] El árbol de dispositivos está habilitado. Esta Raspberry Pi admite acceso GPIO a nivel de usuario. -> Consulte la página de manual para obtener más detalles $ gpio readall + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + ------ + --------- + ----- + ----- + | BCM | wPi | Nombre | Modo | V | Físico | V | Modo | Nombre | 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 | FUERA | 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 | Nombre | Modo | V | Físico | V | Modo | Nombre | wPi | BCM | + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + --- --- + --------- + ----- + ----- +
Los comandos anteriores deberían darle cierta confianza en que el cableado de Pi está funcionando bien.
Instalar Apache y PHP
Ejecute los siguientes comandos:
$ cd..
$ sudo apt-get update $ sudo apt-get install apache2 php5 libapache2-mod-php5
Para verificar que el servidor web funcione, abra un navegador y en el cuadro URL ingrese:
♣ frambuesa-pi-ip ♣
El sitio web predeterminado de Apache responde con "¡Funciona!"
Paso 4: sitio web
Abra una ventana de terminal en el Mac Book. Inicie sesión en Raspberry Pi, luego elimine el archivo index.html predeterminado, cambie los permisos en el directorio del sitio web y edite un archivo llamado index.php.
$ ssh pi @ ♣ frambuesa-pi-ip ♣
contraseña: ♣ contraseña ♣ $ sudo rm /var/www/index.html $ sudo chown pi: root / var / www $ sudo nano /var/www/index.php
E ingrese el siguiente código:
Abridor de garaje
Automatización del hogar |
---|
Abridor de puerta de garage | Manual del abre-puertas de garaje | cerrado 1 | abierto 0 |
CTRL-o y ENTER para escribir el archivo y CTRL-x para salir del editor.
Cambiar permisos en el archivo
$ sudo chmod 664 /var/www/index.php
Paso 5: imagen del sitio web
Obtenga un abre-puertas de garaje remoto de alta resolución de la web. Modifique la imagen como desee con el pincel de Mac. En la imagen de arriba, se usó un abridor de garaje Genie de alta resolución, se agregó un logotipo de raspberry pi y se eliminó el LED.
Una imagen es el fondo (remote-background.jpg) y la otra es la imagen activa (remote-press.jpg).
El plan era que al presionar un botón, en lugar de hacer parpadear el LED, la frambuesa parpadearía. Simplifiqué el sitio web.
Copie las imágenes en la raspberry pi:
$ scp *-j.webp
contraseña: ♣ contraseña ♣
El sitio web tiene un solo botón. Para verificar, abra un navegador e ingrese ♣ raspberry-pi-ip ♣. En lugar del sitio web predeterminado de Apache, que dice "¡Funciona!", Debería aparecer el botón. Presiónelo.
Paso 6: Control remoto del servidor web
Para facilitar el acceso al abre-puertas de garaje desde una ubicación remota, utilizo un nombre DNS dinámico. Porque no me gusta recordar direcciones IP.
Con esta función, ingreso ♣ nombre de host dinámico ♣.getmyip.com en el campo URL de un navegador. Nota: La IP de los enrutadores domésticos puede cambiar sin previo aviso, pero esto rara vez ocurre. Elegí usar DynDNS. Deberá conocer la dirección IP pública de su enrutador.
IP del enrutador U-Verse: ♣ uverse-public-ip ♣
Puede ver sus nombres de host y los detalles de su cuenta DynDNS Pro. A continuación, se ofrecen algunos consejos para comenzar:
-
Cree su nombre de host de DNS dinámico (1 de 30):
- ♣ nombre de host dinámico ♣
- Clave de actualización: ♣ dynamic-ip-Updater-key ♣
-
Instale un cliente de actualización para asegurarse de que su nombre de host siempre apunte a la dirección IP correcta.
- Descargar e instalar en MacBook
- Las direcciones IP de AT&T U-verse rara vez cambian, por lo que el actualizador anterior se puede ejecutar siempre que cambie
-
Sigue las direcciones:
- Añadir cuenta
- Ingrese el nombre de usuario y la contraseña: ♣ nombre-de-usuario-ip-dinámico ♣ ♣ contraseña-ip-dinámica ♣
- Seleccionar nombre de host
- Haga clic en Configurar hosts seleccionados
- El anfitrión debería activarse
-
Configure su red para permitir el acceso a su dispositivo desde Internet. Puede utilizar nuestro Dyn Wizard para obtener instrucciones generales sobre cómo hacer esto, utilizar recursos como PortForward.com o ponerse en contacto con el fabricante del dispositivo para obtener ayuda.
- AT&T U-verse
- Reenvío de puertos para 3801HGV de 2 cables: este es el enrutador AT&T U-Verse que tengo. Consulte Actualizaciones en un Apéndice para saber cómo reenviar puertos en el enrutador AT&T U-verse 5268ac.
- Abra el navegador y vaya a ♣ raspberry-pi-ip ♣
- Contraseña: ♣ contraseña ♣
- Ajustes
-
Cortafuegos
- Elija ♣ raspberry-pi-hostname ♣
-
Servidores
- Puerto del servidor web 80
- Servidor HTTPS - puerto 443
- Agregar
- Ahorrar
Una vez hecho esto, el servidor web funcionará desde Internet. Para verificar, ingrese ♣ nombre de host dinámico ♣ y debería ver el botón de apertura de la puerta del garaje.
Paso 7: conecte el circuito a la Raspberry Pi
Para el código proporcionado (paso 4 y 6), utilicé el pin 7 de GPIO. Es una coincidencia que GPIO 7 sea el mismo que el pin 7. del cableadoPi. En el código PHP, se utilizan números de pin de cableado Pi y NO números de pin GPIO. Puede usar el que desee, pero asegúrese de cambiar el código.
Intenté usar un cable trenzado, pero el relé no se sostiene bien en un cable trenzado. El alambre macizo es mejor.
En mi primer intento, creé tres cables de conexión (hembra a macho).
- Utilice tres cables de puente hembra a hembra
-
Corta tres pedazos de alambre sólido a aproximadamente 1 pulgada.
Pele 1/4 de pulgada en ambos extremos del cable sólido
- Inserte un cable sólido en un cable de puente hembra.
Aquí hay una mejor manera de crear cables de conexión (hembra a macho):
- Utilice solo alambre macizo
- Corta tres trozos de alambre macizo de 4 pulgadas
- Pele 1/4 de pulgada en ambos extremos del cable sólido
- Utilice clavijas de conexión hembra
-
Deslice una clavija de conexión hembra en un extremo del cable sólido y engarce
La clavija hembra no debe soltarse, soldar si es necesario
- Deslice el protector contra tirones sobre la clavija de conexión hembra o cubra la clavija con cinta de electricista
-
Conecte el relé al pi como se muestra en el diagrama:
- Conecte el extremo hembra del cable al pin Raspberry Pi.
- Inserte un cable sólido en el relé.
Paso 8: crear un servicio de inicio
La mayoría de los relés, incluido el adquirido, funcionan así:
- Cuando la señal está encendida, el circuito permanece apagado.
- Cuando la señal está APAGADA, entonces el circuito está encendido.
Si la Raspberry Pi pierde energía, el relé tiene un mecanismo de seguridad que mantiene el circuito APAGADO.
Podría ocurrir un problema cuando la Rapberry Pi y el relé recuperan la energía, pero antes de que la Raspberry Pi haya terminado de arrancar para encender la señal, lo cual es necesario para mantener el circuito apagado. ¡Podrías despertarte por la mañana con tu garaje abierto y potencialmente algunos nuevos amigos!
Sin embargo, el relé no se inicializa realmente hasta que el modo de pin GPIO se establece a través de este comando: gpio mode 7 out. Además, si el pin GPIO está en ON (gpio write 7 1) antes de configurar el modo GPIO, el relé permanecerá apagado una vez inicializado.
Para que esta inicialización se ejecute en el arranque y no se despierte con nuevos amigos, use el siguiente script de inicio.
$ ssh pi @ ♣ frambuesa-pi-ip ♣
$ sudo nano /etc/init.d/garagerelay
Luego pega este script:
#! / bin / bash
# /etc/init.d/garagerelay # Realizar funciones específicas cuando se lo solicite el caso del sistema "$ 1" en inicio) echo "Relé de arranque" # Activar 7 que mantiene el relé apagado / usr / local / bin / gpio write 7 1 #Inicie el modo Gpio / usr / local / bin / gpio 7 out;; stop) echo "Deteniendo gpio";; *) echo "Uso: /etc/init.d/garagerelay {start | stop}" exit 1;; esac salida 0
Para guardar: CTRL-o, ENTER
Para salir de nano, CTRL-x
Haga que el archivo sea ejecutable:
$ sudo chmod + x /etc/init.d/garagerelay
Ahora dile a tu pi que ejecute este script en el arranque:
$ sudo update-rc.d -f garagerelay start 4
(Nota: puede ignorar con seguridad la advertencia "faltan etiquetas LSB").
Asegúrese de que la secuencia de comandos de inicio se esté ejecutando
$ sudo reiniciar
Abra un navegador y haga clic en el abridor. El relé debería hacer clic.
Paso 9: conecte la Raspberry Pi al garaje
Cuando mueva la Raspberry Pi, asegúrese de ejecutar:
$ shutdown -h 0
Es posible que desee apagar la energía del garaje. Entonces, el abridor del timbre no te electrocuta:). La verdadera razón es que cada vez que cortocircuita los cables, la puerta subirá y bajará.
Quite los tornillos de pared del abridor tipo timbre, que fija el timbre a la pared.
Haz un agujero desde el garaje detrás del abridor del timbre hasta el interior de la casa. En Texas, la Raspberry Pi no debería estar en el garaje, la variación de temperatura en el garaje está fuera de las especificaciones de funcionamiento de la Raspberry Pi.
Pase los cables del relé a través del orificio (use una percha).
Afloje ambos tornillos en la parte trasera del abridor de timbre.
Pele ambos extremos de los cables del relé: 1) aproximadamente 1/8”de pulgada del lado del relé y aproximadamente ½” de pulgada del lado del timbre. Doble el lado del cable del timbre de la puerta en medio bucle lo suficientemente grande como para encajar alrededor del tornillo de la parte trasera.
Conecte un cable de relé a cada tornillo en la parte trasera del timbre y apriete el tornillo. Las conexiones son como se muestra en la imagen. Dado que el relé aísla el circuito, la dirección ni siquiera importa qué relé está conectado a qué tornillo.
Paso 10: conecte Raspberry Pi a SECO-LARM
Antes de terminar el código, mi familia y yo estábamos de vacaciones y abrí mi navegador. La última vista de mi navegador fue el abridor de la puerta del garaje: la página se actualizó y la puerta del garaje se abrió. Unos días después, un vecino llamó y preguntó si la puerta del garaje debía estar abierta. Afortunadamente, pude cerrarlo a 500 millas de distancia.
Este error me obligó a cambiar el código para que esto no suceda y agregar un sensor y el estado de la puerta del garaje al sitio web.
Este es un enlace al instructivo original para agregar un sensor. Sin embargo, dado todo lo que ya se ha completado, la instalación del sensor se puede simplificar enormemente y, en lugar de usar Python, agregar un par de líneas de código a index.php.
closedEl imán está conectado al lado interior superior izquierdo de la puerta del garaje, y el sensor está conectado a la pared del garaje. Entonces, tuve que ejecutar un cable de termostato sólido desde el sensor hasta la frambuesa pi. Esto requirió un agujero desde el garaje hasta el ático y desde el ático hasta la pared que contiene el abridor de la puerta del garaje (interruptor de timbre).
Inserté una caja de conexiones azul entre el sensor SECO-LARM y los cables sólidos.
En mi casa, hay un espacio de 18 pulgadas entre el techo del primer piso y la parte inferior del segundo piso. Supongo que aquí es donde corren los conductos de calefacción y refrigeración. Necesitaba una extensión de broca lo suficientemente larga para pasar por el segundo piso y por el 2x4 superior (placa superior) que contiene el timbre.
La parte más importante es que al perforar desde el ático hacia el área donde los cables van al abre-puertas de garaje NO debe perforar a través de la electricidad. Arreglar esto no fue divertido. ¡Ver las chispas y apagar las luces fue muy emocionante!
El sensor requiere dos cables de termostato sólidos o un alambre de cerca invisible para perros.
La Raspberry Pi tiene varias descripciones de pines (BCM, wPi, físico). El código utiliza los números de pin de cableado pi. Para ver todos los pines, asignaciones de pines y valores de pines, ingrese:
$ gpio readall
Para obtener un manual de gpio, ingrese:
$ gpio man
En las instrucciones originales, el pin físico 9 está conectado a tierra y se conecta a uno de los cables SECO-LARM. Sin embargo, esto no me funciona. En su lugar, conecte los cables a los pines físicos 15 y 17
El pin físico 15 (wPi pin 3) pasa a 3.3V cuando el sensor SECO-LARM está cerrado. El pin físico 17 es de 3.3v. Si no funciona, cambie las conexiones del SECO-LARM.
Fije SECO-LARM a la puerta y la pared del garaje. Ejecute cables y conéctese a Raspberry Pi.
Paso 11: envíe una alerta si la puerta está abierta cuando debería estar cerrada
Si la puerta del garaje está abierta cuando no debería, envíe un mensaje de texto a un teléfono celular.
Instale y configure SMTP simple.
Tengo un servicio celular de AT&T y uso ♣cell-phone-number♣@txt.att.net para los mensajes de texto. También tengo una cuenta de Gmail, y el siguiente ejemplo usa ♣gmail-account♣@gmail.com. Si utiliza diferentes servicios, realice los cambios necesarios.
Para los comandos $ a continuación, abra una ventana de terminal en la MacBook e inicie sesión en su Raspberry Pi.
Asegúrese de que los repositorios estén actualizados:
$ sudo apt-get update
Instale utilidades de correo y SSMTP simples:
$ sudo apt-get install ssmtp
$ sudo apt-get install mailutils
Edite el archivo de configuración SSMTP:
$ sudo nano /etc/ssmtp/ssmtp.conf
como sigue:
mailhub = smtp.gmail.com: 587 hostname = ♣ your-hostname ♣ AuthUser=♣gmail-account♣@gmail.com AuthPass = ♣ gmail-password ♣ UseSTARTTLS = YES
Edite el archivo de alias SSMTP:
$ sudo nano / etc / ssmtp / revaliases
Cree una línea para cada usuario que podrá enviar correos electrónicos. Por ejemplo:
root: ♣gmail-account♣@gmail.com: smtp.gmail.com: 587
Establezca los permisos del archivo de configuración SSMTP:
$ sudo chmod 664 /etc/ssmtp/ssmtp.conf
Los permisos del archivo /etc/ssmtp/ssmtp.conf determinan quién podrá enviar correos electrónicos desde Raspberry Pi. De forma predeterminada, este archivo es propiedad del usuario root y el grupo del archivo también es root.
Edite el archivo de alias SSMTP, que contiene datos sobre las cuentas de correo electrónico:
$ sudo nano /etc/ssmtp/ssmtp.conf
Una vez que se complete el proceso de instalación y configuración anterior, pruébelo enviando un correo electrónico desde la línea de comando.
$ echo "cierra la puerta del garaje" | mail -s "Puerta de garaje abierta" ♣cell-phone-number♣@txt.att.net
Cree un script para verificar si la puerta del garaje está abierta cuando no debería estar y luego envíe un mensaje de texto.
$ sudo nano /usr/local/bin/garage.sh
y agregue lo siguiente:
#! / bin / bash
# compruebe si la puerta del garaje está abierta. # Si está abierto, envíe una alerta y escriba en syslog up = 0; puerta = $ (/ casa / pi / cableadoPi / gpio / gpio leer 3) si ["$ puerta" -eq "$ up"] entonces logger ♣ su-nombre de host ♣: Puerta de garaje Abrir echo "cerrar la puerta de garaje" | mail -s "Puerta de garaje abierta" ♣cell-phone-number♣@txt.att.net fi exit 0
Luego agregue un crontab para que se ejecute durante las horas requeridas:
$ sudo crontab –e
y añadir:
# Por la noche, verifique cada hora si la puerta del garaje está abierta.
0 22-23 / 1 * * * sudo /usr/local/bin/garage.sh 0 0-5 / 1 * * * sudo /usr/local/bin/garage.sh
Si todo funciona, vaya al siguiente paso.
Paso 12: Pon tu Raspberry Pi en el libro secreto
Pon la frambuesa pi en un libro secreto. Compré este en casa de Michael por unos 7 dólares. Corté unos pequeños agujeros para los cables y el cable de alimentación.
Paso 13: Apéndice: Referencias
Módulo de protección de relé SunFounder de 2 canales y 5 V para Arduino UNO 2560 1280 ARM PIC AVR STM32
- Placa de interfaz de relé de 2 canales de 5 V, y cada uno necesita 15-20 mA
- Driver Current Equipado con relé de alta corriente, AC250V 10A; DC30V 10A
- Interfaz estándar que se puede controlar directamente mediante microcontrolador (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, lógica TTL)
- LED de indicación del estado de la salida del relé Enlace para descargar el documento:
Paso 14: Apéndice: Actualizaciones
21 de febrero de 2016
-
En las instrucciones originales, había problemas con la autocorrección, el formato y la claridad de las instrucciones.
- Un problema de ejemplo es cuando las comillas dobles dentro del código se cambian a algo que parece una comilla doble en cursiva. Sin embargo, si corta y pega esto en un script, no funcionará.
- Al editor instructable le gusta autocorregir, por lo que wlan cambia al plan y autoremove se convierte en auto remover. Estos cambios son difíciles de detectar.
- Es posible que algunas de mis instrucciones no hayan sido lo suficientemente claras.
- Normalmente, uso corchetes angulares como indicador de algo que necesita ser reemplazado. El editor los convierte a html. Entonces, cambié a corchetes, pero estos pueden causar problemas porque parecen código. Entonces, finalmente me decidí por ♣ s como indicador de reemplazo con un valor real.
- Con el tiempo también he mejorado algunos de los guiones.
- Pasos editados 21-26
03ABR2016
- Creó un apéndice con solución de problemas, referencias y actualizaciones (pasos 27-29)
- Se movió la resolución de problemas al Apéndice del paso anterior 2
- Se actualizó y ordenó alfabéticamente la página de solución de problemas.
- Se cambió el nombre del archivo de test2wifi.sh a garage.sh, solo que más descriptivo.
- Cron actualizado para usar garage.sh
- Editado 1, 20-26 (Cree un servicio de inicio para el paso antes del apéndice)
04ABR2016
- Reemplacé los pasos 2-11 y 16-20 con mi estándar para configurar una Raspberry Pi
- Lista de piezas actualizada, paso 1
- Fotos agregadas / combinadas
05 ABR2016
Sitio web e imagen simplificados (pasos 4 y 5)
01MAY2016
Solución de problemas agregada para el sensor Seco-larm / raspberry Pi
01MAY2016
¿Las ediciones anteriores no se guardaron correctamente?
11NOV2016
- Se actualizó a AT&T GigaPower y se cambió el enrutador a 5268ac
- 5268ac no admite bucle de retorno, por lo que no se puede acceder al servidor Garage Opener desde computadoras en la LAN. Para que una MacBook acceda al servidor web del abridor de garaje, haga lo siguiente:
$ sudo nano / etc / hosts
y agrega la línea
192.168.1.64 ♣ nombre-de-dominio-externo-del-servidor ♣
Guardar y salir, CTRL-o, CTRL-x
$ sudo killall -HUP mDNSResponder
-
Las reglas de reenvío de puertos integradas del 5268ac, como el servidor HTTPS, el servidor HTTP y el servidor web, no funcionan. Para que funcione el reenvío de puertos:
- Abra un navegador y vaya a 192.168.1.254
- Acceso
- Seleccione Configuración, Cortafuegos, Aplicaciones, agujeros y DMZ.
- Seleccione el servidor web del abre-garaje
- Seleccione Definido por el usuario
-
Haga clic en una nueva aplicación definida por el usuario
- En Nombre del perfil de la aplicación, ingrese: Reenvío de puertos
-
En Crear definición de aplicación, agregue cada uno de los siguientes elementos y haga clic en Agregar a la lista:
- TCP de 80 a 80, mapa al puerto de host 443
- TCP de 443 a 443 mapa al puerto de host 443
- UDP de 443 a 443, mapa al puerto de host 443
- UDP de 80 a 80, mapa al puerto de host 443
- Haga clic atrás
- Vuelva a seleccionar su servidor web
- Seleccione Definido por el usuario
- Agregar reenvío de puertos
- Clic en Guardar
21 de enero de 2018
- Actualizado a Raspberry Pi 3
- Varias ediciones en los pasos
- Se actualizaron algunas piezas y precios.
Paso 15: Apéndice: Solución de problemas
Espacio en disco usado
La última línea muestra el espacio total en disco utilizado. La tarjeta SD tiene 8GB.
$ cd../..
$ sudo du –hx –c
Si tiene problemas, intente esto:
$ echo "prueba" | sendmail -v ♣your-gmail-account♣@gmail.com
Si el correo electrónico está configurado correctamente, debería recibir un correo electrónico en su cuenta de Gmail.
Si obtiene un error de autenticación:
Es posible que deba reducir la seguridad de su cuenta. Sin embargo, NO se recomienda reducir la seguridad. Google enviará un correo electrónico con un enlace para reducir la configuración de seguridad.
Puede cambiar de su lector de correo electrónico actual para usar www.gmail.com para acceder a su cuenta (recomendado) o cambiar su configuración en https://www.google.com/settings/security/lesssecu… para que su cuenta ya no sea protegido por estándares de seguridad modernos.
No recomiendo bajar sus estándares de seguridad.
Si obtiene una falla en la autorización:
La causa más probable de esto es que ha especificado un nombre de usuario o contraseña incorrectos para su cuenta de Gmail en el archivo /etc/ssmtp/ssmtp.conf. Verifique dos veces los valores de los campos AuthUser y AuthPass.
Si pierde la conexión en medio del procesamiento:
Es probable que haya especificado el puerto incorrecto para el smtp de Google en algún lugar en /etc/ssmtp/ssmtp.conf o en / etc / ssmtp / revaliases.
Verifique las últimas líneas de sus registros. Debería haber algunos mensajes de error relevantes allí:
$ tail /var/log/mail.log
$ tail / var / log / syslog
La puerta del garaje no se abre
Si todo estaba funcionando y simplemente se detiene, intente reiniciar. Si eso no funciona, desconecte el cable de alimentación de la Raspberry Pi y luego restaure la energía. La Raspberry Pi debería reiniciarse en menos de 2 minutos y todo debería funcionar bien. Esto generalmente es causado por una pérdida de energía en el Residential Gateway.
GPIO
Si algo sale mal, la mejor manera de ver qué está sucediendo es con el siguiente comando:
$ gpio readall
Inicie sesión en raspberry pi desde MacBook
terminal es una utilidad de MacBook: disk / applications / utilities / terminal. Mantengo la aplicación de terminal en el muelle.
En MacBook, abra la terminal
$ ssh pi @ ♣ frambuesa-pi-ip ♣
♣ contraseña ♣
Iniciar sesión en la puerta de enlace residencial
En MacBook, abra el navegador
URL = ♣ frambuesa-pi-ip ♣
Inicio de sesión: ♣ contraseña-puerta de enlace ♣
Registros
Si algo sale mal, revise estos registros para ver si hay errores, advertencias u otros problemas.
$ cat / var / log / messages
$ cat / var / log / syslog $ cat / var / log / dmesg
Directorio MAC
Directorio en MacBook donde se almacenan los archivos del sitio web
Directorio MAC = / Usuarios / ♣ mi macbook ♣ / Escritorio / hogar habilitado para wi-fi / abridor de puerta de garaje habilitado para wifi / sitio web
Contraseña
Contraseña = ♣ raspberry-pi-password ♣
RAM y CPU utilizados
$ top
CTRL-c para salir
Directorio de inicio de Raspberry Pi
$ pwd
/ inicio / pi
Nombre de host de Raspberry Pi
$ nombre de host
nombre de host = ♣ nombre de host ♣
IP de Raspberry Pi
♣ frambuesa-pi-ip ♣ = 192.168.1.93
Directorio de sitios web de Raspberry Pi
/ var / www
La secolarma deja de funcionar
El 1 de mayo de 2016, la Seco-larm dejó de funcionar. Esta es la tercera vez que el sensor deja de funcionar. Para decir esto correctamente, el pin físico 15 en la Raspberry Pi dejó de detectar la entrada de 3.3v. Probé los pines físicos 1 y 17 de 3.3v, y ambos seguían emitiendo 3.3v. Cambié del pin físico 15 a otro GPIO, pin físico 16 (GPIO 4) y comenzó a funcionar nuevamente. Entonces, no hay nada de malo con la Seco-larm. El problema parece estar en la Raspberry Pi GPIO.
GPIO 3, el pin físico 15 está muerto. Es una muy buena publicación sobre cómo probar los pines GPIO.
Cambié de GPIO 3 a GPIO 4 y cambié el código en consecuencia. No estoy seguro de por qué el pin GPIO dejó de funcionar. Aquí hay dos posibles razones:
- Tengo el sensor Seco-larm montado, de modo que cuando la puerta está cerrada, emite 3.3v. La puerta del garaje se cierra con más frecuencia de lo que se abre. Quizás, el pin GPIO no puede tomar una entrada más o menos constante de 3.3v.
- La falla coincidió con una pérdida de energía, tal vez hubo un pico de energía.
Puerta de enlace residencial de U-verse
Tengo AT&T U-verse con una puerta de enlace residencial, pero cualquier servicio debería funcionar.
Si el U-verse Gateway se reinicia o pierde energía, es posible que sea necesario reiniciar la Raspberry Pi.
Puerta de enlace residencial U-verse IP pública = ♣ IP pública del enrutador ♣
La IP pública de una puerta de enlace residencial de U-verse puede cambiar, pero rara vez lo hace
Página de inicio de U-verse Residential Gateway = 192.168.1.254
SSID del punto de acceso inalámbrico del enrutador U-verse = ♣ ssid ♣
El rendimiento de WiFi es más lento de lo esperado
Cambie el enrutador a un canal menos utilizado. De forma predeterminada, todos los proveedores de circuitos sintonizan el wifi de todos en el canal 1. Cambie a un canal menos utilizado, como el 11. Intente usar un número impar.
Nota: Le dije a un par de vecinos lo que hice para mejorar el wi-fi y ahora todos están en 9 u 11, así que volví a 1. Siempre debes usar un canal impar.
Abra un navegador.
Para U-verse, ingrese 192.168.1.254 en el cuadro URL.
Haga clic en el enlace Inalámbrico y elija el canal 6 u 11.
Hay una aplicación para teléfonos inteligentes llamada analizador wifi. Una de las pantallas muestra todos los puntos de acceso wifi cercanos transmitiendo en un canal en particular. En mi vecindario, todo el mundo está configurado para el canal 1.
Desenchufe la Raspberry Pi y luego restaure la energía
Recomendado:
Integración del abre-puertas de garaje inteligente de bricolaje + asistente del hogar: 5 pasos
Abrepuertas de garaje inteligente de bricolaje + integración de asistente de hogar: convierta su puerta de garaje normal en inteligente con este proyecto de bricolaje. Le mostraré cómo construirlo y controlarlo usando Home Assistant (sobre MQTT) y tener la capacidad de abrir y cerrar de forma remota la puerta de su garaje. Usaré una placa ESP8266 llamada Wemos
Uso de HomeLink con abre-puertas de garaje no compatibles: 6 pasos
Uso de HomeLink con abre-puertas de garaje no compatibles: Vivo en un edificio de apartamentos y recientemente instalé Homelink en mi automóvil. Desafortunadamente, el control remoto del garaje que me dieron usa esta conexión maxSecure que no es compatible con homelink. Así que decidí buscar una solución
Reemplazo de la batería de un abre-garaje: 5 pasos
Reemplazo de la batería en un abre-puertas de garaje: En este Instructable, le mostraré cómo reemplazar la batería en un control remoto de puerta de garaje. Este en particular es una especie de control remoto universal con 4 canales que también se usa con bastante frecuencia con otros aparatos. El tipo de batería que se utiliza en él es una 27A
Hardware del abre-puertas de garaje Raspberry Pi Zero: 10 pasos
Hardware del abridor de puerta de garaje Raspberry Pi Zero: una de las inspiraciones de este proyecto fue el excelente instructable en el abridor de puerta de garaje Raspberry Pi 3, junto con varios otros que se encuentran en Internet. No siendo una persona experimentada en electrónica, hice muchas investigaciones adicionales sobre formas de
Temporizador para cerrar el abre-puertas de garaje: 4 pasos
Temporizador para cerrar el abridor de la puerta del garaje: Introducción Así que la historia comienza después de que dejé la puerta del garaje abierta y algunos chicos entraron y se metieron por ahí. Afortunadamente, no se perdió ningún personal valioso. Después de este accidente, decido hacer un " temporizador para cerrar " función para mi garaje doo