Ir para conteúdo principal

🛰️ Integração: GPS

Aprenda como integrar dados de posicionamento GPS dos seus veículos com o SimpliRoute para ter rastreabilidade em tempo real na plataforma.

Escrito por Carlos Junior

O SimpliRoute 🚀 permite integrar dados de posicionamento GPS dos seus veículos diretamente na plataforma para ter rastreabilidade em tempo real. Esta integração é voltada para desenvolvedores ou provedores de GPS e requer conhecimentos técnicos.


Endpoint e autenticação 🔑

Para enviar dados GPS ao SimpliRoute, você deve realizar uma chamada com método POST para o seguinte endpoint:

Você deve incluir os seguintes parâmetros no Header da solicitação:

  • Content-Type: application/json

  • Authorization: ApiKey <<token>>

Notas: Você pode obter seu token de API em Ajustes / Perfil / Meu API Token na plataforma.


Integração básica de dados GPS 🔗

O Payload da solicitação deve ser enviado em formato JSON com os seguintes campos:

  • latitude: número decimal com até 6 casas decimais.

  • longitude: número decimal com até 6 casas decimais.

  • timestamp: data e hora em UTC no formato YYYY-MM-DD HH:II:SS-00. Exemplo: 2019-02-20 10:35:00-00

  • vehicleId: ID do veículo no sistema SimpliRoute.

  • providerName: nome do provedor de informação GPS dos veículos.

Exemplo de objeto JSON:

JSON

{
"latitude": -33.4311548,
"longitude": -70.5701852,
"timestamp": "2019-02-20 10:35:00-00",
"vehicleId": "<<vehicle_id>>",
"providerName": "<<proveedor>>"
}


Integração com variáveis adicionais 🔗

Se você precisar enviar variáveis adicionais como temperatura, umidade ou outras alertas, pode incluir os seguintes campos opcionais no Payload:

  • temperature: dados de temperatura (ver objeto temperature abaixo). (Retrocompatível, mas depreciado; recomenda-se usar o objeto alert.)

  • alert: dados de alerta (ver objeto alert abaixo).

  • alerts: array de objetos de alerta para enviar múltiplas alertas simultaneamente.

Objeto temperature:

  • value: número decimal com a temperatura em graus Celsius.

  • alert_type: tipo de alerta: min quando a temperatura está abaixo do limite estabelecido, ou max quando está acima.

  • alert_message: mensagem para o supervisor responsável.

Objeto alert:

  • name: identificador do tipo de alerta.

  • type: tipo de alerta.

  • value: valor da alerta.

  • message: mensagem para o supervisor responsável.

Alertas disponíveis 💥

Você pode enviar os seguintes tipos de alerta através do campo alerts:

  • temperature — Temperatura

  • geofence — Geofence

  • speed — Velocidade

  • humidity — Umidade

  • door — Portas

  • brake — Frenagem

  • temperature_2 — Temperatura 2

  • temperature_3 — Temperatura 3

  • jamming — Bloqueio de sinal GPS

  • tiredness — Sensor de fadiga

  • fuel_cap — Abertura da tampa do combustível

  • fuel_variation — Variação brusca de combustível

  • driver_door_open — Abertura da porta do condutor

  • speeding — Excesso de velocidade

  • loss_of_load — Desacoplamento de carga

  • no_smoking / smoking — Alerta de não fumar

  • Demurrage — Sobreestadia

Exemplo de payload completo com alertas:

JSON

{
"latitude": -33.4311548,
"longitude": -70.5701852,
"timestamp": "2017-10-19 09:12:02-00",
"vehicleId": "<<vehicle_id>>",
"temperature": {
"value": 2.4,
"alert_type": null,
"alert_message": null
},
"alert": {
"name": "door",
"type": "open",
"value": true,
"message": "open door alert"
},
"alerts": [
{
"name": "general",
"type": "ºC",
"value": 4,
"message": "temperature is lower than 5 degrees"
}
],
"providerName": "<<provider>>"
}

Resposta de sucesso:

JSON

{
"status": "Tracked",
"id": "2408269119724499",
"daily_status": "Updated"
}

Resposta com alertas inválidas:

JSON

{
"status": "Tracked",
"id": "2408269119724499",
"daily_status": "Updated",
"invalid_alerts": ["invalid_alert"]
}


Frequência de envio de dados ⏱️

Para um traçado correto das rotas no mapa, recomenda-se a seguinte frequência de envio:

  • Frotas de até 20 veículos: máximo 1 dado por veículo a cada 20 segundos.

  • Frotas de mais de 20 veículos: 1 dado por veículo por minuto.


Perda de sinal e envio de dados locais 🛰️

Se um ou mais veículos circularem por zonas sem cobertura ou sofrerem perda de sinal, recomenda-se utilizar filas (queues) para armazenar os dados que não puderam ser enviados e enviá-los posteriormente quando o sinal for restabelecido.

Ao restabelecer o sinal, o sistema pode enviar os dados acumulados com um intervalo máximo de 10 segundos entre cada envio, até completar todos os objetos na fila.

Notas: O intervalo de 10 segundos se aplica apenas a dados armazenados localmente por perda de sinal. Os veículos com cobertura ativa devem manter a frequência recomendada indicada anteriormente. Os dados devem ser enviados de forma independente — um array com todos os objetos pode provocar erros na comunicação.

Isto respondeu à sua pergunta?