Do unboxing ao sistema funcional — passo a passo para quem nunca usou nenhum dos dois.
Antes de começar, certifique-se que tem todos estes componentes. Pode encontrar na Tecmicro ou encomendar via Amazon e Ali Express.
O leitor ZKTeco QR50 já o tem. Vai ligá-lo ao Raspberry Pi por cabo USB — é simples como ligar um pen drive.
O Raspberry Pi é uma placa de circuitos. Ao tirá-lo da caixa, precisa de:
Se comprou uma case, encaixe a placa com cuidado. Há normalmente 4 pontos de encaixe.
Se o kit incluiu peças metálicas com autocolante — são dissipadores. Cole-os nos chips maiores da placa. O Pi 4 aquece bastante e isto é importante.
Primeiro precisa de preparar o cartão SD com o sistema operativo.
Isto faz-se no seu computador Windows/Mac, não no Raspberry Pi.
Vá a raspberrypi.com/software e descarregue o programa gratuito para o seu sistema operativo.
Use um adaptador SD se o seu computador não tiver leitor de cartões.
Clique no botão "Next" e depois em "Edit Settings". Configure:
qracessopi | Password: uma senha à sua
escolhaClique em "Write". O processo demora cerca de 5-10 minutos. No final, ejeccte o cartão com segurança.
Insira o cartão microSD no Raspberry Pi (slot na parte de baixo da placa).
Ligue o cabo USB-C. O Pi vai iniciar automaticamente. Verá texto a aparecer no ecrã — é normal.
Ao fim de 1-2 minutos aparece o ambiente de trabalho do Raspberry Pi OS.
No canto superior direito, veja o ícone de Wi-Fi. Se configurou correctamente no passo anterior, já estará ligado.
Clique no ícone do terminal no topo do ecrã (parece um ecrã preto). Este será o seu principal instrumento.
No terminal, escreva os comandos abaixo um de cada vez. Cada um pode demorar alguns minutos:
# Actualizar a lista de programas disponíveis
sudo apt update
# Instalar as actualizações
sudo apt upgrade -yTERMINAL
Depois desta configuração inicial, pode controlar o Raspberry Pi a partir do seu computador via SSH, sem
precisar de monitor. No seu PC: ssh pi@qracesso.local
O Python já vem instalado no Raspberry Pi OS. Só precisa de instalar as bibliotecas adicionais.
# Verificar versão do Python (deve ser 3.x)
python3 --version
# Instalar o gestor de pacotes pip
sudo apt install python3-pip -y
# Instalar a biblioteca para controlar os pinos GPIO
pip3 install RPi.GPIO --break-system-packages
# Instalar a biblioteca para fazer pedidos HTTP (para a API futura)
pip3 install requests --break-system-packagesTERMINAL
Se não aparecerem mensagens de erro, está pronto para continuar.
Esta configuração faz-se uma única vez no seu computador Windows/Mac com o software DEMO da ZKTeco.
Activar o modo HID Keyboard no QR50. Assim, quando alguém apresentar um QR Code, o leitor envia o conteúdo como se fosse um teclado a digitar — o Raspberry Pi lê esse texto directamente.
Vá ao site zkteco.com, procure por "QR50 software" ou peça ao seu fornecedor. O programa chama-se QR50&QR500 Configuration Demo.
Use o cabo USB que veio com o leitor. O Windows vai instalar os drivers automaticamente.
Clique no ícone de quadrícula no canto superior direito → seleccione "Enter advanced settings_QR50".
Na página Function Selection, localize o campo "HID keyboard" e mude de Close para Open.
Clique em "Write configuration". Aguarde a confirmação de sucesso.
Remova o cabo USB do Windows e ligue-o a qualquer porta USB do Raspberry Pi.
O QR50 guarda esta configuração internamente. Não precisa de repetir este processo.
Esta parte é opcional mas recomendada. Usamos os pinos GPIO do Raspberry Pi para ligar LEDs e buzzer.
Os pinos GPIO são como interruptores que o programa pode ligar e desligar. Cada pino tem um número. Usamos uma protoboard (placa branca com furos) para montar os circuitos sem soldar.
Raspberry Pi GPIO Protoboard
───────────────── ──────────────────────────
Pino 11 (GPIO17) ─────────► [220Ω] ─► LED VERDE ─► GND
Pino 13 (GPIO27) ─────────► [220Ω] ─► LED VERM. ─► GND
Pino 15 (GPIO22) ─────────────────► BUZZER (+) ─► GND
Pino 6 (GND) ─────────────────────────────────► GND
USB do QR50 ─────────► porta USB do Raspberry PiDIAGRAMA
Sem resistência o LED queima. A resistência fica em série entre o pino GPIO e o ânodo (+) do LED. A perna mais comprida do LED é o ânodo (+).
| Pino Físico | Nome GPIO | Uso neste projecto |
|---|---|---|
| Pino 6 | GND | Terra (ground) |
| Pino 11 | GPIO 17 | LED Verde |
| Pino 13 | GPIO 27 | LED Vermelho |
| Pino 15 | GPIO 22 | Buzzer |
No terminal do Raspberry Pi, execute os seguintes comandos:
Pode descarregar o ficheiro pronto para usar ou copiar o conteúdo abaixo.
mkdir ~/qr_acesso
cd ~/qr_acessoTERMINAL
nano qr_access_control.pyTERMINAL
O editor nano abre. Agora copie todo o conteúdo do ficheiro Python que
recebeu anteriormente e cole aqui (Ctrl+Shift+V no terminal).
Para guardar: Ctrl+O → Enter. Para sair: Ctrl+X.
ls -la
# Deve aparecer: qr_access_control.pyTERMINAL
python3 qr_access_control.pyTERMINAL
Deve aparecer:
==================================================
Sistema de Controlo de Acesso — QR50
Aguardando leitura de QR Code...
==================================================OUTPUT
Com o programa a correr, escreva no terminal e carregue Enter:
ACESSO-001 ← Enter (deve acender LED verde + 1 bip)
INVALIDO ← Enter (deve acender LED vermelho + 3 bips)TESTE
No seu telemóvel, abra qualquer gerador de QR (ex: qr-code-generator.com) e crie um QR com o texto
ACESSO-001.
Aproxime o telemóvel do QR50. O leitor deve beepar e o terminal mostrará o código lido.
Se o código estiver na lista de válidos → LED verde acende e 1 bip. Se não estiver → LED vermelho e 3 bips.
Para o programa iniciar sozinho quando o Raspberry Pi ligar:
# Abrir o ficheiro de tarefas automáticas
crontab -e
# Seleccione o editor 1 (nano) se perguntado
# Adicione esta linha no final do ficheiro:
@reboot python3 /home/pi/qr_acesso/qr_access_control.py >> /home/pi/qr_acesso/log.txt 2>&1TERMINAL
O código já está preparado para a Fase 2. Quando a sua API estiver pronta, são apenas 2 alterações no ficheiro Python:
# No início do ficheiro, altere:
API_URL = "https://sua-api-real.com/validar"
API_KEY = "a-sua-chave-secreta"PYTHON
# Na função processar_qr(), comente esta linha:
# resultado = validar_local(codigo_qr)
# E descomente esta:
resultado = validar_api(codigo_qr)PYTHON
A sua API deve retornar um JSON neste formato:
// Acesso permitido:
{ "permitido": true, "nome": "João Silva" }
// Acesso negado:
{ "permitido": false, "motivo": "Acesso expirado" }JSON
| Funcionalidade | Como implementar |
|---|---|
| Ecrã LCD com nome do utilizador | Módulo I2C LCD + biblioteca RPLCD |
| Registo de entradas/saídas | SQLite local + envio para API |
| Câmera fotográfica no acesso | Módulo Raspberry Pi Camera |
| Controlo de fechadura eléctrica | Relé 5V ligado ao GPIO + fechadura 12V |
| Painel web de administração | Flask/FastAPI no próprio Raspberry Pi |
Seguindo estes passos tem um sistema de controlo de acesso funcional por QR Code, com alertas luminosos e sonoros, pronto para integração com qualquer API.
ZKTeco QR50 + Raspberry Pi 4 — Guia v1.0