Este projeto é um sistema de monitoramento de reservatórios de água, desenvolvido com Laravel, Docker e PostgreSQL. O sistema coleta dados de níveis de água em tempo real, enviados por um microcontrolador, e os armazena em um banco de dados. Com base nesses dados, o sistema processa e exibe informações de fácil acesso para o administrador, permitindo o acompanhamento e a gestão eficiente dos reservatórios.
O sistema fornece ao administrador os seguintes dados:
- Volume: Exibe o armazenamento atual, a capacidade total e a quantidade armazenada no reservatório.
- Vazão: Indica quanto o volume do reservatório aumentou ou diminuiu ao longo do tempo.
- Retenção: Mede o volume total retido (reduções no volume).
- Velocidade de Vazão e Retenção: Quantifica as mudanças de volume em relação ao tempo.
No terminal, clone o repositório e navegue até o diretório do projeto:
git clone https://github.com/gabrielandradecunha/monitoramento-reservatorio/
cd monitoramento-reservatorio
Utilize o Docker Compose para subir o container do PostgreSQL:
sudo docker-compose up -d
Instale as dependências do projeto utilizando o Composer:
composer install
Crie o arquivo .env
com as credenciais corretas para conexão com o banco de dados PostgreSQL:
mv .env.example .env
Rodar as migrações para criar as tabelas no banco de dados:
php artisan migrate
Execute as seeders para criar o usuário Administrator, que permitirá o acesso ao sistema:
php artisan db:seed
É necessário criar um gatilho no banco de dados para registrar o histórico de alterações feitas pelo microcontrolador. Para isso, execute o script init.sql
:
sudo docker exec -it postgres_monit psql -U postgres -d postgres -f /docker-entrypoint-initdb.d/init.sql
Alternativamente, você pode rodar a aplicação em um container Docker.
No terminal, clone o repositório e navegue até o diretório do projeto:
git clone https://github.com/gabrielandradecunha/monitoramento-reservatorio/
cd monitoramento-reservatorio
Suba o container do PostgreSQL com o Docker Compose:
sudo docker-compose up -d
Crie o arquivo .env
apropriado para a aplicação em container (ou utilize o meu arquivo .docker.env
):
sudo cp .docker.env .env
Construa e suba o container da aplicação:
sudo docker build -t sysmonit .
sudo docker run -d --network monitoramento-reservatorio_monit -p 8080:8000 --name sysmonit sysmonit
Como as migrações não podem ser executadas no momento de build da imagem (pois o container ainda não está na rede), execute as migrações e seeders após subir o container na rede do banco de dados:
sudo docker exec -it sysmonit php artisan migrate
sudo docker exec -it sysmonit php artisan db:seed
Por fim, crie o gatilho no banco de dados para registrar o histórico de alterações feitas pelo microcontrolador com o script init.sql
:
sudo docker exec -it postgres_monit psql -U postgres -d postgres -f /docker-entrypoint-initdb.d/init.sql
Caso tenha alguma dúvida ou problema, pode abrir uma issue no repositório ou me contatar diretamente