Projeto de Subsistema de Software
A parte de software do projeto SolarBanyu consiste em um dashboard em uma aplicação web, através da qual poderá ver o estado da água após o processo de filtração, o estado do dessalinizador e a quantidade de energia consumida pela operação; Além disso, gráficos serão gerados para uma melhor compreensão do usuário; por último, essa aplicação web será capaz de enviar alertas ao usuário relacionados a uma baixa qualidade da água e níveis de energia inadequados.
Arquitetura de Software
Guia de estilo
A parte do estilo pode ser observada na documentação de Identidade Visual
Protótipo de alta fidelidade
Tecnologia utilizada
-
Django: Baseado em Python, este framework simplifica muito a criação de uma página web, possuindo características prontas para uso como um sistema de login e incluindo medidas de segurança que impedem vulnerabilidades como injeção sql; Este framework nos permitirá criar a aplicação web no menor tempo possível, o que é importante devido ao curto prazo que temos para o projeto.
-
HTML: Utilizado para estruturar o conteúdo das páginas web, o HTML fornece a base para organizar textos, imagens, tabelas e outros elementos. Ele é essencial para criar a estrutura das interfaces, possibilitando a integração perfeita com o backend do Django.
-
CSS: Responsável pela estilização das páginas web, o CSS define cores, fontes, layouts e ajustes responsivos, proporcionando uma experiência visual agradável e adaptável a diferentes dispositivos. Ele permite que os dashboards tenham um design atrativo e coerente com a identidade visual do projeto.
-
JavaScript: Usado para implementar interatividade e dinamicidade nas interfaces, o JavaScript permite criar gráficos dinâmicos, validações de formulários e animações. Ele também possibilita a comunicação assíncrona com a API REST do Django, garantindo uma navegação mais fluida e eficiente para os usuários.
-
RabbitMQ: Broker de mensagens que prioriza a segurança da mensagem e que esta chegará ao receptor mesmo se houver falhas no Broker, o que é importante pois os usuários sempre devem estar informados sobre o estado da água e do dessalinizador.
-
PostgreSQL: Banco de dados que usa a linguagem SQL, PostgreSQL é um banco de dados estruturado (dados guardados em tabelas) o que permite que as informações sejam guardadas de forma ordenada, Também é focado na integridade dos dados e tolerância a falhas, o que garante que as informações não sejam perdidas ou modificadas de forma indesejada.
Comunicação com ESP32
Software embarcado
-
MQTT: MQTT é um protocolo de mensagens para comunicação entre dispositivos baseado em padrões, este tem três componentes; Cliente, que é qualquer dispositivo executando a biblioteca MQTT, pode atuar como publicador e destinatário; Agente, que é o sistema que coordena as mensagens entre diferentes clientes, cuida de receber e filtrar mensagens, identificar clientes e resolver sessões de mensagens e mensagens perdidas; Finalmente tem a conexão, que é o meio de comunicação entre os agentes e clientes, os clientes nunca se conectam uns com os outros, apenas se conectam com os agentes. Foi escolhido porque requer recursos mínimos podendo ser executado em microcontroladores, requer quantidade mínima de código que consome muito pouca energia nas operações e possui recursos integrados que reduzem o tempo de conexão com o broker.
-
HiveMQ: HiveMQ é um corretor de mensagens que faz parte do protocolo MQTT, usado neste para os componentes conversarem entre si de forma automática, utiliza um modelo publish/subscribe o que o torna ideal para co-comunicação entre dispositivos de baixa potência como sensores ou telefones e microcontroladores, esta é a principal razão pela qual foi escolhido.
Referências
Diagrama de arquitetura de software. Acesso em 03 de abril de 2024.
RabbitMQ: One broker to queue them all. Acesso em 26 de novembro de 2024.
Security in Django | Django documentation. Acesso em 26 de novembro de 2024.
O que é MQTT? - Explicação sobre o protocolo MQTT - AWS. Acesso em 29 de novembro de 2024.
MQTT - the standard for IoT messaging. Acesso em 29 de novembro de 2024.
Histórico de versão
Data | Versão | Descrição | Autores | Revisor |
---|---|---|---|---|
0.1 | 26/11/2024 | Criação do documento | Sebastian Héctor Zuzunaga Rosado | |
0.2 | 26/11/2024 | Adição da comunicação com arduíno | x | |
0.3 | 26/11/2024 | Adição da tecnologia utilizada | Sebastian Héctor Zuzunaga Rosado | |
0.4 | 26/11/2024 | Formatação e adição do software embarcado | x | |
0.5 | 26/11/2024 | Mudança de titulo do documento e erros de portugues | x | |
0.6 | 26/11/2024 | Correção de links e erros de português | X | |
1.0 | 01/12/2024 | Adicionado protótipo | Mylena | |
2.0 | 14/01/2025 | Ajustes da mudança do frontend | Mylena |