Ligando uma cafeteira com
Micropython, MQTT e Android
Quem somos?
●Houssan Ali Hijazi
○Desenvolvedor Android na Impulso
○GDG Foz do Iguaçu Organizer
○https://www.lojasparaguai.com.br/
○https://www.desaparecidosbr.org/
○https://www.dolarpy.com.br/
○Santista
Quem somos?
●André Queiroz
○Analista de Suporte (Mabu Rede Hoteleira)
○Github: https://github.com/andrequeiroz2
○E-mail: andrequeiroz.com@gmail.com
○GDG Foz do Iguaçu (Suporte)
○Santista
O que é MQTT?
●MQTT (Message Queue Telemetry Transport)
●Projeto IBM, final dos anos 90
●Criadores: Andy Stanford-Clark (IBM) Arlen Nipper(Cirrus Link)
Características do MQTT
●É um protocolo leve para redes com restrições de banda e alta latência.
●Paradigma PUB / SUB.
●Broker (Middleware).
●Assincróno.
●Consome poucos recursos do dispositivo (bateria, processamento, largura de
banda).
●Altamente escalável.
●Fácil implementação.
Arquitetura MQTT
Broker
SubscriberPublisher
Subscriber
Subscriber
Subscriber:
Subscribe a topic
in Broker
Publisher:
Publish data
topic to Broker
Broker:
Send msg to
clients
Publisher
Publisher
O que é Micropython?
●É um compilador em tempo de execução.
●Implementação enxuta de Python3.
●Executa em microcontroladores e ambientes restritos.
●Acessa diretamente o hardware.
●Criado pelo programador e físico australiano Damien George en 2013.
●Suporte nativo à Pyboard, WiPy, ESP8266 / 32 e MicroBit
Instalando o Esptool / Micropython
●https://github.com/espressif/esptool
●http://micropython.org/download
●esptool.py --port /dev/ttyUSB0 erase_flash
●esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0
esp8266-20190529-v1.11.bin
Instalando o ampy
●https://github.com/scientifichackers/ampy
●ampy --port /dev/ttyUSB0 put file.py file.py
●ampy --help
Projeto v1
Broker
Publish message
ON/OFF to topic
gdgfoz/coffee
Send message
ON/OFF to topic
gdgfoz/coffee
Subscribe topic
gdgfoz/coffee
Script: Python, Java,
Kotlin, Ruby, Javascript
etc…
Alguns pontos v1
●Linguagens: Python, Java, Kotlin, Ruby, Javascript, etc…
●Criar script
●Adicionar ao cron do Linux
●Executar em horário específico ou em intervalo pré-determinado
●E se acordar mais cedo ou mais tarde?
●E se for feriado?
Projeto v2
Broker
Publish message
ON/OFF to topic
gdgfoz/coffee
Send message
ON/OFF to topic
gdgfoz/coffee
Subscribe topic
gdgfoz/coffee
wifi
Alguns pontos v2
●Wifi fixo no código.
●Tópico fixo no código.
Vulgo “marretado no código”.
Como resolver / Wifi?
●Wifi fixo: Configurar wifi via browser
Como resolver / Wifi ?
Como resolver / tópico único ?
●Tópico único: QR Code para obter mac address e tipo do dispositivo
12:A0:3E:78:F9:56;temperature
mac address tipo
Projeto v3
Broker
internet
Go Go Go!
Código MicroPython!
Micropython
●umqtt
●Criar Access Point (modo AP), (ssid: espcoffee / password: esp1234567890).
●Abrir socket porta 80 (192.168.4.1).
●Acessar via browser http://192.168.4.1, selecionar o ssid e a password.
●Gravar ssid e password em arquivo (Para futuras conexões).
●Reboot.
CODE
Código Android!
Android
●Kotlin
●Mqtt Paho library
●Auth Firebase
●Cloud Firestore (database)
●QR Code
CODE
Cadê o café?
Códigos
●https://github.com/hussanhijazi/iot-hub
●https://github.com/andrequeiroz2/micropython-coffee
Contatos
●Houssan Ali Hijazi - hussanhijazi@gmail.com
●André Queiroz - andrequeiroz.com@gmail.com
Perguntas?
Muito Obrigado!

Ligando uma cafeteira com Micropython, Mqtt e Android