- Componentes necessários
- Diagrama de circuito
- Configuração do frasco em Raspberry Pi para controlar a porta da garagem
- Criação do script Python para abridor de porta de garagem inteligente
- Criação de página HTML para Raspberry Pi Webserver
- {{pins.name}} {% if pins.state == true%} está aberto no momento
Nesta era de IoT (Internet of Things) onde tudo pode ser controlado remotamente usando seu smartphone, por que carregar chaves com você. Existem muitas tecnologias para suportar o controle sem fio de dispositivos como RFID, Bluetooth, Wi-Fi, LoRa. Anteriormente, construímos alguns alarmes de porta e circuito de controle de porta para abrir e fechar a porta sem fio:
- Arduino RFID fechadura de porta
- Abridor de porta automático usando Arduino
- Circuito de alarme magnético de porta usando sensor Hall
- Alarme de segurança de porta baseado em IoT controlado pelo Google Assistente
Aqui neste tutorial, construiremos um abridor de porta de garagem inteligente usando Raspberry Pi. Aqui, um servidor da web Raspberry Pi será criado para abrir e fechar a porta da garagem usando seu smartphone.
Componentes necessários
- Placa de Raspberry pi com Raspbian instalado
- Módulo de Relé
- Fios de conexão
Presume-se que o seu Raspberry Pi já tenha um sistema operacional atualizado e seja capaz de se conectar à Internet. Caso contrário, siga o tutorial Introdução ao Raspberry Pi antes de continuar. Aqui, estamos usando Rasbian Jessie instalado Raspberry Pi 3.
Aqui, o monitor externo usando o cabo HDMI é usado como monitor para conectar-se ao Raspberry Pi. Se você não tiver monitor, pode usar o cliente SSH (Putty) ou o servidor VNC para se conectar ao Raspberry pi usando um laptop ou computador. Saiba mais sobre como configurar o Raspberry Pi sem cabeça aqui.
Diagrama de circuito
Conecte o mecanismo de abertura da porta da garagem à saída do relé. Aqui, acabamos de conectar um LED com relé para fins de demonstração.
Configuração do frasco em Raspberry Pi para controlar a porta da garagem
Aqui, criamos um servidor da web usando o Flask, que fornece uma maneira de enviar os comandos da página da web para o Raspberry Pi para controlar o robô pela rede. O Flask nos permite executar nossos scripts python por meio de uma página da web e podemos enviar e receber dados do Raspberry Pi para o navegador da web e vice-versa. Flask é um microframework para Python. Esta ferramenta é baseada em Unicode com servidor de desenvolvimento e depurador embutidos, suporte para teste de unidade integrado, suporte para cookies seguros e é fácil de usar, o que a torna útil para o amador.
Execute os seguintes comandos para instalar o frasco em seu Raspberry Pi:
sudo apt-get update sudo apt-get install python-pip python-flask
Agora, execute o comando pip para instalar o Flask e suas dependências:
frasco de instalação do sudo pip
Você pode aprender mais sobre a programação usando o Flask aqui, também verifique nossos projetos anteriores onde usamos o Flask para controlar o robô através do servidor web, envie a mensagem da página da Web para o Raspberry Pi e envie o valor do peso para o Raspberry Pi no Smart Container.
Agora, vamos escrever um script Python para o nosso servidor da web da porta da garagem
Criação do script Python para abridor de porta de garagem inteligente
Este script irá interagir com nossos GPIOs Raspberry Pi e configurar o servidor web. Portanto, este é o script principal do nosso aplicativo. O script Python completo para abridor de porta é fornecido no final, aqui explicamos algumas partes dele.
Primeiro, faça uma pasta. Todas as outras pastas necessárias devem estar apenas nesta pasta. Execute os comandos abaixo para criar a pasta e o arquivo python de criação chamado app.py dentro desta pasta.
mkdir garage_door cd garage_door nano app.py
Isso abrirá o editor Nano onde temos que escrever o script.
Comece incluindo bibliotecas importantes.
import RPi.GPIO como GPIO do flask import Flask, render_template, request app = Flask (__ name__, static_url_path = '/ static')
Agora, crie um dicionário como pinos para armazenar o número do pino, nome e estado do pino. Você pode usar mais de um pino de acordo com sua necessidade.
pins = { 14: {'nome': 'Porta da garagem', 'estado': GPIO.LOW} }
Em seguida, defina o pino como saída e torne-o baixo inicialmente.
Para pino em pinos: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Agora, crie uma função principal para ler o estado do pino e armazenar esse estado em uma variável.
@ app.route ("/") def main (): para pino nos pinos: pinos = GPIO.input (pino) ..
Temos que passar esses dados para nossa página html para que possamos controlar o estado do botão de entrada.
return render_template ('main.html', ** templateData)
Agora, crie uma função para lidar com as solicitações da URL com o número do pino e a ação nele.
@ app.route ("/
Converta o pino do URL em um número inteiro.
changePin = int (changePin)
Se a parte de ação do URL for "abrir", faça o seguinte.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
Você pode copiar o script completo do final deste tutorial e salvá-lo usando ctrl + x e pressione Enter. Terminamos com o script python. Agora, temos que fazer uma página HTML para interagir com o script python.
Criação de página HTML para Raspberry Pi Webserver
Na mesma pasta garage_door , crie outra pasta chamada templates e dentro desta pasta crie um arquivo.html usando os comandos abaixo.
mkdir templates cd templates nano main.html
No editor de texto nano , escreva o código html. Você pode editar o parte da página e estilize-a de acordo com sua escolha. Acabei de usar o esquema de css de terceiros usando a tag de link. O código HTML completo é fornecido abaixo:
Servidor web de porta de garagem
{% para alfinetes%}{{pins.name}} {% if pins.state == true%} está aberto no momento
Aqui, a parte importante é criar um botão para abrir e fechar a porta e atribuir um estado para abrir e fechar o botão. O botão enviará e buscará o estado GPIO do script python.
Você pode usar o código HTML fornecido acima no editor e salvá-lo. Agora o servidor da web está pronto para iniciar.
Abra o terminal e navegue até a pasta garage_door e execute o comando abaixo
sudo python app.py
Abra o navegador, digite o endereço IP do raspberry pi e pressione Enter. Para encontrar o seu endereço IP, você pode executar o comando abaixo no terminal.
hostname -I
Você verá uma página como esta.
Certifique-se de que o módulo de relé está conectado ao raspberry pi. Pressione o botão Abrir para ligar o Relé ou para abrir a Porta da Garagem. Você também pode ver o estado do relé. Assim que você ligar o relé, o texto do botão será alterado para Fechar para desligar o relé. Agora, quando você clicar no botão novamente, o relé será desligado e o texto do botão será alterado para Abrir novamente.
Para parar o servidor, pressione ctrl + c.
Portanto, basta conectar este relé a algum mecanismo de abertura de porta, que estão prontamente disponíveis no mercado, e começar a controlar a porta da garagem usando o smartphone.
Um vídeo de demonstração é fornecido abaixo.