Skip to content

Sistema de monitoramento da qualidade da água em ecossistemas marinhos, com foco em temperatura e turbidez. Projeto desenvolvido com ESP32 para coleta de dados, integração com banco de dados em tempo real via Firebase e aplicativo mobile criado com Flutter Flow.

Notifications You must be signed in to change notification settings

hebertesteves/ocean

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FECAP - Fundação de Comércio Álvares Penteado

FECAP - Fundação de Comércio Álvares Penteado

Projeto Baseado nos Objetivos de Desenvolvimento Sustentável para monitorar a Temperatura e Turbidez da Água.

Grupo Ocean

✏ Introdução

ods

Feito por Objetivos de Desenvolvimento Sustentável (ODS)


No contexto brasileiro, o aquecimento dos oceanos é uma preocupação que afeta diretamente a biodiversidade marinha, os ecossistemas costeiros e a população em geral e as consequências dessas mudanças climáticas são preocupantes. Sob esta perspectiva, os Objetivos de Desenvolvimento Sustentável (ODS) são essenciais em nosso projeto de monitoramento de temperatura para que esse problema seja acompanhado e controlado. Os ODS incluídos em nosso projeto são o Vida debaixo d'água (ODS 14) e a Ação climática (ODS 13). Este estudo busca diminuir esses problemas através do monitoramento contínuo da temperatura e do grau de claridade dos oceanos e recifes de corais no território brasileiro, com o intuito de auxiliar ações de conservação e proteção ambiental.

🔎 Descrição

projeto

Feito por: Alexandra Christine , Hebert dos Reis Esteves , Karoline Lemos Avelar , Matheus Santos Morais .

O aumento da temperatura dos oceanos é uma ameaça grave para a biodiversidade marinha e a sustentabilidade dos ecossistemas costeiros. Nesse contexto, propomos implementar um sistema de monitoramento integrado, utilizando tecnologia IoT (Internet das Coisas), que compreende o Arduino, um sensor DS18B20 para temperatura e um Sensor de Turbidez para Monitoramento de Qualidade da Água.

Esse sistema permitirá avaliar a saúde dos ecossistemas marinhos ao fornecer dados precisos e em tempo real sobre a temperatura e a qualidade da água em regiões críticas, como próximas a recifes de coral. Os dados serão transmitidos para um banco de dados Firebase, que estará conectado a um aplicativo mobile desenvolvido no Flutter Flow. Esse aplicativo permitirá que os usuários visualizem e compreendam as variações de temperatura e turbidez da água de forma acessível.

Além de fornecer informações cruciais para a conservação marinha sustentável, o projeto visa promover a conscientização sobre a importância da preservação dos ecossistemas marinhos. Esperamos que esses dados influenciem positivamente políticas públicas e práticas de conservação ambiental para proteger o meio ambiente costeiro e garantir a sustentabilidade dos recursos marinhos no Brasil.

🛠 Estrutura de pastas

-Raiz
|
|-->documentos
 |-->antigos
 |Projeto+de+extensão+-+Grupo+°cean_atualizado_com_sensor de turbidez.docx
|-->imagens
|-->src
 |-->Backend
 |-->Frontend
|readme.md

README.MD: Arquivo que serve como guia e explicação geral sobre seu projeto. O mesmo que você está lendo agora.

Há também 4 pastas que seguem da seguinte forma:

documentos: Toda a documentação estará nesta pasta.

imagens: Imagens do sistema

src: Pasta que contém o código fonte.

✔️ Técnicas e tecnologias utilizadas

  • C++
  • Arduino IDE
  • Banco de Dados Firebase
  • Flutter Flow

📖 Requisitos

equipamentos


🛠 Hardware

• ESP32

• Sensor de temperatura DS18B20

• Sensor de turbidez

• Protoboard e Jumpers

• Conexão Wi-Fi

💻 Software:

• Arduino IDE

• Conta no Firebase (para transmissão de dados)

• Conta no Flutter Flow (para visualização dos dados)

🛠 Instalação Arduino IDE


•Instale o Arduino IDE a partir do site oficial.

• Abra o Arduino IDE após a instalação.

⚙Configuração do Arduino IDE para ESP32


• No Arduino IDE, vá em File > Preferences.

• Adicione a URL a seguir ao campo "Additional Board Manager URLs"

https://dl.espressif.com/dl/package_esp32_index.json


• Vá em Tools > Board > Boards Manager, procure por "esp32" e clique em instalar.

💻 Instalação de Bibliotecas


• Firebase ESP Client:

• Acesse o repositório no GitHub: Firebase ESP Client.

• Clique no botão "Code" e selecione "Download ZIP" para baixar a biblioteca em formato .zip.

• Abra o Arduino IDE.

• Vá em Sketch > Include Library > Add .ZIP Library....

• Navegue até o local onde você baixou o arquivo .zip e selecione-o.

• A biblioteca será adicionada e estará disponível para uso em seus projetos.


📚OneWire

• Vá em Sketch > Include Library > Manage Libraries....

• Na caixa de busca, digite "OneWire".

• Selecione a biblioteca OneWire de Paul Stoffregen e clique em "Install".


📚DallasTemperature

• Vá em Sketch > Include Library > Manage Libraries....

• Na caixa de busca, digite "DallasTemperature".

• Selecione a biblioteca DallasTemperature de Miles Burton e clique em "Install".


📡WiFi

• Vá em Sketch > Include Library > Manage Libraries....

• Na caixa de busca, digite "WiFi".

• Selecione a biblioteca WiFi para ESP32 e clique em "Install".

⚙Configuração do Hardware


1. Conectar o Sensor DS18B20 ao ESP32:

• Conecte o 3.3V do ESP32 à barra de alimentação positiva (+) na protoboard.

• Conecte o GND do ESP32 à barra de alimentação negativa (-) na protoboard.

• Conecte o VCC do sensor DS18B20 ao 3.3V do ESP32.

• Conecte o GND do sensor DS18B20 ao GND do ESP32.

• Conecte o pino DQ do sensor DS18B20 ao pino GPIO 4 do ESP32 (utilize um resistor de pull-up de 4.7kΩ entre VCC e DQ).


2.Conectar o Sensor de Turbidez ao ESP32:

• Conecte o 3.3V do ESP32 à barra de alimentação positiva (+) na protoboard.

• Conecte o GND do ESP32 à barra de alimentação negativa (-) na protoboard.

• Conecte o VCC do sensor de turbidez ao 3.3V do ESP32.

• Conecte o GND do sensor de turbidez ao GND do ESP32.

• Conecte o pino OUT do sensor de turbidez ao pino GPIO 32 do ESP32.

⚙Configuração do Firebase


1. No Firebase Console

• Vá para Firestore Database e crie uma nova coleção chamada leitura.

• Dentro da coleção leitura, crie um documento com campos correspondentes aos dados que você está enviando do ESP32: temperatura, turbidez, condicao, data, horario.

• Em configurações do projeto, copie o “Código do projeto” e a “Chave de API da Web”.

• Em Authentication, crie um usuário com email e senha.

firebase


2. Defina as credenciais no código:

#define API_KEY "sua-chave-de-api"
#define FIREBASE_PROJECT_ID "id-do-projeto"
#define USER_EMAIL "seu-email@gmail.com"
#define USER_PASSWORD "sua-senha"

⌨Carregar o Código no ESP32


1. Conecte o ESP32 ao computador via cabo USB.

2. No Arduino IDE, selecione a placa e a porta correspondente ao ESP32:

• Vá em Tools > Board e selecione "DOIT ESP32 DEVKIT V1".

• Vá em Tools > Port e selecione a porta onde o ESP32 está conectado.

3. Clique em Upload para carregar o código no ESP32.

💻Monitoramento


• Abra o Serial Monitor (Ctrl + Shift + M) para ver os dados de depuração e confirmar se o ESP32 está conectando ao Wi-Fi e enviando dados ao Firebase corretamente.

📱Conexão com o Aplicativo desenvolvido no Flutter Flow


Para visualizar os dados do sensor em um aplicativo móvel, vamos configurar o Flutter Flow e conectá-lo ao Firebase.

1. Requisitos

• Conta no Flutter Flow

• Conexão Wi-Fi

• Conta no Firebase

📱Passo a Passo para Configuração do Flutter Flow


1. Criar Conta no Flutter Flow:

• Vá para o site do Flutter Flow e crie uma conta.


2. Configurar Projeto no Flutter Flow:

• Após criar uma conta, clique em Create New Project.

• Dê um nome ao seu projeto e escolha um template de sua preferência.


3. Conectar ao Firebase:

• No painel do Flutter Flow, vá para a seção Settings e clique em Firebase.

• Siga as instruções para conectar seu projeto Firebase ao Flutter Flow.

• Adicione a URL da sua API, a chave do projeto, e outras credenciais do Firebase.


4. Configurar Coleções no Firebase

5. Design das Telas no Flutter Flow:

• Crie uma nova tela para exibir os dados do sensor.

• Adicione widgets de texto para mostrar os valores de temperatura, turbidez, condição da água, data e horário.

• Configure cada widget de texto para puxar dados do Firebase configurando as respectivas referências aos campos da coleção leitura.

6. Configurar Tela de Notícias:

• Crie uma nova tela para exibir notícias sobre a água.

• Adicione widgets de texto ou cards para exibir títulos e descrições de notícias sobre a qualidade da água.

• Insira conteúdo estático ou conecte-se a uma coleção no Firebase que contenha notícias.

7. Pré-visualização e Testes:

• Use o modo de pré-visualização do Flutter Flow para testar seu aplicativo.

• Certifique-se de que os dados do Firebase estão sendo corretamente exibidos e atualizados no aplicativo.

8. Publicação:

• Após testar e garantir que tudo está funcionando, vá em App Settings, depois vá em Web Publishing e clique em Publish.

• Será gerado um link, como por exemplo: https://ocean-novinho-l5apv0.flutterflow.app/.

• Gere um atalho para simular um app.

🗃 Histórico de lançamentos

  • 0.2.1 - 21/05/2024
    • CONSERTADO: Correção no Bug da turbidez (Hebert)
  • 0.2.0 - 21/05/2024
    • MUDANÇA: Compra da caixa organizadora (Alexandra)
  • 0.1.1 - 23/05/2024
    • CONCLUÍDO: Atualização da Pesquisa de Extensão (Matheus e Karoline)
  • 0.1.0 - 24/05/2024
    • CONCLUÍDO: Criação do README (Hebert e Alexandra)

📋 Licença/License

Ocean by FECAP, Alexandra Christine Silva Raimundo, Hebert dos Reis Esteves, Karoline Lemos Avelar, Matheus Santos Morais. is licensed under Creative Commons Attribution 4.0 International

🎓 Referências

Aqui estão as referências usadas no projeto.

  1. MSC (Marine Stewardship Council). Oceanos em risco: Alterações climáticas e pesca. Disponível em: https://tinyurl.com/2nb87ddw Acesso em: 25 abr.2024.
  2. CNN Brasil. Aquecimento dos oceanos está em níveis recordes há um ano; entenda o risco. Disponível em: https://tinyurl.com/4f4377f3.Acesso em: 25 abr. 2024.
  3. Como usar um Sensor de Nível de Água. Disponível em: https://tinyurl.com/4a77w3kx. Acesso em: 25 abr. 2024.
  4. Maretório: o impacto da maré nos territórios de comunidades costeiras. Disponível em: https://tinyurl.com/4htym3nc. Acesso em: 25 abr. 2024.
  5. Efeitos do aquecimento global ameaçam vida marinha. Disponível em: https://tinyurl.com/bdcfmnnr. Acesso em: 25 abr. 2024.
  6. Paulo Horta et a. Mudanças Climáticas e a zona costeira do Brasil: vulnerabilidades socioambientais e estratégias de ação. Vol.11.3, dez/2020. Disponível em: https://tinyurl.com/mrxezh7w. Acesso em: 25 abr. 2024.
  7. Random Nerd Tutorials. ESP32 with DS18B20 Temperature Sensor using Arduino IDE. Disponível em: https://randomnerdtutorials.com/esp32-ds18b20-temperature-arduino-ide/. Acesso em: 22 maio 2024.
  8. Blog da Robótica. Como utilizar o módulo sensor de turbidez de partículas suspensas na água com Arduino. Disponível em: https://www.blogdarobotica.com/2023/01/10/como-utilizar-o-modulo-sensor-de-turbidez-de-particulas-suspensas-na-agua-com-arduino/. Acesso em: 22 maio 2024.
  9. TFK IoT Blog. Send DHT11 Sensor Data to Firebase. Disponível em: https://tfkiot.blogspot.com/2023/12/send-dht11-sensor-data-to-firebase.html. Acesso em: 22 maio 2024.
  10. TFK IoT GitHub. Esp32-Esp8266_Send_DHT11_Data_To_FireStore. Disponível em: https://github.com/tfkiot/Esp32-Esp8266_Send_DHT11_Data_To_FireStore/tree/main. Acesso em: 22 maio 2024.

About

Sistema de monitoramento da qualidade da água em ecossistemas marinhos, com foco em temperatura e turbidez. Projeto desenvolvido com ESP32 para coleta de dados, integração com banco de dados em tempo real via Firebase e aplicativo mobile criado com Flutter Flow.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%