EXPANDINDO PORTAS ESP8266-01

 

Todos conhecem a limitação do ESP8266-01 em relação ao número de GPIO disponíveis, uma limitação enorme para quem pretende usar mais de uma saída como por exemplo para acionar reles.

Em eletrônica sempre existira uma solução para cada caso, se não existe será criada, partindo deste princípio é que resolvi fazer este breve tutorial, a intenção é a de mostrar como podemos controlar vários reles via ethernet, ou internet se necessário, valendo-se da tecnologia I2C, um conversor I2C fácil de conseguir no mercado, uma biblioteca adequada, alguns jumpers, uma fonte de alimentação, uma protoboard, e um modulo rele, e já estamos prontos para iniciar nosso projeto didático.

Cabe destacar, que este tutorial tem finalidade meramente didática, mas se você é daqueles que não gosta de meter a mão na massa e deseja um produto pronto para usar com acabamento profissional, no final desta descrição encontrara um link.

 

O circuito, como podem notar no desenho abaixo, não deixa dúvidas quanto a sua simplicidade.

 

PINAGEM ESP8266-01

OS GPIOS E SEUS ESTADOS:

Note que, se GPIO0 e GPIO2 estão no nível alto, o ESP está no modo o programa sendo executado.

Se GPIO0 está no nível baixo, e GPIO2 está no nível alto, após darmos um reset, o ESP entrara no modo programação, para carregar nosso programa.

O CIRCUITO:

Podemos apreciar vendo o circuito, que temos 4 resistores ligados no VCC da fonte, e no outro estremo de cada um deles, temos ligados da esquerda para a direita, GPIO0, RESET, GPIO2, e CH PD.

Note também que os GPIO0 e GPIO2 estão ligados a nosso dispositivo I2C, como o que recomendo e mostrarei os detalhes no fim deste, as duas R, R7 e R8 podem ser desprezadas caso você use o modulo que eu usei, porque o modulo já vem com todo o necessário.

Note também que GPIO0 está ligado a uma chave que pode ser um botão, ou um liga/ desliga, para colocar o ESP no modo programação quando for necessário carregar um programa, neste caso, desligue a fonte, mantenha a chave fechada, ou botão pressionado, e ligue a fonte, seu ESP já está pronto para ser programado via IDE Arduino.

Se precisar mais detalhes sobre isso, existe ampla informação no meu canal ,e nos canais de outros colegas, neste tutorial parto do suposto de que você já sabe como programar um ESP8266.

O DISPOSITIVO 12C:

Este é um típico dispositivo I2C que pode ser comprado em inúmeros lojas do ramo, por aproximadamente R$15,00 ou R$25,00 depende de cada comercio, pesquise.

Ele será alimentado pela mesma fonte de 3.3V que alimentara nosso circuito, o pino SDA deve ser ligado no GPIO0 e o pino SLC no GPIO2, e os pinos VCC e GND no mesmo VCC e GND da fonte que alimenta o ESP, no meu teste usei uma fonte para protoboard que fornece duas tensões selecionáveis via jumper, 3.3V e 5V.

CONVERSOR TTL FTDI:

Fonte utilizada:

                                       ywRobot

LIGANDO O I2C NO ESP:

 

Assim ficara a ligação na sua protoboard.

Depois de fazer e revisar as ligações, utilize um modulo conversor TTL como o FTDI com seletor de voltagem 5V 3.3V, ligue RX do ESP no TX do conversor, e o TX do ESP no RX do conversor, e ambos GND devem estar no mesmo GND da fonte, ESP e conversor.

 

Carregue o programa no ESP8266, seguindo as instruções de colocar o GPIO0 no GND e reiniciar o ESP, para entrar no modo programação, uma vez carregado o programa cujo link estará disponível no final deste documento, bem como a biblioteca utilizada, você pode usar um modulo rele do tipo que contém uma interface para de opto acopladores ou transistores.

MODULO RELE:

Eu usei um como o de com 16 reles para fazer o vídeo e fazer o teste mas você pode usar o de sua preferencia.

 

As saídas do I2C irão acionar as entradas isoladas do modulo rele, no meu caso usei 7 saídas.

Se quer aprofundar seu conhecimento sobre estes chips da família PCF8574 xx, existe farta informação na internet

 Como escrito acima, este é um tutorial didático, mas se você quiser, pode adquirir um modulo pronto para uso com garantia de um fabricante, como exemplo veja o link abaixo: 

Você pode precisar saber qual é o endereço I2C do seu dispositivo, se precisar carregue o programa I2C com todas as ligações feitas e vera no serial monitor o endereço impresso a cada 5 segundos, tanto o programa, como o I2C scaner estão na pasta para download no link abaixo.

 

Aqui neste link abaixo você pode você pode baixar o projeto completo:

Projeto completo Google drive

Abaixo um breve vídeo que fiz durante a montagem:

Obrigado!

Eng. Carlos Kwiek

Exibições: 185

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Gustavo Brunno Ferreira Valença em 8 julho 2017 às 19:23
Olá Carlos, gostaria de saber se tem como eu controlar um modulo de 16 relés com um nodemcu + i2c e interruptor pulsador para automatizar minha casa. Desde já, parabéns pelo post.

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2017   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço