Usage Guide - daviiixxy/base GitHub Wiki
Como usar, build, run e testar o sistema CoreHub
Guia prático para desenvolvimento e testes
- Build do Projeto
- Run e Deploy
- Teste com Simuladores
- Teste Integrado
- Monitoramento
- Cenários de Teste
- Troubleshooting
# 1. Clonar repositório
git clone https://github.com/daviiixxy/base.git
cd base/Firmware
# 2. Verificar estrutura
ls -la
# Deve mostrar: Applications/, SDK/, .vscode/, etc.
# 1. Abrir VSCode no projeto
code .
# 2. Compilar via VSCode
Ctrl+Shift+P → "Tasks: Run Task" → "Compile - Core_Hub"
# 3. Verificar build
# Arquivo gerado: Build/Core_Hub/HTNB32L-XXX-Core_Hub.elf
# Compilar via terminal
make -j4 gccall TARGET=qcx212_0h00 V=0 PROJECT=Core_Hub
# Verificar se compilou
ls Build/Core_Hub/
# Deve mostrar: HTNB32L-XXX-Core_Hub.elf
# Verificar arquivo gerado
file Build/Core_Hub/HTNB32L-XXX-Core_Hub.elf
# Deve mostrar: ELF 32-bit LSB executable, ARM...
# Verificar tamanho
ls -lh Build/Core_Hub/HTNB32L-XXX-Core_Hub.elf
# Deve mostrar tamanho do arquivo
# 1. Conectar USB-Serial converter
# 2. Verificar LED vermelho aceso
# 3. Selecionar porta via VSCode
Ctrl+Shift+P → "Tasks: Run Task" → "COM Select"
# Listar portas disponíveis
ls /dev/ttyUSB* # Linux/Git Bash
ls /dev/tty.usb* # macOS
# Windows: Verificar Gerenciador de Dispositivos
# Testar conectividade
screen /dev/ttyUSB0 115200 # Linux/Git Bash
# ou
minicom -D /dev/ttyUSB0 -b 115200
Antes de executar o sistema, o iMCP deve estar em modo BOOT:
# Sequência para entrar em modo BOOT:
1. Pressionar e SEGURAR o botão BOOT
2. Pressionar o botão RESET (mantendo BOOT pressionado)
3. SOLTAR o botão RESET
4. SOLTAR o botão BOOT
5. Sistema entra em modo de programação
# 1. Colocar iMCP em modo BOOT (sequência acima)
# 2. Executar via VSCode
Ctrl+Shift+P → "Tasks: Run Task" → "Run - Core_Hub"
# 1. Colocar iMCP em modo BOOT (sequência acima)
# 2. Executar via script
python Debug/Scripts/debug.py Core_Hub
# Logs esperados:
=== Sistema Pronto para Operação ===
HT MQTT Connect: Conectando ao broker MQTT...
HT MQTT Connect: Successfully connected to MQTT broker 131.255.82.115:1883
[CoreHub] Conectado ao MQTT Broker
[CoreHub] Inscrito em tópicos de 3 ambientes
[CoreHub] SAÚDE: Sistema operando normalmente (302 s uptime)
# 1. Instalar dependências
pip install paho-mqtt
# 2. Verificar conectividade MQTT
ping 131.255.82.115
# 3. Testar broker MQTT
telnet 131.255.82.115 1883
# Deve conectar sem erro
# 1. Navegar para pasta
cd Software/Testing/Publishers/SmartDoor
# 2. Executar simulador
python smartdoor_simulator.py --ambiente externo
# 3. Observar saída:
# [INFO] SmartDoor Simulator iniciado
# [INFO] Conectado ao broker MQTT
# [INFO] Publicando: hana/externo/smartdoor/door = CLOSED
# [INFO] Publicando: hana/externo/smartdoor/light = OFF
- Porta: Simula OPEN/CLOSED a cada 2-10 minutos
- Luz: Simula ON/OFF a cada 30-90 minutos
- Buzzer: Responde a comandos do CoreHub
# 1. Publicar porta aberta
mosquitto_pub -h 131.255.82.115 -t "hana/externo/smartdoor/door" -m "OPEN"
# 2. Aguardar 60 segundos
# 3. CoreHub deve publicar:
mosquitto_sub -h 131.255.82.115 -t "hana/externo/smartdoor/buzzer" -v
# Deve mostrar: hana/externo/smartdoor/buzzer ON
# 1. Navegar para pasta
cd Software/Testing/Publishers/SenseClima
# 2. Executar simulador
python senseclima_simulator.py --ambiente externo --boards 01 02
# 3. Observar saída:
# [INFO] SenseClima Simulator iniciado
# [INFO] Publicando: hana/externo/senseclima/01/temperature = 27.8
# [INFO] Publicando: hana/externo/senseclima/01/humidity = 64.2
- Temperatura: Varia de 14°C a 30°C (curva diária)
- Umidade: Correlacionada com temperatura
- Intervalo: Publicação a cada 10 segundos
- Multi-board: Suporte a múltiplas placas
# 1. Publicar temperatura alta
mosquitto_pub -h 131.255.82.115 -t "hana/externo/senseclima/01/temperature" -m "30.5"
# 2. CoreHub deve ligar AC
mosquitto_sub -h 131.255.82.115 -t "hana/externo/aircontrol/01/power" -v
# Deve mostrar: hana/externo/aircontrol/01/power ON
# 1. Navegar para pasta
cd Software/Testing/Publishers/AirControl
# 2. Executar simulador
python aircontrol_simulator.py --ambiente externo --equipamentos 01 02
# 3. Observar saída:
# [INFO] AirControl Simulator iniciado
# [INFO] Estado inicial: AC01 = OFF, AC02 = OFF
# [INFO] Aguardando comandos...
- Power: Responde a comandos ON/OFF
- Temperatura: Configurável (16-32°C)
- Feedback: Confirma comandos em tempo real
- Multi-equipment: Suporte a múltiplos ACs
# 1. Ligar AC
mosquitto_pub -h 131.255.82.115 -t "hana/externo/aircontrol/01/power" -m "ON"
# 2. Configurar temperatura
mosquitto_pub -h 131.255.82.115 -t "hana/externo/aircontrol/01/temperature" -m "23"
# 3. Verificar estado
mosquitto_sub -h 131.255.82.115 -t "hana/externo/aircontrol/01/+" -v
cd Software/Testing/Publishers/SmartDoor
python smartdoor_simulator.py --ambiente externo
cd Software/Testing/Publishers/SenseClima
python senseclima_simulator.py --ambiente externo --boards 01 02
cd Software/Testing/Publishers/AirControl
python aircontrol_simulator.py --ambiente externo --equipamentos 01 02
# 1. Porta aberta → Alarme ativa
# SmartDoor publica: hana/externo/smartdoor/door = OPEN
# CoreHub publica: hana/externo/smartdoor/buzzer = ON
# 2. Temperatura alta → AC liga
# SenseClima publica: hana/externo/senseclima/01/temperature = 29.5
# CoreHub publica: hana/externo/aircontrol/01/power = ON
# 3. Temperatura baixa → AC desliga
# SenseClima publica: hana/externo/senseclima/01/temperature = 22.0
# CoreHub publica: hana/externo/aircontrol/01/power = OFF
# 4. Multi-ambiente independente
# Cada ambiente funciona independentemente
# Download: https://mqtt-explorer.com/
# Configuração de Conexão:
Broker: 131.255.82.115
Port: 1883
Client ID: explorer_user
Username: (deixar em branco)
Password: (deixar em branco)
# Todos os ambientes
hana/#
# Ambiente específico
hana/externo/#
hana/mesanino/#
hana/prototipagem/#
# Dispositivo específico
hana/*/smartdoor/#
hana/*/senseclima/#
hana/*/aircontrol/#
- Tempo Real: Dados atualizados automaticamente
- Histórico: MQTT Explorer mantém histórico
- Filtros: Usar wildcards para filtrar tópicos
- Export: Dados podem ser exportados para análise
=== Sistema Pronto para Operação ===
HT MQTT Connect: Conectando ao broker MQTT...
HT MQTT Connect: Successfully connected to MQTT broker 131.255.82.115:1883
[CoreHub] Conectado ao MQTT Broker
[CoreHub] Inscrito em tópicos de 3 ambientes
[CoreHub] SAÚDE: Sistema operando normalmente (302 s uptime)
[CoreHub] [externo] AC LIGADO (Porta fechada + Luz ligada)
[CoreHub] [mesanino] ALARME ATIVO (Porta aberta > 60s)
# 1. Publicar porta aberta
mosquitto_pub -h 131.255.82.115 -t "hana/externo/smartdoor/door" -m "OPEN"
# 2. Publicar temperatura alta
mosquitto_pub -h 131.255.82.115 -t "hana/externo/senseclima/01/temperature" -m "29.5"
# 3. Aguardar 60 segundos
# 4. Verificar resultados
mosquitto_sub -h 131.255.82.115 -t "hana/externo/smartdoor/buzzer" -v
# Deve mostrar: hana/externo/smartdoor/buzzer ON
mosquitto_sub -h 131.255.82.115 -t "hana/externo/aircontrol/01/power" -v
# Deve mostrar: hana/externo/aircontrol/01/power ON
# 1. Testar múltiplos ambientes simultaneamente
mosquitto_pub -h 131.255.82.115 -t "hana/externo/smartdoor/door" -m "OPEN"
mosquitto_pub -h 131.255.82.115 -t "hana/mesanino/senseclima/01/temperature" -m "31.0"
mosquitto_pub -h 131.255.82.115 -t "hana/prototipagem/smartdoor/light" -m "ON"
# 2. Verificar controle independente
mosquitto_sub -h 131.255.82.115 -t "hana/externo/smartdoor/buzzer" -v
mosquitto_sub -h 131.255.82.115 -t "hana/mesanino/aircontrol/01/power" -v
mosquitto_sub -h 131.255.82.115 -t "hana/prototipagem/smartdoor/light" -v
# 1. Desconectar simuladores
# 2. Aguardar 30 segundos
# 3. Reconectar simuladores
# 4. Verificar reconexão automática
# Verificar logs do CoreHub:
[CoreHub] Reconexão automática ao MQTT broker
[CoreHub] Inscrições restauradas
- Build: Projeto compila sem erros
- Deploy: Sistema executa no hardware
- MQTT: CoreHub conecta ao broker
- Simuladores: Todos os simuladores funcionam
- Lógica: CoreHub toma decisões corretas
- Comandos: Comandos são publicados
- Multi-ambiente: Ambientes funcionam independentemente
- Logs: Logs mostram operação normal
Métrica | Valor Esperado | Como Medir |
---|---|---|
Tempo de Resposta | < 5 segundos | Cronômetro manual |
Taxa de Sucesso | > 95% | Contar comandos vs respostas |
Reconexão | < 30 segundos | Desconectar e reconectar |
Throughput | 100+ msg/min | Monitor MQTT Explorer |
# ❌ Problemas comuns:
- "Connection refused" → Broker MQTT offline
- "No such file or directory" → Simulador não encontrado
- "Module not found" → Dependências Python faltando
- "Permission denied" → Porta COM sem permissão
- "Build failed" → Erro de compilação
# Erro: "make: command not found"
# Solução: Instalar make
sudo apt-get install make # Ubuntu/Debian
brew install make # macOS
# Windows: Verificar se make está no PATH
# Erro: "arm-none-eabi-gcc: command not found"
# Solução: Instalar toolchain ARM
# Baixar de: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain
# Erro: "Connection refused"
# Solução: Verificar broker MQTT
ping 131.255.82.115
telnet 131.255.82.115 1883
# Erro: "Permission denied" na porta COM
# Solução: Adicionar usuário ao grupo dialout (Linux)
sudo usermod -a -G dialout $USER
# Reiniciar sessão
# Windows: Executar VSCode como administrador
# Erro: "Device not responding" ou "Upload failed"
# Solução: Verificar modo BOOT
# 1. Pressionar e SEGURAR BOOT
# 2. Pressionar RESET (mantendo BOOT)
# 3. SOLTAR RESET
# 4. SOLTAR BOOT
# 5. Tentar upload novamente
# Erro: "ModuleNotFoundError: No module named 'paho'"
# Solução: Instalar dependências
pip install paho-mqtt
# Erro: "No such file or directory"
# Solução: Verificar caminho
pwd
ls -la Software/Testing/Publishers/
# Erro: "SIM card not detected"
# Solução: Verificar chip TIM
# 1. Verificar inserção correta
# 2. Verificar chip ativo
# 3. Verificar antena conectada
# Erro: "MQTT connection failed"
# Solução: Verificar rede NB-IoT
# 1. Verificar cobertura
# 2. Verificar configuração APN
# 3. Verificar registro na rede
- Issues: GitHub Issues
- Documentação: Docs/Firmware/
- Wiki: Esta documentação