CONTROLE REMOTO WEB (ETHERNET) C/ 7 CANAIS ON/OFF – C/ ARDUINO NANO E ENC28J60 (REF333)

Que tal controlar equipamentos na sua rede local usando seu celular?…

Este artigo tem por objetivo construir um pequeno servidor Web para comandar 7 reles em modo retenção (on/off). Veja o esquema abaixo:

Para orquestrar a operação do sistema estamos usando um pequeno Arduino Nano. Já para a conexão com a rede Ethernet (rede local) foi utilizado um módulo ENC28J60 ligado a rede através de cabo.

Podemos acessar este mini servidor Web usando qualquer browser disponível em seu celular, notebook, tablet ou mesmo um PC, que estejam conectados a rede local. Este browser pode ser o Google Chrome, o Firefox, Internet Explorer ou nativos das marcas dos celulares. Basta apenas digitar o numero do IP que você usou no código compilado pelo ambiente de programação.
Note que este IP terá que ser alterado no programa conforme os valores de sua rede local, pois as redes Ethernet tem identificações diferentes para cada uma delas. Para você saber qual é este IP, basta você usar o “Prompt de Comando” de um PC conectado na sua rede local. Clique nele e digite > ipconfig.
Depois verá abrir uma tela como esta:

Pronto! Agora você poderá ler os valores de IP da sua rede local. Copie o mesmo número alterando somente o final (o valor depois do último ponto) para um valor que não esteja sendo usado na sua rede por outro dispositivo. Depois você tem que digitar este IP no local apropriado do código, conforme mostra a gravura acima. Em seguida, compile e carregue seu Arduino Nano.
Quando acessamos nosso mini servidor, de imediato irá abrir a página 0, ou seja, a primeira página. Nela veremos uma caixa de texto para o usuário enviar uma senha única. Veja abaixo como se parece, ao abrir usando um PC tradicional :

A senha tem apenas 4 caracteres, sendo fixos no código. A senha atual no código é Pi31. Você também poderá modificar esta senha alterando no código, tomando o cuidado de usar apenas caracteres alfabéticos do tipo minúsculas, maiúsculas e números. Não use quaisquer outros caracteres, sob o risco de não funcionar.
Após digitar a senha correta e em seguida apertar o botão ‘Submit’, será carregado a página 1, ou seja, a tela de comando dos reles.
Basicamente são 7 botões que alternam entre ligado e desligado ao serem apertados. Logo abaixo de cada um deles temos o status do respectivo rele. Veja na figura abaixo como se parece esta tela:

Veja agora algumas características adicionais importantes do programa:
1 ) Se não houver nenhum aperto de botão em 2 minutos, então o mini servidor irá voltar para a tela da senha, por motivos de segurança.
2 ) Quando se digita e envia uma senha errada, haverá o retorno de uma mensagem em vermelho: Senha Incorreta.
3 ) Após 3 tentativas, ocorrerá o bloqueio da tela, por 15 minutos. Nesta situação, mesmo inserindo a senha correta não irá sair do modo bloqueio. A saída é esperar o tempo ou resetar o mini servidor para reiniciar normalmente.
4 ) Foi previsto o salvamento do estado dos reles na EEprom interna do Arduino Nano. Desta forma, caso venha a ter uma parada momentânea de energia elétrica, será restabelecidos os estados anteriores de antes do término de energia.
5 ) Foi escolhido o uso do Watch Dog Timer no programa. Ele serve para resetar o Arduino no caso de acontecer um travamento inesperado. Eles podem acontecer de repente e suas causas podem ser indeterminadas, talvez por fontes de interferências de grande potência, picos na rede, a quem diga “raios cósmicos”, etc. Quando o programa se perde por um travamento, o Watch Dog Timer irá resetar após 2 segundos, voltando a normalidade.

Com respeito a alimentação do módulo ENC28J60, preferimos não usar a tensão de 3V3 fornecida pelo pino do Arduino. Em testes, não conseguíamos entrar na rede. Fazendo medições notou-se que a tensão 3v3 fornecida pelo Arduino caia abaixo dos 2,7 Volts em certo momentos de operação do módulo. Parece que o módulo necessita de boa capacidade de corrente para funcionar bem. Então, foi usado um regulador de 5 volts (barato) e 2 diodos em série, funcionando perfeitamente bem. Se você tiver um regulador de 3v3 poderá tentar usa-lo no lugar dos diodos.
Você poderá baixar a pasta zipada com os arquivos desta montagem no final deste artigo. Descompacte ela e clique na pasta Arduino ‘CR_ETHER_7C’ para abrir o seu ambiente de programação Arduino. Observação importante: você tem que ter baixado e instalado previamente o ambiente de programação Arduino em seu dispositivo para que isto aconteça.
Altere o IP para um valor compatível com a sua rede, conforme vimos acima. Lembre-se de mudar os últimos valores após o último ponto, para um valor aleatório entre 0 e 255. Não use o mesmo valor de terminação de outros dispositivos conectados em sua rede.
Faça download da biblioteca “Ethercard V1.1” para o ambiente de programação do Arduino. Faça conforme a figura abaixo:

Clique em ‘Sketch’, depois em ‘Incluir Biblioteca’ e finalmente em ‘Adicionar Biblioteca Zip’. Escolha o local onde você baixou a biblioteca Ethernet e clique sobre seu ícone. Pronto. O nome ‘EtherCard’ deverá constar na guia de bibliotecas.
Não esqueça de configurar o ambiente para operar com o Arduino Nano. Poderá conferir vendo a próxima gravura.

Configurado o ambiente para placa Arduino Nano, carregue o programa no Arduino Nano. As antes certifique que o cabo USB esteja ligado no Arduino Nano e no PC com o ambiente de programação. A figura abaixo mostra onde clicar para carregar o programa no Arduino Nano:

Conforme a figura acima, para carregar precisa clicar em ‘Sketch’ e depois em ‘Carregar’. Após ter feito a carga você verá uma mensagem de confirmação de sucesso no final da página.
Se houver algum erro, verifique as ligações da placa, a alimentação do circuito e a conexão via cabo USB com o PC. Poderá testar esta conexão por carregar um exemplo do Arduino, como o ‘Blink’, que faz piscar o led da própria placa do Arduino. Preste atenção na mensagem que o compilador retorna. Ela pode ajudar muito a resolver qualquer problema de compilação. Ligue o cabo da rede no módulo ENC28J60 antes de prosseguir.
Feito a carga no Arduino e a conexão com a rede local, abra um browser em seu celular e digite o IP que você programou no código. Lembre-se desta vez de usar pontos ao invés de vírgulas.
Aperte a tecla ‘Enter’ para acessar o mini servidor. Aguarde a página inicial abrir. Insira a senha Pi31 (ou a sua senha) e de ‘Enter’ ou clique em ‘Submit’. Abrindo a página 1, acione os botão clicando neles e observe os reles ligando e desligando em sua aplicação.
Finalizando este artigo fica este incentivo para você: que tal usar a sua imaginação para inventar aplicações práticas para este circuito?
Nota importante: Esta montagem se presta apenas a uso na rede local. Para usar acessando diretamente da rede mundial de internet exigirá mudanças de configuração envolvendo portas do roteador e possivelmente alteração na biblioteca. Não tenho nenhuma informação neste sentido. Mas você mesmo poderá pesquisar na Internet esta possibilidade.
Obs. Esta montagem é experimental, sendo de caráter didático, montada apenas em placa experimental (do tipo “Protoboard”), sujeita a “bugs” ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades.

Segue a pasta zipada com todos os arquivos desta montagem:

CR_ETHER_7C

Em 23/04/2020 foi postado esta nova versão, com botões maiores e a situação atual dos botões indicadas dentro dele, além de caber na tela do celular sem precisar navegar para cima ou para baixo:

CR_ETHER_7C_V2

Manuais:
ENC28j60 datasheet
Foto Modulo ENC28J60
Manual do Arduino Nano
Baixar ambiente Arduino
Baixar EthernetCard Library zip

Curiosidades:
A casca resistente ao impacto do pomelo — Teve um Projeto?
A mandíbula do crocodilo
A enigmática cola da aranha
Os sensores do besouro
A capacidade de cicatrização do corpo humano
Plantas com habilidade matemática

Outros assuntos:
Como lidar com o isolamento social
Como a Bíblia pode ajudar quem tem pensamentos suicidas?
O que é “a grande tribulação”?
Será que a Bíblia ensina que a terra é plana?
Como haverá paz na Terra?
Será que Deus usou a”evolução” para criar os diferentes tipos de seres vivos?

Vídeos:
“Disciplina é amor”
“Estava cheio de minha vida”
“Onde encontrar verdadeiro amor num mundo cheio de ódio?”
Por que existe tanto sofrimento?”

Filmes Bíblicos para ver com a sua família:
Jonas – Uma lição de coragem e compaixão
“Não falhou nem uma única palavra”
“Tenha plena certeza que Deus o fez Senhor e Cristo” – parte 1
“Tenha plena certeza que Deus o fez Senhor e Cristo” – parte 2
Exemplos de Avisos para os Nossos Dias
Sempre Confie em Jeová

Até o próximo artigo!

12 comments on “CONTROLE REMOTO WEB (ETHERNET) C/ 7 CANAIS ON/OFF – C/ ARDUINO NANO E ENC28J60 (REF333)

  1. Hola Claudio
    E cambiado la IP tal como me marcas y ahora fonciona
    pero cundo acedo ala pegina 0 no me dega hacer nado
    solo hay una lupa ni me dega cambiar la ip solo sale bloqueda la ip 192.168.0.66
    me sala con un candado como bloqueado ma gustari saber com o puedo
    colocar mi IP y que me funcione o como puedo acedr al mini sirvido que me foncione
    Un saludo
    Mnuel P

    1. Ya estás viendo la página cero. Luego ingrese la contraseña Pi31.
      Si usa una PC, haga clic en el cuadro de contraseña con el mouse.
      Si usa un teléfono celular, toque el cuadro de contraseña con el dedo y se abrirá el teclado a continuación para escribir.

  2. Hola Claudio
    el programa para interne de 7 cana le es muy interesante para mi
    pero ami no me funciona
    copio mi IP y la pego a donde me marca las dos lineas y lo compilo en Arduino nano
    y me da un error de IP Y no meló dega compilar despue tampoco encuentro una aplacacin para el telefono . si fallo en algo te pido perdón por mi poca esperencia
    Aprovecho para darte las gracia y muchas gracias por el programa de 32 canales que funciona de las mil maravillas .
    un saludo Manuel P

    1. Verifique que esté usando ‘,’ en lugar de ‘.’ al ingresar la IP en el programa. Ejemplo:
      192.168.0.66
      para
      192,168,0,66

  3. Grande larios parabens mais uma vez pelos projetos que você desenvolve e disponibiliza para a galera.
    estou usando esse canal pois a pergunta que vou te fazer é sobre um outro projeto porém o acesso esta fechado para perguntas.
    seria sobre o emissor chaveirinho que transmite a cada 40 segundos
    1-para alterar o tempo de transmissão de 3segundos para 1segundo por exemplo.
    2-possibilidade de se colocar no pino 5 uma saida para acionar um led toda vez que se transmitir.
    3-no pino 6 coloca um jumper a terra quando precisar cadastrar o receptor ai ele transmite sem ter que esperar a temporização.ai tira-se o jamper ele volta a transmitir pela temporização.

    gratto Larios

    1. Olá Marcos
      Caso encontre um tópico fechado, poderá usar o forum, criando um tópico e citando o nome do artigo e se possível a referencia (refxx).
      Você poderia dar o nome do artigo ou o número de referência?

      1. Sim .artigo chaveiro emissor de código Ht6p20b temporizado transmite a cada 40 segundos para fins de alarme de presença

        1. Por favor, veja o artigo original. Lá postei uma versão (apenas asm) que você poderá compilar e testar se funciona a contento. Pasta zipada tx_bloq.

          1. bom dia Claudio ta dificil compilar o novo arquivo poderia deixar compilado ja tentei 3 compiladores bom dia

          2. Verifique o post original que postei nova pasta com todos os arquivos compilados e funcionando.

Comments are closed.

Back To Top