Na empresa em que trabalho, estamos desenvolvendo um projeto para uma usina hidrelétrica, no qual a intenção é abrir o portão eletrônico com um sistema baseado em Arduíno. Até aí a ideia parece simples, mas somente até aí!
A situação é a seguinte: O portão fica na entrada da usina, o comando de abrir e fechar o portão fica na sala de controle das turbinas. O problema é a distância entre o comando e o portão. Algo em torno de 700 metros.
Próximo ao portão, teremos pontos de rede, pois serão instaladas algumas câmeras IP que também serão controladas da sala de controle das turbinas.
Pensamos no seguinte, um módulo Arduíno na sala de controle das turbinas recebendo o sinal do comando de abertura do portão e enviando para o outro módulo Arduíno que por sua vez dá o comando para o portão abrir ou fechar e também recebe o sinal da "campainha" do portão e envia para o módulo da sala de controle, tudo isso em rede. Ufa!!! Acho que consegui explicar a ideia!!!
O problema maior é que eu pesquisei muito na internet e ainda não achei nada semelhante, somente algumas ideias para abrir o porão via browser ou android.

Será que alguém consegue me dar uma luz???

Exibições: 2410

Responder esta

Respostas a este tópico

Jair, bom dia.

Que tal usar um Ethernet shield .

Tem varios projetos aqui no LG que utilizam este shield.

Use-os como refêrencia para o seu projeto.

Rui

A intenção é justamente essa, usar 2 arduinos e 2 ethernet shields, a minha dúvida maior é na questão da comunicação entre eles.

Muito obrigado pela colaboração!!!

Cara, sua implementação pode ser feita de varias formas, vou citar 3.

 

1- Cabo simples ligando arduinos.

2- Via ethernet.

3- Via comunicação sem fio.

 

 1 - Pra o primeiro, ligação via cabo, não há muito o que falar,  é só passar os cabos e ver pela distancia qual o melhor protocolo, que eu lembro tem o SPI (  http://labdegaragem.com/profiles/blogs/tutorial-comunica-o-spi-seri... )  e o Serial (  http://labdegaragem.com/forum/topics/comunica-o-serial-entre-dois-a... )

 

2- Para comunicação Ethernet o nosso nobre Rui viana já expos, o resto é estudar.

 

3- Já se o lance passa a ser comunicação sem fio,  ai a coisa fica bonita, pois posso sugerir 3 modelos:

  a- Xbee -  É mais profissinal,  porem, mais caro,  tem modulos que podem alcançar facilmente a distancia que você deseja.

   b- NRF24L01 -  O modulo de maior potencia possibilita alcance de 1.200m sem barreiras,  se entrar barreira no meio, ai a coisa é outra,   esse é bem mais barato,  mas o suporte para ele vem da comunidade, ao contrario dos xbees que são produtos industriais.

   c- ESP8266 - Ao contrario dos xbee e nrf24l01, não cria rede propria,  ele usa sua rede wifi para comunicação,  é coisa nova, não tenho muito conhecimeto,  mas sei que é barato,  algo na casa dos R$ 35,00 cada modulo.

 

Bem, fica a seu gosto e bolso.

Na verdade, aí é que a coisa muda um pouco de figura, vamos fazer uma rede de fibra óptica para a usina. (Agora que a coisa ficou um pouco mais chique! kkk...)

Então vai ter que ser com ethernet shield mesmo, pq a distância a ser coberta tem vários obstáculos, o maior deles é a diferença do terreno, pois ao passar pelo portão, vc já encontra uma subida e logo depois uma bela descida, ou seja, sem fio fica meio inviável (no meu ponto de vista)!

O meu maior problema é fazer os dois arduinos se comunicarem (parte lógica da coisa), pois a parte física, beleza... é bem simples!

Muito obrigado pela colaboração!!!

já que o uso de ethernet shield foi escolhido, agora basta vc programar o sketch do arduino para fazer o ethernet shield rodar em modo webserver e webclient ao mesmo tempo. Dessa forma, o arduino que estará na sala de comando irá operar no modo webclient para enviar o comando de abertura do portão eletrônico e atuará no modo webserver para receber a informação de que a campainha foi acionada

O arduino que estará na entrada da usina irá operar no modo webserver para receber o comando de abertura do portão eletrônico (comando este que virá do arduino webclient da sala de comando) e atuará no modo webclient para enviar a informação de que a campainha foi acionada

já que o projeto é comercial, aceito inclusive receber honorários como consultor para ajudá-lo a implementar ;)

Muito obrigado pela colaboração!!!

Entao o não faz muito sentido vc usar 2 arduínos, uma vez que você tem uma sala de controle com câmeras e tal .. Deve ter um computadores, logo pode deixar um arduíno na ponta eum sistema web ou desktop rodando para gerenciar as requisições e controle, tornaria projeto mais fácil e barato para produzir.
Caso queira te entrego tudo pronto ... Com um incentivo monetário eh claro.

Jair Boa Noite, bom fiz isso aqui em minha casa, acredito que funcionaria normalmente, você poderá usar apenas um Arduíno e um Shield Ethernet e um rele 5V para ligar na saída e dar o pulso na central do portão. Eu criei um servidor no meu roteador que ao digitar o IP externo do meu provedor ele direcionava diretamente para o site que criei e deixei salvo no Arduíno, no site do Arduíno eu acendia um LED em um dos pinos do Arduíno.

Fiz um filmagem realizando o procedimento do 3G do meu celular, e o LED na placa do Arduíno na minha internet fixa acendeu normalmente.

(Não utilizei o PC para alimentar o Arduino deixei ele ligado a uma fonte e o cabo de internet que ia para o roteador)

Consegui associar tudo utilizando os tutoriais aqui no forum

Normalmente, as câmeras IP possuem comando para abrir e fechar trancas e também para acender e apagar luzes. Claro que necessita de algum circuito que recebe o comando da câmera IP e aciona os reles.

Caso não tenha os comandos, sugiro você montar um servidor na sua sala, pode ser apenas um computador com XAMPP (Apache, PHP e MySQL) e no portão, um Arduino com Ethernet Shield configurado como servidor.

Para dar a luz, você coloca o Relay Shield e liga a lampada nele.

Espero ter ajudado e boa sorte,

  'Eiju

//Programa: Automacao Residencial com Arduino e Ethernet Shield
//Autor: FILIPEFLOP
 
#include <SPI.h>
#include <Ethernet.h>
String readString;
 
int pino_rele1 = 3;
int pino_rele2 = 4;
boolean ligado = true;
boolean ligado_2 = true;
 
//Informacoes de endereco IP, gateway, mascara de rede
byte mac[] = { 0xA4, 0x28, 0x72, 0xCA, 0x55, 0x2F };
byte ip[] = { 192, 168, 0, 110 };
byte gateway[] = { 192, 168, 0, 1 };
byte subnet[] = { 255, 255, 255, 0 };
 
EthernetServer server(80);
 
void setup()
{
  Serial.begin(9600);
  pinMode(pino_rele1, OUTPUT);
  pinMode(pino_rele2, OUTPUT);
 
  //Inicializa Ethernet Shield
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
 
  Serial.println("FILIPEFLOP - Automacao Residencial");
 
  //Desliga os dois reles
  digitalWrite(pino_rele1, HIGH);
  digitalWrite(pino_rele2, HIGH);
}
 
void loop()
{
  EthernetClient client = server.available();
  if (client) {
    while (client.connected())
    {
      if (client.available())
      {
        char c = client.read();
        if (readString.length() < 100) {
          readString += c;
        }
        if (c == '\n')
        {
          //Controle do rele1
          Serial.println(readString);
          //Liga o Rele 1
          if (readString.indexOf("?ligar") > 0)
          {
            digitalWrite(pino_rele1, LOW);
            Serial.println("Rele 1 Ligado");
            ligado = false;
          }
          else
          {
            //Desliga o Rele 1
            if (readString.indexOf("?desligar") > 0)
            {
              digitalWrite(pino_rele1, HIGH);
              Serial.println("Rele 1 Desligado");
              ligado = true;
            }
          }
 
          //Controle do rele2
          Serial.println(readString);
          //Liga o Rele 2
          if (readString.indexOf("?2_ligar") > 0)
          {
            digitalWrite(pino_rele2, LOW);
            Serial.println("Rele 2 Ligado");
            ligado_2 = false;
          }
          else
          {
            //Desliga o Rele 2
            if (readString.indexOf("?2_desligar") > 0)
            {
              digitalWrite(pino_rele2, HIGH);
              Serial.println("Rele 2 Desligado");
              ligado_2 = true;
            }
          }
          readString = "";
 
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          client.println("<html>");
          client.println("<head>");
          client.println("<title>FILIPEFLOP - Automacao Residencial</title>");
          client.println("<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>");
          client.println("<meta name='viewport' content='width=720, initial-scale=0.5' />");
          client.println("<link rel='stylesheet' type='text/css' href='http://img.filipeflop.com/files/download/automacao/automacao_reside...' />");
          client.println("<script type='text/javascript' src='http://img.filipeflop.com/files/download/automacao/automacao_reside...'></script>");
          client.println("</head>");
          client.println("<body>");
          client.println("<div id='wrapper'><img alt='FILIPEFLOP' src='http://img.filipeflop.com/files/download/automacao/logoFF.jpg'/><br/>");
          client.println("<div id='div1'>Rele 1</div>");
          client.println("<div id='div2'>Rele 2</div>");
          client.print("<div id='rele'></div><div id='estado' style='visibility: hidden;'>");
          client.print(ligado);
          client.println("</div>");
          client.println("<div id='botao'></div>");
          client.println("<div id='botao_2'></div>");
          client.print("<div id='rele_2'></div><div id='estado_2' style='visibility: hidden;'>");
          client.print(ligado_2);
          client.println("</div>");
          client.println("</div>");
          client.println("<script>AlteraRele1()</script>");
          client.println("<script>AlteraRele2()</script>");
          client.println("</div>");
          client.println("</body>");
          client.println("</head>");
 
          delay(1);
          client.stop();
        }
      }
    }
  }
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço