I2C LCD com o ESPPOP 10 usando Micropython e Thonny IDE

I2C LCD com o ESPPOP 10 usando Micropython e Thonny IDE

O ESP32 é uma placa de microcontrolador que pode interfocar vários hardware e sensores. LCD e OLED são ótimas maneiras de exibir e dar uma representação gráfica para a saída necessária. Este tutorial abrange a interface do LCD com as placas ESP32 usando Micropython em Thonny ide.

O que é Micropython

Micropython está escrito em C e é uma implementação de software para o Python 3 direcionando principalmente aplicativos de sistema incorporado. No entanto, ele não pode executar completamente as bibliotecas padrão do Python 3. Micropython é uma variante do Python e especificamente projetado para sistemas incorporados. Hoje estaremos implementando o Micropython em uma placa ESP32 usando Thonny IDE.

Antes de avançarmos, certifique -se de instalar o thonny ide para programar a placa ESP32. Baixar Thonny ide Clique aqui.

O que é tela de cristal líquido (LCD)

LCD ou tela de cristal líquido é um dispositivo que opera aplicando uma tensão variável a uma camada de cristal líquido que induz alterações nas propriedades ópticas do LCD.

Hoje estaremos cobrindo um LCD 16 × 2 com a placa ESP32, no entanto, outros tamanhos do LCD também devem funcionar. Os LCDs com tamanho de 16 cruzes 2 podem exibir 16 caracteres dentro de uma única linha e um total de duas linhas estão lá neste modelo específico. O LCD contém tela de matriz de pontos alfanuméricos que podem exibir 224 caracteres.

Também podemos usar esse LCD diretamente com o ESP32, como fizemos com o Arduino, no entanto, é necessário uma quantidade tensa de trabalho duro e é preciso lidar com um monte de fios. Para evitar isso, usaremos um módulo I2C com LCD, que requer apenas dois fios para operar que são SDA e SCL.

Além disso, o I2C LCD vem com um potenciômetro que pode ajustar o brilho do LCD sem a necessidade de resistor variável externo para controlar o brilho do LCD.

I2C PIN Função
Gnd Pino de terra
VCC Pino de potência
SDA PIN usado para troca de dados
SCL Pino usado para o relógio síncrono

Peças necessárias para interface o LCD com ESP32

Antes de avançarmos mais, recomendamos que você colete as seguintes peças para este tutorial:

  • Esp32 doit devkit wroom
  • 16x2 LCD
  • I2C Interface serial
  • Pão de pão
  • Fios de jumper

Ligando o LCD para o ESP32

A fiação de um LCD com ESP32 é simples, basta conectar o pino SDA e SCL nos pinos 21 e 22 do GPIO, respectivamente.

A seguir, a configuração do PIN para referência:

Preparando Thonny IDE para ESP32

Como o hardware está pronto para pegar o código agora aberto thonny ide e envie o código. Antes de interface qualquer dispositivo I2C, precisamos conhecer o endereço I2C desse respectivo dispositivo. Os dispositivos i2C apresentam um endereço único para eles. Para muitos dispositivos, o endereço padrão para i2c é 0x27 onde 0x mostra o hexadecimal formato do número.

É recomendável obter o endereço I2C sempre que interface um novo dispositivo.

Obtendo o endereço LCD

Conecte a placa ESP32 com PC e abra Thonny IDE. Digite o código abaixo dado no editor de Thonny IDE. Carregue o código na placa ESP32 usando o botão Play no topo.

Código

Este código foi escrito para o pino 21 (SDA) e o pino 22 (SCL). Se você estiver usando qualquer outra placa como o ESP8266, substitua o número do pino de acordo.

Máquina de importação
sdapin = máquina.Pino (21) #para esp32
sclpin = máquina.PIN (22)
i2c = máquina.I2c (sda = sdapin, scl = sclpin, freq = 10000)
dispositivos = i2c.Varredura()
Se Len (dispositivos) == 0:
Imprima ("Não I2C Dispositivo !")
outro:
Print ('I2C Devices encontrados:', Len (dispositivos))
para dispositivo em dispositivos:
print ("AT ENDEREÇO:", Hex (dispositivo))

Saída

A seguir, a saída aparecerá no terminal do shell aqui, podemos ver que o endereço I2C para LCD é 0x27.

I2C LCD Micropython Bibliotecas

Para interface Esp32 com I2C LCD Duas bibliotecas de micropython diferentes são necessárias. Usaremos estas duas bibliotecas: LCD_API.py e i2c_lcd.py. Copie essas duas bibliotecas do link fornecido e crie dois novos arquivos dentro de Thonny IDE. Salve essas duas bibliotecas no ESP32 ou nas respectivas placas, como mostrado na imagem abaixo.

Passo 1: Crie dois novos arquivos e cole as duas bibliotecas Código separadamente. Para salvá -lo na placa ESP32, vá para: Arquivo> Salvar como

Passo 2: Um pop -up aparecerá selecionado Micropython Dispositivo. Verifique se a placa ESP32 está conectada ao PC.

Etapa 3: Escreva o nome do arquivo das bibliotecas e clique OK.

Observação: Lembre -se, mantenha o mesmo nome exato que lcd_api.py e i2c_lcd.py.

Salve os dois arquivos da biblioteca e crie um novo arquivo com nome principal.py onde estaremos escrevendo o código principal do micropython para i2c lcd.

Passo 4: Depois que todos os três arquivos forem criados, podemos vê -los no editor de Thonny IDE. Podemos fechar o arquivo de bibliotecas e apenas abrir principal.py Para escrever e fazer upload do código LCD I2C.

Exibir texto no LCD

Escreva o código fornecido abaixo em Thonny IDE e clique no botão Play mencionado para fazer upload de código para a placa ESP32.

Código

Escrever o código fornecido na janela THONNY IDE Editor ajudará a interface I2C LCD com a placa ESP32.

Máquina de importação
do pino de importação da máquina, softi2c
De LCD_API importar lcdapi
de i2c_lcd importar i2clcd
Desde o tempo de importação do sono
I2c_addr = 0x27
TotalRows = 2
TotalColumns = 16
I2C = Softi2C (Scl = Pin (22), SDA = PIN (21), Freq = 10000) #I2C para ESP32
#i2c = i2c (scl = pin (5), sda = pin (4), freq = 10000) #i2c para ESP8266
lcd = i2clcd (i2c, i2c_addr, totalrows, totalColumns)
enquanto é verdade:
LCD.putstr ("linuxhint.com ")
sono (10)
LCD.claro()

O código acima começou chamando Softi2C e Pin Class do módulo da máquina. Também adicionamos um módulo de sono para dar atraso. Em seguida, chamamos as duas bibliotecas importantes lcd_api.py e i2c_lcd.py Acabamos de salvar dentro da pasta Esp32.

Em seguida, o endereço I2C 0x27 é definido após isso definimos o total de linhas e colunas dentro do LCD aqui no nosso caso, é 16 × 2. Se estiver usando outro tamanho da tela, altere as linhas e colunas.

Para exibir o texto uma string Linuxhint.com é definido.

Saída

Na saída, podemos ver a sequência definida na tela LCD.

Conclusão

Micropython é um idioma projetado especificamente para o sistema incorporado. Usando duas bibliotecas lcd_api.py e i2c_lcd.py Podemos facilmente interface o I2C LCD com ESP32. Para programar ESP32 com Micropython, Thonny IDE é usado. Este artigo é um guia sobre interface LCD com ESP32.