13 janeiro 2019

Como usar o Hat Relé 4 Canais para Raspberry Pi

Neste post vamos ver como usar o Hat Relé 4 canais para Raspberry Pi, que pode ser utilizado para montar sistemas de automação residencial e que funciona com os mais variados modelos de placa da linha Raspberry Pi como a 3 B, 3 B+, 2, Zero, 3 A+, etc.

Hat Rele 4 Canais Raspberry Pi 3 B+

Utilizando somente 4 pinos da GPIO da Raspberry Pi, este Hat é capaz de controlar equipamentos como eletrodomésticos, lâmpadas e motores.

O Hat Relé Shield


Este Hat (um Hat é para o Raspberry Pi o que o Shield é para o Arduino, ou seja, um componente que expande as funcionalidades da sua placa sem que você tenha que montar complicados circuitos eletrônicos) é composto por 4 relés com capacidade máxima de 14 VDC ou 125 VAC, e corrente máxima de 20 A. Bornes com parafusos facilitam a conexão de fios e cabos:

Hat Relé Raspberry Pi

A placa usa os pinos 35 (GPIO 19), 37 (GPIO 26), 38 (GPIO 20) e 40 (GPIO 21) da Raspberry Pi, e você pode optar entre habilitar ou desabilitar o uso destas portas usando os jumpers do lado esquerdo da placa (imagem abaixo), ou seja, se você deseja usar apenas dois relés do shield, pode liberar as portas que seriam usadas pelos outros relés para outras funções, como por exemplo o uso de sensores e módulos.

Hat Relé 4 canais - Detalhes

O Hat conta ainda com leds indicadores de Power (ligado), e um led para indicar o estado de cada relé (ligado/desligado).


Conectando o Hat Relé Shield na Raspberry Pi


Não há segredos na instalação do Hat na sua placa Raspberry Pi. Simplesmente encaixe os pinos do Hat na GPIO e a conexão está pronta. Veja na imagem abaixo:


Observe que os demais pinos da GPIO (conector macho) continuam disponíveis para uso com sensores, módulos e outros componentes, como mencionamos anteriormente.

Na primeira imagem deste post mostramos o teste que fizemos da placa com um Display Touch 7" para Raspberry Pi, mas o procedimento a seguir funciona normalmente com um monitor de vídeo HDMI comum, se você estiver usando um.

Controlando relés usando Python


O programa a seguir, feito em Python, cria uma pequena janela na tela com 4 botões, permitindo que você acione cada relé individualmente. O mesmo botão serve para ligar ou desligar o relé, e a parte gráfica do programa é criada pela biblioteca TKinter, já presente no Raspbian (o sistema operacional usado na Raspberry Pi).

  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
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
#Programa: Hat Rele 4 canais para Raspberry Pi
#Autor: Arduino e Cia

# !/usr/bin/python3
from tkinter import *
from tkinter import messagebox
from tkinter import font

# Define biblioteca da GPIO
import RPi.GPIO as GPIO
GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)
GPIO.setup(19, GPIO.OUT)
GPIO.setup(26, GPIO.OUT)
GPIO.setup(20, GPIO.OUT)
GPIO.setup(21, GPIO.OUT)

#Pinos em estado alto para desligar os reles
GPIO.output(19, 1)
GPIO.output(26, 1)
GPIO.output(20, 1)
GPIO.output(21, 1)

#Armazena o estado do rele
b1=b2=b3=b4=1

cor_botao1=cor_botao2=cor_botao3=cor_botao4 = 'red'

top = Tk()
top.geometry("330x200+235+140")
top.title("Arduino e Cia")
top.configure(background='grey')

helv36 = font.Font(family='Helvetica', size=16, weight='bold')

def chamada_botao_1():
   global b1
   global cor_botao1
   b1 = not b1
   GPIO.output(19, b1)
   if b1 == 1:
    cor_botao1 = 'red'
   elif b1 == 0:
    cor_botao1 = 'green'
   desenha_botao1()
      
def chamada_botao_2():
   global b2
   global cor_botao2
   b2 = not b2
   GPIO.output(26, b2)
   if b2 == 1:
    cor_botao2 = 'red'
   elif b2 == 0:
    cor_botao2 = 'green'
   desenha_botao2()
   
def chamada_botao_3():
   global b3
   global cor_botao3
   b3 = not b3
   GPIO.output(20, b3)
   if b3 == 1:
    cor_botao3 = 'red'
   elif b3 == 0:
    cor_botao3 = 'green'
   desenha_botao3()
   
def chamada_botao_4():
   global b4
   global cor_botao4
   b4 = not b4
   GPIO.output(21, b4)
   if b4 == 1:
    cor_botao4 = 'red'
   elif b4 == 0:
    cor_botao4 = 'green'
   desenha_botao4()

def desenha_botao1():
   B = Button(top, text = "RELAY 1", command = chamada_botao_1, font = helv36, fg=cor_botao1)
   B.config(width="8",height="2")
   B.place(x = 30,y = 30)
   
def desenha_botao2():
   C = Button(top, text = "RELAY 2", command = chamada_botao_2, font = helv36, fg=cor_botao2)
   C.config(width="8",height="2")
   C.place(x = 180,y = 30)
   
def desenha_botao3():
   D = Button(top, text = "RELAY 3", command = chamada_botao_3, font = helv36, fg=cor_botao3)
   D.config(width="8",height="2")
   D.place(x = 30,y = 110)
   
def desenha_botao4():
   E = Button(top, text = "RELAY 4", command = chamada_botao_4, font = helv36, fg=cor_botao4)
   E.config(width="8",height="2")
   E.place(x = 180,y = 110)

#Desenha botoes
desenha_botao1()
desenha_botao2()
desenha_botao3()
desenha_botao4()
top.mainloop()

Salve o programa em um arquivo com a extensão .py e execute usando o comando abaixo, onde o nosso arquivo é o button.py:

sudo python3 button.py

A tela gerada pelo programa deve ficar parecida com essa:

Controle de relés usando Python

Agora basta você usar os botões da sua tela para controlar os relés. Os botões com texto em verde são dos relés ativos e os botões com texto em vermelho mostram os relés que estão desligados.

2 comentários:

  1. Boa tarde, é possível empilhar esse módulo ? no caso dois.

    ResponderExcluir
    Respostas
    1. Oi Roberto,

      Infelizmente não é possível, a não ser que você faça algumas mudanças no hardware, já que o hat usa portas específicas.

      Abraço!

      Adilson

      Excluir