Índice:

Raspberry Pi 3 Abridor de porta de garagem: 15 etapas (com fotos)
Raspberry Pi 3 Abridor de porta de garagem: 15 etapas (com fotos)

Vídeo: Raspberry Pi 3 Abridor de porta de garagem: 15 etapas (com fotos)

Vídeo: Raspberry Pi 3 Abridor de porta de garagem: 15 etapas (com fotos)
Vídeo: Raspberry Pi Controlled Garage Door & Sensor (complete instructions) 2024, Julho
Anonim
Raspberry Pi 3 abridor de porta de garagem
Raspberry Pi 3 abridor de porta de garagem

Criei este instrutível em 2014. Muita coisa mudou desde então. Em 2021, atualizei o abridor de porta de garagem inteligente aqui.

Use um Raspberry Pi e um smartphone para abrir, fechar e monitorar a porta de uma garagem. A abertura e o fechamento da porta são protegidos por meio de certificados autoassinados instalados nos telefones celulares da família. Se a porta da garagem estiver aberta quando não deveria, envie uma mensagem de texto (SMS) para um telefone celular.

O portão da garagem está em uso contínuo desde o final de 2014. Ao longo dos anos, tentei manter as alterações atualizadas. Há um apêndice que descreve as mudanças no instrutível.

Os objetivos deste projeto são:

  • Faça meu primeiro instrutível - eu não planejava postar isso, mas recebi muitos pedidos
  • Abra a porta de uma garagem com um controle remoto padrão
  • Abra a porta de uma garagem com o abridor de campainha montado na parede
  • Abra a porta de uma garagem com um smartphone
  • Monitore o status da porta da garagem remotamente por meio de um telefone celular ou laptop (está aberta ou fechada?)
  • Enviar uma mensagem de texto para o meu celular se a porta estiver aberta quando deveria ser fechada
  • Mantenha a porta da garagem segura (por exemplo, na perda de energia, a porta não deve abrir)
  • Não permita que mais ninguém na rede abra a porta (certificado SSL autoassinado bidirecional)
  • Use Wi-Fi em vez de uma conexão com fio
  • Use um Raspberry Pi 3

A base para esta implementação do abridor de porta de garagem foi derivada do Instructable: Raspberry Pi Garage Door Opener da quartarian. Originalmente, usei um modelo B + Raspberry Pi, depois mudei para um Raspberry Pi 2 modelo B, e agora ele usa um Raspberry Pi 3.

Usei um MacBook para me comunicar com o Raspberry Pi, mas qualquer computador pode ser usado.

Não há nenhuma razão convincente para construir este dispositivo, mas foi divertido. É mais econômico comprar um. Um dispositivo semelhante pode ser adquirido por cerca de US $ 130.

  • Lift master 828LM
  • Chamberlain MyQ $ 129
  • GoGo Gate $ 179
  • Artesão $ 100

Notas:

  • Texto entre espadas, como este ♣ substitua-este ♣ deve ser substituído por um valor real
  • O texto azul sublinhado do Arduino é um link. Nesse caso, é um link para uma versão arduino de um abridor de porta de garagem.
  • Eu tentei creditar todas as fontes usadas. Minhas desculpas por quaisquer omissões. A maior parte deste documento é baseada no trabalho de outras pessoas.
  • $ indica um comando executado em uma janela de terminal no MacBook e geralmente está sendo executado no Raspberry Pi

Etapa 1: Reúna as peças

Compre ou reúna peças e ferramentas (preços em USD).

  • Raspberry Pi 3 Modelo B Newark Element 14 $ 35
  • Adaptador de alimentação USB 5,2 V 2,5 A da Amazon $ 9,99
  • Cabo micro USB para USB 6 pés da Amazon $ 7,99
  • Estojo da Amazon $ 6,99
  • SanDisk Ultra 16 GB microSDHC Classe 10 com adaptador (SDSQUAN-016G-G4A) da Amazon $ 8,99
  • Módulo de blindagem de relé 5V SunFounder 2 canais para Arduino UNO 2560 1280 ARM PIC AVR STM32 Raspberry Pi - $ 6,79
  • 3 fios de jumper fêmea-fêmea. Comprado na Fry’s por $ 4,95.
  • DNS dinâmico $ 40 por ano para 30 nomes (dyn.com)
  • 1-Gang 18 cu. pol., trabalho antigo, interruptor de parede pesada e caixa de tomadas, $ 3,12
  • Placa de parede branca com pincel único Ultra Pro, $ 7,88
  • SECO-LARM SM 226L, sensor de porta de garagem, o preço varia muito, US $ 9,99 na Amazon com frete grátis
  • 50 pés de fio de termostato sólido, Home Depot ou Lowe's, ~ $ 20

Meu total: ~ $ 172,00

Eu tinha as seguintes peças, ferramentas e serviços:

  • Cabo Ethernet CAT5
  • Fio de bitola pequena, 6 pés de comprimento
  • Chave de fenda Phillips
  • Alicate de ponta fina
  • Corta-caixas
  • Chave de fenda de cabeça chata de joalheiros, necessária para afrouxar os parafusos no relé
  • MacBook (um PC pode ser usado)
  • AT&T GigaPower (qualquer provedor de serviços de Internet pode ser usado)

Etapa 2: configurar o Raspberry Pi sem monitor ou teclado

Configuração do Raspberry Pi sem monitor ou teclado
Configuração do Raspberry Pi sem monitor ou teclado

Todos os projetos do Raspberry Pi requerem algum tipo de configuração. Gosto de usar o mesmo conjunto de instruções e, quando necessário, tenho um local para atualizar essas instruções.

Configure o Raspberry Pi usando as seguintes instruções:

Configuração do Raspberry Pi sem monitor ou teclado

O instrutivo acima inclui etapas opcionais no apêndice. Certifique-se de executar a etapa:

Adicionar certificados do lado do cliente aos servidores da web

Desligar Raspberry Pi

$ sudo shutdown -h 0

Uma vez desligado, remova

  • Cabo Ethernet
  • Cabo serial USB

Eles não serão mais necessários. Use wi-fi, ssh e uma janela de terminal no Mac Book para executar comandos no Raspberry Pi.

Desconecte a alimentação e reconecte a alimentação, e o raspberry pi deve reiniciar.

Etapa 3: Instale Wiring Pi, Apache e PHP

Instalar Fiação Pi

Abra uma janela de terminal no Mac Book. Faça login no Raspberry Pi, faça o download, compile e instale o Wiring Pi. Este software permite o controle dos pinos GPIO. Aqui está um guia passo a passo:

wiringpi.com/download-and-install/

Aqui está uma versão condensada das instruções:

$ ssh pi @ ♣ raspberry-pi-ip ♣

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

Execute o comando gpio para verificar a instalação:

$ gpio -v

gpio versão: 2.29 Copyright (c) 2012-2015 Gordon Henderson Este é um software livre ABSOLUTAMENTE NENHUMA GARANTIA. Para obter detalhes, digite: gpio -warranty Raspberry Pi Detalhes: Tipo: Modelo 2, Revisão: 1.1, Memória: 1024 MB, Fabricante: Sony [OV] A árvore de dispositivos está ativada. Este Raspberry Pi oferece suporte a acesso GPIO em nível de usuário. -> Veja a página do manual para mais detalhes $ gpio readall + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + ------ + --------- + ----- + ----- + | BCM | wPi | Nome Modo | V | Físico | V | Modo | 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 OUT | 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 Modo | V | Físico | V | Modo | Nome wPi | BCM | + ----- + ----- + --------- + ------ + --- + --- Pi 2 --- + --- + --- --- + --------- + ----- + ----- +

Os comandos acima devem dar a você alguma confiança de que wiringPi está funcionando bem.

Instale Apache e PHP

Execute os seguintes comandos:

$ cd..

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

Para verificar se o servidor da web funciona, abra um navegador e, na caixa do URL, digite:

♣ framboesa-pi-ip ♣

O site padrão do Apache responde com "Funciona!"

Etapa 4: site

Abra uma janela de terminal no Mac Book. Faça login no Raspberry Pi, remova o arquivo index.html padrão, altere as permissões no diretório do site e edite um arquivo chamado index.php.

$ ssh pi @ ♣ raspberry-pi-ip ♣

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

E insira o seguinte código:

Abridor de garagem

Automação residencial

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

";} else {echo"

"; } ?>

Abridor de porta de garagem Manual do abridor de porta de garagem fechado 1 aberto 0
<? php if ($ trigger == 0) {echo "<td colspan = \" 4 / "} else {echo"

var13 ->

CTRL-o e ENTER para gravar o arquivo e CTRL-x para sair do editor.

Alterar permissões no arquivo

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

Etapa 5: imagem do site

Imagem do site
Imagem do site
Imagem do site
Imagem do site

Pegue um abridor de porta de garagem remoto de alta resolução na web. Modifique a imagem como desejar, usando o pincel Mac. Na imagem acima, um abridor de garagem Genie de alta resolução foi usado, um logotipo raspberry pi foi adicionado e o led foi removido.

Uma imagem é o plano de fundo (remote-background.jpg) e a outra é a imagem ativa (remote-press.jpg).

O plano era que ao apertar o botão, em vez de piscar o led, o framboesa piscaria. Simplifiquei o site.

Copie as imagens para o raspberry pi:

$ scp *-j.webp

senha: ♣ senha ♣

O site tem um único botão. Para verificar, abra um navegador e digite ♣ raspberry-pi-ip ♣. Em vez do site padrão do Apache, que diz "Funciona!", O botão deve aparecer. Pressione-o.

Etapa 6: controlar remotamente o servidor da Web

Para facilitar o acesso ao Mecanismo de abertura de garagem de um local remoto, uso um nome DNS dinâmico. Porque não gosto de lembrar endereços IP.

Com este recurso, eu insiro ♣ dynamic-hostname ♣.getmyip.com no campo URL de um navegador. Nota: O IP em roteadores domésticos pode mudar sem aviso prévio, mas isso raramente acontece. Optei por usar o DynDNS. Você precisará saber o endereço IP público do seu roteador.

IP do roteador U-Verse: ♣ uverse-public-ip ♣

Você pode ver seus nomes de host e detalhes da conta DynDNS Pro. Aqui estão algumas dicas para começar:

  • Crie seu nome de host DNS dinâmico (1 de 30):

    • ♣ dynamic-hostname ♣
    • Chave do atualizador: ♣ dynamic-ip-updater-key ♣
  • Instale um cliente de atualização para garantir que seu nome de host seja sempre apontado para o endereço IP correto.

    • Baixe e instale no MacBook
    • Os IPs da AT&T U-verse raramente mudam, então o atualizador acima pode ser executado sempre que mudar
    • Siga as direções:

      • Adicionar Conta
      • Digite o nome de usuário e a senha: ♣ dynamic-ip-username ♣ ♣ dynamic-ip-password ♣
      • Selecione o nome do host
      • Clique em Configurar Hosts Selecionados
      • O host deve se tornar ativo
    • Configure sua rede para permitir acesso ao seu dispositivo a partir da Internet. Você pode usar nosso Dyn Wizard para obter algumas instruções gerais sobre como fazer isso, usar recursos como PortForward.com ou entrar em contato com o fabricante do dispositivo para obter assistência.

      • AT&T U-verse
      • Encaminhamento de porta para 2 fios 3801HGV - este é o roteador AT&T U-Verse que possuo. Consulte as atualizações em um apêndice para saber como encaminhar a porta no roteador AT&T U-verse 5268ac.
      • Abra o navegador e vá para ♣ raspberry-pi-ip ♣
      • Senha: ♣ senha ♣
      • Definições
      • Firewall

        • Escolha ♣ raspberry-pi-hostname ♣
        • Servidores

          • Porta 80 do servidor web
          • Servidor HTTPS - porta 443
        • Adicionar
      • Salve 

Feito isso, o servidor web funcionará a partir da Internet. Para verificar, digite ♣ dynamic-hostname ♣ e você deverá ver o botão para abrir a porta da garagem.

Etapa 7: conecte o circuito ao Raspberry Pi

Conecte o circuito ao Raspberry Pi
Conecte o circuito ao Raspberry Pi

Para o código fornecido (etapas 4 e 6), usei GPIO pino 7. É coincidência que GPIO 7 é o mesmo que wiringPi pino 7. No código PHP, números de pino Pi de fiação são usados e NÃO números de pino GPIO. Você pode usar o que quiser, mas certifique-se de alterar o código.

Tentei usar fio trançado, mas o relé não segura bem com fio trançado. Fio sólido é melhor.

Na minha primeira tentativa, criei três cabos de conexão (feminino para masculino).

  • Use três cabos jumper fêmea para fêmea
  • Corte três pedaços de arame sólido para cerca de 1 pol.

    Tira 1/4 pol. Em ambas as extremidades do fio sólido

  • Insira um fio sólido em um cabo de jumper fêmea.

Esta é a melhor maneira de criar cabos de conexão (fêmea para macho):

  • Use apenas fio sólido
  • Corte três pedaços de 4 polegadas de arame sólido
  • Tira 1 / 10cm em ambas as extremidades do fio sólido
  • Use pinos de conexão fêmeas

    • Deslize um pino de conexão fêmea em uma extremidade do fio sólido e prenda

      O pino fêmea não deve se soltar, soldar se necessário

    • Deslize o alívio de tensão sobre o pino de conexão fêmea ou o pino de cobertura com fita isolante

Conecte o relé ao pi conforme mostrado no diagrama:

  • Conecte a extremidade fêmea do cabo ao pino Raspberry Pi.
  • Insira o fio sólido no relé.

Etapa 8: Crie um serviço de inicialização

A maioria dos relés, incluindo o adquirido, opera assim:

  • Quando o sinal está LIGADO, o circuito permanece desligado.
  • Quando o sinal está desligado, o circuito está ligado.

Se o Raspberry Pi perder energia, o relé possui um mecanismo de segurança que mantém o circuito DESLIGADO.

Pode ocorrer um problema quando o Rapberry Pi e o relé são restaurados, mas antes que o Raspberry Pi termine de inicializar para ligar o sinal, o que é necessário para manter o circuito desligado. Você pode acordar de manhã com sua garagem aberta e, potencialmente, alguns novos amigos!

No entanto, o relé não inicializa até que o modo GPIO pin seja definido por meio deste comando: gpio mode 7 out. Além disso, se o pino GPIO estiver ligado (gpio escrever 7 1) antes de definir o modo GPIO, o relé permanecerá desligado depois de inicializado.

Para fazer essa inicialização ser executada na inicialização e não despertar para novos amigos, use o seguinte script de inicialização.

$ ssh pi @ ♣ raspberry-pi-ip ♣

$ sudo nano /etc/init.d/garagerelay

Em seguida, cole este script:

#! / bin / bash

# /etc/init.d/garagerelay # Executa funções específicas quando solicitado pelo caso do sistema "$ 1" no início) echo "Iniciando relé" # Liga 7 que mantém relé desligado / usr / local / bin / gpio write 7 1 #Iniciar Gpio / usr / local / bin / modo gpio 7 out;; parar) echo "Parando gpio";; *) echo "Uso: /etc/init.d/garagerelay {start | stop}" exit 1;; saída 0 esac

Para salvar: CTRL-o, ENTER

Para sair do nano, CTRL-x

Torne o arquivo executável:

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

Agora diga ao seu pi para executar este script na inicialização:

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

(Observação: você pode ignorar com segurança o aviso de "tags LSB ausentes".)

Certifique-se de que o script de inicialização esteja em execução

$ sudo reboot

Abra um navegador e clique no abridor. O relé deve clicar.

Etapa 9: prenda o Raspberry Pi na garagem

Anexe o Raspberry Pi à garagem
Anexe o Raspberry Pi à garagem

Ao mover o Raspberry Pi, certifique-se de executar:

$ shutdown -h 0

Você pode querer desligar a energia da garagem. Então, o abridor de campainha não eletrocuta você:). O verdadeiro motivo é que cada vez que você coloca os fios em curto, a porta sobe e desce.

Solte os parafusos de parede do abridor de tipo de campainha, que fixa a campainha à parede.

Faça um buraco na garagem atrás do abridor da campainha para dentro da casa. No Texas, o Raspberry Pi não deve estar na garagem, a variação de temperatura na garagem está fora das especificações operacionais do Raspberry Pi.

Passe os fios do relé pelo orifício (use um cabide).

Afrouxe os dois parafusos na parte traseira do abridor da campainha.

Desencape as duas extremidades dos fios do relé: 1) cerca de 1/8 "polegada do lado do relé e cerca de ½" polegada do lado da campainha. Dobre o lado da campainha do fio em uma meia volta grande o suficiente para caber em torno do parafuso traseiro.

Conecte um fio de relé a cada parafuso na parte traseira da campainha e aperte o parafuso. As conexões são as mostradas na imagem. Uma vez que o relé isola o circuito, a direção nem importa qual relé está conectado a qual parafuso.

Etapa 10: anexe o Raspberry Pi ao SECO-LARM

Anexe o Raspberry Pi ao SECO-LARM
Anexe o Raspberry Pi ao SECO-LARM
Anexe Raspberry Pi ao SECO-LARM
Anexe Raspberry Pi ao SECO-LARM

Antes de terminar o código, minha família e eu estávamos de férias e abri meu navegador. A última visualização do meu navegador foi o abridor da porta da garagem - a página atualizada e a porta da garagem aberta. Poucos dias depois, um vizinho ligou e perguntou se a porta da garagem deveria ser aberta. Felizmente, eu poderia fechá-lo a 500 milhas de distância.

Essa confusão me forçou a alterar o código para que isso não acontecesse e adicionar um sensor e o estado da porta da garagem ao site.

Este é um link para o original instrutível para adicionar um sensor. No entanto, dado tudo o que já foi concluído, a instalação do sensor pode ser bastante simplificada e, em vez de usar python, adicione algumas linhas de código a index.php.

closed

O ímã é fixado no lado interno superior esquerdo da porta da garagem e o sensor é fixado na parede da garagem. Então, eu tive que ligar o fio do termostato sólido do sensor de volta ao framboesa pi. Isso exigia um furo da garagem para o sótão e do sótão para a parede que continha o controle da porta da garagem (interruptor da campainha).

Eu inseri uma caixa de junção azul entre o sensor SECO-LARM e os fios sólidos.

Na minha casa, há uma lacuna de 18 polegadas entre o teto do primeiro andar e a parte inferior do segundo andar. Presumo que seja aqui que funcionam os dutos de aquecimento e resfriamento. Eu precisava de uma extensão de broca longa o suficiente para passar pelo segundo andar e pelos 2x4 superiores (placa superior) contendo a campainha.

A parte mais importante é ao perfurar do sótão para a área onde os fios vão correr para o abridor da porta da garagem, NÃO perfurar a eletricidade. Consertar isso não foi divertido. Ver as faíscas e apagar as luzes foi muito emocionante!

O sensor requer dois fios de termostato sólidos ou fio de cerca invisível para cães.

O Raspberry Pi tem várias descrições de pinos (BCM, wPi, físico). O código usa os números dos pinos pi da fiação. Para ver todos os pinos, mapeamentos e valores de pinos, digite:

$ gpio readall

Para um manual gpio, digite:

$ gpio man

Nas instruções originais, o pino físico 9 é aterrado e se conecta a um dos condutores SECO-LARM. No entanto, isso não funciona para mim. Em vez disso, conecte os condutores aos pinos físicos 15 e 17

O pino físico 15 (wPi pino 3) vai para 3,3 V quando o sensor SECO-LARM é fechado. O pino físico 17 é 3,3v. Se não funcionar, mude as conexões no SECO-LARM.

Prenda o SECO-LARM na porta e na parede da garagem. Passe os fios e conecte-o ao Raspberry Pi.

Etapa 11: enviar alerta se a porta estiver aberta, quando deveria ser fechada

Se a porta da garagem estiver aberta quando não deveria, envie uma mensagem de texto para um telefone celular.

Instale e configure o SMTP simples.

Tenho celular AT&T e uso ♣cell-phone-number♣@txt.att.net para mensagens de texto. Também tenho uma conta do gmail e o exemplo abaixo usa ♣gmail-account♣@gmail.com. Se você usar serviços diferentes, faça as alterações apropriadas.

Para os comandos $ abaixo, abra uma janela de terminal no MacBook e faça login no seu Raspberry Pi.

Certifique-se de que os repositórios estão atualizados:

$ sudo apt-get update

Instale SSMTP simples e utilitários de e-mail:

$ sudo apt-get install ssmtp

$ sudo apt-get install mailutils

Edite o arquivo de configuração SSMTP:

$ sudo nano /etc/ssmtp/ssmtp.conf

do seguinte modo:

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

Edite o arquivo de aliases SSMTP:

$ sudo nano / etc / ssmtp / revaliases

Crie uma linha para cada usuário que poderá enviar e-mails. Por exemplo:

root: ♣gmail-account♣@gmail.com: smtp.gmail.com: 587

Defina as permissões do arquivo de configuração SSMTP:

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

As permissões do arquivo /etc/ssmtp/ssmtp.conf determinam quem poderá enviar emails do Raspberry Pi. Por padrão, este arquivo pertence ao usuário root e o grupo do arquivo também é root.

Edite o arquivo SSMTP aliases, que contém dados sobre as contas de e-mail:

$ sudo nano /etc/ssmtp/ssmtp.conf

Assim que o processo de instalação e configuração acima for concluído, teste-o enviando um e-mail da linha de comando.

$ echo "feche a porta da garagem" | mail -s "Porta da garagem aberta" ♣cell-phone-number♣@txt.att.net

Crie um script para verificar se a porta da garagem está aberta quando não deveria e, em seguida, envie uma mensagem de texto.

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

e adicione o seguinte:

#! / bin / bash

# verifique se a porta da garagem está aberta. # Se aberto, envie alerta e escreva para syslog up = 0; door = $ (/ home / pi / wiringPi / gpio / gpio leia 3) if ["$ door" -eq "$ up"] then logger ♣ your-hostname ♣: Porta da garagem aberta echo "feche a porta da garagem" | mail -s "Porta da garagem aberta" ♣cell-phone-number♣@txt.att.net fi exit 0

Em seguida, adicione um crontab para ser executado durante as horas necessárias:

$ sudo crontab –e

e adicione:

# À noite, verifique a cada hora se a porta da garagem está aberta

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

Se tudo funcionar, vá para a próxima etapa.

Etapa 12: coloque Raspberry Pi no livro secreto

Coloque Raspberry Pi no livro secreto
Coloque Raspberry Pi no livro secreto
Coloque Raspberry Pi no livro secreto
Coloque Raspberry Pi no livro secreto

Coloque o pi de framboesa em um livro secreto. Comprei este no Michael's por cerca de US $ 7. Cortei alguns pequenos orifícios para os fios e o cabo de alimentação.

Etapa 13: Apêndice: Referências

Módulo de blindagem de relé 5V SunFounder 2 canais para Arduino UNO 2560 1280 ARM PIC AVR STM32

  • Placa de interface de relé de 2 canais 5V, e cada um precisa de 15-20mA
  • Corrente do driver Equipado com relé de alta corrente, AC250V 10A; DC30V 10A
  • Interface padrão que pode ser controlada diretamente por microcontrolador (Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, lógica TTL)
  • LED de indicação para status de saída do relé Link para baixar o documento:

Etapa 14: Apêndice: atualizações

21 de fevereiro de 2016

  • Nas instruções originais, havia problemas com correção automática, formatação e clareza de instruções.

    • Um exemplo de problema é quando as aspas duplas no código são alteradas para algo que se parece com uma aspa dupla em itálico. No entanto, se você recortar e colar isso em um script, não funcionará.
    • O editor instrutível gosta de autocorreção, então wlan muda para o plano e a remoção automática muda para remoção automática. Essas mudanças são difíceis de detectar.
    • Algumas de minhas instruções podem não ter sido claras o suficiente.
    • Normalmente, eu uso colchetes angulares como um indicador de algo que precisa ser substituído. O editor os converte em html. Então, mudei para colchetes, mas eles podem causar problemas porque se parecem com código. Então, eu finalmente decidi por ♣ s como o indicador de substituição por um valor real.
  • Com o tempo, também melhorei alguns dos scripts.
  • Etapas editadas 21-26

03APR2016

  • Criado um apêndice com solução de problemas, referências e atualizações (etapas 27-29)
  • Solução de problemas movida para o apêndice da etapa 2 anterior
  • Atualizou e colocou em ordem alfabética a página de solução de problemas
  • Nome do arquivo alterado de test2wifi.sh para garage.sh - apenas mais descritivo.
  • Cron atualizado para usar o garage.sh
  • Editado 1, 20-26 (Criar um serviço de inicialização para a etapa antes do apêndice)

04APR2016

  • Substituí as etapas 2 a 11 e 16 a 20 pelo meu padrão de configuração de um Raspberry Pi
  • Lista de peças atualizada, etapa 1
  • Fotos adicionadas / mescladas

05APR2016

Site e imagem simplificados (etapas 4 e 5)

01 de maio de 2016

Adicionada solução de problemas para o sensor Seco-larm / raspberry Pi

01 de maio de 2016

As edições anteriores não foram salvas corretamente?

11NOV2016

  • Atualizado para AT&T GigaPower e alterado o roteador para 5268ac
  • 5268ac não oferece suporte a loopback, portanto, o servidor Garage Opener não está acessível a partir de computadores na LAN. Para que um MacBook acesse o servidor da web do abridor de garagem, faça o seguinte:

$ sudo nano / etc / hosts

e adicione a linha

192.168.1.64 ♣ nome do domínio externo do servidor ♣

Salvar e sair, CTRL-o, CTRL-x

$ sudo killall -HUP mDNSResponder

  • As regras de encaminhamento de porta integradas do 5268ac, como servidor HTTPS, servidor HTTP e servidor Web, não funcionam. Para fazer o encaminhamento de portas funcionar:

    • Abra um navegador e vá para 192.168.1.254
    • Conecte-se
    • Selecione Configurações, Firewall, Aplicativos, orifícios e DMZ.
    • Selecione o servidor web do abridor de garagem
    • Selecione definido pelo usuário
    • Clique em um novo aplicativo definido pelo usuário

      • Em Nome do perfil do aplicativo, insira: PortForwarding
      • Em Criar Definição de Aplicativo, adicione cada um dos itens a seguir e clique em Adicionar à Lista:

        • TCP de 80 a 80, mapear para a porta 443 do host
        • TCP de 443 para 443 mapeado para a porta do host 443
        • UDP de 443 a 443, mapear para a porta do host 443
        • UDP de 80 a 80, mapear para a porta do host 443
    • Clique de volta
    • Selecione novamente o seu servidor web
    • Selecione definido pelo usuário
    • Adicionar PortForwarding
    • Clique em Salvar

21 DE JANEIRO DE 2018

  • Atualizado para Raspberry Pi 3
  • Várias edições nas etapas
  • Atualizou algumas peças e preços

Etapa 15: Apêndice: Solução de problemas

Espaço em disco usado

A última linha mostra o espaço total em disco usado. O cartão SD possui 8 GB.

$ cd../..

$ sudo du –hx –c

o email

Se você estiver tendo problemas, tente o seguinte:

$ echo "teste" | sendmail -v ♣your-gmail-account♣@gmail.com

Se o e-mail estiver configurado corretamente, você deverá obter um e-mail em sua conta do gmail.

Se você receber uma falha de autenticação:

Você pode precisar diminuir a segurança em sua conta. No entanto, reduzir a segurança NÃO é recomendado. O Google enviará um e-mail com um link para diminuir a configuração de segurança.

Você pode mudar de seu leitor de e-mail atual para usar www.gmail.com para acessar sua conta (recomendado) ou alterar suas configurações em https://www.google.com/settings/security/lesssecu … para que sua conta não seja mais protegidos por padrões de segurança modernos.

Não recomendo diminuir seus padrões de segurança.

Se você receber uma falha de autorização:

A causa mais provável disso é que você especificou um nome de usuário ou senha incorretos para sua conta do gmail no arquivo /etc/ssmtp/ssmtp.conf. Verifique novamente os valores dos campos AuthUser e AuthPass.

Se você perder a conexão no meio do processamento:

Provavelmente, você especificou a porta errada para o smtp do Google em algum lugar em /etc/ssmtp/ssmtp.conf ou em / etc / ssmtp / revaliases.

Verifique as últimas linhas de seus logs. Deve haver algumas mensagens de erro relevantes lá:

$ tail /var/log/mail.log

$ tail / var / log / syslog

A porta da garagem não abre

Se tudo estava funcionando e simplesmente parar, tente reiniciar. Se isso não funcionar, retire o cabo de alimentação do Raspberry Pi e restaure a alimentação. O Raspberry Pi deve reiniciar em menos de 2 minutos e tudo deve funcionar bem. Isso geralmente é causado por uma perda de energia para o gateway residencial.

GPIO

Se algo der errado, a melhor maneira de ver o que está acontecendo é com o seguinte comando:

$ gpio readall

Faça login no raspberry pi no MacBook

terminal é um utilitário MacBook: disco / aplicativos / utilitários / terminal. Eu mantenho o aplicativo do terminal no banco dos réus.

No MacBook, abra o terminal

$ ssh pi @ ♣ raspberry-pi-ip ♣

♣ senha ♣

Faça login no gateway residencial

No MacBook, abra o navegador

URL = ♣ raspberry-pi-ip ♣

Login: ♣ senha do gateway ♣

Histórico

Se algo der errado, verifique esses registros em busca de erros, avisos ou outros problemas.

$ cat / var / log / messages

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

Diretório MAC

Diretório no MacBook onde os arquivos do site são armazenados

Diretório MAC = / Usuários / ♣ meu macbook ♣ / Área de trabalho / casa habilitada para wi-fi / abridor de porta de garagem habilitado para wi-fi / website

Senha

Senha = ♣ senha-pi-framboesa ♣

RAM e CPU usados

$ top

CTRL-c para sair

Diretório inicial do Raspberry Pi

$ pwd

/ home / pi

Nome do host do Raspberry Pi

$ hostname

hostname = ♣ hostname ♣

Raspberry Pi IP

♣ raspberry-pi-ip ♣ = 192.168.1.93

Diretório de sites do Raspberry Pi

/ var / www

Seco-larm para de funcionar

Em 01 de maio de 2016, o Seco-larm parou de funcionar. Esta é a terceira vez que o sensor parou de funcionar. Para dizer isso corretamente, o pino físico 15 no Raspberry Pi parou de detectar a entrada de 3,3 V. Tentei os pinos físicos 1 e 17 de 3.3v, e ambos ainda estavam produzindo 3.3v. Troquei do pino físico 15 para outro GPIO, pino físico 16 (GPIO 4) e começou a funcionar novamente. Portanto, não há nada de errado com o Seco-larm. O problema parece ser com o Raspberry Pi GPIO.

GPIO 3, pino físico 15 está morto. Este é um post muito bom sobre como testar pinos GPIO.

Mudei do GPIO 3 para o GPIO 4 e mudei o código de acordo. Não sei por que o pino GPIO parou de funcionar. Aqui estão duas razões possíveis:

  • Eu tenho o sensor Seco-larm montado de forma que quando a porta é fechada ele produz 3,3v. A porta da garagem é fechada com mais frequência do que aberta. Talvez, o pino GPIO não possa aceitar uma entrada mais ou menos constante de 3,3v.
  • A falha coincidiu com uma perda de energia, talvez tenha havido um pico de energia.

Portal Residencial U-verse

Tenho AT&T U-verse com um gateway residencial, mas qualquer serviço deve funcionar.

Se o U-verse Gateway for reiniciado ou perder energia, o Raspberry Pi pode precisar ser reiniciado.

Gateway residencial U-verse IP público = ♣ router's-public-ip ♣

O IP público de um gateway residencial U-verse pode mudar, mas isso raramente acontece

Página inicial do gateway residencial U-verse = 192.168.1.254

SSID do ponto de acesso sem fio do roteador U-verse = ♣ ssid ♣

A taxa de transferência do WiFi está mais lenta do que o esperado

Mude o roteador para um canal menos usado. Por padrão, todos os provedores de circuito sintonizam o wi-fi de todos no canal 1. Mude para um canal menos usado, como 11. Tente usar um número ímpar.

Nota: Eu disse a alguns vizinhos o que fiz para melhorar o wi-fi e agora todos estão no 9 ou 11, então voltei para o 1. Você deve sempre usar um canal estranho.

Abra um navegador.

Para U-verse, digite 192.168.1.254 na caixa URL.

Clique no link Wireless e escolha o canal 6 ou 11.

Existe um aplicativo para smartphone chamado analisador de wi-fi. Uma das telas mostra todos os pontos de acesso wi-fi próximos transmitindo em um canal específico. Na minha vizinhança, todos estão configurados para o canal 1.

Desconecte o Raspberry Pi e restaure a energia

Recomendado: