O CarbCam recebe sua foto, envia para um serviço de IA, recebe uma estimativa dos componentes, valida os valores em bancos de dados nutricionais padrão e mostra o resultado.
A foto inicialmente permanece totalmente no seu dispositivo. Você pode recortá-la, girá-la ou tirá-la novamente. Nada é enviado até você tocar em “Analisar”.
Antes que a imagem seja enviada à IA, o aplicativo verifica via hash SHA-512 e hash perceptual se já existe uma foto idêntica ou muito semelhante no cache do servidor. Se houver uma correspondência, você recebe o resultado armazenado imediatamente: sem outra chamada à IA. Uma etapa posterior de Confirmação marca a entrada do cache como consumida (contagem de cota).
Se não houver correspondência no cache, a foto (recortada) é enviada ao nosso endpoint de análise. Um modelo de visão (Gemini, Claude ou OpenAI, dependendo da sua escolha nas configurações do aplicativo) é chamado para descrever a imagem, nomear os componentes individuais e estimar quantidades aproximadas.
Se a estimativa da IA relatar uma confiança baixa, o servidor inicia uma verificação cruzada em segundo plano com bancos de dados nutricionais (USDA FoodData Central, Open Food Facts). Os valores corrigidos alimentam o cache: na próxima vez que a mesma foto ou uma semelhante for correspondida, você verá o resultado aprimorado. Para escaneamentos com alta confiança, essa etapa é ignorada.
Para códigos de barras, porém, a comparação com Open Food Facts/USDA sempre é realizada diretamente, já que a tabela nutricional do fabricante é a fonte primária neste caso.
Você pode sobrescrever qualquer valor: quantidade, carboidratos, kcal, FPE, componente. Ao salvar, seus valores são usados, não a estimativa da IA. O aplicativo armazena sua correção total de carboidratos (Usuário: Xg vs IA: Yg) como uma diferença para fins estatísticos.
Localmente em um banco de dados SQLite. Opcionalmente também via sincronização com Nightscout para sua instância do Nightscout, mas apenas como uma nota na tabela de tratamentos
(com a etiqueta CarbCam), não como um tratamento ativo de carboidratos/insulina.
Seus cálculos do Loop/AAPS/iAPS não são afetados pelos salvamentos do CarbCam: a refeição é visível apenas como uma nota.
Se você usa a hospedagem gerenciada do Nightscout em ns.10be.de, a configuração é especialmente fácil: informe a URL do Nightscout e o segredo de API, pronto.
Se você quiser os carboidratos ativamente como um tratamento, use o botão Compartilhar no resultado do escaneamento: ele envia o valor de carboidratos via deep link para AAPS/AndroidAPS, Loop, iAPS ou Trio, ou abre a folha de compartilhamento do sistema.
FPE significa Fat-Protein Units (unidades gordura-proteína). Elas descrevem quanta energia de gordura e proteína afeta a glicemia com atraso.
Um FPE equivale a aproximadamente 100 kcal de gordura e proteína. Exemplo:
Usuários de bomba costumam usar o FPE para definir os parâmetros do bolus estendido (por exemplo, quadrado ou duplo). Usuários de caneta podem usar o FPE como um indicador aproximado para um lanche de correção tardio ou uma pequena correção à tarde.
O CarbCam exibe o FPE como um chip amarelo no cartão de resultado. As cores dos valores nutricionais:
Quando o Nightscout está configurado, o CarbCam carrega dados de glicemia da sua instância do Nightscout e mostra a curva de glicemia na aba de histórico abaixo de cada refeição. A janela de tempo depende da plataforma e é escolhida automaticamente em torno da refeição. Junto com o Nightscout, o CarbCam permite um acompanhamento direcionado da glicemia pós-refeição.
Recursos da curva de glicemia (dados do Nightscout):
A precisão depende do tipo de refeição:
| Tipo de refeição | Desvio típico | Exemplos |
|---|---|---|
| Porções claras | ±20 % | Arroz, massa, pão |
| Refeições complexas | ±30 % | Ensopado, gratinados |
| Muito incomuns | ±40 % ou mais | Pratos regionais desconhecidos |
| Produtos embalados | ±5 % | Detecção automática de código de barras (valor do fabricante via Open Food Facts) |
Sem conexão com a internet, os seguintes recursos funcionam:
O seguinte requer conexão: