Skip to content

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

  1. What is Electron? Acesso em 28 de abril de 2024.

  2. Diagrama de arquitetura de software. Acesso em 03 de abril de 2024.

  3. PostgreSQL: about. Acesso em 26 de novembro de 2024.

  4. RabbitMQ: One broker to queue them all. Acesso em 26 de novembro de 2024.

  5. What is RabbitMQ?. Acesso em 26 de novembro de 2024.

  6. Node.js. Acesso em 14 de janeiro de 2025.

  7. Django overview. Acesso em 26 de novembro de 2024.

  8. Security in Django | Django documentation. Acesso em 26 de novembro de 2024.

  9. O que é MQTT? - Explicação sobre o protocolo MQTT - AWS. Acesso em 29 de novembro de 2024.

  10. MQTT - the standard for IoT messaging. Acesso em 29 de novembro de 2024.

  11. HiveMQ. Acesso em 25 de janeiro de 2025.

  12. Documentação de pesquisa de tecnologias.

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