Projeto de Subsistema de Software
Este documento descreve o projeto de um subsistema de software, destacando suas principais características, componentes e interações. O objetivo é fornecer uma visão geral das escolhas técnicas e de design que guiam o desenvolvimento do subsistema. Abaixo, a tabela resume os artefatos-chave do projeto e seus detalhes, com links que poderão ser atualizados para um acesso direto aos conteúdos completos.
Tabela 1: Descrição dos artefatos principais do subsistema e suas funções.
Artefato | Descrição |
---|---|
Arquitetura de Software | Documento que descreve a estrutura do subsistema, seus componentes, as metas e restrições arquiteturais, além dos diagramas de arquitetura. |
Backlog do Produto | Lista priorizada de histórias de usuário, roadmap, kanban e tabelas que detalham os itens planejados para o produto, incluindo a gestão de versões. |
Documento de Identidade Visual | Descrição da identidade visual do produto, abordando a proposta de valor, logo, cores, tipografia e outros elementos gráficos. |
Fluxos de Usuário | Descrição dos diferentes fluxos de usuário, incluindo fluxogramas de fluxos felizes e de exceção, detalhando as interações com o sistema. |
Fonte: Autoria Própria. Todos os direitos reservados.
Comunicação com ESP32
A comunicação entre o aplicativo desenvolvido e o microcontrolador ESP32 desempenha um papel central no funcionamento do projeto, pois estabelece a integração necessária entre o hardware da Meu Norte e o software de navegação. Por meio dessa conexão, realizada predominantemente via Bluetooth Low Energy (BLE), o app é capaz de receber informações em tempo real capturadas pelos sensores acoplados à bengala, como a detecção de obstáculos ou mudanças no ambiente. Além disso, essa comunicação permite ao app enviar comandos ao hardware, como instruções para ativar feedback tátil na pulseira vibratória ou fornecer orientações sonoras por meio de fones de ouvido. Essa sinergia entre software e hardware garante que o usuário tenha acesso a informações precisas e imediatas, promovendo maior segurança, autonomia e eficiência no deslocamento
Métodos de Comunicação
As tecnologias de comunicação utilizadas no projeto abrangem diferentes protocolos para garantir conectividade eficiente e adaptada às necessidades dos dispositivos. A comunicação entre o aplicativo React Native e a ESP32 é realizada utilizando Bluetooth Low Energy (BLE), uma escolha ideal por seu baixo consumo de energia e capacidade de transmitir dados em tempo real, como alertas de obstáculos. Os fones de ouvido são integrados via Bluetooth clássico, permitindo a transmissão de áudio com qualidade suficiente para instruções por voz. Além disso, o projeto pode incluir comunicação com serviços na nuvem, utilizando conexões Wi-Fi para a ESP32, ou HTTP/HTTPS no app para acessar APIs de mapas e configurar preferências do usuário. Essa combinação de tecnologias garante flexibilidade e eficiência na troca de informações entre os diversos módulos do sistema.
Tabela 2: Métodos de comunicação entre o aplicativo e a ESP32
Método de Comunicação | Descrição | Detalhamento |
---|---|---|
Bluetooth Low Energy (BLE) | Comunicação entre o app e a ESP32 | Utilizado para transmissão de dados em tempo real, como alertas de obstáculos detectados pelos sensores. |
Bluetooth Clássico | Conexão com fones de ouvido | Permite a transmissão de áudio com qualidade adequada para instruções de navegação por voz. |
Wi-Fi | Conexão da ESP32 com a nuvem | Usado para enviar dados ou receber atualizações do sistema, como informações de mapas ou configurações. |
HTTP/HTTPS | Comunicação do app com APIs | Acesso a serviços externos, como APIs de mapas (Google Maps, OpenStreetMap) para cálculo de rotas. |
Fonte: Autoria Própria.
Desempenho e Eficiência
O desempenho e a eficiência são aspectos críticos no projeto, considerando que o sistema deve operar em tempo real para fornecer respostas rápidas e confiáveis ao usuário. A escolha de tecnologias como o Bluetooth Low Energy (BLE) para comunicação entre o aplicativo e a ESP32 garante baixo consumo de energia, essencial para dispositivos móveis e sensores embarcados com autonomia limitada. Além disso, a ESP32, com seu processamento eficiente e suporte integrado a múltiplos protocolos, permite uma análise rápida dos dados capturados pelos sensores, reduzindo a latência na detecção de obstáculos e na transmissão de alertas. A utilização de APIs de navegação otimizadas e bibliotecas eficientes no desenvolvimento do aplicativo em React Native assegura que cálculos de rotas e geração de feedback sejam realizados sem sobrecarregar o dispositivo. Essa atenção ao desempenho e à eficiência não apenas melhora a experiência do usuário, mas também maximiza a confiabilidade e a autonomia do sistema como um todo.
Segurança e Confiabilidade
A segurança e a confiabilidade são pilares fundamentais para o sucesso do projeto, considerando que ele é projetado para pessoas com deficiência visual, cuja segurança física depende diretamente do funcionamento correto do sistema. A comunicação entre o aplicativo e a ESP32 utiliza Bluetooth Low Energy (BLE), que suporta mecanismos de criptografia e autenticação, protegendo os dados transmitidos contra interceptações ou acessos não autorizados. Além disso, a arquitetura do sistema deve prever redundância em alertas críticos, como sinais simultâneos pela pulseira vibratória e pelos fones de ouvido, para garantir que o usuário seja devidamente notificado sobre obstáculos ou mudanças de rota. No backend, conexões seguras via HTTPS e autenticação robusta protegem as interações com serviços na nuvem, enquanto a confiabilidade do sistema é aumentada por testes rigorosos de hardware e software em cenários diversos. Essa abordagem integrada assegura um alto nível de proteção e resiliência, promovendo a confiança do usuário no uso diário do dispositivo.
Software Embarcado
Referências
- Bluetooth® API - ESP32 - — ESP-IDF Programming Guide v5.3.1 documentation. Disponível em: https://docs.espressif.com/projects/esp-idf/en/v5.3.1/esp32/api-reference/bluetooth/index.html. Acesso em: 26 nov. 2024.
Versionamento
Versão | Data | Modificação | Autor |
---|---|---|---|
1.0 | 24/11/2024 | Criação do documento | José Luís |
1.1 | 24/11/2024 | Escrita da primeira versão do documento | Eduardo Maia |
1.1 | 28/11/2024 | Exclusão de conexão NFC | Eduardo Maia |