top of page
Crescer (fundo transparente)_Negativo_pn
Você sabia que a Crescer ensina, fornece e faz soluções de automação e IoT com Arduino e ESP32?

Fale com um especialista

2.png
3.png
1.png

Leitor de QR code e Código de Barras para Arduino e ESP32

Atualizado: 6 de mar.

Os QR codes e códigos de barras são constantemente utilizados em aplicações onde desejamos identificar objetos, seja os produtos de um supermercado ou em uma linha de produção/distribuição.


Ao simplificar a captura e o compartilhamento de informações, os códigos de barras e os QR codes não apenas transformaram a maneira como lidamos com dados, mas também proporcionaram eficiência, segurança e praticidade.


Neste blog, vamos ver como utilizar um ESP32 ou Arduino para ler QR codes e códigos de barras utilizando o módulo GM66.



Sumário



1. Módulo leitor de QR code e código de barra GM66


O módulo GM66 permite a leitura tanto de QR codes quanto de códigos de barras. Ele é capaz de realizar leituras de forma rápida e eficaz, mesmo em ambientes escuros. Na figura a seguir, podemos ver o módulo GM66, com as medidas de suas dimensões em milímetros.



Na figura, é possível observar que o módulo GM66 possui duas formas de conexão: uma USB e outra por UART. Ele pode ser configurado para funcionar como um teclado, possibilitando sua utilização ao ser conectado diretamente ao computador através da porta USB. Para integrar o módulo GM66 com Arduino ou ESP32, é necessário utilizar a porta UART, que se comunica via RS232 com níveis TTL. A disposição dos pinos da porta UART pode ser visualizada na figura a seguir.



Veja na figura a seguir um exemplo de leitura utilizando-o diretamente o computador.




2. Como configurar o módulo GM66


Para utilizar o módulo GM66, é necessário configurá-lo primeiro, e esse processo é bastante simples. O módulo GM66 pode ser ajustado para operar de diversas maneiras, e para cada configuração, há um QR code específico que deve ser lido para que o módulo funcione da forma desejada. Recomendamos a consulta ao manual do GM66 para visualizar todas as possibilidades. Neste blog, abordaremos apenas as configurações relevantes para o nosso projeto.


GM66 Barcode reader module User Manual
.pdf
Fazer download de PDF • 3.88MB

Primeiro vamos testar o módulo GM66 configurando ele como um teclado. Para isso vamos ler o QR code a seguir.



Agora, basta abrir qualquer editor de texto e apontar o GM66 para qualquer QR code ou código de barras, que ele realizará a leitura. Na figura a seguir, podemos visualizar o resultado que deverá ser obtido para o QR code a seguir.



Agora, vamos configurar o GM66 para utilizar comunicação USB, criando, no entanto, uma porta serial virtual. Para isso, primeiro vamos realizar a leitura do QR code a seguir.



Nessa configuração, o módulo GM66 não será mais interpretado pelo computador como um teclado, mas sim como uma porta serial virtual, de forma semelhante ao Arduino. Assim, podemos realizar a leitura utilizando o monitor serial do Arduino. Veja na figura a seguir o resultado.



Por fim, vamos preparar o GM66 para ser utilizado com o ESP32 (o mesmo vale para Arduino). Para isso, configuraremos o GM66 para funcionar através da porta UART, lendo o QR code a seguir.




Na configuração default a comunicação estará sendo feita utilizando os seguintes parâmetros.




Para alterar esses parâmetros recomenda-se ver o manual do GM66.

GM66 Barcode reader module User Manual
.pdf
Fazer download de PDF • 3.88MB

.



3. Como utilizar o módulo GM66 com ESP32 e Arduino


Para esta demonstração, utilizamos uma CPB32h conectada aos pinos de UART do GM66. Para fornecer 5V de alimentação ao módulo, empregamos um módulo step-down LM2596. A comunicação entre o módulo e o ESP32 ocorreu através dos pinos da UART2, que são o GPIO16 e o GPIO17. Na figura a seguir, é possível visualizar como as conexões foram realizadas.



O código desenvolvido para o exemplo é bastante simples. Ele lê o módulo GM66 através da UART2 e envia o valor recebido para o monitor serial usando a UART. O firmware completo pode ser visualizado abaixo:


#define RXD2 16
#define TXD2 17

void setup() {
 Serial.begin(115200);
 Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
}
void loop() {
 char recebe;
 if (Serial2.available()) {
   recebe = Serial2.read();
   Serial.print(recebe);
   if (recebe == 13) {
      Serial.println("");
   }
 }
}

Ao analisar alguns pontos do código, percebemos que, inicialmente, definimos os pinos da UART2. Em seguida, na função setup, iniciamos ambas as portas seriais do ESP32, sendo necessário utilizar as configurações específicas do módulo GM66 para a porta 2.


Na função loop, sempre que recebemos dados pela serial2, os enviamos para o computador utilizando a porta serial. O módulo GM66 sempre inclui o número 13 (caractere '\r') no final dos dados, indicando uma nova linha. Portanto, utilizamos esse valor para inserir uma nova linha no monitor serial. O resultado para o QR code pode ser visualizado na figura a seguir.



Esse foi um exemplo básico, mas que já demonstra toda a funcionalidade do módulo GM66 com o ESP32. Fazendo algumas alterações no código, é possível armazenar o valor do QR code lido pelo GM66 e utilizá-lo livremente para validar acesso, organizar produtos e em diversas outras aplicações. Se deseja aprender mais sobre como realizar a leitura de QR codes com o ESP32, sugerimos que assista ao vídeo a seguir.



Posts recentes

Ver tudo
ícone do whatsapp

Fale com um
especialista:

bottom of page