Open top menu
domingo, 5 de julho de 2015


Seguindo com os projetos de automação com a AutomationShield 2.0, hoje vamos publicar um projeto com Ethernet W5100, RTC DS130, LCD I2C, DHT11, aplicativo Android e uma página HTML para configuração, agendamento e acionamento da placa.
Página html para configuração, agendamento, acionamento e leitura de temperatura da placa.
Aplicativo Android
Já publicamos outros projetos com WS5100. O projeto não é compatível com shields baseados no chip ENC28J60, mas diferentes versões do W5100 podem ser usadas.

Mini Shield

Shield para Arduino

Os dois shields são 100% compatíveis com o projeto e código fonte, vamos ver em detalhes as conexões com o Automation Shield.

Lista de componentes
1 - Placa Automation Shield 2.0, a venda em nossa loja virtual.
1 - Arduino NANO V3.0
1 - RTC DS1307.
1 - LCD 1602 com interface serial I2C.
1 - Shield de Ethernet baseado no chip W5100.
10 - Fios com conectores MODU para conexão do módulo.
6- Barras de terminais para conexão do Ethernet com o Arduino Nano.
1 - Fita RGB
1 - Sensor de temperatura e umidade DH11.
1 - Fonte 12V x 3A.

Conexões do projeto com mini Shield
Conexões do projeto com Ethernet Shield

A imagem abaixo mostra como deve ser a conexão ICSP entre e Shield e Arduino Nano. A conexão deve ser feita de forma que os shield se conecte conforme imagem abaixo. Além da conexão ICSP é necessário jumpear os pinos D13, D12, D11 e D10.

Conexões das Saídas

Código Fonte
O código fonte do projeto é 100% compatível com os dois Shields de Ethernet baseados no chip w5100 (Mini Shield e Arduino Uno).

Página Html
A página HTML deve ser aberta no browser e pode ser executada a partir de computadores ou dispositivos Android.
No cabeçalho é apresentado o horário, temperatura, umidade e Modo. Apenas no modo Automático(Agendado) é permitido o acionamento direto das saídas. A página atualiza a cada 5 segundos o horário e estado das saídas da placa.

A página possui uma funcionalidade para alteração do horário gravado no DS1307
Permite alterar os horários de agendamento das saídas de relés
E no modo manual, os botões ficam habilitados para acionar as saídas diretamente

Na página é configurado o IP de acesso a placa, se o IP da placa for alterado é necessário alterar a variável ipArduino com o novo IP de acesso.


Código fonte Arduino.
O código fonte do Arduino usa a mesma base do projeto do Aquadroid. Abaixo destaco três itens importantes, o primeiro é a configuração do endereço I2C do LCD, o código fonte está configurado com o endereço "0x3F", ele é o endereço default dos LCDs 1602, alguns LCDs 4004 utilizam o endereço 0x27, é necessário identificar o endereço correto para funcionamento do LCD, no caso de problemas, utilizem o I2cScanner. O segundo item é o IP, se for necessário trocar, altere o conteúdo da variável byte ip[] com o novo IP.

O programa possui a variável EEPROMComandos  que está atribuída com o valor false. Alterando para true ela irá gravar na EEPROM os últimos comandos recebidos, dessa forma, se ocorrer uma queda de energia e a placa reiniciar, ela será restabelecida com os últimos comandos enviados pelo usuário. A EEPROM do Arduino tem uma vida útil de 100.000 gravações, manter na EEPROM todos os comandos recebidos irá inutilizá-la, sendo assim, verifique qual será a quantidade de comandos enviados diariamente para determinar a vida útil. As variáveis de horário de agendamento e modo são gravadas diretamente na EEPROM e não devem ser removidas.

Vamos ver um vídeo do projeto.


Configurando o acesso externo (Pela Internet).
O primeiro passo é retestar a conexão antes de iniciar as configurações, se ocorrer algum problema será mais difícil de identificar a causa.
Teste diretamente o retorno da placa, digite no browser o ip http://192.168.0.202 da placa. A resposta da placa deve ser apresentada conforme imagem abaixo.
Se o retorno for apresentado com sucesso, podemos ir para o próximo passo de configuração do roteador. Não tente configurar o acesso externo antes de conectar com sucesso na rede local.

Configurando o roteador
Será usado um roteador DPC3925, ele é um dos modelos fornecidos em comodato pela Net.
Acesse a interface de configuração do roteador através do IP http://192.168.0.1 no browser. A página abaixo deve ser apresentada.
As configurações de fabrica desse modelo de roteador não exigem UserName e Password, verifique no manual do seu roteador o IP e autenticação de acesso. No modelo DPC3925 clicamos em LogIn sem preencher nenhum campo. Após o login, clicar no menu Applications & Gaming.
E depois no submenu PortRange Forwarding.
Devemos configurar uma linha da tabela com:

External Start Port e EndPort: Preencher com a porta que será utilizada para acesso, devemos escolher uma porta diferente da 80, que geralmente é bloqueada pelas operadoras, como sugestão utilize a porta 8091.
IP Address: Esse é o IP da rede interna que será redirecionado pela porta 8091 para acesso externo, digite o IP 192.168.0.202 configurado nas conexões do Arduino.
Start Port e End Port: São as portas utilizadas no IP que está sendo configurado, no Arduino usamos a porta 80.
Protocol: Selecione a opção TCP.
Enable: Marque a opção para habilitar a configuração.
Clique em Save Settings para salvar as configurações.

Testando o acesso externo
Para testar o acesso externo precisamos descobrir o IP externo do nosso roteador, o modo mais fácil é acessar o site www.meuip.com.br.
 Para confirmarmos que nossa configuração foi realizada com sucesso, abrimos no browser nosso IP externo com a porta configurada no passo anterior.  http://189.121.XXX.XXX:8091. Por questões de privacidade, apenas nesse post eu troquei meus últimos seis números do IP por XXX, use seu IP corretamente. O acesso a placa pode ser feito na rede local pelo IP do Arduino e pelo acesso externo com o IP do roteado e Porta configurada.
A página html pode ser alterada para acesso externo, basta alterar a variável com o IP e Porta.
Por exemplo, Se o IP  do roteador for 200.201.202.203 a alteração deve ficar:
var ipArduino = 'http://200.201.202.203:8091', não esqueça de colocar : entre o IP e Porta.
A página de setup deve ser aberta corretamente.

Configurando o aplicativo Android.
A configuração do aplicativo Android é simples, devemos apenas trocaro IP do Arduíno pelo IP do Roteador e Porta configurada, conforme feito na página de setup.

Após a configuração, o acesso é realizado com sucesso.

A configuração do acesso externo do roteador requer uma atenção especial. Se alguém descobrir seu IP e o protocolo da placa terá acesso total a sua placa de automação! Existe alguma forma de resolver isso? Sim, mas com alguns modelos de roteadores que permitem atualização para um firmware que suporta a criação de uma VPN, a VPN cria um túnel entre o roteador e o dispositivo que está acessando. Mas isso é assunto para uma futura postagem. Nunca acesse sua placa de redes abertas ou não seguras.

O código fonte está disponível no github, em breve publicaremos novos projetos com o AutomationShield 2.0.

Abraços e até a próxima.



Tagged
This is the most recent post.
Postagem mais antiga

15 comentários :

  1. Ola, muito bacana seu projeto, perfeito! gostaria de saber se vc poderia me ajudar com o meu, eu tbm criei um sisteminha de automação, funciona bem, mas ele é bem basico no html... e o seu roda direto do pc, de um arquivo, o meu roda dentro do arduino... seria excelente se pudéssemos trocar ideias. me add no face! https://www.facebook.com/andre.mion

    Grato desde já.

    ResponderExcluir
  2. Boa tarde!

    Qual o endereço da loja virtual para aquisição da placa de circuito impresso do projeto AUTOMAÇÃO COM ARDUINO, ETHERNET, RTC, LCD E DHT11?

    Obrigado,

    Carlos

    ResponderExcluir
  3. Boa tarde!

    Qual o endereço da loja virtual para compra da placa de circuito impresso?

    Obrigado,

    Carlos

    ResponderExcluir
  4. Olá, gostaria de comprar o Shild de Automção 2.0 mas nao encontro aonde comprar.
    Poderia me enviar o lnk de compra por favor?

    ResponderExcluir
  5. Gostaria de ver uma placa Shield para monitoramento eletrica.. tpo esta... http://www.lojaarduino.com.br/pd-156912-shield-sensor-corrente-30a-e-100a-voltagem-e-potencia-arduino-1092.html

    ResponderExcluir
  6. Parabéns pelos projetos, pesquisei varios ajax na internet, alguns bons, mas definitivamente os seu foram os melhores, mais completos e funcionais que encontrei. Recomendo montar um tutorial em ajax, acredito que cai ficar show, mais uma vez parabens. Já fiz várias recomendações do site. Abraços.

    ResponderExcluir
  7. Gostaria de saber se pode ajudar nesse projeto de automação seu como eu consigo incluir os dias da semana na programação

    ResponderExcluir
  8. Parabéns amigo, definitivamente o melhor site de projetos arduino, totalmente funcionais. Abraços.

    ResponderExcluir
  9. Parabéns projeto bem legal perfeito.
    Sou novo em programação e gostaria de sua ajuda a aprimorar mais ainda o seu projeto.
    Gostaria colocar no agendamento os dias da semana a ligar e desligar. Seria complicado implementar essa logica? Pode me dar uma orientação ate mesmo fazer um exemplo para que eu possa seguir e alterar os demais. meu e-mail para contato e guilhermelourenco2005@gmail.com

    ResponderExcluir
  10. Estou com algumas duvidas em um processo de automação que devo fazer.
    Se puder me ajudar entrar em contato no email: augustowojciuk@gmail.com
    Agradeço desde já.

    ResponderExcluir
  11. Ola, Bom dia!
    Gostaria de saber se vocês tem esse kit shild pra vender? Sou estudande de Eletrotecnica no Senai/MT.

    ResponderExcluir
  12. Seus projetos São mt bons!!!
    Quando vc continuará??

    ResponderExcluir
  13. Muito Bom seus projetos!!
    Qnd terá novos projetos?

    ResponderExcluir