Manual

do

Maker

.

com

Controle relé, porta e status com MQTT.

Controle relé, porta e status com MQTT.

Acho que o post poderia se chamar "Utilizando relé com Raspberry e ESP8266", mas essa é só mais uma das muitas tarefas que meu Raspberry Pi 2 está fazendo.

Dando continuidade ao projeto de IoT onde já mostrei como implementar MQTT, servidor DNS para resolução de nomes para Internet e para a rede local, comunicação MQTT com ESP8266, servidor e client NTP para ajuste de data/hora e afins,  nessa fase mostrarei como colocar alguns módulos relé para controle de lâmpadas e abertura de porta. O interessante nessa parte do projeto é que acender a lâmpada será um evento constante à 110v, enquanto o destravamento da porta se dá apenas pela sinalização de 12v, que pode ser feito diretamente com um transistor, mas vou utilizar uma das portas do relé apresentado nesse projeto.

Existem 2 tipos de relé; o convencional vendido em módulos para conectar em MCUs e o relé de estado sólido. Vamos nos ater ao primeiro.

O relé tem 5 pinos. Desses, 2 são para a bobina que aciona a chave, onde você envia um sinal de 5v@25mA (no modelo desse módulo). Os outros 3 são os pinos da tensão externa, que não tem relação com a MCU. O que você deve ter em mente é que trata-se de um interruptor. Para ficar mais claro, imagine que não há interruptor na lâmpada do teto, ela fica constantemente ligada por 2 fios. Se você cortar 1 fio, ela se apaga; se reconectá-lo, ela se acende novamente. É isso que o relé faz; esse 1 fio cortado é reconectado quando a chave do relé é acionada e é como se o fio fosse cortado ao destravar o relé. Colocarei um parágrafo em outra cor, sendo esse conselho que evitará você por fogo em sua casa, caso não tenha noção de energia elétrica.

Você não deverá ligar NEUTRO e FASE ao relé. A interrupção se dá pelo neutro OU fase. Não use NADA que vá além de 10A em 227v e nada que vá além de 12A em 110v. Para saber quantos amperes seu aparelho consome, aplique a seguinte fórmula:

A = {W}/{t}

Onde, "W" é Watts, que você deverá ter a informação registrada em algum lugar do aparelho, seja ele qual for. "t" é a tensão e "A" é o resultado da divisão em amperes.

Mas o relé também trabalha de outra maneira. Ele pode manter constantemente conectado o fio dessa lâmpada e interromper esse fio quando a bobina for acionada. Nesse caso, é como se ele recebesse um sinal para cortar o fio. Está ficando claro?  - Vamos melhorar isso, explicando cada um dos pinos em detalhes.

Common (C)

Entrada da fase (usando a fase como exemplo). Ainda utilizando a lâmpada sem interruptor tal qual exemplificado acima, suponhamos que você corte um dos fios e por acaso esse fio é o fase. uma ponta dele vai em C e a outra vai em NC ou NO, conforme explicado a seguir.

Normally Closed (NC)

Normalmente fechado significa que nesse lado o fluxo é continuo quando a bobina do relé não é acionada. Como no exemplo uma ponta do fio cortado foi conectado ao Ce a outra ponta agora está sendo conectada ao NC, imediatamente a lâmpada voltará a permanecer ligada. Se você acionar a bobina, a lâmpada desligará (enquanto você mantiver a bobina acionada).

Normally Open

Normalmente aberto significa que se você ligou um lado do fio cortado ao C e a outra parte desse fio cortado ao *NO ,*invés de NC, a lâmpada permanecerá desligada exceto você acione a bobina para que ela ligue (e permanecerá ligada enquanto a bobina estiver acionada).

A bobina

Para acionamento da bobina, o consumo médio desse relé 5v é de 20mA, o que significa o limite do Arduino UNO  e 5mA mais no ESP8266, além de subtensão. Algumas MCUs e outras arquiteturas trabalham à 3.3v, que não tem nem tensão e nem corrente suficiente para acionar o relé. Nesse caso, uma alternativa éa utilização de um transistor NPN, de forma que você pode oferecer uma tensão de 5v externa aos pinos de GPIO da MCU, e assim evita um dos riscos, que é queimar o pino por esgotamento dos recursos.

Barulho no acionamento do relé

Se for seu primeiro contato com relé, provavelmente você se assustará ao acionar a bobina. Ele sempre fará um barulho de "plac" ao acionamento e interrupção. (perdoe-me pela onomatopéia para exemplificar o funcionamento).

Proteção contra o retorno da bobina

Quando o relé é destravado, a bobina pode produzir um retorno forte o suficiente para queimar a MCU inteira. No melhor dos casos, gerará instabilidade ou resets. Para eliminar esse segundo problema, utiliza-se um diodo (1N4001, por exemplo).

O optocopler

Uma segunda opção contra o retorno da bobina seria a utilização de um optoacoplador. Um foto-acoplador tem o propósito de oferecer isolamento físico ao circuito, de modo que não importa o que aconteça do lado B do componente, o lado A estará sempre protegido.

Módulos relé para microcontroladores

E aí entra a parte legal. Você não precisa montar um circuito improvisado, a não ser que deseje. Se é essa sua intenção, recomendo esse meu outro artigo a respeito de relês. Nele, você deverá montar todo o circuito manualmente.

Se voce quer fazer um projeto grande, provavelmente montar seus relés será a melhor opção pela enorme diferença de custo. Para automação residencial simples, pode valer mais a pena pegar módulos prontos e focar somente na montagem e configuração. Além de tudo, o circuito pode ser bastante elegante e ter de 1 a N relés prontos para uso.

Aqui eu tenho esses 3 módulos da foto e um monte de relés soltos para montagem. Vou focar nos módulos por causa do projeto proposto.

Recomendações sobre a implementação

Se você começar a criar tópicos a revelia, sua implementação vai virar uma bagunça e você vai ter um produto final amador. Sugiro que se você não tem entrosamento com o protocolo referido, leia esse post que escrevi justamente para ser adendo a esse artigo que vos escrevo.

Veja a montagem no Fritzing e o video a seguir, onde mostro alguns relés e módulos de 1, 2 e 4 relés. Depois disso (logo mais abaixo), vamos começar a brincadeira com a lâmpada da minha bancada, seguido pela destrava da porta.

rele_fritzing-300x190.webp

Mais uma vez, os detalhes dessa implementação (caso deseje montar seu próprio circuito) estão nesse link. Esse vídeo a seguir é exclusivamente para apresentar o relé e os módulos, a identificação da pinagem, a diferença do módulo comum e o circuito com optocopler.

Isso é algo fora do padrão, já que o Raspberry é também meu broker, mas alí estão os GPIO dando sopa. Eu vou utilizá-los para acionar os relés, e assim já aproveito pra mostrar como é simples utilizar o GPIO em qualquer board que rode Linux e disponibilize esse recurso.

Um engano comum que eu tenho visto é quanto à identificação dos GPIO. nesse outro post tem dicas preciosíssimas sobre Raspberry, dentre elas, a tabela do GPIO de todos os modelos e um exemplo em shell, que reproduzo mais abaixo. Antes de fazer toda a configuração e se frustar, a melhor opção é comprovar o funcionamento com um LED. Eu escolhi o pino 40, que é o GPIO 21 da Raspberry Pi 2. Para testar, coloquei um LED de 3mm com um resistor de 330Ω com o seguinte conjunto de comandos no shell (o que começa com cerquilha é só comentário para informar-lhe o que estou fazendo):

#ganhar acesso de root
sudo su

#mudar para o diretório do GPIO
cd /sys/class/gpio

#listagem pra confirmar que nao tem GPIO em uso
ls

#habilitar o GPIO 21, que esta no pino 40
echo 21 >export

#confirme que o recurso foi habilitado
ls

#se voce viu o diretório gpio21, siga
cd gpio21

#agora escolha a direção (in/out)
echo out >direction

#para acender o LED 1, para apagar 0
echo 1 >value

Perceba que isso é idêntico ao que qualquer controladora faz. Se fosse Arduino (pino 21 no Mega, sei lá...):

setup(){
    pinMode(21,OUTPUT);
    digitalWrite(21,HIGH);
}


Se fosse PIC (com MikroC):

sbit TRIS_LED    at TRISA3_bit;
sbit LED_port    at RC3_bit;
 
TRIS_LED = 0;
LED_port = 1;

O princípio é o mesmo; INPUT ou OUTPUT e LOW ou HIGH.

Como eu já havia feito anteriormente acionamento de lâmpada com relé, não tive dúvidas quanto sua utilização. Mas como eu queria ver o resultado logo (ansiedade) coloquei um LED usando o próprio 5v do Raspberry só pra sorrir. Mas se você está iniciando com relé, faça igual para não ter problema. Abaixo, um esquema feito no Fritzing. E essa é outra dica que quero deixar-lhe; se você adicionar a Raspberry no balcão do Fritzing, encostando o mouse sobre os pinos você saberá a que GPIO ele pertence! Isso é muito, muito prático e vai te ajudar a não errar!

rasp_rele_bb-300x146.webp

E fiz um vídeo bem curto pra que você veja o acionamento do relé. Configurei de modo que ao desligar o LED da protoboard, o relé aciona seu LED. Isto é, utilizei o COM e o NC. Veja o vídeo, assim você já terá uma visão primária da minha estrutura no balcão de DIY que eu fiz pra brincar com eletrônica.

Infelizmente terei que dividir essa implementação em mais 1 ou 2 posts porque senão ficará estupidamente grande o artigo, mas até aqui já deu pra ver que a brincadeira será boa, hum?

Inscreva-se no nosso canal Manual do Maker Brasil no YouTube.

Próximo post a caminho!

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.