EcoNotifica é um sistema inteligente de gerenciamento de resíduos sólidos, voltado para empresas, instituições e prefeituras. Utiliza sensores IoT (Raspberry Pi Zero W + ultrassônico) integrados a uma plataforma web/mobile, permitindo o monitoramento de lixeiras em tempo real, envio de notificações automáticas e visualização em mapa com dashboards interativos.
Tecnologias envolvidas:
- Frontend: React Native (Expo), React Navigation, React Native Maps
- Backend: Node.js, Express, PostgreSQL, MQTT
- IoT: MicroPython em Raspberry Pi Zero W com sensores ultrassônicos
- Outros: Geolocalização, notificações de status, autenticação JWT
📱 O aplicativo já está disponível na Play Store como teste fechado.
EcoNotifica/
├── backend/ # Servidor Node.js + banco de dados
├── frontend/ # Aplicativo mobile com Expo
├── .env # Variáveis de ambiente
├── package.json # Scripts e dependências principais
- Node.js instalado (versão 18+ recomendada)
- Expo CLI (
npm install -g expo-cli) - Banco de dados PostgreSQL (configurado via
.env) - MQTT Broker (local ou hospedado)
npm startEsse comando executa backend e frontend simultaneamente com o
concurrently.
npm run devcd frontend
npx expo startObservação: sempre entre na pasta correspondente (
backendoufrontend) caso deseje rodar um módulo isoladamente.
npm install concurrently dotenvnpx expo install @react-native-community/netinfo
npx expo install react-native-paper react-native-safe-area-context
npx expo install expo-linear-gradient
npm install @react-navigation/native @react-navigation/stack react-native-gesture-handler react-native-reanimated react-native-screensOs últimos 5 pacotes são essenciais para a navegação entre telas (inclusive navegação horizontal). Em geral, o Expo já instala eles automaticamente, mas é bom garantir.
-
Para visualizar o modal de conexão com a internet em qualquer tela, é necessário ter instalado:
npx expo install @react-native-community/netinfo react-native-paper react-native-safe-area-context
-
Para testar o alerta de Wi-Fi desconectado, desligue a conexão no celular ou emule isso no simulador.
-
Certifique-se de que o
.envestá corretamente configurado tanto no backend quanto no frontend.