Manual
do
Maker
.
com
Bem, após o artigo sobre a refrigeração de cerveja na semana de fermentação, agora vamos para o controle da cerveja nas duas semanas de maturação - essa, na geladeira. Na verdade, esse artigo é um predecessor do controle de temperatura na geladeira, onde veremos previamente como instalar MQTT no ESP8266 com MicroPython. Mas antes, gostaria de dar uma dica para quem resolver fazer o sistema com pastilha de peltier para a semana de fermentação. Tive um problema essa semana, pois o volume de cerveja era grande e a levedura estava elevando bastante a temperatura dentro do cooler de isopor, chegando aos 29.5 e quase matando a levedura, então peguei meio litro de água congelada (gelo) e coloquei dentro do isopor. A temperatura baixou para 22 graus e permaneceu por quase 8 horas! Enquanto isso, coloquei um pote de sorvete com água para gelar e ao trocar depois das 8 horas, cheguei a 17 graus! Aí entendi que a pastilha não estava vencendo algum momento da temperatura, mas quando o valor limite era quebrado, a pastilha ajudava a manter firmemente. Então a dica é essa, dá pra conservar até lager no isopor! Voltando ao tema do artigo atual.
Em relação ao suporte a MQTT usando MicroPython - você pode utilizar esse firmware em qualquer ESP8266 que você tenha, desde o ESP-01, e o procedimento será o mesmo. Vou deixar já os artigos de referência que podem lhe interessar.
Se você deseja compilar seu próprio firmware do MicroPython (em Linux)
Porém, se prefere pegar o firmware compilado, eu o disponibilizo junto ao procedimento no artigo abaixo, na sessão "Trocando o firmware NodeMCU por MicroPython". Serve para substituir qualquer firmware, não se preocupe:
Se quiser configurar seu próprio broker (em Linux também, fiz com Raspberry) para fazer a automação de sua casa, incluindo uma explicação sobre esse protocolo da IoT:
Acredito que seja o suficiente por enquanto.
Já escrevi muitos artigos sobre MQTT com Raspberry, Arduino, Onion Omega, ESP8266 com NodeMCU etc. Todavia, é possível que você ainda não conheça o MQTT, mas se conhece, pule para o próximo tópico.
O MQTT é o protocolo da IoT, sendo cada vez mais utilizado nos dias atuais. É um protocolo leve, por isso roda em qualquer tipo de dispositivo embarcado, desde MCUs à CPUs de todos os tipos. Não é nada de outro mundo; do lado da MCU/CPU se envia e se recebe uma mensagem "do" e "para" o server, que é chamado de broker. Aqui mesmo no site você encontra a configuração de um broker, que também é trivial e estou rodando meu broker em casa em um Raspberry, mas se desejar, pode inclusive colocar sua rede na nuvem através de um broker público ou pago.
Se você já conhece o firmware do NodeMCU, deve saber que ele tem suporte nativo ao MQTT e é bastante simples utilizá-lo. Quanto ao MicroPython para ESP8266, está em uma versão estável mas ainda amadurecendo, então não está tão recheado como o NodeMCU, mas não há dúvida que utilizar o MicroPython para conectar sua rede via MQTT é mais simples que qualquer coisa. A única questão é que você precisará incluir o suporte ao MQTT no MicroPython, e isso também é simples.
Não sei se tem por aí firmware do MicroPython oficial para download. Eu compilei o meu próprio e estou disponibilizando-o para download através do repositório MASUGUX no git (clique para ir ao github). Nesse artigo sobre o Electro Dragon eu mostrei como instalar o firmware, não tem segredo.
A biblioteca do MQTT para MicroPython se chama uMQTT, sendo que dentro do diretório de bibliotecas você terá umqtt.simple e umqtt.robust e ambas são necessárias. Pegue as bibliotecas no git primeiramente:
git clone https://github.com/micropython/micropython-lib
Depois de clonado, os arquivos necessários estarão dentro de micropython-lib/umqtt.simple/umqtt e micropython-lib/umqtt.robust/umqtt. Você pode copiá-los para dentro do sistema de arquivos do ESP8266 de forma bem simples, bastando seguir as dicas desse outro tutorial. Copie-os para o sistema de arquivos do ESP8266, crie um diretório "umqtt" e mova-os para dentro desse diretório:
import os
os.mkdir("umqtt")
os.rename("simple.py","umqtt/simple.py")
os.rename("robust.py","umqtt/robust.py")
Pronto, seu ESP8266 já está com suporte a MQTT!
Um exemplo simples que fiz para testar foi acender a luz da minha bancada:
from umqtt.simple import MQTTClient
mq = MQTTClient("DobitAoByte","192.168.110.220",1883,"meuUsuario","minhaSenha")
#o connect deve retornar 0
mq.connect()
mq.publish(b"topico/luz_da_bancada",b"1")
Simples ou não? Para ver os métodos disponíveis, use (após fazer o import da primeira linha acima):
help(MQTTClient)
E exemplos maiores estarão no próximo artigo relacionado à Electro Dragon e maturação da cerveja!
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.