Ayuda para terminar mi proyecto REMOTO con Arduino

Buenas tardes alguien que me pueda ayudar a terminar mi proyecto son dos consultas

1.- Puedo conectar un eliminador o cargador de corriente en la entrada de energia un alimentador de 5 Volts, si funciona y no he tenido problemas hasta el momento, anteriormente conecte uno de 12V pero se calienta mucho y tengo ese de 5 Volts y funciona hasta el momento bien. Tiene conectada una tarjeta Arduino Ethernet Shield y 2 relevadores de 5 v en una tarjeta Arduino Leonardo, espero sus comentarios.
. . . . . .

2.- Alguien me podria ayudar a terminar de hacer el sketch para que pueda controlar los dos relevadores con un tiempo de encendido y apagado. a continuacion detallo mi sketch

Me sugirieron usar Timer´s pero yo no tengo la mas minima idea de como colocarlos, soy aficionado y me dedico a las Redes inalámbricas es por eso mi necesidad de poner un arduino, pero estoy peleandome con el codigo si alguien pudiera orientarme sobre todo con el SKETCH que ya tengo, se los agradeceria infinitamente. Saludos desde México.

Sketch para encendido y apagado de 2 Relevadores de 5 Voltios para apagar un sistema remoto.

#include <SPI.h>
#include <Ethernet.h>

//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(10,0,0,55); //IP
EthernetServer servidor(80);

int PIN_LED1=8;
String readString1=String(30);
String state1=String(3);
int PIN_LED2=9;
String state2=String(3);


void setup()
{
  Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
  servidor.begin();
  pinMode(PIN_LED1,OUTPUT);
  digitalWrite(PIN_LED1,HIGH);
  state1="ENCENDIDO";
  pinMode(PIN_LED2,OUTPUT);
  digitalWrite(PIN_LED2,HIGH);
  state2="ENCENDIDO";
  
}

void loop()
{
  EthernetClient cliente= servidor.available();
  
  if(cliente)
  {
    boolean lineaenblanco=true;
    while(cliente.connected())//Cliente conectado
    {
      if(cliente.available())
      {
        char c=cliente.read();
        if(readString1.length()<30)//Leemos petición HTTP caracter a caracter
        {
          readString1.concat(c); //Almacenar los caracteres en la variable readString
        
        }
        if(c=='\n' && lineaenblanco)//Si la petición HTTP ha finalizado
        {
          int LED1 = readString1.indexOf("LED1=");
          int LED2 = readString1.indexOf("LED=");
          if(readString1.substring(LED1,LED1+6)=="LED1=T")
          {
            digitalWrite(PIN_LED1,LOW);
            state1="ENCENDIDO";
          } else if (readString1.substring(LED1,LED1+6)=="LED1=F")
          {
            digitalWrite(PIN_LED1,HIGH);
            state1="APAGADO";
          }
          if(readString1.substring(LED2,LED2+5)=="LED=T")
          {
            digitalWrite(PIN_LED2,LOW);
            state2="ENCENDIDO";
          } else if (readString1.substring(LED2,LED2+5)=="LED=F")
          {
            digitalWrite(PIN_LED2,HIGH);
            state2="APAGADO";
          }  
          
          //Cabecera HTTP estándar
          cliente.println("HTTP/1.1 200 OK");
          cliente.println("Content-Type: text/html");
          cliente.println();        
          //Página Web en HTML
          cliente.println("<html>");
          cliente.println("<head>");
          cliente.println("<title>CONTROL DEL CONTACTOS</title>");
          cliente.println("</head>");
          cliente.println("<body bgcolor=#F5EAD1 width=100% height=100%>");
          cliente.println("<center>");
          cliente.println("<font color='#642303'><h1>CONTROL DE CONTACTOS REMOTOS</h1>");
          cliente.print("

");
          cliente.print("<font color='#0E1098'><B>Ruteador Yucutache 1 : <B>");
          cliente.print("<font color='#000000'>");
          cliente.print(state1);
          cliente.print("



");
          cliente.println("<input type=submit value=ENCENDER style=width:150px;height:60px onClick=location.href='./?LED1=T\'>");
          cliente.println("<input type=submit value=APAGAR style=width:150px;height:60px onClick=location.href='./?LED1=F\'>");
          cliente.print("

");
          cliente.print("<font color='#0E1098'><B>Ruteador Yucutache 2 : <B>");
          cliente.print("<font color='#000000'>");
          cliente.print(state2);
          cliente.print("



");
          cliente.println("<input type=submit value=ENCENDER style=width:150px;height:60px onClick=location.href='./?LED=T\'>");
          cliente.println("<input type=submit value=APAGAR style=width:150px;height:60px onClick=location.href='./?LED=F\'>");
          cliente.print("

");
          cliente.println("</center>");
          cliente.println("</body>");
          cliente.println("</html>");
          cliente.stop();//Cierro conexión con el cliente
          readString1="";
        }
      }
    }
   }
  }

Talves tenga algunos errores mi sketch pero todas las mejoras son bienvenidas. sobre todo si le puede ser util a alguien mas.

Saludos.

Hola

No entendí muy bien el punto 1

Tratas de conectar el arduino con 5v con un adaptador de corriente?
Si es así, si se puede siempre y cuando sea por USB o por el pin que dice 5v.

Si el adaptador es de 12v tambien se puede pero el positivo tiene que ir en donde dice Vin o en el conector especial que tiene para el adaptador.

El punto 2

Como estas controlando los relevadores, manualmente desde la red o atomaticamente por tiempo desde el arduino?
ojala puedas contarme que se enciende y que se apaga, si algo tiene que permanecer apagado y algo encendido puedes usar solo un revelador, un aparato conectado al relevador en la posición normalmente abierta y el otro aparato en la posición normalmente cerrada.
Que relevadores estas usando?

En el punto 1 me referia a conectar un eliminador de corriente de 5 V en el conector de energia de luz no en el puerto USB sino en el de la luz.

En el punto 2 no se como programar el tiempo de encendido o apagado de 1 relev o 2 relev de forma independiente o de forma conjunta no se como hacerle, conecto unas antenas de rejillas que estan en una montaña que pasan internet pero necesito que se apagen y se enciendan a ciertas horas.

me comentan que con la funcion timer pero no se usar ese comando

Esta es la pagina para encender y apagar los relevadores
http://www.ryohnosuke.net/image/ScK

Diseño del gabinete de los Relevadores
http://www.ryohnosuke.net/image/ScE

Hola

En el punto 1 me referia a conectar un eliminador de corriente de 5 V en el conector de energia de luz no en el puerto USB sino en el de la luz.

Se me hace raro que funcione con un adaptador de 5v, en su descripcion dice 6v como minimo y 20v como maximo, recomendado de 7v a 12v.

Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V

//----------------------------------------------------------------

encendido o apagado de 1 relev o 2 relev de forma independiente o de forma conjunta no se como hacerle

Si son independientes, es decir uno enciende independientemente del estado del otro, tiene que ser dos reles, yo crei encendias una cosa y apagabas la otra al mismo tiempo. pero si no es así puedes usar un solo rele para encender y apagar al mismo tiempo.
//---------------------------------------------------------------

conecto unas antenas de rejillas que estan en una montaña que pasan internet pero necesito que se apagen y se enciendan a ciertas horas.

En cuanto al tiempo tiens que definir lo bien lo que quieres, si quieres que encienda a una hora exacta, digamos a las 9:00 y se apague a las 13:00 vas a necesitar un relj de tiempo real RTC, este puede ser un modulo RTC 3231 o sacar la hora de internet si es posible.

Si usas un timer con el tiempo se va a correr la hora, y vas a tener que reconfigurarlo, antes pense que querias encender algo y que se quedara asi por un intervalo de tiempo sin importar la hora, y me confundí un poco.

Hola ehrja solo necesito apagar los relevadores por un periodo de tiempo, ejemplo :

el relevador 1 se apague 30 min
y el relevador 2 se apague 1 hora

y despues de ese tiempo se vuelva a encender es todo lo que necesito que haga, que yo le pueda poner un tiempo de apagado y despues de ese tiempo se enciendan, como un reset o reinicio por un lapso de tiempo
1 hora, 2 horas etc saludos

Bien Intentare ayudarte solo tengo la ENC28j60 y me es dificil emular el codigo usando UIPEthercadr.h
pero intentare resolverlo, mañana actualizo.

No pude hacer correr el servidor con la ENC28J60 pero te paso lo que hice, y tu lo puedes adaptar.

 //Temporizador releA
 if(millis() - lastLapReleA > lapReleA){ //compara el tiempo transcurrido lapReleA es el lapso de tiempo que debe pasar.
  lastLapReleA = millis(); // se actualiza lastLapReleA
  if (stateReleA = true){  //compara el estado del rele y lo cambia y las variables de estado
    digitalWrite(pinReleA,LOW); 
    stateReleA = false;
  }else{
    digitalWrite(pinReleA,HIGH);
    stateReleA = true;
  }

Este codigo lo puedes repetir para cada rele (A,B,X).

las variables globales que le agregue, oviamente al principio, son estas:

// ajustes de rele
byte pinLed1 = 8;
byte PinLed2 = 9;
byte pinReleA = 6;
byte pinReleB = 7;
unsigned long lapReleA = 1800000; //media hora en milisegundos
unsigned long lastLapReleA;
unsigned long lapReleB = 3600000; //una hora en milisegundos
unsigned long lastLapReleB;
boolean stateReleA;
boolean stateReleB;

Tal ves puedas cambiar el valor de lapReleA desde el navegador y así hacer que cambie el intervalo de tiempo que permanece encendido/apagado

Buenos dias voy a probarlo espero tener exito, muchas gracias ehrja

¿lo tienes solucionado?

Es que tengo una solución que casi hace lo que quieras. Justo lo he hecho para resetear de remoto routers y antenas, 6 canales. Unico desventaja es que no se puede resetear otro sin cancelar el tiempo del primer reset. Es decir en los 30 minutos tuyos no puedes resetear otra antena.

Al resetear se puede ingresar el tiempo de apagado. Y se puede conectarse por Internet con auténticación básica.
Funciona incluso en UNO o PRO MINI con ENC28J60, y también con el W5100.

asanchez115:
Esta es la pagina para encender y apagar los relevadores
http://www.ryohnosuke.net/image/ScK

Diseño del gabinete de los Relevadores
http://www.ryohnosuke.net/image/ScE

Y este es el tag que debes usar para los enlaces

Gracias sur byte

Buenas tardes "ElEspanol" no lo he solucionado y me sigo jalando los pelos jejeje la verdad le he batallado mucho y no me ha quedado todavía el sketch, yo uso ruteadores mikrotik que son equipos excelentes y esos son los que intento apagar de forma remota el detalle es que no he encontrado la solución no soy electrónico ni ing. en sistemas por eso no se mucho de programación ni tampoco se mucho de los comandos; pero le sigo luchando si tu ya tienes la solución y deseas compartirme el sketch te estaré agradecido de antemano gracias.

No se si has probado la solución del sistema domótica esta muy completo pero no pude hacerlo funcionar en mi Arduino mega desde Android; por si le quieres dar un vistazo esta muy completo.

Y nuevamente Gracias

Ah es una pena no haberte podido ayudar, pero por otro lado no hay mucha retro alimentacion de tu parte.
espero que lo puedas lograr pronto.