O projeto consiste em um sistema embarcado de navegação, baseado no ESP32-S3, que recebe comandos via BLE (Bluetooth Low Energy) de um aplicativo móvel, exibe informações de navegação em um display OLED e, adicionalmente.
- Microcontrolador central do sistema.
- Responsável por:
- Receber comandos de navegação via BLE do app.
- Exibir setas, ícones e textos no display OLED (SSD1309) usando a biblioteca U8g2.
- Captar áudio do microfone INMP441 via interface I2S.
- Conectar-se à rede Wi-Fi para enviar áudio ao servidor Flask.
- Receber e exibir respostas da IA.
- Exibe informações de navegação (setas, texto, status Bluetooth).
- Utiliza bitmaps para ícones e setas, além de textos dinâmicos.
- Desenvolvido em React/TypeScript.
- Permite ao usuário enviar comandos de navegação via BLE.
- Possui botão para acionar a IA (comando para ESP32 iniciar gravação de áudio).
- Navegação Tradicional
- Usuário envia comandos de direção pelo app (BLE).
- ESP32-S3 recebe, interpreta e exibe setas/textos no display OLED.
- Endpoint /ask recebe arquivo de áudio via POST.
- Usa Whisper CLI para transcrição automática do áudio.
- Integra com Ollama via API REST para geração de resposta.
- Retorna resposta em formato JSON.
- Modelo de reconhecimento de voz (Speech-to-Text).
- Executado via linha de comando no servidor.
- Suporta múltiplos idiomas, incluindo português.
- Plataforma para rodar modelos de linguagem grandes (LLMs) localmente.
- Recebe texto via API REST e retorna respostas geradas por IA.
- Utiliza modelos como Llama3, Mistral, etc.
- ESP32-S3 se conecta ao Wi-Fi e faz requisições HTTP ao servidor Flask.
- BLE é usado para comunicação entre app e ESP32.
- App pode ser testado em qualquer dispositivo móvel com BLE.
- O sistema pode ser testado sem o microfone, simulando o envio de áudio ou texto fixo.
- O endpoint do servidor pode ser testado com ferramentas como Postman ou curl.
- O display OLED mostra tanto informações de navegação quanto respostas da IA.
- Integração de navegação tradicional com interação por voz baseada em IA.
- Uso de modelos de IA locais, garantindo privacidade e independência de nuvem.
- Arquitetura modular, permitindo expansão para outros sensores ou funcionalidades.
- Interface amigável via app móvel.
- Implementação de HTTPS para maior segurança.
- Otimização do buffer de áudio para melhor desempenho no ESP32.
- Adição de feedback visual/sonoro no app.
- Suporte a comandos de voz para navegação.
O projeto demonstra uma solução embarcada inovadora, unindo navegação assistida e inteligência artificial, com comunicação BLE, Wi-Fi e integração de APIs modernas. O sistema é funcional, expansível e pode ser adaptado para diversas aplicações em acessibilidade, automação ou orientação inteligente.
