Controle dispositivos IoT utilizando Python e MQTT
Esse projeto nasceu com intuito de estudo, esse é meu primeiro projeto em python.
Antes, esse mesmo projeto de alimentador inteligente foi executado utilizando comunicação da ESP8266 com o Google Firebase. Onde o usuário por um APP entrava com Hora inicial e Final, quantas alimentações seriam feitas nesse período e o tempo dessa alimentação. Cada ESP8266 lia seus respectivos dados, pegava a hora atual via NTP, calculava a hora que teria que acionar e ligava e desligava nos horários "automagicamente". Porém por ser um dispositivos para área rural teve a necessidade de funcionar offline.
Então peguei uma raspberry para ser um server local, ela tem um server MQTT(Mosquitto), a ESP8266 da um publish de dados de temperatura e comida em um tópico único para cada ESP8266(exemplo tk0/temp e tk1/temp) e subscreve um tópico "motor" onde se chegar "L" liga "D" desliga.
O código python se conecta ao broker MQTT local(a Rasp), Recebe as informações(Temperatura e Comida) via MQTT da ESP8266 a cada 30 segundos, recebe as variáveis do MongoDB para calcular a hora de acionamento da ESP8266, calcula e se for a hora correta envia o comando via MQTT para ESP8266 acionar um atuador(nesse caso um relé).
Para mim o mais importante esse código pode receber informações, calcular e atuar N placas "automagicamente", retirando qualquer processamento 'bruto' da ESP8266. Ou seja eu posso adicionar N placas a rede que o código python pode gerenciar isso.
Os próximo passo é criar um APP e mais para frente adicionar uma IA e ML para realmente ser um alimentador inteligente.
Em breve...
- Fork it (https://github.com/b00tk1ll/PyIoTMQTT/fork)
- Crie uma feature branch (
git checkout -b feature/branch-name
) - Commit suas alterações (
git commit -m 'Add some features'
) - Push para a branch (
git push origin feature/branch-name
) - Solicite um Pull Request
- Guilherme Silveira - Projeto - b00tk1ll
Veja a lista completa de contributors que participaram desse projeto.
This project is licensed under the MIT License - see the LICENSE.md file for details.