Guia Completo: Como montar um Totem de Autoatendimento Inteligente com n8n, IA Local e Mini PC
Do hardware ao código — um guia técnico e comercial para desenvolvedores e varejistas que querem acabar com as filas de uma vez por todas.
O Problema que Custa Dinheiro Todo Dia
Se você observar qualquer padaria de bairro, loja de conveniência ou fast-food local no Brasil entre as 12h e as 13h, verá sempre a mesma cena: filas quilométricas no caixa.
Para o pequeno e médio varejista, resolver esse gargalo de atendimento é um pesadelo logístico e financeiro. Contratar mais funcionários esbarra no alto custo dos encargos trabalhistas, e comprar um totem de autoatendimento pronto de grandes marcas pode custar entre R$ 8.000 e R$ 20.000 por unidade.
A solução? Engenharia de Software e Hardware de prateleira.
Neste guia completo, vou mostrar a arquitetura, o fluxo e o código de como montar o seu próprio totem de autoatendimento inteligente. Unindo Mini PCs, Inteligência Artificial Local (Ollama) e orquestração com n8n, você construirá um PDV autônomo de baixo custo e alta eficiência para acabar com as filas de uma vez por todas.
Este guia te ensina a fazer isso do zero.
A Arquitetura de Hardware para o seu Totem de Autoatendimento
Antes de comprar qualquer coisa ou escrever uma linha de código, entenda o fluxo completo do sistema:

Cada componente tem uma função clara:
| Camada | Tecnologia | Função |
|---|---|---|
| Hardware | Mini PC + Tela Touch | Executa tudo localmente |
| Frontend | Next.js (modo Kiosk) | Interface do cliente |
| Orquestração | n8n (self-hosted) | Conecta tudo com zero código complexo |
| Inteligência | Ollama + Llama 3 | Sugestões de upsell em tempo real |
| Pagamento | API PIX / Leitor NFC | Fechamento da venda |
| Output Físico | Impressora Térmica | Comanda para cozinha |
| Infraestrutura | Docker + NoMachine | Deploy e manutenção remota |
Parte 1: O Hardware — Compre Certo da Primeira Vez
Esta é a parte onde a maioria erra: escolhem hardware errado ou caro demais. Veja a lista completa com justificativa para cada item.
1. O Cérebro: Mini PC
O Mini PC é o coração do totem. Ele precisa rodar simultaneamente: o servidor Next.js, o Docker com n8n, o Ollama com o modelo de IA e o driver da impressora. Um notebook velho não serve — esquenta demais e não foi feito para funcionar 12-16 horas por dia.
O que procurar:
- Processador Intel N100 ou N95 (eficientes e suficientemente potentes)
- Mínimo 16GB de RAM (o modelo Llama 3 8B precisa de pelo menos 8GB só para ele)
- SSD NVMe de 256GB ou mais
- Pelo menos 2 portas USB-A e 1 USB-C
- Consumo abaixo de 20W (funciona 24h sem preocupação)
👉 [Mini PC Beelink EQ12 – Intel N100 16GB RAM 500GB SSD — Ver na Amazon Brasil]
👉 [Mini PC GMKtec NucBox — Intel N100 16GB RAM — Alternativa mais barata — Ver na Amazon Brasil]
Dica de instalação: Instale o Ubuntu Server 22.04 LTS nele. É mais estável que Windows para servidores, e o Docker roda sem gambiarras.
2. A Tela: Monitor Touch Screen
A tela é o único ponto de contato do cliente com o sistema. Ela precisa ser responsiva ao toque, brilhante o suficiente para ambientes iluminados e fácil de montar no gabinete do totem.
O que procurar:
- Mínimo 15.6″ (tamanho confortável para interação)
- Toque capacitivo de 10 pontos (mais preciso que resistivo)
- Conexão USB-C com transmissão de vídeo e toque pelo mesmo cabo (DisplayPort Alt Mode)
- Brilho acima de 300 nits (para ambientes com luz natural)
👉 [Monitor Portátil Touch Screen 15.6″ USB-C 1080p — Ver na Amazon Brasil]
👉 [Monitor Touch Screen 15.6″ com Capa Protetora — Ideal para gabinetes — Ver na Amazon Brasil]
Por que portátil? Porque o design “portátil” tem a estrutura interna mais fina, facilitando embutir em MDF ou acrílico sem estruturas metálicas que complicam a montagem.
3. A Impressora Térmica
Indispensável em qualquer PDV. A impressora imprime a comanda para a cozinha assim que o pagamento é confirmado, eliminando erros de comunicação entre caixa e produção.
O que procurar:
- Papel de 80mm de largura (padrão do mercado)
- Conectividade USB e Ethernet ou Wi-Fi (para ter redundância)
- Compatibilidade com protocolo ESC/POS (padrão universal — funciona com a biblioteca Node.js que usaremos)
- Velocidade de impressão acima de 200mm/s
👉 [Impressora Térmica de Cupom 80mm USB/Ethernet — Epson/Bematech compatível — Ver na Amazon Brasil]
👉 [Rolo de Papel Térmico 80mm 300m — Estoque para 6 meses — Ver na Amazon Brasil]
Dica: Compre pelo menos dois rolos extras para o estoque. Rolos acabando no meio do pico é um problema simples de evitar.
4. O Leitor NFC / RFID (Para Cartões de Fidelidade)
O leitor NFC permite identificar clientes pelo cartão de fidelidade, pré-carregar preferências (“o João sempre pede café grande sem açúcar”) e acumular pontos automaticamente.
👉 [Leitor NFC ACR122U USB — Padrão ISO 14443 A/B — Ver na Amazon Brasil]
👉 [Kit 50 Tags NFC NTAG215 — Para criar cartões de fidelidade físicos — Ver na Amazon Brasil]
5. Câmera USB (Leitura de QR Code e Segurança)
Uma câmera USB posicionada na parte superior do totem serve para dois propósitos: ler QR codes de cupons de desconto ou cashback (como aqueles gerados por apps de fidelidade) e registrar quem interagiu com o terminal para fins de segurança.
👉 [Webcam USB Full HD 1080p com Microfone — Ver na Amazon Brasil]
👉 [Câmera USB com Visão 180° — Ideal para leitura de QR de baixo ângulo — Ver na Amazon Brasil]
6. Hub USB Alimentado
Com impressora, leitor NFC, câmera, teclado de manutenção e tela, as portas USB do Mini PC são rapidamente consumidas. Um hub alimentado (com fonte própria) garante que nenhum dispositivo perca energia ou tenha performance degradada.
👉 [Hub USB 3.0 com 7 Portas e Fonte de Alimentação — Ver na Amazon Brasil]
7. Nobreak / UPS (Proteção Indispensável)
Este item é frequentemente ignorado e é um erro grave. Quedas de energia durante uma transação PIX podem corromper o banco de dados local e gerar disputas de pagamento com o cliente.
Um nobreak de 600VA dá de 10 a 15 minutos de autonomia — tempo mais que suficiente para o sistema finalizar as transações em aberto e fazer um shutdown seguro.
👉 [Nobreak APC 600VA Bivolt — Proteção para Mini PC e Impressora — Ver na Amazon Brasil]
👉 [Nobreak NHS 700VA — Alternativa nacional com boa reputação — Ver na Amazon Brasil]
8. Roteador Wi-Fi Dedicado (Rede Local Isolada)
O totem deve operar em uma rede separada da rede de clientes e funcionários. Isso evita interferências, melhora a segurança e garante banda dedicada para as transações PIX.
👉 [Roteador TP-Link Archer AX23 Wi-Fi 6 — Para redes separadas e estáveis — Ver na Amazon Brasil]
9. Materiais para o Gabinete
Para transformar tudo isso num totem apresentável, você precisará montar o gabinete. A opção mais econômica e profissional é usar chapas de MDF com acabamento em fórmica ou pintura automotiva. Mas para uma versão inicial de laboratório, um suporte de tela já resolve.
👉 [Suporte de Mesa Articulado para Monitor 17″-27″ — Para versão de bancada — Ver na Amazon Brasil]
👉 [Perfil de Alumínio Estrutural — Para quem quer um totem mais industrial — Ver na Amazon Brasil]
💰 Resumo de Custo do Hardware
| Item | Custo Estimado |
|---|---|
| Mini PC (Intel N100, 16GB) | R$ 900 – R$ 1.200 |
| Monitor Touch 15.6″ USB-C | R$ 650 – R$ 900 |
| Impressora Térmica 80mm | R$ 350 – R$ 550 |
| Leitor NFC ACR122U | R$ 150 – R$ 250 |
| Webcam USB 1080p | R$ 80 – R$ 150 |
| Hub USB Alimentado | R$ 80 – R$ 120 |
| Nobreak 600VA | R$ 300 – R$ 450 |
| Roteador dedicado | R$ 200 – R$ 350 |
| Total estimado | R$ 2.710 – R$ 3.970 |
Preços podem variar com o dia do levantamento de preços par este projeto e a data de publicação deste artigo ou o dia de leitura. – Comprando da Amazon pelos nossos links você valoriza nosso trabalho.
Compare isso com R$ 12.000 de um totem comercial — e aqui você tem controle total sobre cada linha de código e cada parafuso.
Parte 2: Preparando o Ambiente de Software
2.1 Sistema Operacional e Docker
No Mini PC com Ubuntu 22.04 instalado, comece instalando o Docker e o Docker Compose:
# Atualiza o sistema
sudo apt update && sudo apt upgrade -y
# Instala o Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Instala o Docker Compose
sudo apt install docker-compose-plugin -y
# Verifica a instalação
docker --version && docker compose version
2.2 Instalando o n8n com Docker Compose
O n8n é o orquestrador central. Toda a lógica de negócio — receber o carrinho, consultar a IA, confirmar pagamento, imprimir — passa por ele.
Crie o arquivo docker-compose.yml:
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n_totem
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=suasenhasegura
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- WEBHOOK_URL=http://localhost:5678
- GENERIC_TIMEZONE=America/Sao_Paulo
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Suba o serviço:
docker compose up -d
Acesse http://localhost:5678 e configure sua conta de admin.
2.3 Instalando o Ollama (IA Local)
O Ollama é o que faz a mágica acontecer sem internet. Ele roda modelos de linguagem diretamente no hardware do totem.
# Instala o Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Baixa o modelo Llama 3 (8 bilhões de parâmetros — ideal para 16GB de RAM)
ollama pull llama3:8b
# Testa se está funcionando
ollama run llama3:8b "Sugira um produto para acompanhar um café expresso"
Se o modelo responder normalmente, sua IA local está pronta. O Ollama sobe automaticamente na porta 11434.
Alternativas de modelos por RAM disponível:
| RAM disponível | Modelo recomendado | Qualidade |
|---|---|---|
| 8GB | llama3:8b (quantizado Q4) | Boa |
| 16GB | llama3:8b (completo) | Muito boa |
| 32GB | llama3:70b (quantizado) | Excelente |
| 64GB+ | llama3:70b (completo) | Máxima |
2.4 Criando o Frontend em Next.js (Modo Kiosk)
O frontend é a interface que o cliente vê e toca. Precisamos que ele rode em modo Kiosk — tela cheia, sem barra de endereço, sem possibilidade do cliente “sair” da aplicação.
# Cria o projeto Next.js
npx create-next-app@latest totem-frontend --typescript --tailwind
cd totem-frontend
O componente de carrinho com chamada de upsell:
// src/services/checkout.ts
interface CartItem {
id: string;
name: string;
price: number;
qty: number;
}
interface UpsellResponse {
suggestion: string | null;
productId: string | null;
price: number | null;
}
export async function fetchUpsellSuggestion(
cartItems: CartItem[]
): Promise<UpsellResponse> {
try {
const response = await fetch(
"http://localhost:5678/webhook/totem-upsell",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
items: cartItems.map((item) => item.name),
time: new Date().toLocaleTimeString("pt-BR"),
// Contexto adicional para a IA
totalValue: cartItems.reduce(
(sum, item) => sum + item.price * item.qty,
0
),
}),
}
);
if (!response.ok) throw new Error("Webhook offline");
const data = await response.json();
return data;
} catch (error) {
console.error("IA de upsell indisponível:", error);
// Fallback silencioso: venda segue normalmente
return { suggestion: null, productId: null, price: null };
}
}
Iniciando o Next.js em modo Kiosk com Chromium:
No Ubuntu, crie o script de inicialização automática:
# /home/totem/start-kiosk.sh
#!/bin/bash
# Aguarda o Next.js iniciar
sleep 10
# Abre o Chromium em modo kiosk
chromium-browser \
--kiosk \
--no-sandbox \
--disable-infobars \
--disable-session-crashed-bubble \
--disable-restore-session-state \
--autoplay-policy=no-user-gesture-required \
http://localhost:3000
Adicione esse script ao crontab com @reboot para iniciar automaticamente quando o Mini PC ligar.
Parte 3: Configurando os Workflows no n8n
Esta é a parte onde a mágica acontece de verdade. Vamos criar três workflows distintos.
Workflow 1: Consulta de Upsell com IA
Este é o workflow mais importante. Ele recebe o carrinho do cliente, consulta a IA local e devolve uma sugestão personalizada.
Configuração no n8n (importe o JSON abaixo):
{
"name": "Totem — Upsell com IA",
"nodes": [
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "totem-upsell",
"httpMethod": "POST",
"responseMode": "lastNode"
}
},
{
"name": "Consultar Ollama",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"url": "http://localhost:11434/api/generate",
"method": "POST",
"jsonBody": {
"model": "llama3:8b",
"stream": false,
"prompt": "Você é um especialista em vendas de varejo alimentício brasileiro. O cliente está comprando: {{ $json.body.items.join(', ') }} às {{ $json.body.time }}. O valor total atual é R$ {{ $json.body.totalValue }}. Sugira UM único produto adicional que combine com o pedido e aumente o ticket médio. Seja direto e persuasivo em no máximo 12 palavras. Responda apenas com a frase de sugestão, nada mais."
}
}
},
{
"name": "Formatar Resposta",
"type": "n8n-nodes-base.set",
"parameters": {
"values": {
"suggestion": "={{ JSON.parse($json.response).response.trim() }}"
}
}
}
]
}
Como personalizar o prompt para diferentes negócios:
Para uma farmácia:
"O cliente está comprando: {{ itens }}. Sugira um produto relacionado à saúde ou bem-estar que complemente a compra."
Para uma loja de conveniência:
"São {{ horário }}. O cliente comprou: {{ itens }}. Considerando o horário, sugira algo que faça sentido agora (lanche, bebida, item de uso imediato)."
Workflow 2: Confirmação de Pagamento PIX
Quando o banco confirma o PIX, o gateway de pagamento (Mercado Pago, Asaas, PagBank) envia um webhook. O n8n precisa capturar isso e acionar a impressão.
{
"name": "Totem — Confirmação PIX",
"nodes": [
{
"name": "Webhook PIX",
"type": "n8n-nodes-base.webhook",
"parameters": {
"path": "pix-confirmacao",
"httpMethod": "POST"
}
},
{
"name": "Verifica Status",
"type": "n8n-nodes-base.if",
"parameters": {
"conditions": {
"string": [{
"value1": "={{ $json.body.status }}",
"operation": "equals",
"value2": "approved"
}]
}
}
},
{
"name": "Aciona Impressão",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"url": "http://localhost:3001/print",
"method": "POST",
"jsonBody": {
"orderId": "={{ $json.body.external_reference }}",
"items": "={{ $json.body.items }}",
"total": "={{ $json.body.transaction_amount }}",
"paymentMethod": "PIX"
}
}
}
]
}
Workflow 3: Monitoramento e Alertas
Este workflow monitora a saúde do sistema e envia alertas para o WhatsApp do lojista via Twilio ou para o Telegram:
{
"name": "Totem — Monitoramento",
"nodes": [
{
"name": "Agenda — A cada 30min",
"type": "n8n-nodes-base.scheduleTrigger",
"parameters": {
"rule": { "interval": [{ "field": "minutes", "minutesInterval": 30 }] }
}
},
{
"name": "Verifica Impressora",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"url": "http://localhost:3001/printer-status",
"method": "GET"
}
},
{
"name": "Alerta Telegram",
"type": "n8n-nodes-base.telegram",
"parameters": {
"text": "⚠️ TOTEM: Impressora offline! Verifique o papel e a conexão USB."
}
}
]
}
Parte 4: O Microserviço de Impressão (Node.js)
O n8n não fala diretamente com a impressora USB. Para isso, criamos um microserviço Node.js que fica escutando requisições e envia comandos ESC/POS para a impressora.
# Dentro do Mini PC
mkdir totem-printer-service && cd totem-printer-service
npm init -y
npm install express node-thermal-printer body-parser cors
// server.js
const express = require("express");
const { printer: ThermalPrinter, types: PrinterTypes } = require("node-thermal-printer");
const bodyParser = require("body-parser");
const cors = require("cors");
const app = express();
app.use(cors());
app.use(bodyParser.json());
// ============================================================
// Endpoint de impressão
// ============================================================
app.post("/print", async (req, res) => {
const { orderId, items, total, paymentMethod } = req.body;
const printer = new ThermalPrinter({
type: PrinterTypes.EPSON, // Compatível com 99% das térmicas
interface: "printer:POS-80", // Nome do dispositivo no sistema
options: { timeout: 5000 },
width: 48, // Caracteres por linha (80mm = 48 chars)
removeSpecialCharacters: false,
lineCharacter: "-",
});
try {
// --- Cabeçalho ---
printer.alignCenter();
printer.setTextSize(1, 1);
printer.bold(true);
printer.println("NOME DO ESTABELECIMENTO");
printer.bold(false);
printer.setTextNormal();
printer.println("CNPJ: 00.000.000/0001-00");
printer.println(new Date().toLocaleString("pt-BR"));
printer.drawLine();
// --- Pedido ---
printer.alignLeft();
printer.bold(true);
printer.println(`PEDIDO #${orderId.slice(-6).toUpperCase()}`);
printer.bold(false);
printer.newLine();
items.forEach((item) => {
const name = item.name.padEnd(30);
const price = `R$ ${item.price.toFixed(2)}`.padStart(10);
printer.println(`${item.qty}x ${name}${price}`);
});
printer.drawLine();
// --- Total ---
printer.bold(true);
printer.println(`TOTAL:`.padEnd(30) + `R$ ${total.toFixed(2)}`.padStart(10));
printer.bold(false);
printer.println(`PAGO VIA: ${paymentMethod}`);
// --- Rodapé ---
printer.newLine();
printer.alignCenter();
printer.println("Obrigado pela preferência!");
printer.println("Volte sempre 😊");
printer.newLine();
// Corte do papel
printer.cut();
await printer.execute();
res.json({ success: true, message: "Impresso com sucesso" });
} catch (error) {
console.error("Erro na impressão:", error);
res.status(500).json({ success: false, error: error.message });
}
});
// ============================================================
// Endpoint de status da impressora
// ============================================================
app.get("/printer-status", async (req, res) => {
const printer = new ThermalPrinter({
type: PrinterTypes.EPSON,
interface: "printer:POS-80",
});
const isConnected = await printer.isPrinterConnected();
res.json({ connected: isConnected });
});
app.listen(3001, () => {
console.log("Serviço de impressão rodando na porta 3001");
});
Parte 5: Lendo o Cartão NFC e Identificando Clientes
O leitor ACR122U é reconhecido nativamente pelo Linux como dispositivo USB. Para ler as tags NFC no Node.js:
npm install nfc-pcsc
// nfc-reader.js
const { NFC } = require("nfc-pcsc");
const nfc = new NFC();
nfc.on("reader", (reader) => {
console.log(`Leitor NFC conectado: ${reader.reader.name}`);
reader.on("card", async (card) => {
const uid = card.uid;
console.log(`Tag detectada: ${uid}`);
// Busca o cliente no banco de dados local
const customer = await findCustomerByNFC(uid);
if (customer) {
// Notifica o frontend via WebSocket
broadcastToFrontend({
event: "customer_identified",
customer: {
name: customer.name,
points: customer.points,
lastOrder: customer.lastOrder,
},
});
} else {
// Cliente novo — abre fluxo de cadastro
broadcastToFrontend({ event: "new_customer", uid });
}
});
reader.on("card.off", (card) => {
console.log("Tag removida");
});
});
nfc.on("error", (err) => {
console.error("Erro NFC:", err);
});
Parte 6: Deploy, Manutenção Remota e Segurança
6.1 Inicialização Automática com PM2
O PM2 garante que todos os serviços sobem automaticamente quando o Mini PC liga:
npm install -g pm2
# Registra todos os serviços
pm2 start server.js --name "printer-service"
pm2 start nfc-reader.js --name "nfc-service"
pm2 start npm --name "frontend" -- run start
# Salva a configuração para sobreviver a reboots
pm2 save
pm2 startup systemd
6.2 Manutenção Remota via Tailscale
Você não quer se deslocar até o estabelecimento do cliente para resolver um problema de software. O Tailscale cria uma VPN mesh gratuita que permite acessar o Mini PC de qualquer lugar do mundo:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
Após isso, você pode fazer SSH no totem de qualquer lugar: ssh [email protected].
6.3 Backup Automático dos Dados
Configure um backup diário do banco de dados do n8n para um serviço de nuvem:
# /home/totem/backup.sh
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="n8n_backup_${DATE}.tar.gz"
docker exec n8n_totem tar czf - /home/node/.n8n > /tmp/${BACKUP_FILE}
# Envia para Backblaze B2 ou qualquer storage S3-compatível
rclone copy /tmp/${BACKUP_FILE} remote:backups-totem/
rm /tmp/${BACKUP_FILE}
echo "Backup concluído: ${BACKUP_FILE}"
Adicione ao crontab para rodar todo dia às 3h da manhã:
0 3 * * * /home/totem/backup.sh >> /var/log/totem-backup.log 2>&1
Parte 7: Como Vender o seu Totem de Autoatendimento como Serviço (SaaS)
Se você chegou até aqui como desenvolvedor, percebeu que montou uma solução que o mercado vende por R$ 12.000–R$ 20.000. Existem pelo menos três modelos de negócio para monetizar isso:
Modelo 1: Venda Única + Manutenção
Vende o totem montado e configurado por R$ 4.500–R$ 6.000, com contratos de manutenção mensal de R$ 200–R$ 400. Margem bruta: 40–60%.
Modelo 2: Hardware as a Service (HaaS)
O cliente paga R$ 350–R$ 600/mês e você fornece o totem, a manutenção e as atualizações. Sem custo inicial para o cliente — modelo mais fácil de fechar. Você recupera o custo do hardware em 6–10 meses e o restante é lucro.
Modelo 3: SaaS Puro
Você fornece apenas o software (frontend, n8n configurado, painel de controle para o lojista gerenciar produtos e promoções). O cliente monta o hardware. Escalável com custo marginal quase zero.
Conclusão: Por que Fazer Agora
A barreira técnica para montar esse sistema é real, mas é menor do que parece. Você não precisa ser expert em eletrônica, nem em redes, nem em IA. Precisa de:
- Conforto com linha de comando Linux
- Conhecimento básico de JavaScript/TypeScript
- Disposição para configurar Docker e n8n
As ferramentas já estão maduras. O n8n tem centenas de integrações prontas. O Ollama abstraiu toda a complexidade de rodar modelos de IA localmente. O hardware ficou poderoso e barato ao mesmo tempo.
O varejo brasileiro tem mais de 6 milhões de estabelecimentos de pequeno e médio porte. A grande maioria ainda não tem qualquer automação de atendimento. O mercado está em aberto.
Lista Consolidada de Produtos
| # | Produto | Prioridade |
|---|---|---|
| 1 | Mini PC Beelink EQ12 — Intel N100 16GB | ⭐⭐⭐ |
| 2 | Mini PC GMKtec NucBox — Intel N100 16GB | ⭐⭐⭐ |
| 3 | Monitor Touch Screen 15.6″ USB-C 1080p | ⭐⭐⭐ |
| 4 | Impressora Térmica 80mm USB/Ethernet | ⭐⭐⭐ |
| 5 | Rolo de Papel Térmico 80mm (Pack) | ⭐⭐⭐ |
| 6 | Leitor NFC ACR122U USB | ⭐⭐ |
| 7 | Kit Tags NFC NTAG215 (50 unidades) | ⭐⭐ |
| 8 | Webcam USB Full HD 1080p | ⭐⭐ |
| 9 | Hub USB 3.0 Alimentado 7 Portas | ⭐⭐ |
| 10 | Nobreak APC 600VA Bivolt | ⭐⭐ |
| 11 | Roteador TP-Link Wi-Fi 6 AX23 | ⭐⭐ |
| 12 | Suporte Articulado para Monitor | ⭐ |
| 13 | SSD Externo USB para Backup | ⭐ |
| 14 | Teclado e Mouse Mini Wireless (para manutenção) | ⭐ |
Testado em Ubuntu 22.04 LTS + Docker 24 + n8n 1.x + Ollama 0.3
Ajude a Ramos da Informática a manter seus artigos e serviços adquirindo os produtos pelos links Afiliados. Agradecemos por isso. 😉
Perguntas Frequentes (FAQ) sobre Totens de Autoatendimento Inteligentes
Posso usar um Raspberry Pi 5 no lugar de um Mini PC para o totem de autoatendimento?
Sim, é tecnicamente possível usar um Raspberry Pi 5 (8GB). No entanto, para rodar modelos de Inteligência Artificial Localmente (como o Llama 3 via Ollama) em conjunto com o Docker e n8n, os Mini PCs com processador Intel N100 e 16GB de RAM oferecem um custo-benefício superior, garantindo uma resposta de IA mais rápida (menor latência) sem aquecimento excessivo no PDV.
O totem inteligente continua funcionando se a loja ficar sem internet?
Sim! Como o Frontend (Next.js), o orquestrador (n8n), o motor de IA (Ollama) e o serviço de impressão (Node.js) rodam localmente no Mini PC, a operação principal do totem é off-line. A internet só será exigida no momento da transação final se o cliente for pagar via PIX ou cartão de crédito/débito online. Para fidelidade via NFC, o sistema funciona 100% sem internet se o banco de dados for local.
A Inteligência Artificial (Ollama) não é pesada demais para um computador sem placa de vídeo (GPU)?
Modelos massivos exigem GPUs, mas para um totem de autoatendimento, utilizamos versões quantizadas (comprimidas) de modelos como o Llama 3 (8B Q4). O Ollama é altamente otimizado para rodar esses modelos usando apenas a CPU e a memória RAM (16GB é o ideal) do Mini PC. A resposta para um prompt curto de upsell leva apenas de 1 a 3 segundos, o que é perfeito para a experiência do usuário.
Como integrar o sistema web (Next.js) com a impressora térmica USB?
Navegadores web não conseguem enviar comandos diretos para portas USB por questões de segurança. A solução detalhada no artigo usa um microserviço em Node.js rodando no background do Mini PC. O Next.js envia um Webhook para o n8n, que por sua vez faz uma requisição HTTP local (localhost) para esse serviço Node.js, enviando os comandos ESC/POS diretamente para a impressora térmica.
Preciso pagar licenças do n8n e Ollama para vender esse sistema como SaaS?
O Ollama tem licença MIT (totalmente livre para uso comercial). O modelo Llama 3 permite uso comercial para projetos com menos de 700 milhões de usuários mensais. Já o n8n possui uma licença ‘Fair-code’; você pode usá-lo gratuitamente para uso interno da sua empresa, mas se for criar um produto SaaS cobrando dos clientes pelo acesso direto à infraestrutura do n8n, é necessário consultar os termos comerciais da plataforma.
Qual é a principal vantagem de montar o próprio PDV autônomo?
A primeira vantagem é financeira: uma redução de custo de até 70% em relação aos equipamentos fechados do mercado. A segunda é a propriedade tecnológica (ausência de vendor lock-in). Como desenvolvedor, você tem controle total sobre o hardware (se queimar, basta trocar a peça da Amazon) e sobre o software, podendo criar integrações customizadas com ERPs legados que os totens comerciais padrão não permitem.
