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

Ligando uma cafeteira com Micropython, Mqtt e Android

Ligando uma cafeteira com Micropython, Mqtt e Android

Houssan A. Hijazi

December 14, 2021
Tweet

More Decks by Houssan A. Hijazi

Other Decks in Programming

Transcript

  1. 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
  2. Quem 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. O que é MQTT? • MQTT (Message Queue Telemetry Transport)

    • Projeto IBM, final dos anos 90 • Criadores: Andy Stanford-Clark (IBM) Arlen Nipper(Cirrus Link)
  4. 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.
  5. Arquitetura 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. 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
  7. 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
  8. 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…
  9. 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?
  10. Projeto v2 Broker Publish message ON/OFF to topic gdgfoz/coffee Send

    message ON/OFF to topic gdgfoz/coffee Subscribe topic gdgfoz/coffee wifi
  11. Alguns pontos v2 • Wifi fixo no código. • Tópico

    fixo no código. Vulgo “marretado no código”.
  12. 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
  13. 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.
  14. Android • Kotlin • Mqtt Paho library • Auth Firebase

    • Cloud Firestore (database) • QR Code