🛡️
PartidaSegura Painel da Central
limiar 0,45
--:--:--
Dispositivo — —
Sinal Wi-Fi — —
IP da placa — —
Última notícia — —
standby
🎙️ — · —
🗣️ Prova de fala aguardando a primeira fala para a placa
Estado do dispositivo
STANDBY
Aguardando o botão
Sem aparelho ligado — roteiro de demonstração.
Checagem tripla · ordem de execução
VOZ
🎙️
—
SOPRO
💨
—
FACE
👤
—
Níveis de álcool · MQ3
0,0 % da escala
GPIO 2: 0 mV · 0,000 V
Abra dois cartões e toque em Comparar para medir a distância entre os rostos.

Cada solicitação de partida vira uma linha aqui, com a distância medida e o motivo em português. É o registro que o motorista consulta quando quer saber por que não liberou — o LED diz que negou, não por quê.

Mostrando as tentativas de demonstração. Informe o IP do aparelho lá em cima para ver as fotos reais das verificações desta sessão.

📲 Alerta de coação no WhatsApp

Quando o motorista diz “… solicitando rota” em vez de “partida”, estes números recebem um card no WhatsApp com a placa, o motorista e o horário. A cabine não muda nada — quem está no veículo não percebe. A frase dita não vai no card.

Só para a central: nunca cadastre o celular do motorista. Só operador logado vê e altera esta lista.

🚨 Rostos não reconhecidos

A foto de cada tentativa barrada pelo rosto. É de quem não tem cadastro nem termo assinado: só operador vê. Excluir esconde na hora; o arquivo é apagado sozinho em 30 dias.

1

Do rosto aos 128 números

A foto640 × 480, da câmera da placa
Achar o rostoo detector marca onde ele está
Alinhar5 marcos endireitam o rosto
—
128 característicasa rede SFace resume o rosto
d = 1 − A · B|A| · |B|
—
—
Compararsó números; abaixo de 0,45, libera
ver os 128 números deste cadastro

Os 128 números não são pontos do rosto: são características que a rede aprendeu. Para comparar, só eles são usados. Rosto ilustrado; os números e as comparações vêm de cadastros reais.

61 medições reais · 48 verificações, nenhuma pessoa errada aceita
libera
nega
0,000,250,500,751,00
mesma pessoa, mesma sessão (32) mesma pessoa, outro dia (13) mesma pessoa, quadro ruim (11) desconhecido (5)

Quadro ruim da mesma pessoa pode cair do lado do "nega". Por isso a placa manda 5 quadros e fica com o melhor.

2

O microfone: da fala ao pacote

INMP44116.000 amostras/s Filtrocorta abaixo de 200 Hz Blocosde 10 ms 5+ blocosacima de 3.710 μ-law16 bits → 8 bits TextoGoogle Speech-to-Text
50 msde fala mínima (5 × 10 ms)
31 KB4 s × 8.000 × 1 byte
2–6 spara virar texto, depois do veredito

A placa decide sozinha se houve fala; o texto é só a prova, e depende da rede.

3

O bafômetro: do analógico ao digital

Álcoolno ar soprado MQ3resistência cai Divisor10k / 10k ADC12 bits, GPIO 2 Régua% acima do ar limpo Até 20 %libera
tensão no pino—
código digital——
2124.096níveis possíveis
porcentagem, agora—

Escala relativa ao ar limpo da calibração, não mg/L. O limite é configurável por país ou empresa.

4

Como decidimos a partida

VOZhouve fala? → SOPROaté 20 %? → FACEmelhor de 5 < 0,45? → LIBERADOrelé fecha
qualquer "não", falha ou falta de resposta → NEGADO, relé abre
provao que a tela diz
VozNão ouvi a sua voz — fale o pedido ao soprar
SoproNível de álcool acima do permitido · suspeito · bafômetro lendo zero
FaceNenhum rosto encontrado · rosto não confere
RedeSem resposta da nuvem — verifique a rede

A placa decide sozinha: o painel só assiste. Depois do veredito chegam a transcrição e, se for o caso, o alerta de coação — sem a cabine perceber.

⚠️ Modo demonstração — dados reais medidos na bancada em 26–27/07/2026, servidos localmente. Para ligar ao Firestore ao vivo, preencher CONFIG_FIREBASE (ver README).
PartidaSegura · 1ª fase · EXPO-ETEP — assistente de segurança do motorista.