Aqui no Arduino e Cia já vimos como usar o Blynk com Arduino e também com ESP32, e ele se mostrou uma eficiente ferramenta para controlar o seu projeto à distância. Hoje vamos mostrar como isso também pode ser feito com outra famosa placa, usando o Blynk com Raspberry Pi.
O uso do Blynk permite que você não só controle o seu projeto remotamente como também receba dados, podendo ser usado em conjunto por exemplo com um sistema de alarme e monitoramento. Vamos ver então como enviar e receber dados da Raspberry Pi usando o Blynk.
Circuito de exemplo do Blynk com Raspberry Pi
Para implementar os programas e exemplos deste post eu recomendo que você já esteja com a sua placa Raspberry Pi configurada e o Raspbian (sistema operacional) rodando normalmente. Se tiver dúvidas em como configurar a sua placa, dê uma olhada neste post que vai mostrar como instalar o Raspbian no cartão SD.
No nosso exemplo, vamos conectar dois leds na GPIO da placa Raspberry Pi 3 B+ e controlar esses leds por meio de botões no app do smartphone. Teremos também no app um mostrador que será atualizado a cada 30 segundos com o valor da temperatura da CPU da placa.
O circuito abaixo usa apenas dois leds e dois resistores (usei resistores de 330 ohms) para limitar a corrente. O led vermelho será conectado no pino 8 (GPIO14) e o led verde no pino 12 (GPIO18), conforme o esquema abaixo:
Com o circuito montado, vamos agora configurar o app e cuidar da programação em python.
Configurando o app Blynk no smartphone
Se você ainda não usou o Blynk dê uma olhada no post Use o Blynk para controlar o Arduino via bluetooth. Lá eu explico mais sobre como funciona o app, como realizar a instalação e também as configurações iniciais.
Para criação do projeto, selecione New Project na tela inicial. Na tela seguinte, defina um nome para o projeto, selecione a placa Raspberry Pi 3 B e a conexão Wifi:
Clique em CREATE e você receberá um aviso informando que um token foi enviado para o seu email. Nós vamos utilizar esse token posteriormente no nosso programa em Python.
Na tela seguinte (layout), clique no sinal de + para adicionar dois botões na tela:
Para mover um botão na tela ou redimensioná-lo, mantenha o botão pressionado e arraste de acordo com a sua preferência. Clique no primeiro botão e na tela Button Settings selecione o pino virtual V1 conforme a imagem abaixo. Volte para a tela anterior e faça o mesmo procedimento para o segundo botão, escolhendo o pino virtual V2:
Na tela de layout, selecione mais uma vez o botão com o sinal de + e adicione agora o componente Gauge, configurando para ele o pino virtual V3 e atualização a cada 30 segundos:
Terminada a configuração do app, clique no botão de “play” na parte superior direita da tela de layout. Com isso, o nosso programa já estará rodando e apenas aguardando a configuração do token dentro do Raspberry para realizar a conexão.
Instalação biblioteca BlynkLib e programa Python
Antes de instalar as bibliotecas necessárias, vamos realizar aquele bom e velho upgrade no Raspbian. Para isso utilize os comandos abaixo:
sudo apt-get update sudo apt-get upgrade
A atualização deve demorar alguns (bons) minutos, e em seguida utilize os comandos a seguir para instalar a biblioteca BlynkLib e também a gpiozero, que será utilizada para mostrar a temperatura da CPU:
sudo pip install blynk-library-python sudo pip install gpiozero
Finalizada a instalação, abra um editor de textos na Raspberry Pi (como o nano, por exemplo) e coloque dentro dele este programa em Python, salvando o arquivo com a extensão py. No nosso caso, o nome do programa ficou como blynkrasp.py.
Não esqueça de colocar na linha 15 do programa o token que você recebeu por email. É esse token que vai permitir a conexão com o app no smartphone.
#Programa: Blynk com Raspberry Pi #Autor: Arduino e Cia import BlynkLib import RPi.GPIO as GPIO from gpiozero import CPUTemperature GPIO.setmode(GPIO.BCM) # Define as GPIOs 14 e 18 como saida GPIO.setup(14, GPIO.OUT) GPIO.setup(18, GPIO.OUT) # Inicializa Blynk blynk = BlynkLib.Blynk('seu token aqui') # Registra os pinos virtuais @blynk.VIRTUAL_WRITE(1) def my_write_handler(value): print('Valor de V1: {}'.format(value[0])) #Acende ou apaga o led vermelho, dependendo #do valor recebido if value[0] >= "1": GPIO.output(14, 1) else: GPIO.output(14, 0) @blynk.VIRTUAL_WRITE(2) def my_write_handler(value): print('Valor de V2: {}'.format(value[0])) #Acende ou apaga o led verde, dependendo #do valor recebido if value[0] >= "1": GPIO.output(18, 1) else: GPIO.output(18, 0) @blynk.VIRTUAL_READ(3) def my_read_handler(): #Envia o valor da temperatura da CPU cpu = CPUTemperature() print(cpu.temperature) blynk.virtual_write(3, cpu.temperature) while True: blynk.run()
Execute o programa usando o comando
sudo python blynkrasp.py
O programa vai utilizar as portas virtuais 1, 2 e 3 para comunicação com o app Blynk no smartphone. As portas virtuais 1 e 2 vão receber os dados do app, acionando as GPIOs 14 (pino 6) e 18 (pino 12) da Raspberry Pi, respectivamente. Já a porta virtual 3 irá enviar para o app, quando solicitado, a temperatura da CPU da Raspberry Pi, lida do sensor embutido na placa
Lembrando que da mesma forma que acionamos dois leds podemos usar o mesmo princípio para conectar por exemplo relés na GPIO, tendo assim um eficiente sistema de automação residencial de baixo custo.
Gostou? Então confira outros posts com Blynk aqui no blog!