Controle relé, porta e status com MQTT.

IMG_20160213_213105Introdução

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.

Funcionalidade dos pinos
Funcionalidade dos pinos

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 = \frac{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 e 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 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 optocopler. 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.

Como montar um circuito para relé
Como montar um circuito para relé

Mais uma vez, os detalhes dessa implementação (caso deseje montar seu próprio circuito) estão nesse link. Esse video 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 preciosissimas 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):

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

Se fosse PIC (com MikroC):

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!

Conexões de teste
Conexões de teste

E fiz um video 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 video, 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 newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Próximo post a caminho!

Agregador de Links - Loucuras da Net

Precisa de hospedagem? Então fuja da Locaweb e vá para Euler.

euler_banner

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta