O BitDogLab Server Monitor é um projeto IoT que utiliza o BitDogLab para monitorar botões, joystick e sensores. Ele coleta dados de hardware e os envia para um servidor local ou na nuvem, permitindo o monitoramento em tempo real e a interação através de um painel de controle.
O projeto é dividido em três componentes principais:
- Tecnologia: Django
- Descrição: Fornece endpoints REST para gerenciar e armazenar os dados coletados.
- Localização: Diretório
api/
- Tecnologia: React
- Descrição: Interface gráfica para exibir os dados em tempo real e interagir com o sistema.
- Localização: Diretório
dashboard/
- Tecnologia: C para Raspberry Pi Pico
- Descrição: Componente embarcado que coleta dados de hardware e os envia para o backend.
- Localização: Diretório
monitorSever/
- Docker e Docker Compose
- Node.js e npm (para desenvolvimento do frontend)
- Python 3.9+ e pip (para desenvolvimento do backend)
- Raspberry Pi Pico SDK (para o componente embarcado)
Crie um arquivo .env
na raiz do projeto com as seguintes variáveis:
# Django API Settings
SECRET_KEY='sua_chave_secreta_aqui'
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
DATABASE_ENGINE=django.db.backends.sqlite3
DATABASE_NAME=db.sqlite3
API_HOST=localhost
API_PORT=8001
Na raiz do projeto, execute:
docker-compose up --build
- API Backend: http://localhost:8001
- Dashboard Frontend: http://localhost:3000
Caso prefira rodar o projeto sem utilizar o Docker Compose, siga os passos abaixo:
- Certifique-se de ter o Python 3.9+ instalado.
- Crie um ambiente virtual para o projeto:
python -m venv venv
- Ative o ambiente virtual:
- Linux/macOS:
source venv/bin/activate
- Windows:
venv\Scripts\activate
- Linux/macOS:
- Navegue até o diretório
api/
:cd api
- Instale as dependências do projeto:
pip install -r requirements.txt
- Realize as migrações do banco de dados:
python manage.py migrate
- Inicie o servidor de desenvolvimento:
python manage.py runserver
- Certifique-se de ter o Node.js e o npm instalados.
- Navegue até o diretório
dashboard/
:cd dashboard
- Instale as dependências do projeto:
npm install
- Inicie o servidor de desenvolvimento:
npm start
- Certifique-se de ter o SDK do Raspberry Pi Pico configurado no seu ambiente.
- Navegue até o diretório
monitorSever/
:cd monitorSever
- Compile o código:
mkdir -p build && cd build cmake .. make
- Envie o arquivo gerado (
monitorSever.uf2
) para o Raspberry Pi Pico.
Após seguir esses passos, o sistema estará rodando sem a necessidade de Docker Compose.
Para que o sistema funcione corretamente, é necessário configurar o IP da máquina onde o servidor está rodando. Siga os passos abaixo para verificar o IP:
- Linux: Execute o comando
ifconfig
no terminal e procure pelo endereço IP associado à interface de rede. - Windows: Execute o comando
ipconfig
no Prompt de Comando e procure pelo endereço IP associado à interface de rede.
Certifique-se de que o IP configurado seja acessível pela rede e que a porta utilizada (padrão: 4444) não esteja bloqueada por firewall.
Para alterar a senha de acesso ao sistema, edite o arquivo .env
e modifique a variável SECRET_KEY
para uma nova chave secreta. Certifique-se de que a nova chave seja forte e única.
No arquivo monitorSever/monitorSever.c
, você encontrará as seguintes definições de configuração de rede:
#define SSID_WIFI "Embarca"
#define SENHA_WIFI "EmbarcaTech01"
#define SERVIDOR_IP_0 10
#define SERVIDOR_IP_1 8
#define SERVIDOR_IP_2 45
#define SERVIDOR_IP_3 122
- SSID_WIFI: Substitua "Embarca" pelo nome da sua rede Wi-Fi.
- SENHA_WIFI: Substitua "EmbarcaTech01" pela senha da sua rede Wi-Fi.
- SERVIDOR_IP_0 a SERVIDOR_IP_3: Configure o endereço IP do servidor receptor, dividindo-o em quatro partes. Por exemplo, para o IP
192.168.1.100
, configure:#define SERVIDOR_IP_0 192 #define SERVIDOR_IP_1 168 #define SERVIDOR_IP_2 1 #define SERVIDOR_IP_3 100
Certifique-se de salvar as alterações e recompilar o código para que as novas configurações entrem em vigor.
Este projeto é licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Para mais informações ou dúvidas sobre o projeto, entre em contato:
- Email: [email protected]
- Linkedin: https://www.linkedin.com/in/heitor-louzeiro/
- GitHub: https://github.com/HeitorLouzeiro