Use o Blynk com Raspberry Pi e Python

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!

5/5 - (1 voto)

Related posts

Comunicação Arduino e Raspberry Pi com LoRa

by Arduino e Cia
4 anos ago

Comunicação Arduino e Raspberry Pi usando I2C

by Arduino e Cia
6 anos ago

Como usar um display LCD I2C com Raspberry Pi

by Arduino e Cia
8 anos ago
Sair da versão mobile