advanced
Segway
IoT
integracao

Integracao IoT Segway

Guia tecnico completo para integracao IoT nativa Segway - comandos suportados, dados de telemetria, operacoes de bloqueio/desbloqueio, codigos de erro e configuracao para veiculos Segway.

Equipe Levy FleetsDecember 25, 202520 min read

Integracao IoT Segway

O Levy Fleets fornece integracao nativa com dispositivos IoT Segway usando o Protocolo de Telemetria TCP Segway. Este guia cobre a integracao completa incluindo comandos suportados, processamento de telemetria, tratamento de erros e solucao de problemas.

Versao do Protocolo

O Levy Fleets implementa o Protocolo TCP Segway v1.4.4, suportando mais de 38 comandos em todas as categorias operacionais.

Visao Geral

Dispositivos IoT Segway se comunicam com o Levy Fleets atraves de um protocolo baseado em TCP que fornece:

  • Rastreamento GPS em tempo real com dados de localizacao em formato NMEA
  • Monitoramento de bateria incluindo suporte a dupla bateria
  • Controle de bloqueio/desbloqueio com reconhecimento
  • Monitoramento de heartbeat para status de conectividade
  • Status abrangente do veiculo incluindo velocidade, hodometro e temperatura
  • Tratamento de erros e alarmes com classificacao de gravidade
  • Atualizacoes de firmware OTA via HTTP ou FTP
  • Suporte a bloqueio mecanico para travas de cabo/roda

Configuracao do Dispositivo

Configuracoes do Servidor

Configure seu dispositivo Segway para se comunicar com o Levy Fleets:

ConfiguracaoValor
IP/Dominio do ServidorSeu endpoint IoT Levy Fleets
PortaConforme fornecido durante a configuracao
ProtocoloTCP

Autenticacao

Dispositivos Segway autenticam via chave de API. Certifique-se de que sua implantacao inclua a chave de API correta no cabecalho x-api-key para todas as comunicacoes.

Identificacao do Dispositivo

Os dispositivos sao identificados por IMEI. O formato da mensagem inclui o IMEI do dispositivo no cabecalho:

*HBCR,NB,{IMEI},{COMANDO},...#

Comandos Suportados

Operacoes Principais

ComandoDescricaoDirecao
R0Troca de chave de operacaoDispositivo → Servidor
L0Reconhecimento de desbloqueioDispositivo → Servidor
L1Reconhecimento de bloqueioDispositivo → Servidor
H0Heartbeat com statusDispositivo → Servidor
Q0Check-in do dispositivoDispositivo → Servidor
Q1Consulta de chave de bloqueioDispositivo → Servidor

Protocolo de Bloqueio/Desbloqueio

O processo de bloqueio/desbloqueio do Segway envolve uma troca de chaves:

1

Solicitar Chave (R0)

Servidor solicita uma chave de operacao do dispositivo. Dispositivo responde com codigo de operacao, chave, ID do usuario e numero de sequencia.

2

Enviar Comando

Servidor envia comando de bloqueio (L1) ou desbloqueio (L0) com a chave

3

Receber Reconhecimento

Dispositivo executa o comando e envia reconhecimento com codigo de status

Codigos de Status de Reconhecimento

CodigoStatusDescricao
0SucessoComando executado com sucesso
1FalhaFalha geral
2Chave InvalidaChave de autenticacao rejeitada
3Viagem em AndamentoNao pode bloquear durante viagem ativa
4ECU FalhouErro no controlador do veiculo
5Estrategia RecusouLogica de negocios impediu a operacao

Status do Veiculo (Serie S)

ComandoDescricao
S1Configuracoes de limite de velocidade
S2Resposta de controle de energia
S4Bloco de configuracoes do patinete 2 (cruise, botoes, limites de velocidade)
S5Configuracoes do dispositivo (intervalos, acelerometro)
S6Status em tempo real (bateria, velocidade, quilometragem, bloqueio)
S7Bloco de configuracoes do patinete 1 (luzes, modo de velocidade)
S8Status estendido (temperaturas, dupla bateria, codigos de erro)
S9Configuracoes adicionais (bloqueio automatico, alerta de ociosidade)
S20Configuracoes de luz ambiente

Localizacao e Rastreamento (Serie D)

ComandoDescricao
D0Relatorio de localizacao GPS (formato NMEA)
D1Configuracao de rastreamento
D2Configuracoes de cooldown de rastreamento

Formato GPS D0

O comando D0 usa formato semelhante ao NMEA:

*HBCR,NB,{IMEI},D0,,{HORA},A,{LAT},{DIR_LAT},{LON},{DIR_LON},{VELOCIDADE},{RUMO},{DATA},{ALT},...#
  • HORA: HHMMSS.sss
  • A/V: Fixacao Valida/Invalida
  • LAT: DDMM.MMMM (graus e minutos decimais)
  • DIR_LAT: N/S
  • LON: DDDMM.MMMM
  • DIR_LON: E/O
  • VELOCIDADE: Nos (convertido para km/h)
  • DATA: DDMMAA

Configuracao de Rede (Serie N)

ComandoDescricao
N2Configuracao MAC/IMEI
N3Parametros de rede
N7Configuracoes APN
N8Configuracao de dominio/IP do servidor

Recursos do Dispositivo (Diversos)

ComandoDescricao
V0Reconhecimento de prompt de voz
V1Configuracao de voz
G0Informacoes de versao de firmware
E0Codigos de erro/alarmes
K0Gerenciamento de chave BLE
P2Status completo do dispositivo (mais de 30 campos)

Bloqueio Mecanico (Serie C)

ComandoDescricao
C0Status da bateria da trava de cabo
C1Status de carregamento sem fio
C2Status do bloqueio mecanico
C3Resposta de controle do bloqueio mecanico
C4Parametros do bloqueio mecanico

Tipos de bloqueio suportados:

  • Tipo 1: Trava de cabo
  • Tipo 6: Trava de roda
  • Tipo 8: Trava combo capacete/cabo

Atualizacoes OTA (Serie U)

ComandoDescricao
U5Status de atualizacao OTA HTTP
U6Status de atualizacao OTA FTP

Codigos de status de atualizacao:

  • 0: Iniciado
  • 1: Baixando/Conectando
  • 2: Download completo
  • 3: Instalando
  • 4: Sucesso
  • 5: Falhou
  • 6: Cancelado

Relatorios Estendidos

ComandoDescricao
JR5Relatorio de dados de carregamento (voltagem, corrente)

Processamento de Telemetria

Heartbeat (H0)

O heartbeat H0 e o sinal principal de keep-alive e inclui:

  • Status de Bloqueio: 0 (desbloqueado) ou 1 (bloqueado)
  • Voltagem IoT: Voltagem bruta em unidades de centivolt
  • Forca do Sinal: Nivel de sinal celular
  • Porcentagem de Bateria: Bateria do veiculo (0-100%)
  • Estado de Carregamento: 0 (nao carregando) ou 1 (carregando)

O sistema calcula a porcentagem de bateria IoT a partir da voltagem:

Bateria IoT % = ((voltagem_mv - 3200) / (4200 - 3200)) * 100

Relatorio de Status (S6)

Fornece status abrangente em tempo real:

CampoDescricao
Porcentagem de BateriaNivel da bateria principal
Modo de VelocidadeConfiguracao atual do modo de velocidade
Velocidade (km/h)Velocidade atual do veiculo
Quilometragem TotalHodometro vitalicio em metros
Autonomia RestanteAutonomia estimada em unidades de 10 metros
Duracao da ViagemTempo da viagem atual em segundos
Flag de BloqueioEstado de bloqueio
Estado de CarregamentoIndicador de carregamento
Bateria ConectadaIndicador de bateria conectada

Status Estendido (S8)

Diagnosticos detalhados do veiculo:

CampoDescricao
Flag de CarregamentoAtualmente carregando (0/1)
Voltagem do ControladorVoltagem da ECU
Ciclos Bateria 1Ciclos de carga da bateria primaria
SOC Bateria 1Estado de carga da bateria primaria
SOC Bateria 2Bateria secundaria (se dupla bateria)
Temp Interna Bateria 1/2Temperaturas do pack de bateria
Temp Externa Bateria 1/2Temperaturas ambiente da bateria
Codigo de ErroCodigo de erro atual da ECU
Porcentagem do AceleradorPosicao do acelerador
Status do FreioIndicador de freio acionado

Status Completo (P2)

O comando P2 retorna mais de 30 campos para diagnostico completo do veiculo:

  • Modelo do dispositivo, firmware, versoes de hardware
  • Bateria: porcentagem, voltagem, corrente, temperatura
  • Temperaturas do motor e controlador
  • Velocidade: atual, media, maxima
  • Quilometragem: total e da viagem
  • GPS: coordenadas, velocidade, sinal
  • Forca do sinal GSM
  • Dados do acelerometro (X, Y, Z)

Tratamento de Codigos de Erro

Traducao de Codigos de Erro

Codigos de erro Segway E0 sao automaticamente traduzidos para mensagens legiveis. O sistema:

  1. Analisa os codigos de erro da mensagem E0
  2. Traduz cada codigo usando o mapeamento de codigos de erro Segway
  3. Determina o nivel de gravidade (aviso, erro, critico)
  4. Formata uma mensagem amigavel ao usuario
  5. Atualiza o registro do veiculo com status de erro

Niveis de Gravidade

NivelDescricaoImpacto
AvisoProblema menor, veiculo operacionalRegistrado para revisao
ErroProblema significativo, pode afetar operacaoAlerta gerado
CriticoFalha grave, veiculo nao deve ser usadoViagem bloqueada, alerta imediato

Referencia Completa de Codigos de Alarme

O Levy Fleets traduz codigos de alarme Segway em alertas acionaveis. Abaixo esta a referencia completa:

Alarmes de Seguranca

CodigoAlarmeGravidadeMensagem ao Usuario
1Alarme de movimento ilegalAvisoMovimento nao autorizado detectado
3Alarme de desmontagem ilegalCriticoAdulteracao detectada
22Veiculo parado enquanto desbloqueadoAvisoVeiculo parado enquanto desbloqueado

Alarmes de Seguranca

CodigoAlarmeGravidadeMensagem ao Usuario
2Alarme de quedaErroVeiculo caiu
4Alarme de queda (confirmado)ErroQueda do veiculo confirmada
13Falha na linha de freioCriticoFalha na linha de freio - nao pilote
14Pilotagem em duplaAvisoMultiplos pilotos detectados
21Evento de pneu queimadoCriticoPneu superaquecendo - pare imediatamente

Alarmes de Bateria

CodigoAlarmeGravidadeMensagem ao Usuario
7Funcao de bateria anormalErroFuncao da bateria anormal
12Bateria baixaAvisoBateria baixa - por favor carregue
30Formato de senha BMS invalidoErroErro de formato de senha da bateria
31Senha BMS verificada erradaErroSenha da bateria incorreta
41Diferenca de voltagem de celula (alta/alta)ErroDesequilibrio de celula da bateria
42Diferenca de voltagem de celula (baixa/pequena)ErroDesequilibrio de celula da bateria
43Diferenca de voltagem de celula (alta/alta corrente)ErroDesequilibrio de celula da bateria
44Diferenca de voltagem de celula (baixa/alta corrente)ErroDesequilibrio de celula da bateria
45Voltagem de celula muito altaErroVoltagem de celula da bateria alta
46Diferenca de temp de celula anormalAvisoDesequilibrio de temperatura da bateria
47Temp MOS muito altaCriticoEletronicos da bateria superaquecendo
48Temp de celula alta quando bloqueadoAvisoTemperatura da bateria alta enquanto estacionado
49Temp de celula alta quando desbloqueadoCriticoBateria superaquecendo - pare de pilotar

Alarmes de Comunicacao

CodigoAlarmeGravidadeMensagem ao Usuario
8Mau funcionamento de comunicacao da trava de capaceteAvisoErro de comunicacao da trava de capacete
9Mau funcionamento de comunicacao da trava de caboAvisoErro de comunicacao da trava de cabo
15Falha de comunicacao AIAvisoErro de comunicacao da caixa AI

Alarmes de Hardware

CodigoAlarmeGravidadeMensagem ao Usuario
16Sensor hall do acelerador anormalCriticoFalha no sensor do acelerador - nao pilote
17Eixo de momento anormalErroSensor de torque anormal
18ECU alta temperaturaCriticoControlador superaquecendo - pare de pilotar
99Alarme de ECU detectadoErroAlarme do controlador - verifique o veiculo

Categorias de Alarme

O sistema categoriza alarmes nos seguintes grupos:

CategoriaDescricaoResposta Tipica
SegurancaDeteccao de roubo/adulteracaoAlertar e rastrear
SegurancaPreocupacoes de seguranca do pilotoPode bloquear viagem
BateriaProblemas de saude da bateriaAgendar manutencao
ComunicacaoConectividade de trava/acessorioTentar novamente/investigar
HardwareFalhas de componentesServico necessario
AIComunicacao da caixa AIVerificar conectividade

Alarmes Auto-Descartaveis

Alguns alarmes (como deteccao de queda) sao automaticamente descartados quando a condicao e resolvida. Alarmes nao auto-descartaveis (como problemas de bateria) requerem reconhecimento manual ou inspecao fisica.

Notificacoes por Email

Para codigos de erro com gravidade "erro" ou "critico":

  1. Sistema gera uma notificacao por email
  2. Email e enviado para gerentes de frota configurados
  3. Inclui: ID do veiculo, IMEI, codigo de erro, descricao, gravidade
  4. Enviado assincronamente para nao bloquear processamento de telemetria

Erros Criticos

Veiculos com erros criticos tem ride_precluded_by_error definido como true, impedindo que novas viagens iniciem ate que o problema seja resolvido.

Processamento de Localizacao

Conversao de Dados GPS

Mensagens D0 contem coordenadas em formato NMEA que sao convertidas para graus decimais:

// Converter DDMM.MMMM para graus decimais
graus = floor(coordenada / 100)
minutos = coordenada - (graus * 100)
decimal = graus + (minutos / 60)
// Aplicar direcao (negativo para S/O)

Historico de Localizacao da Viagem

Durante viagens ativas, mensagens D0:

  1. Extraem coordenadas GPS e velocidade
  2. Inserem na tabela ride_locations
  3. Incluem altitude e status de movimento
  4. Acionam verificacao de aplicacao de zonas
  5. Atualizam estatisticas da viagem

Aplicacao de Zonas

Apos processar localizacao D0 durante uma viagem ativa:

  1. Verificar se coordenadas caem dentro de quaisquer zonas definidas
  2. Aplicar limites de velocidade para zonas lentas
  3. Desabilitar acelerador para zonas proibidas
  4. Atualizar RPC de estatisticas da viagem

Atualizacoes de Veiculos

Campos Atualizados por Telemetria

OrigemCampos Atualizados
H0battery_level, lock_status, charging, iot_battery_pct, iot_last_update
S6battery_level, speed, odometer_m, lock_status, ignition_status
S8battery_level, is_charging, last_error_code, has_error
D0latitude, longitude, last_location_update, speed
G0firmware_version, controller_version
E0has_error, last_error_codes, error_message, ride_precluded_by_error
P2Atualizacao abrangente (mais de 20 campos)

Carimbos de Data/Hora

Cada atualizacao de telemetria define:

  • updated_at - Carimbo de data/hora de atualizacao geral
  • iot_last_update - Ultima comunicacao IoT
  • last_signal_at - Ultimo sinal recebido

Atualizacoes de localizacao tambem definem:

  • last_location_update - Ultima fixacao GPS

Enviando Comandos

Senha IoT

Configure a senha Segway em Configuracoes:

Configuracoes > Veiculos > Senhas IoT > Segway

Senha padrao: 0000

Comandos Disponiveis no Painel

ComandoAcao
BloquearEnviar comando de bloqueio L1
DesbloquearEnviar comando de desbloqueio L0
SomReproduzir som de alerta
LocalizarPiscar luzes

Sequencia de Comandos

Para bloqueio/desbloqueio:

  1. Painel envia R0 (solicitar chave)
  2. Dispositivo responde com chave de operacao
  3. Painel envia L0/L1 com chave
  4. Dispositivo executa e envia reconhecimento
  5. Painel atualiza status do veiculo

Referencia de Configuracao

Configuracoes do Dispositivo (S5)

ParametroDescricao
Sensibilidade do AcelerometroLimiar de deteccao de movimento
Chave de UploadHabilitar/desabilitar upload de dados
Intervalo de HeartbeatSegundos entre mensagens H0
Intervalo de Upload em ViagemIntervalo GPS quando desbloqueado/em viagem
Intervalo de Upload DesbloqueadoIntervalo GPS quando desbloqueado/ocioso
Intervalo de Upload ao LigarIntervalo GPS ao ligar

Configuracoes de Rastreamento (D1/D2)

ParametroDescricao
Intervalo DesbloqueadoRelatorio GPS quando desbloqueado
Intervalo Bloqueado ParadoGPS quando bloqueado, sem movimento
Intervalo Bloqueado MovendoGPS quando bloqueado mas movendo
Intervalo Bateria Baixa ParadoGPS quando bateria baixa, parado
Intervalo Bateria Baixa MovendoGPS quando bateria baixa, movendo
Cooldown de MovimentoSegundos antes de movimento detectado
Limiar de Bateria Baixa% de bateria para modo de bateria baixa

Configuracoes de Velocidade (S1/S4)

ParametroDescricao
Limite de Velocidade BaixaVelocidade maxima modo 1 (km/h)
Limite de Velocidade MediaVelocidade maxima modo 2 (km/h)
Limite de Velocidade AltaVelocidade maxima modo 3 (km/h)
Unidade de Velocidadekm/h ou mph
Controle de CruzeiroHabilitar/desabilitar
Assistencia de EmpurrarHabilitar/desabilitar

Solucao de Problemas

Dispositivo Nao Conectando

Sintomas: Nenhum heartbeat recebido, dispositivo offline

Solucoes:

  1. Verificar configuracao de IP e porta do servidor
  2. Verificar conectividade celular e ativacao do SIM
  3. Confirmar que configuracoes APN correspondem aos requisitos da operadora
  4. Reiniciar o veiculo
  5. Verificar se firewall esta bloqueando conexoes TCP

Comandos de Bloqueio Falhando

Sintomas: Bloqueio/desbloqueio retorna status de erro

Verificar codigo de status:

  • Codigo 2 (Chave Invalida): Senha nao corresponde - verificar senha IoT em Configuracoes
  • Codigo 3 (Viagem em Andamento): Encerrar a viagem atual primeiro
  • Codigo 4 (ECU Falhou): Problema no controlador do veiculo - verificar erros E0
  • Codigo 5 (Estrategia Recusou): Bloqueio de logica de negocios - verificar status do veiculo

GPS Nao Atualizando

Sintomas: Localizacao permanece no mesmo ponto ou mostra (0,0)

Solucoes:

  1. Verificar indicador de fixacao "V" (invalido) em mensagens D0
  2. Garantir que veiculo tem visao clara do ceu
  3. Aguardar GPS adquirir satelites (ate 5 min cold start)
  4. Verificar se intervalos de rastreamento D1 nao estao muito longos
  5. Verificar se dispositivo esta em modo de baixa energia

Leitura de Bateria Incorreta

Sintomas: Bateria mostra 0%, valor errado, ou nao muda

Solucoes:

  1. Para veiculos com dupla bateria, verificar ambos valores SOC em S8
  2. Verificar comunicacao BMS (verificar contagens de ciclo de bateria)
  3. Algumas leituras requerem veiculo ligado (nao apenas IoT)
  4. Verificar se a bateria esta devidamente conectada

Codigos de Erro Aparecendo

Sintomas: Mensagens E0 mostrando codigos de erro

Acoes:

  1. Anotar o numero do codigo de erro
  2. Verificar notificacoes por email para traducao
  3. Revisar registro do veiculo para campo error_message
  4. Erros criticos requerem inspecao fisica
  5. Limpar erros reiniciando se apropriado

Armazenamento de Dados

Registros de Telemetria

Todas as mensagens Segway sao armazenadas com:

  • vehicle_uuid - Veiculo associado
  • vehicle_number - ID legivel por humanos
  • imei - Identificador do dispositivo
  • raw_payload - Mensagem completa como JSON
  • message_type - Tipo de comando (ex.: "H0_HEARTBEAT")
  • timestamp - Carimbo de data/hora da mensagem
  • idempotency_key - Chave de deduplicacao

Idempotencia

Cada registro de telemetria inclui uma chave de idempotencia gerada:

{vehicleId}-{imei}-{timestamp}-{messageType}

Isso previne entradas duplicadas de mensagens reenviadas.

Referencia da API

Endpoint

POST /api/iot/segway

Cabecalhos

x-api-key: sua-chave-api-iot
Content-Type: application/json

Corpo da Requisicao

{
  "imei": "867648045123456",
  "cmd": "H0",
  "raw": "*HBCR,NB,867648045123456,H0,1,420,25,85,0#",
  "timestamp": "2025-12-25T12:00:00Z",
  "parsed": {}
}

Resposta

{
  "success": true,
  "vehicle_number": "LV-001",
  "ride_number": null,
  "command": "H0",
  "cmd": "H0"
}

Verificacao de Saude

GET /api/iot/segway

Retorna:

{
  "service": "Segway TCP Telemetry Ingestion",
  "status": "healthy",
  "timestamp": "2025-12-25T12:00:00Z",
  "supported_commands": ["R0", "L0", "L1", "H0", ...]
}

Suporte Tecnico

Para problemas de integracao Segway, entre em contato com support@levyelectric.com com:

  • IMEI do dispositivo
  • Dados brutos da mensagem (se disponivel)
  • Carimbo de data/hora do problema
  • Comportamento esperado vs. real