Usage Guide - daviiixxy/base GitHub Wiki

🚀 Guia de Uso - CoreHub

Como usar, build, run e testar o sistema CoreHub
Guia prático para desenvolvimento e testes

CoreHub VSCode MQTT


📋 Índice

  1. Build do Projeto
  2. Run e Deploy
  3. Teste com Simuladores
  4. Teste Integrado
  5. Monitoramento
  6. Cenários de Teste
  7. Troubleshooting

🔧 Build do Projeto

📋 Pré-requisitos

# 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.

🚀 Build com VSCode Tasks

Método 1: VSCode Tasks (Recomendado)

# 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

Método 2: Terminal

# 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

✅ Verificação do Build

# 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

🔄 Run e Deploy

📡 Configuração da Porta COM

Método 1: VSCode COM Select

# 1. Conectar USB-Serial converter
# 2. Verificar LED vermelho aceso
# 3. Selecionar porta via VSCode
Ctrl+Shift+P → "Tasks: Run Task""COM Select"

Método 2: Terminal

# 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

🚀 Executar o Sistema

⚠️ IMPORTANTE: Modo BOOT

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

Método 1: VSCode Run

# 1. Colocar iMCP em modo BOOT (sequência acima)
# 2. Executar via VSCode
Ctrl+Shift+P → "Tasks: Run Task""Run - Core_Hub"

Método 2: Script Python

# 1. Colocar iMCP em modo BOOT (sequência acima)
# 2. Executar via script
python Debug/Scripts/debug.py Core_Hub

📊 Monitoramento de Logs

# 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)

🧪 Teste com Simuladores

📋 Pré-requisitos dos Simuladores

# 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

🤖 Teste SmartDoor

Executar Simulador

# 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

Comportamento Esperado

  • Porta: Simula OPEN/CLOSED a cada 2-10 minutos
  • Luz: Simula ON/OFF a cada 30-90 minutos
  • Buzzer: Responde a comandos do CoreHub

Teste Manual

# 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

🌡️ Teste SenseClima

Executar Simulador

# 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

Comportamento Esperado

  • 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

Teste Manual

# 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

❄️ Teste AirControl

Executar Simulador

# 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...

Comportamento Esperado

  • 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

Teste Manual

# 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

🔄 Teste Integrado

🚀 Executar Todos os Simuladores

Terminal 1: SmartDoor

cd Software/Testing/Publishers/SmartDoor
python smartdoor_simulator.py --ambiente externo

Terminal 2: SenseClima

cd Software/Testing/Publishers/SenseClima
python senseclima_simulator.py --ambiente externo --boards 01 02

Terminal 3: AirControl

cd Software/Testing/Publishers/AirControl
python aircontrol_simulator.py --ambiente externo --equipamentos 01 02

🎯 Comportamento Integrado Esperado

# 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

📊 Monitoramento

🔍 MQTT Explorer

Configuração

# 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)

Tópicos para Monitorar

# Todos os ambientes
hana/#

# Ambiente específico
hana/externo/#
hana/mesanino/#
hana/prototipagem/#

# Dispositivo específico
hana/*/smartdoor/#
hana/*/senseclima/#
hana/*/aircontrol/#

Observações Importantes

  • 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

📈 Logs do CoreHub

Logs de Inicialização

=== 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

Logs de Operação

[CoreHub] SAÚDE: Sistema operando normalmente (302 s uptime)
[CoreHub] [externo] AC LIGADO (Porta fechada + Luz ligada)
[CoreHub] [mesanino] ALARME ATIVO (Porta aberta > 60s)

🎯 Cenários de Teste

📋 Cenário 1: Porta Aberta + Temperatura Alta

# 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

📋 Cenário 2: Multi-Ambiente

# 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

📋 Cenário 3: Teste de Robustez

# 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

🔍 Verificação de Funcionamento

✅ Checklist de Sucesso

  • 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étricas de Performance

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

🚨 Indicadores de Problema

# ❌ 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

🚨 Troubleshooting

❌ Problemas de Build

# 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

❌ Problemas de Conexão

# 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

❌ Problemas dos Simuladores

# 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/

❌ Problemas do CoreHub

# 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

📚 Recursos Adicionais

🔗 Links Úteis

📞 Suporte


🚀 Guia de Uso CoreHub - Sistema de Automação Inteligente
Build, Run e Teste com Simuladores

GitHub VSCode

⚠️ **GitHub.com Fallback** ⚠️