Última modificação em 8 de novembro de 2020.

A Internet das coisas (IoT) é fascinante. Sou predominantemente uma pessoa de aplicativos da web. Mas sensores, tela de LED, chips, solda e a colagem de software com essas “coisas” é emocionante.

O computador Raspberry Pi do tamanho de um cartão de crédito oferece todas as oportunidades de experimentar e explorar a IoT. Escrevi primeiros passos com IoT usando Raspberry Pi e PHP um tempo atrás. Agora pensei em estender isso e escrever sobre meus projetos de hobby que faço com o Raspberry Pi.

Tenho usado o Raspberry Pi para,

  • Notificar para novos e-mails integrando API GMail.
  • Mostra o número de e-mails não lidos.
  • Monitore o tempo de atividade do site e notifique se ele está ativo ou inativo.
  • Mostrar a contagem de tráfego de usuários para meu website integrando o Google Analytics.
  • Notificar se houver uma venda em minha loja online.

Raspberry Pi é meu hobby e pensei em compartilhar com vocês sobre esses pequenos projetos. Esta será uma série de vários artigos. Vamos começar explicando como conectar um monitor LCD I2C ao Raspberry Pi.

Então vou escrever sobre todos os itens acima, um por um.

Módulo de exibição I2C LCD

Muito populares são os visores LCD de 16 × 2 (LCD1602) e 20 × 4 (LCD2004). A imagem abaixo mostra um módulo de display LCD 20 × 4.

Módulo de tela LCD 20x4

Três razões principais para escolher este tipo de display LCD para projetos de IoT usando Raspberry Pi ou Arduino.

  1. Econômico para comprar. Você pode comprar um módulo LCD 16 × 2 por apenas $ 1 USD.
  2. Requer 5v para funcionar, então podemos conectá-lo ao Raspberry Pi e nenhuma fonte de alimentação dedicada é necessária.
  3. Consome baixa corrente. Você pode mantê-lo no modo 24 × 7 com a luz de fundo ligada sem queimar sua bolsa.

Por que mochila I2C?

Esses módulos LCD possuem interface paralela. Não será conveniente conectar vários pinos ao chip e usá-los em modo paralelo.

I2C é um barramento serial desenvolvido pela Philips. Portanto, podemos usar a comunicação I2C e apenas usar 4 fios para nos comunicarmos. Para fazer isso, precisamos usar um adaptador I2C e soldá-lo ao monitor.

I2C usa duas linhas bidirecionais, chamadas SDA (Serial Data Line) e SCL (Serial Clock Line) com exigência de fonte de alimentação padrão de 5V e pino de aterramento. Então, basta lidar com 4 pinos.

Ao comprar o módulo LCD, você pode adquirir o LCD, adaptador I2C separadamente e soldá-lo. Se você não gosta de soldar, é melhor comprar o módulo LCD que vem com a mochila do adaptador I2C.

2004LCD com adaptador I2C

A imagem acima é a parte traseira de um módulo LCD 2004. A coisa preta é o adaptador I2C . Você pode ver os quatro pinos GND, VCC, SDA e SCL . É aí que você conectará o Raspberry Pi.

A coisa quadrada azul com a marca de mais é usada para ajustar o brilho da tela. O jumper azul é usado para ligar ou desligar a luz de fundo.

Pode não ser necessário desligar a luz de fundo. Se você desligar, os personagens ficarão pouco visíveis. Você pode mantê-lo no modo 24 × 7, ele não consumirá energia, pois é um dispositivo de baixo consumo de energia.

Conversor lógico

Os pinos GPIO do Raspberry Pi são nativos de 3,3V. Portanto, não devemos extrair 5v do Raspberry Pi. O módulo I2C LCD funciona com alimentação de 5 V e para torná-los compatíveis, precisamos aumentar o GPIO de 3,3 V para 5 V. Para fazer isso, podemos usar um conversor de nível lógico.

Referência: https://www.raspberrypi.org/documentation/faqs/#pi-power-gpioout

Conversor de nível lógico

Este é um ponto importante e é aqui que muitos iniciantes falham. Você pode encontrar algumas informações conflitantes nas páginas da Internet.

Você pode ver RPIs conectados diretamente a dispositivos de 5 V, mas eles podem não estar puxando energia do RPI em vez de fornecerem externamente. Somente para dados/instrução RPI pode ser usado. Portanto, cuidado, você pode acabar fritando o módulo LCD ou o próprio RPI.

Lista de hardware necessária

  • Raspberry Pi (usei Zero W e você pode usar qualquer modelo que tiver).
  • Display LCD com mochila de adaptador I2C (usei 20 × 4, você pode usar conforme sua escolha).
  • Conversor de nível lógico bidirecional de 3,3 V para 5 V
  • placa de ensaio
  • Jumper fios

Pré-requisito

  • Cartão Micro SD com Raspbian OS
  • Fonte de alimentação de 5,1 V (adaptador de alimentação oficial recomendado)
  • Leitor de cartão de memória

Por que adaptador de alimentação oficial?

Por que estou recomendando o adaptador de alimentação oficial! Existe uma razão para isso. Os adaptadores móveis baratos, embora garantam uma voltagem, não fornecem uma voltagem constante. Isso pode não ser necessário para carregar um dispositivo de celular, mas não no caso do Raspberry Pi. Essa é a razão principal, um teclado ou mouse USB conectado não é detectado. Eles podem não obter energia suficiente. Escolha um adaptador de alimentação oficial ou use o da melhor marca que você conhece.

Sem cabeça

Eu tenho uma configuração sem cabeça. Estou fazendo SSH do meu terminal MAC e uso o VIM como editor. O visualizador VNC pode ocasionalmente ajudar, mas fazer a programação/depuração completa pode não ser confortável. Se você não preferir o modo SSH, precisará de um monitor para conectar ao Raspberry Pi.

Headless Raspberry Pi

Diagrama do circuito Raspberry Pi LCD I2C

Usei uma placa de ensaio, conversor de nível lógico, módulo de display LCD 20 × 4 com mochila I2C e Raspberry Pi Zero W no diagrama de circuito.

Raspberry Pi LCD2004 I2C Circuit

O GPIO de 3,3 V do Raspberry Pi é convertido usando um conversor de nível lógico para 5 V para ser compatível com o display LCD.

Configuração do Raspberry Pi com módulo de display LCD usando mochila I2C

Raspberry Pi com configuração de LCD I2C

Programação

Como você sabe, minha linguagem preferida para construir sites é PHP. Mas para IoT com Raspberry Pi, vamos usar Python. O motivo é a disponibilidade de pacotes e isso economizará muito esforço. As interações de baixo nível via interface serial ou paralela são mais fáceis via Python.

I2C

Precisamos das duas ferramentas abaixo para trabalhar com I2C. Portanto, instale-o executando o seguinte comando no terminal RPI.

 sudo apt-get install python-smbus i2c-tools 

Habilitar I2C

 sudo raspi-config 

O comando acima abre a configuração do Raspberry Pi no terminal. Em ‘Opções de interface’, ative I2C.

 sudo vi/etc/modules 

Adicione as duas linhas a seguir ao final do arquivo e salve-o.

 i2c-bcm2708
i2c-dev 

Em seguida, reinicie o Raspberry Pi.

 sudo reboot 

Teste I2C

Para verificar se o I2C está conectado e detectado corretamente.

 sudo i2cdetect-y 1 

Isso retornará uma matriz com’27’destacado, o que significa que seu I2C foi detectado e é o endereço.

Instale o PIP

 curl https://bootstrap.pypa.io/get-pip.py-o get-pip.py 
python3 get-pip.py

Biblioteca LCD

Precisamos de uma biblioteca para interagir com o módulo LCD. Existem muitas bibliotecas Python disponíveis. Eu prefiro RPLCD .

 sudo pip install RPLCD 

Isso instalará a biblioteca RPLCD.

Programa Raspberry Pi LCD Hello World Python

LCDHelloWorld.py

O código a seguir importa a biblioteca RPLCD. Em seguida, inicializa a instância LCD. Em seguida, imprima a string “Hello World” seguida por uma nova linha. Em seguida, outras duas declarações. Em seguida, durma por 5 segundos e desligue a luz de fundo do LCD. Por fim, limpe a tela LCD.

 # Importar biblioteca LCD
de RPLCD import i2c # Importar biblioteca de sono
do tempo importar dormir # constantes para inicializar o LCD
lcdmode='i2c'
cols=20
linhas=4
charmap='A00'
i2c_expander='PCF8574' # Geralmente 27 é o endereço; Encontre o seu usando: i2cdetect-y 1
endereço=0x27
porta=1 # 0 em um Raspberry Pi mais antigo # Inicialize o LCD
lcd=i2c.CharLCD (i2c_expander, address, port=port, charmap=charmap, cols=cols, linhas=linhas) # Escreva uma string na primeira linha e vá para a próxima linha
lcd.write_string ('Olá, mundo')
lcd.crlf ()
lcd.write_string ('IoT com Vincy')
lcd.crlf ()
lcd.write_string ('Phppot')
dormir (5)
# Desligue a luz de fundo
lcd.backlight_enabled=False
# Limpe a tela LCD
lcd.close (limpar=True) 

Meu próximo artigo nesta série será sobre como integrar a API do GMail e notificar sobre novos e-mails.

↑ Voltar ao topo

Source link

Categories: Wordpress