DEV Community

Antônio M. Quadros Filho
Antônio M. Quadros Filho

Posted on

PHP IoT Server: Integrando Dispositivos IoT com WebSocket em Tempo Real

PHP IoT Server: Integrando Dispositivos IoT com WebSocket em Tempo Real

Github: https://github.com/amqf/php-iot-server

Introdução

Em um mundo cada vez mais conectado, a Internet das Coisas (IoT) está revolucionando como interagimos com dispositivos e dados. Mas como podemos criar um sistema eficiente para receber dados desses dispositivos e exibi-los em tempo real em dashboards ou aplicativos? É aí que entra o PHP IoT Server, uma solução poderosa que combina MQTT e WebSocket para criar pontes entre dispositivos IoT e clientes em tempo real.

O Que é o PHP IoT Server?

O PHP IoT Server é um projeto open-source projetado para:

  1. Receber mensagens de dispositivos IoT via MQTT (Message Queuing Telemetry Transport)
  2. Processar e converter esses dados conforme necessário
  3. Transmitir as informações em tempo real via WebSocket para clientes conectados

How it works?

Caso de Uso: Dashboard em Tempo Real

Feature: Realtime Dashboard for IoT Systems

Scenario: Display real-time data on the dashboard
  Given the IoT system is connected and sending data
  And the dashboard application is running
  When the dashboard receives new data from the MQTT broker
  Then the dashboard should update the displayed data in real-time
Enter fullscreen mode Exit fullscreen mode

Por Que Usar PHP para IoT?

Embora muitas soluções IoT utilizem Python ou Node.js, o PHP oferece vantagens significativas:

  1. Maturidade e Estabilidade: PHP é uma linguagem madura com vasta documentação
  2. Performance: Com extensões como Swoole, PHP pode lidar com conexões concorrentes eficientemente
  3. Fácil Integração: PHP se integra bem com diversos bancos de dados e sistemas existentes
  4. Grande Comunidade: Suporte e contribuições de uma das maiores comunidades de desenvolvedores

Configurando o Ambiente

Requisitos

  • PHP 8.3
  • PHP ZTS (para usar Swoole)
  • Extensão Swoole
sudo apt install php-8.3 php8.3-swoole
Enter fullscreen mode Exit fullscreen mode

Servidor MQTT

Recomendamos o Mosquitto, um broker MQTT leve e eficiente:

sudo apt install mosquitto
sudo systemctl start mosquitto
Enter fullscreen mode Exit fullscreen mode

Variáveis de Ambiente

Configure seu arquivo .env:

MQTT_HOST=localhost
MQTT_PORT=1883

WEB_SOCKET_HOST=localhost
WEB_SOCKET_PORT=8081
Enter fullscreen mode Exit fullscreen mode

Exemplos de Clientes IoT

O PHP IoT Server pode se conectar a diversos dispositivos IoT, incluindo:

  1. Sensores de temperatura e umidade
  2. Câmeras de segurança inteligentes
  3. Dispositivos de controle de iluminação
  4. Termostatos inteligentes
  5. Equipamentos de agricultura inteligente

Iniciando o Servidor

Crie um arquivo de configuração config.iotws:

IOT MQTT ROUTER MyRouter1
SHOULD SUBSCRIBE MQTT TOPICS topic1, topic2, topic3
FROM MQTT BROKER SERVER localhost:1883
BROADCASTING DATA TO WEBSOCKET SERVER localhost:8081
Enter fullscreen mode Exit fullscreen mode

E execute:

./php iot-mqtt-router.php -c config.iotws
Enter fullscreen mode Exit fullscreen mode

Solução de Problemas Comuns

  1. Porta 8081 em uso:
sudo kill $(lsof -i :8081 | awk 'NR>1 {print $2}')
Enter fullscreen mode Exit fullscreen mode
  1. Servidor WebSocket inacessível: Verifique se o servidor WebSocket está rodando

Por Que Contribuir para Este Projeto?

O PHP IoT Server é um projeto comunitário que busca:

  1. Facilitar a integração entre dispositivos IoT e aplicações web
  2. Prover uma solução em PHP para cenários de IoT em tempo real
  3. Criar uma base robusta para sistemas de monitoramento e controle

Conclusão

O PHP IoT Server oferece uma ponte eficiente entre o mundo IoT e aplicações web, permitindo que desenvolvedores PHP criem soluções em tempo real sem abandonar o ecossistema que já conhecem. Seja para monitorar sensores em tempo real, controlar dispositivos remotamente ou criar dashboards interativos, esta solução abre novas possibilidades para aplicações IoT com PHP.

Quer contribuir ou saber mais? Visite o repositório do projeto e junte-se à comunidade de desenvolvedores trabalhando para tornar o PHP uma opção ainda mais poderosa para soluções IoT!


Gostou deste artigo? Deixe seu feedback nos comentários e compartilhe como você está usando ou planeja usar PHP em projetos IoT!

Top comments (0)