30 junho 2019

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.

Blynk com Raspberry Pi e Python

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:

Circuito Raspberry Pi 3 Leds com Blynk


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:

Tela 1 Blynk - Novo projeto

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.

Tela 2 Blynk - Token

Na tela seguinte (layout), clique no sinal de + para adicionar dois botões na tela:

Tela 3 Blynk - Adicionando botões

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:

Tela 4 Blynk - Configurando botões

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:

Tela 5 Blynk - Configurando mostrador gauge

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.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#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

Tela 6 - Blynk - Projeto Final

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!

Nenhum comentário:

Postar um comentário