{"id":50876620,"url":"https://github.com/lauratrigo/projeto-ecocomp-mqtt","last_synced_at":"2026-06-15T10:30:37.154Z","repository":{"id":357034263,"uuid":"1234966886","full_name":"lauratrigo/projeto-ecocomp-mqtt","owner":"lauratrigo","description":"Projeto de estufa inteligente desenvolvido com ESP32, MQTT, Node.js e MongoDB. O sistema realiza monitoramento ambiental em tempo real, controle remoto de atuadores, automação de irrigação, ventilação e aquecimento, além de disponibilizar dashboard web, histórico de medições e geração de relatórios. 🌱","archived":false,"fork":false,"pushed_at":"2026-06-14T15:08:42.000Z","size":6416,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-14T17:10:09.692Z","etag":null,"topics":["automatization","cpp","css","esp32","esp32-wroom","html","iot","iot-application","javascript","mqtt","mqtt-broker","mqtt-explorer","mvc-architecture","site","web"],"latest_commit_sha":null,"homepage":"https://lauratrigo.github.io/projeto-ecocomp-mqtt/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lauratrigo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-10T21:42:59.000Z","updated_at":"2026-06-14T15:08:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lauratrigo/projeto-ecocomp-mqtt","commit_stats":null,"previous_names":["lauratrigo/projeto-ecocomp-mqtt"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lauratrigo/projeto-ecocomp-mqtt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauratrigo%2Fprojeto-ecocomp-mqtt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauratrigo%2Fprojeto-ecocomp-mqtt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauratrigo%2Fprojeto-ecocomp-mqtt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauratrigo%2Fprojeto-ecocomp-mqtt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lauratrigo","download_url":"https://codeload.github.com/lauratrigo/projeto-ecocomp-mqtt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauratrigo%2Fprojeto-ecocomp-mqtt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34357285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automatization","cpp","css","esp32","esp32-wroom","html","iot","iot-application","javascript","mqtt","mqtt-broker","mqtt-explorer","mvc-architecture","site","web"],"created_at":"2026-06-15T10:30:36.256Z","updated_at":"2026-06-15T10:30:37.149Z","avatar_url":"https://github.com/lauratrigo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌱 EcoComp – Inteligência Computacional Aplicada ao Monitoramento de Ecossistemas\n\nO **EcoComp** é um sistema de monitoramento e automação de estufas inteligentes desenvolvido utilizando conceitos de **Internet das Coisas (IoT)**, **Computação em Nuvem**, **Sistemas Embarcados** e **Desenvolvimento Web**.\n\nO projeto permite acompanhar em tempo real as condições ambientais de uma estufa por meio de sensores conectados a um ESP32, além de controlar dispositivos de irrigação, ventilação e aquecimento remotamente através de uma aplicação web.\n\n---\n\n## 🚀 Funcionalidades\n\n### 📊 Monitoramento em Tempo Real\n\n- Temperatura interna da estufa\n- Umidade do ar interna\n- Umidade do solo interna\n- Temperatura externa\n- Umidade do ar externa\n- Umidade do solo externa\n\n### 🤖 Automação Inteligente\n\n- Acionamento automático da bomba de irrigação\n- Controle automático da ventoinha\n- Controle automático da lâmpada de aquecimento\n- Configuração dos limites de automação diretamente pela aplicação web\n\n### 🌐 Aplicação Web\n\n- Cadastro de usuários\n- Login e autenticação\n- Dashboard em tempo real\n- Histórico de medições\n- Filtros por período\n- Exportação de relatórios\n- Controle manual dos atuadores\n\n### ☁️ Infraestrutura\n\n- Comunicação MQTT\n- API REST em Node.js\n- Banco de dados MongoDB Atlas\n- Hospedagem da API no Render\n- Controle de versão com Git e GitHub\n\n---\n\n## 🏗️ Arquitetura do Sistema\n\n```text\n           ┌─────────────────┐\n           │     Sensores    │\n           │ DHT22 e Solo    │\n           └────────┬────────┘\n                    │\n                    ▼\n           ┌─────────────────┐\n           │      ESP32      │\n           │ Coleta dos dados│\n           └────────┬────────┘\n                    │ MQTT\n                    ▼\n           ┌─────────────────┐\n           │  Broker MQTT    │\n           └────────┬────────┘\n                    │\n      ┌─────────────┴─────────────┐\n      ▼                           ▼\n┌───────────────┐        ┌────────────────┐\n│ Backend Node  │        │ MQTT Explorer  │\n│ + MongoDB     │        │ (Monitoramento)│\n└───────┬───────┘        └────────────────┘\n        │\n        ▼\n┌─────────────────┐\n│ Aplicação Web   │\n│ Dashboard       │\n│ Histórico       │\n│ Configurações   │\n└─────────────────┘\n```\n\n---\n\n## 🔧 Tecnologias Utilizadas\n\n### Hardware\n\n- ESP32\n- 2 Sensores DHT22\n- 2 Sensores de Umidade do Solo\n- Bomba de Irrigação\n- Ventoinha\n- Lâmpada\n\n### Software\n\n#### Backend\n\n- Node.js\n- Express.js\n- MQTT.js\n- MongoDB Atlas\n- JWT\n- bcrypt\n\n#### Frontend\n\n- HTML5\n- CSS3\n- JavaScript\n\n#### Infraestrutura\n\n- MQTT\n- Render\n- GitHub\n\n---\n\n## 📂 Estrutura do Projeto\n\n```text\nprojeto-ecocomp-mqtt\n│\n├── frontend\n│   ├── home.html\n│   ├── historico.html\n│   ├── config.html\n│   ├── login.html\n│   ├── cadastro.html\n│   ├── script.js\n│   ├── historico.js\n│   ├── config.js\n│   └── style.css\n│\n├── backend\n│   ├── src\n│   │   ├── config\n│   │   ├── controller\n│   │   ├── dao\n│   │   ├── middleware\n│   │   ├── model\n│   │   ├── router\n│   │   ├── service\n│   │   └── view\n│   │\n│   ├── app.js\n│   ├── server.js\n│   ├── generate-devices.js\n│   └── simulador_esp.js\n│\n└── README.md\n```\n\n---\n\n## 🧩 Padrão Arquitetural\n\nO backend foi desenvolvido seguindo o padrão **MVC (Model-View-Controller)**.\n\n### Model\n\nResponsável pela representação dos dados e integração com o MongoDB.\n\n### Controller\n\nRecebe as requisições HTTP e coordena o fluxo de execução.\n\n### Service\n\nImplementa as regras de negócio do sistema:\n\n- Processamento de telemetria\n- Automação da estufa\n- Controle dos atuadores\n- Publicação MQTT\n\n### DAO\n\nResponsável pelo acesso ao banco de dados.\n\n### Router\n\nDefine as rotas da API.\n\n### Middleware\n\nRealiza autenticação e validações.\n\n---\n\n## 📡 Comunicação MQTT\n\n### Tópicos Utilizados\n\n#### Telemetria\n\n```text\necocomp/estufa-001/telemetry\n```\n\nPublica:\n\n```json\n{\n  \"deviceId\": \"estufa-001\",\n  \"soil\": 45,\n  \"airTemp\": 24,\n  \"airHumidity\": 62,\n  \"soilExternal\": 40,\n  \"tempExternal\": 22,\n  \"airHumidityExternal\": 65\n}\n```\n\n#### Atuadores\n\n```text\necocomp/estufa-001/actuators\n```\n\nRecebe:\n\n```json\n{\n  \"bomba\": true,\n  \"ventoinha\": false,\n  \"lampada\": false\n}\n```\n\n#### Configurações\n\n```text\necocomp/estufa-001/config\n```\n\nRecebe:\n\n```json\n{\n  \"soloMin\": 40,\n  \"tempMax\": 32,\n  \"tempMin\": 18\n}\n```\n\n---\n\n## 🤖 Regras de Automação\n\nO sistema realiza automaticamente o controle dos atuadores com base nos limites configurados.\n\n### Irrigação\n\n```text\nSe umidade do solo ≤ soloMin\n→ Liga a bomba\n```\n\n### Resfriamento\n\n```text\nSe temperatura ≥ tempMax\n→ Liga a ventoinha\n```\n\n### Aquecimento\n\n```text\nSe temperatura ≤ tempMin\n→ Liga a lâmpada\n```\n\n---\n\n## 🗄️ Banco de Dados\n\nO MongoDB Atlas utiliza as seguintes coleções:\n\n### devices\n\nCadastro das estufas monitoradas pelo sistema.\n\n### readings\n\nHistórico completo das medições realizadas pelos sensores.\n\n### configs\n\nConfigurações de automação da estufa.\n\n### actuators\n\nEstado atual dos atuadores.\n\n### users\n\nUsuários cadastrados na plataforma.\n\n---\n\n## 📸 Funcionalidades da Interface\n\n### Dashboard\n\n- Dados em tempo real\n- Comparação entre ambiente interno e externo\n- Indicadores visuais\n\n### Histórico\n\n- Últimas 24 horas\n- Últimos 7 dias\n- Últimos 30 dias\n- Período personalizado\n\n### Configurações\n\n- Controle manual dos atuadores\n- Configuração dos parâmetros automáticos\n\n### Usuários\n\n- Cadastro\n- Login\n- Recuperação de senha\n\n---\n\n## 👩‍💻 Desenvolvedoras\n\n- Laura Trigo\n- Josiely Toledo\n\nProjeto desenvolvido para a disciplina de **Projeto de Engenharia da Computação II**.\n\n---\n\n## 📜 Licença\n\nEste projeto possui fins acadêmicos e educacionais.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flauratrigo%2Fprojeto-ecocomp-mqtt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flauratrigo%2Fprojeto-ecocomp-mqtt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flauratrigo%2Fprojeto-ecocomp-mqtt/lists"}