Smart Dots Prozis vale a pena para devs? review técnico BLE

Smart Dots Prozis vale a pena para devs? review técnico BLE

Na minha experiência com dispositivos IoT e sensores vestíveis, a primeira coisa que faço quando aparece um gadget como os Smart Dots da Prozis é desmontar mentalmente o que tem dentro. Segundo o Sapo.pt, o kit traz 4 sensores que se emparelham via app, alcançam até 30m do smartphone e custam agora 58,28€. Parece simples à primeira vista, mas a stack técnica por trás é mais interessante do que as reviews de fitness costumam mostrar — e é exatamente isso que vamos dissecar aqui.

O que os Smart Dots realmente são (spoiler: não é mágica)

Os Smart Dots são sensores IMU — Inertial Measurement Unit — compactos. Isso significa que cada cápsula provavelmente carrega um acelerômetro de 3 eixos, um giroscópio de 3 eixos e, em alguns casos, um magnetômetro para completar o clássico 9-DOF. Quando você os fixa em halteres, elásticos ou no próprio corpo, eles captam movimento com alta frequência de amostragem (normalmente entre 50Hz e 200Hz nesses dispositivos).

O facto de suportarem toque capacitivo (o Sapo.pt menciona “toques nos equipamentos”) confirma que há um chip dedicado a essa funcionalidade. Isso já elimina metade das alternativas mais baratas do mercado. Para nós, devs, isso importa porque:

  • Mais eixos = mais dados para processar no edge
  • Toque capacitivo = input extra que exige debouncing por software
  • Frequência alta = necessidade de buffering eficiente antes do envio

A stack BLE que provavelmente roda por baixo

O alcance de 30m é assinatura clássica do Bluetooth 5.0 Low Energy. Isso já me diz duas coisas importantes sobre a arquitetura deles:

  1. Não há streaming contínuo de dados. Eles processam eventos localmente e enviam apenas “blocos” relevantes. Faz sentido — transmitir 200Hz de dados IMU por BLE consumiria a bateria em poucas horas.
  2. Provavelmente usam o perfil GATT genérico com serviços customizados. A app Prozis Go é proprietária, então não espere encontrar o serviço padrão fitness_machine do Bluetooth SIG.

Aqui está o que me chamou a atenção: a Prozis construiu um ecossistema fechado. Não há (pelo menos publicamente) uma API REST ou webhook para exportar seus treinos. Isso é um red flag para qualquer dev que queira integrar esses dados com o Strava, Garmin Connect ou um dashboard pessoal.

Comparativo honesto: Smart Dots vs alternativas reais

Dispositivo Precisão IMU API aberta Preço aprox.
Prozis Smart Dots Média (9-DOF provável) Não 58,28€
Whoop 4.0 Alta (5 LEDs ópticos) Sim (REST + Webhooks) ~200€
Polar Verity Sense Alta (PPG + IMU) Sim (SDK) ~99€
Moov Now Média (6-DOF) Parcial ~60€

Para um dev que quer construir algo em cima dos dados, os Smart Dots só fazem sentido se o preço for determinante. Em qualquer outro cenário, o Polar Verity Sense oferece SDK documentado e perfil padrão BLE — o que significa que você consegue ler os dados com qualquer biblioteca genérica.

Na Prática: como seria hackear um dispositivo BLE genérico

Como a Prozis não expõe SDK público, a abordagem realista é tratar os Smart Dots como um dispositivo BLE genérico. Vou mostrar como eu faria isso usando a Web Bluetooth API no navegador — sim, dá para ler sensores BLE direto do Chrome/Edge sem precisar de app nativo.

// web-bluetooth-scanner.js
// Conecta a um dispositivo BLE compatível e lê uma característica notificável

async function connectToFitnessDevice(deviceName = 'Smart') {
  if (!navigator.bluetooth) {
    throw new Error('Web Bluetooth não suportado neste navegador');
  }

  const device = await navigator.bluetooth.requestDevice({
    filters: [{ namePrefix: deviceName }],
    optionalServices: ['battery_service', 'generic_access']
  });

  console.log('Dispositivo selecionado:', device.name);

  const server = await device.gatt.connect();
  const services = await server.getPrimaryServices();

  for (const service of services) {
    console.log('Serviço:', service.uuid);
    const characteristics = await service.getCharacteristics();
    
    for (const char of characteristics) {
      if (char.properties.notify) {
        await char.startNotifications();
        char.addEventListener('characteristicvaluechanged', handleSensorData);
      }
    }
  }

  return device;
}

function handleSensorData(event) {
  const value = event.target.value;
  // Parse raw bytes — depends entirely do protocolo do fabricante
  const flags = value.getUint8(0);
  const timestamp = value.getUint16(1, true);
  
  if (flags & 0x01) {
    const accelX = value.getInt16(3, true) / 1000;
    const accelY = value.getInt16(5, true) / 1000;
    const accelZ = value.getInt16(7, true) / 1000;
    console.log({ timestamp, accelX, accelY, accelZ });
  }
}

connectToFitnessDevice('Smart').catch(console.error);

Esse snippet funciona com qualquer sensor BLE que exponha características notificáveis. O problema? Você vai descobrir rapidamente que os Smart Dots usam um protocolo proprietário e não publicam os UUIDs dos serviços — a menos que alguém faça reverse engineering via apps como o nRF Connect (da Nordic Semiconductor).

Passo a passo para começar a explorar

  1. Instale o app nRF Connect (Android/iOS) ou LightBlue (iOS).
  2. Emparelhe os Smart Dots com a app oficial Prozis Go.
  3. No nRF Connect, escaneie enquanto os Dots estão ativos — você verá o endereço MAC e os serviços anunciados.
  4. Tente ler as características. Se estiverem criptografadas, terá que usar uma conexão ativa no app oficial e capturar o tráfego com Wireshark + um sniffer BLE (como o nRF52840 Dongle).
  5. Documente os UUIDs no seu repositório pessoal. Se a Prozis nunca abrir o protocolo, a comunidade eventualmente faz.

Erros comuns que devs cometem com esses dispositivos

1. Assumir que existe API oficial. 90% dos wearables chineses/europeus low-cost não expõem SDK. Não compre esperando integrar com seu dashboard no primeiro dia.

2. Ignorar a política de privacidade dos dados. Treinos detalhados com timestamps são dados sensíveis. A Prozis, provavelmente, usa esses dados para treinar modelos de recomendação. Leia os Terms of Service antes de sincronizar com a nuvem deles.

3. Tentar streaming contínuo por BLE. Já vi gente perdendo horas tentando ler dados a 200Hz via BLE. Não funciona. Use notificações com buffer e processe em lote.

4. Subestimar o custo do firmware proprietário. Você pode até fazer reverse engineering dos dados, mas atualizar firmware é outro jogo. Se a Prozis mudar o protocolo numa atualização, sua integração quebra silenciosamente.

5. Não considerar deriva do giroscópio. IMUs baratos acumulam erro ao longo do tempo. Em testes longos (acima de 5 min), os dados de rotação vão derivar. Sempre calibre no início de cada sessão — lição que aprendi na marra com projetos de motion capture.

Implicações reais para quem desenvolve

Se você trabalha com healthtech, biomecânica ou coaching digital, dispositivos como os Smart Dots são interessantes pelo fator preço, mas dolorosos pela falta de abertura. Para um protótipo rápido — tipo uma PoC para um cliente pequeno — eles servem. Para qualquer produto sério, eu iria de Polar ou Garmin, que têm SDK maduro.

Há também uma oportunidade escondida aqui: ninguém está construindo um bridge open-source entre dispositivos BLE proprietários e formatos abertos como FIT ou TCX. Se você manja de Rust + BLE, é um projeto de fim de semana com potencial real.

FAQ — Perguntas que devs realmente fazem

Os Smart Dots funcionam com apps que não sejam a Prozis Go?

Oficialmente, não. A Prozis não publica SDK nem permite emparelhamento em apps terceiros. Na prática, qualquer app que implemente a stack BLE padrão pode tentar se conectar — mas o protocolo proprietário vai retornar dados cifrados sem a chave certa.

Qual a frequência de amostragem dos sensores IMU?

Não há spec pública. Pela categoria de preço e uso (fitness recreativo), estimo entre 50Hz e 100Hz. Para análise biomecânica séria, precisaríamos de 200Hz+ — o que descarta esses sensores para pesquisa.

Vale a pena comprar pelos 58,28€?

Para uso pessoal e treino gamificado, sim. Para desenvolvimento ou integração, não — o custo de fazer reverse engineering e manter uma integração quebradiça supera qualquer economia.

É possível exportar os treinos para CSV ou JSON?

A app Prozis Go não oferece exportação nativa. Você teria que capturar dados via BLE sniffing e parsear manualmente — algo viável, mas trabalhoso. Considere isso antes de comprar.

Como esses sensores se comparam ao Apple Watch em precisão?

O Apple Watch usa IMU + sensor óptico de batimentos + barômetro. É uma stack muito superior. Os Smart Dots são IMU puro — bons para movimento, inúteis para métricas fisiológicas como HRV ou SpO2.

Veredicto final

Os Smart Dots da Prozis são um gadget de fitness honesto pelo preço pedido. Para o utilizador comum que quer motivação extra, fazem sentido. Para nós, devs, são um caso interessante de como empresas constroem ecossistemas fechados onde os dados do utilizador ficam presos — e é justamente essa frustração que abre espaço para projetos open-source que conectem esses dispositivos a plataformas abertas como o Intervals.icu ou ao seu próprio backend.

Se você decidir comprar, faça pelos 58,28€ sabendo que está a pagar pelo hardware, não pela interoperabilidade. Se decidir hackear, prepare o nRF Connect e muita paciência.

Gostou? Me segue no GitHub e deixa um comentário se tiver dúvida ou quiser aprofundar algum ponto.

Y

Yuri Sousa

Front-End Developer / Designer

Desenvolvedor apaixonado por criar experiências digitais acessíveis e visualmente perfeitas. Escrevo sobre desenvolvimento web, design e tecnologia.