Sobre o projeto
PySmartHome-PC é uma plataforma de casa inteligente resiliente projetada para conectar nós de sensor ESP32 a um servidor Python robusto em execução em um PC com Windows. O sistema coleta dados de temperatura e umidade de dispositivos ESP32 (como ESP32 Hub e ESP32-S3) equipados com sensores DHT22 e displays OLED. Esses nós expõem um endpoint de API HTTP mínimo (/api/status), que o servidor Python consulta a cada 10 segundos.
O servidor, construído com Flask, registra os dados em arquivos CSV e serve um dashboard local em http://localhost:5000. Ele também sincroniza dados e configuração com o GitHub a cada 5 minutos, permitindo um dashboard online espelhado hospedado no GitHub Pages. Essa abordagem de duplo dashboard garante a disponibilidade dos dados tanto localmente quanto remotamente, com designs visuais e recursos idênticos.
Recursos principais incluem:
- Gráficos interativos com zoom, pan e capacidade de exportação CSV.
- Estatísticas ricas por sala, incluindo médias, valores mínimo/máximo e análise de tendências em relação aos dias anteriores.
- Um sistema especializado de agendamento de queda de energia para regiões com cortes planejados, com slots de 2 horas rotativos, pular sextas-feiras e contagens regressivas ao vivo com barras de progresso.
- Um gerenciador de arquivos local para upload, download e exclusão de arquivos do servidor.
- Dez temas personalizáveis (por exemplo, cyberpunk, claro, CRT retro) e suporte completo para idiomas persa e inglês com layout RTL.
- Configuração via variáveis de ambiente para IPs, intervalos e thresholds, mantendo as alterações de código mínimas.
- Instalação automática de dependências e scripts de inicialização para facilitar o uso no Windows.
A arquitetura enfatiza confiabilidade e simplicidade, evitando frameworks complexos do Arduino no lado do servidor, enquanto mantém o firmware mínimo nos ESP32. O projeto é de código aberto sob a licença MIT e recebe contribuições para recursos futuros, como atualizações WebSocket e previsão de temperatura.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.