Encendendo una cafetera con
Micropython, MQTT y Android
¿Quien somos?
● Houssan Ali Hijazi
○ GDG Foz do Iguaçu Organizer
○ Desarrollador Android en Impulso
○ https://www.lojasparaguai.com.br/
○ https://www.desaparecidosbr.org/
○ https://www.dolarpy.com.br/
○ Santista
¿Quien 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
¿Qué es MQTT?
● MQTT (Message Queue Telemetry Transport)
● Proyecto IBM, final de los 90
● Creadores: Andy Stanford-Clark (IBM) Arlen Nipper(Cirrus Link)
Caracteristicas del MQTT
● Es un protocolo ligero para redes con ancho de banda limitado y alta latencia.
● Paradigma PUB / SUB
● Broker (Middleware)
● Asincrónico
● Consume pocos recursos del dispositivo (batería, procesamiento, ancho de
banda)
● Altamente escalable
● Implementación facil
Arquitectura MQTT
Broker
SubscriberPublisher
Subscriber
Subscriber
Subscriber:
Subscribe a topic in
Broker
Publisher:
Publish data topic
to Broker
Broker:
Send msg to
clients
Publisher
Publisher
¿Qué es Micropython?
● Es un compilador de tiempo de ejecución.
● Implementación lean de Python3.
● Se ejecuta en microcontroladores y en ambientes restringidos.
● Accede directamente al hardware.
● Creado por el programador y físico australiano Damien George en 2013.
● Soporte nativo a Pyboard, WiPy, ESP8266 / 32 y MicroBit
Instalando 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
● https://github.com/scientifichackers/ampy
○ ampy --port /dev/ttyUSB0 put file.py file.py
○ ampy --help
Projecto 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…
Algunos puntos v1
● Lenguajes: Python, Java, Kotlin, Ruby, Javascript, etc…
● Crear el script
● Anãdir al cron del linux
● Exejutar en una hora especifica o intervalo determinado
● Y si se llevanta mas temprano o mas tarde?
● Y si es feriado?
Projecto v2
Broker
Publish message
ON/OFF to topic
gdgfoz/coffee
Send message
ON/OFF to topic
gdgfoz/coffee
Subscribe topic
gdgfoz/coffee
Algunos puntos v2
● Wifi fijo
● Tópico fijo
Projecto v3
Broker
Auth & Data
internet
¡Empecemos!
¡Código MicroPython!
Micropython
● umqtt
● Crear access point (ssid: espcoffee / password: esp1234567890)
● Abrir socket puerta 80 (192.168.4.1)
● Aceder en el browser y elegir el ssid y password
CODE
¡Código Android!
Android
● Kotlin
● Paho library
● Auth Firebase
● Cloud Firestore (database)
● QRcode
CODE
¿Y el cafe?
Codigos
● https://github.com/hussanhijazi/iot-hub
● https://github.com/andrequeiroz2/micropython-coffee
Contactos
● Houssan Ali Hijazi - hussanhijazi@gmail.com
● André Queiroz - andrequeiroz.com@gmail.com
¿Preguntas?
¡Muchas gracias!

Encender una cafetera con Micropython, MQTT y Android