Sensoriamento

Aplicativo para configuração e coleta de dados de sensores de placas IoT

Visão Geral

O projeto tinha como objetivo configurar placas STM32 utilizando o celular. O aplicativo através da conexão Bluetooth configurava as placas de uma determinada linha de produção, para que ela se conectasse ao protocolo MQTT e enviasse dados dos sensores de luminosidade, temperatura, ruído e umidade. Os dados era coletados pelo aplicativos e mostrados em tempo real. Também podemos falar da parte web que tinha como objetivo o monitoramento em tempo real de todas as linhas de produção com suas respectivas placas instaladas e configuradas.

Tecniquês:

O aplicativo foi desenvolvido em Flutter utilizando MobX, Provider e outras tecnologias, a interface web foi desenvolvida em Angular.

Alguns dos plugins utilizados:

  • flutter_blue: Integração Bluetooth para aplicativos Flutter.
  • wifi_iot: Gerenciamento de redes Wi-Fi em Flutter.
  • provider: Gerenciamento de estado simples e eficiente.
  • mobx: Gerenciamento de estado reativo para Flutter.
  • flutter_mobx: Extensão MobX para Flutter.
  • mqtt_client: Comunicação MQTT para aplicativos Flutter.
  • socket_io_client: Comunicação WebSocket em tempo real.
  • http: Solicitações HTTP em aplicativos Flutter.
  • intl: Internacionalização e formatação de dados em Flutter.
  • collection: Estruturas de dados adicionais para Flutter.
  • device_info_plus: Informações do dispositivo em Flutter.

Desafios

Durante o desenvolvimento do aplicativo foi enfrentado diversos desafios técnicos, desde a integração complexa de comunicação Bluetooth e MQTT até a coleta em tempo real dos dados dos sensores. Além disso, a implementação de uma interface de usuário intuitiva representaram desafios adicionais. Ao decorrer do projeto, foi adquirido valiosos conhecimentos em Bluetooth, MQTT e gerenciamento de estado em Flutter, além de aprimorar habilidades de trabalho em equipe. A experiência também proporcionou uma compreensão mais profunda sobre a importância de testes abrangentes e depuração para garantir a qualidade e confiabilidade do aplicativo.