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

B59b1bd643ff429bb27032b05d4f2e23?s=128

Houssan A. Hijazi

December 14, 2021
Tweet

Transcript

  1. Ligando uma cafeteira com Micropython, MQTT e Android

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

    • Projeto IBM, final dos anos 90 • Criadores: Andy Stanford-Clark (IBM) Arlen Nipper(Cirrus Link)
  5. 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.
  6. 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
  7. 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
  8. 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
  9. Instalando o ampy • https://github.com/scientifichackers/ampy • ampy --port /dev/ttyUSB0 put

    file.py file.py • ampy --help
  10. 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…
  11. 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?
  12. Projeto v2 Broker Publish message ON/OFF to topic gdgfoz/coffee Send

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

    fixo no código. Vulgo “marretado no código”.
  14. Como resolver / Wifi? • Wifi fixo: Configurar wifi via

    browser
  15. Como resolver / Wifi ?

  16. 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
  17. Projeto v3 Broker Auth & Data internet 12:A0:3E:78:F9:56/temperature A0:EF:15:F8:23:15/relay

  18. Go Go Go!

  19. Código MicroPython!

  20. 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.
  21. CODE

  22. Código Android!

  23. None
  24. Android • Kotlin • Mqtt Paho library • Auth Firebase

    • Cloud Firestore (database) • QR Code
  25. CODE

  26. Cadê o café?

  27. Códigos • https://github.com/hussanhijazi/iot-hub • https://github.com/andrequeiroz2/micropython-coffee

  28. Contatos • Houssan Ali Hijazi - hussanhijazi@gmail.com • André Queiroz

    - andrequeiroz.com@gmail.com
  29. Perguntas?

  30. Muito Obrigado!