Controle de Dispositivos Conectados ao Raspberry Pi com API Flask
Este tutorial mostra como configurar uma API Flask para controlar dispositivos conectados aos pinos GPIO de um Raspberry Pi. A API oferece endpoints para ligar e desligar dispositivos como uma impressora 3D, ventilador, luz e tomada, permitindo o controle via requisições HTTP.
Visão Geral do Projeto
Com esta API, você pode:
- Ligar e desligar dispositivos conectados a pinos específicos do Raspberry Pi via HTTP.
- Consultar o status de cada dispositivo.
- Integrar o Raspberry Pi a um sistema de automação ou monitoramento.
Endpoints da API
Aqui estão as rotas expostas pela API, que permitem o controle de cada dispositivo:
Base URL
http://192.168.8.225:5000
Controle de Dispositivos
-
Impressora 3D
- Desligar:
GET /api/pin/21/off
- Descrição: Desliga a impressora 3D conectada ao pino GPIO 21.
- Ligar:
GET /api/pin/21/on
- Descrição: Liga a impressora 3D conectada ao pino GPIO 21.
- Desligar:
-
Ventilador
- Desligar:
GET /api/pin/22/off
- Descrição: Desliga o ventilador conectado ao pino GPIO 22.
- Ligar:
GET /api/pin/22/on
- Descrição: Liga o ventilador conectado ao pino GPIO 22.
- Desligar:
-
Luz da Impressora 3D
- Ligar:
GET /api/pin/23/on
- Descrição: Liga a luz da impressora 3D conectada ao pino GPIO 23.
- Desligar:
GET /api/pin/23/off
- Descrição: Desliga a luz da impressora 3D conectada ao pino GPIO 23.
- Ligar:
-
Tomada
- Ligar:
GET /api/pin/24/on
- Descrição: Liga a tomada conectada ao pino GPIO 24.
- Desligar:
GET /api/pin/24/off
- Descrição: Desliga a tomada conectada ao pino GPIO 24.
- Ligar:
Exemplo de Requisição
Para controlar os dispositivos, você pode usar o curl
ou um navegador.
Exemplo usando curl
para Ligar a Impressora 3D:
curl http://192.168.8.225:5000/api/pin/21/on
Exemplo usando curl
para Desligar o Ventilador:
curl http://192.168.8.225:5000/api/pin/22/off
Verificar o Status dos Dispositivos
Para verificar o status de todos os dispositivos, você pode acessar a seguinte rota:
- Status de todos os dispositivos:
GET /api/status/
- A resposta mostrará o estado (on/off) de cada dispositivo, a data e hora da consulta, e o nome do host.
Exemplo de Resposta JSON para /api/status/
{
"relay_21": "off", // Impressora 3D
"relay_22": "on", // Ventilador
"relay_23": "off", // Luz da 3D
"relay_24": "on", // Tomada
"datetime": "2024-11-16T10:25:30",
"who": "pi-automation-3d"
}
Considerações Importantes
- Rede: Certifique-se de que o Raspberry Pi esteja conectado à rede para que as requisições HTTP sejam acessíveis.
- Segurança: Como essas rotas controlam dispositivos físicos, limite o acesso à API para evitar uso não autorizado.
- Uso Responsável: Ligar e desligar repetidamente certos dispositivos pode afetar seu funcionamento ou causar danos.
Dependências Necessárias
Este projeto depende das seguintes bibliotecas:
- Python 3.x
- Flask
- RPi.GPIO
Instalação das Dependências
Para instalar as dependências, execute:
pip install flask RPi.GPIO
Este projeto fornece uma solução simples para o controle de dispositivos conectados ao Raspberry Pi, permitindo integração em sistemas de automação ou monitoramento. A API facilita o controle via rede, tornando o Raspberry Pi uma ferramenta versátil para o gerenciamento de dispositivos.