Este tutorial é sobre como criar um código QR (código de resposta rápida) usando Raspberry Pi B e Python 3.7. O código QR é um código óptico legível por máquina. Óptico significa que pode ser decodificado usando qualquer dispositivo de câmera. Um concorrente direto do código QR é o código de barras. A vantagem do QR sobre o código de barras é que ele é mais rápido de ler e pode armazenar muito mais informações do que o código de barras. Qualquer dispositivo com câmera pode ser transformado em leitor de código QR, enquanto o código de barras precisa de um dispositivo dedicado a laser para descriptografar os códigos de barras.
Para Raspberry Pi, uma biblioteca/pacote QR dedicado está disponível para criação de QR. Para importar o pacote de código QR no código do aplicativo, primeiro você precisa instalá-lo. Para instalar o pacote, abra o Terminal do Raspberry Pi e digite:
$ pip3 instalar qrcode
Observação: Se você estiver trabalhando com python 2 em vez de pip3, use pip para instalar a biblioteca. Você deve usar pip ou pip3 para instalar todas as suas bibliotecas ou pacotes.
Codificação QR
Uma geração simples de código QR usando o pacote qrcode está abaixo.
Primeiro, importei o pacote qrcode para o código do aplicativo. Então a instrução qrcode.make('ENGINEERS GARAGE') está codificando o texto 'ENGINEERS GARAGE' no formato qrcode. O QR codificado é salvo na variável code. Por fim, para salvar o QR code na imagem, passei o nome do arquivo code.save('qrtest.png') no qual o qrcode será salvo.
A imagem de saída é mostrada acima. O tamanho da imagem é 290×290. Parâmetros de imagem como tamanho, cor, fundo, bordas e tamanho da caixa QR podem ser ajustados usando as funções da biblioteca qrcode. Você pode importar outros pacotes de manipulação de imagens no código do aplicativo e filtros podem ser aplicados à imagem de saída para aumentar o brilho, o contraste e a nitidez.
Decodificando QR
Para decodificar o qrcode, precisamos instalar mais alguns pacotes. Zbarlight é um wrapper popular para python. É usado para decodificar e extrair o qrcode de um arquivo de imagem.
Abra o Terminal no Raspberry Pi e digite o seguinte:
$ apt-get instalar libzbar0 libzbar-dev
$ pip3 instalar zbarlight
Use pip se estiver trabalhando com python 2. Você pode ocorrer erros durante a compilação. Muito provavelmente, o erro é um pacote ausente. Zbarlight depende de outros pacotes pré-instalados no diretório Python, mas às vezes você precisa instalá-los manualmente. Instale todos os pacotes um por um (para cada instalação de pacote, visite Se aparecer PIL não encontrado, instale-o usando o comando
pip instalar –no-index -f -U PIL
Após a instalação bem-sucedida, importe o pacote zbarlight em seu código. Você também precisa importar o atributo de imagem do pacote PIL. O pacote PIL é usado para importar e trabalhar com imagens.
Descrição de variáveis e declarações
- A variável file_path recebe o endereço da imagem.
- Com open(file_path, 'rb') as image_file: Abre o arquivo como arquivo de imagem
- Image = Image.open(image_file) o objeto de imagem é criado
- load carrega o objeto de imagem contendo os dados de pixel
- Codes = zbarlight.scan_codes(('qrcode'),image) Busca/decodifica o texto presente nos pixels.
Finalmente, a instrução print imprime o texto decodificado.
Usei o Thonny ide presente no sistema operacional Raspbian para escrever e testar código. No lado esquerdo você pode ver a imagem gerada colocada na área de trabalho. Você pode ver o Thonny ide qr no código de extração. O caminho do arquivo de imagem qr está apontando para a área de trabalho. O resultado da decodificação é exibido na janela do shell abaixo da janela de código.
Vamos fazer esse projeto DIY: Onde comprar peças?
Framboesa pi (Mouser Electronics)