cl0v / tv-controller

You can now controll anything that runs node with a Flutter App that simulates your mouse and keyboard
Apache License 2.0
272 stars 81 forks source link

Controle de Slides com Flutter e NodeJS via WebSocket

Este projeto permite controlar um Slideshow (ou qualquer outro software) à distância, simulando movimentos de mouse e teclado através de um aplicativo Flutter conectado via WebSocket a um servidor NodeJS. O app Flutter utiliza os sensores de acelerômetro e giroscópio do dispositivo para detectar movimentos, proporcionando uma experiência fluida para navegar entre slides ou realizar ações remotamente.

Funcionalidades

Requisitos

Servidor (NodeJS)

Aplicativo (Flutter)

Instalação

1. Clone o repositório

git clone https://github.com/cl0v/tv-controller
cd tv-controller

2. Configuração do Servidor NodeJS

Instale as dependências do NodeJS:

cd nodejs
npm install

3. Inicie o Servidor WebSocket

npm run start

4. Configuração do Aplicativo Flutter

Certifique-se de que o Flutter está instalado e as dependências estão configuradas:

cd flutter
flutter pub get

5. Execute o Aplicativo Flutter

Conecte um dispositivo ou use o emulador para rodar o app:

flutter run

Como Funciona

Servidor NodeJS

O servidor NodeJS recebe comandos do aplicativo Flutter via WebSocket e simula as ações de mouse e teclado no sistema host. Dependendo dos dados enviados pelo acelerômetro e giroscópio, o servidor realiza as seguintes ações:

Aplicativo Flutter

O aplicativo coleta os dados de movimento através dos sensores (acelerômetro/giroscópio) e envia esses dados para o servidor NodeJS via WebSocket. O servidor interpreta esses dados e os transforma em comandos de mouse/teclado.

Exemplos de Uso

Movimento para a Esquerda/Direita

Movimento do Mouse

Capturas de tela

Exemplo de uso

Tecnologias Utilizadas

Contribuindo

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Faça commit das suas mudanças (git commit -m 'Adiciona nova feature')
  4. Faça um push para a branch (git push origin feature/nova-feature)
  5. Abra um Pull Request

Buy me a Coffee

Give a ⭐️ if this project helped you!

Licença

Este projeto está licenciado sob a Licença Apache 2.0.

Contato

Caso tenha dúvidas ou sugestões, sinta-se à vontade para abrir uma issue ou entrar em contato pelo LinkedIn.

Estrutura do Projeto: