Automação da 3D (Raspberry PI)

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

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.

Fonte: GitHub - lhc/pi-automation-3d