alarmeZap/README.md
2026-11-01 20:38:37 -03:00

2.7 KiB

AlarmeZap 🚨

Solução completa de alarme sonoro contínuo ("pesado") disparado via WhatsApp.


📁 Estrutura do Projeto

  • server/: Servidor Node.js com @whiskeysockets/baileys e WebSocket (ws).
  • android/: Aplicativo Android nativo em Kotlin + Jetpack Compose.
  • dist/alarmezap.apk: APK compilado e pronto para instalação.

1. 🖥️ Servidor (Linux / Node.js)

Pré-requisitos

  • Node.js >= 20
  • npm

Como rodar:

cd server
npm install
npm start
  1. Na primeira execução, um QR Code será exibido diretamente no terminal.
  2. Abra o WhatsApp no celular -> Aparelhos conectados -> Conectar aparelho e escaneie o código.
  3. As credenciais da sessão são salvas na pasta auth_info/ para reconexão automática contínua.
  4. O servidor WebSocket ficará ouvindo na porta 8080 (configurável via .env).

2. 📱 Aplicativo Android

APK Pronto para Instalação:

O binário compilado encontra-se em: dist/alarmezap.apk

Para instalar diretamente via USB com ADB:

adb install -r dist/alarmezap.apk

Como Recompilar pelo Terminal:

cd android
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk # ou o JDK instalado
./gradlew assembleDebug

O APK gerado ficará em android/app/build/outputs/apk/debug/app-debug.apk.

Abrindo no Android Studio:

Basta abrir a pasta android/ no Android Studio.


3. ⚙️ Como Utilizar o Sistema

  1. Abra o AlarmeZap no celular.
  2. Conceda as permissões essenciais exibidas no topo da tela:
    • Ignorar Otimização de Bateria (necessário para o Android não suspender o WebSocket em segundo plano).
    • Sobrepor outros apps / Usar tela cheia (para o alarme acender a tela mesmo bloqueada).
    • Acesso a Não Perturbe (para forçar o áudio no volume máximo mesmo se o aparelho estiver mudo).
  3. Configure o Servidor: Insira o IP da sua máquina Linux na rede local (ex: 192.168.1.100) e porta 8080. Toque em Salvar Servidor.
  4. Cadastre os Números: Digite os números autorizados com DDI e DDD (ex: 5511999999999) e clique em Adicionar. A lista é automaticamente sincronizada com o servidor Linux.
  5. Arme o Sistema: Ative o Switch principal SISTEMA ARMADO.
  6. Uma notificação fixa de primeiro plano (Foreground Service) manterá a conexão ativa 24/7.
  7. Quando qualquer um dos contatos cadastrados enviar qualquer mensagem no WhatsApp:
    • O servidor Linux identifica o remetente.
    • Envia o evento trigger_alarm para o celular.
    • O celular aguarda o delay exato de 1 segundo.
    • O alarme sobe no volume máximo contínuo (STREAM_ALARM), acende a tela de bloqueio e exibe o botão gigante DESLIGAR ALARME.