Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Encender una cafetera con Micropython, MQTT y Android

Encender una cafetera con Micropython, MQTT y Android

Houssan A. Hijazi

November 27, 2019
Tweet

More Decks by Houssan A. Hijazi

Other Decks in Programming

Transcript

  1. ¿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
  2. ¿Quien Somos? • André Queiroz ◦ Analista de Suporte (Mabu

    Rede Hoteleira) ◦ Github: https://github.com/andrequeiroz2 ◦ E-mail: [email protected] ◦ GDG Foz do Iguaçu (Suporte) ◦ Santista
  3. ¿Qué es MQTT? • MQTT (Message Queue Telemetry Transport) •

    Proyecto IBM, final de los 90 • Creadores: Andy Stanford-Clark (IBM) Arlen Nipper(Cirrus Link)
  4. 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
  5. Arquitectura MQTT Broker Subscriber Publisher Subscriber Subscriber Subscriber: Subscribe a

    topic in Broker Publisher: Publish data topic to Broker Broker: Send msg to clients Publisher Publisher
  6. ¿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
  7. 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
  8. 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…
  9. 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?
  10. Projecto v2 Broker Publish message ON/OFF to topic gdgfoz/coffee Send

    message ON/OFF to topic gdgfoz/coffee Subscribe topic gdgfoz/coffee
  11. 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
  12. Android • Kotlin • Paho library • Auth Firebase •

    Cloud Firestore (database) • QRcode