Creare Telecomando da remoto Web

Ciao a tutti , sto cercando di creare un telecomando via web dove sia possibile creare una pagina che possa accendere e spegnere la mia tv da remoto con arduino.
Ho visto sketch e varie soluzioni in rete ma non riesco ad affiancarlo al mio sketch , praticamente vorrei creare solo un pulsante web che invii il segnale ir così che mi permetta di accendere e spegnere la tv o condizionatore...
Qualcuno potrebbe aiutarmi?
grazie
Fabrizio

ti basta un arduino ethernet o un arduino con ethernet shield ,un led infrarossi la libreria di Ken o kevin qualcosa :smiley: poi crei il webserver forse puoi sfruttare quel software che c'è qui sul forum in ajax,tu dove ti sei bloccato?

Ciao, ho provato la libreria di ken avendo già un webserver che comando dei rele' ma quando lo carico con l'ide 022 funziona e riesco ad accendere la tv ma dopo qualche clic va in crash l'arduino mentre con l'ide 1.0.1 genera l'errore avendo installato già le librerie correttamente e credo sia quindi la più attendibile come compilazione.
Come fare?

Ciao,
innanzitutto ken aveva fatto proprio quello che cerchi di fare tu:

con l'ide 1.0.1 genera l'errore

che errore?

Si l'avevo visto ma necessita un pc e arduino collegato perché utilizza la seriale.
Giusto?
Io non vorrei tener acceso il pc perché se no perdo i vantaggi del microcomtrollore!
:smiley:

ciao

Si l'avevo visto ma necessita un pc e arduino collegato perché utilizza la seriale.
Giusto?

sì, scusa.
Me lo ricordavo per il discorso del telecomando via web, ho recuperato il link e postato, senza leggere bene.. mea culpa!

Che errore ti da l'ide 1.0.1?

fondamentalmente , vorrei aggiungere questo sketch

#include <IRremote.h>
IRsend irsend;
unsigned int Samsung[70] ={260,700,240,2560,260,700,240,2720,240,1240,260,1240,240,840,240,2040,260,12700,260,700,240,840,240,700,260,700,240,700,260,2700,260,700,240,700,260,15424,260,700,240,2560,260,700,240,2720,240,1240,260,1240,240,840,240,2040,260,12700,260,700,
240,1920,240,1760,260,700,240,700,260,2700,260,700,240,700};
void setup()
{
}
void loop() {
for (int i = 0; i < 3; i++) {
irsend.sendRaw(Samsung,70,38);
delay(100);
    }
  }

con questo

#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // mac address
byte ip[] = { 192, 168, 1, 9 }; // ip arduino internet in
byte gateway[] = { 192, 168, 1, 9 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
 int sensorPin = 0;

int led10 = 10;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9; // pin attuatore
boolean LEDON = false; // flag status attuatore
boolean LEDONn = false; // flag status attuatore
boolean LEDN = false; // flag status attuatore


String readString; //string
void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
pinMode(led9, OUTPUT);
pinMode(led8, OUTPUT);     
pinMode(led7, OUTPUT);     
pinMode(led6, OUTPUT);
  Serial.begin(9600);
   delay(1000);
  Serial.println("connecting...");

}
 
void loop(){
  int reading = analogRead(sensorPin);  
 int voltage = reading * 6.5;
 voltage /= 1024.0; 
 {
 int temperatureC = (voltage - 0.5) * 10 ;  //converting from 10 mv per degree wit 500 mV offset
/*inizio client*/
  // listen for incoming clients
 EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        readString.concat(c); //store characters to string
                  if (c == '\n' && currentLineIsBlank) {
       
        if(readString.indexOf("L=1") > 0) { //apre il cancello
          digitalWrite(led10, HIGH);
           delay(1000);
           digitalWrite(led10, LOW); 

          digitalWrite(led9, HIGH);
           delay(1000);
          digitalWrite(led9, LOW); 
          
          
                }
          
          if(readString.indexOf("L=2") > 0) { // accende rele
           digitalWrite(led8, HIGH);
                   LEDON = true;
                   
           //accende il led  
          }
          if(readString.indexOf("L=3") > 0) { //spegne il rele
         digitalWrite(led8, LOW); 
                LEDON = false;

          }
           if(readString.indexOf("L=4") > 0) {  //accendere il rele
           digitalWrite(led7, HIGH); 
                       LEDONn = true;

          }
          if(readString.indexOf("L=5") > 0) {// spegne il rele
         digitalWrite(led7, LOW); 
                      LEDONn = false;

          } 
      if(readString.indexOf("L=6") > 0) {/accende il rele
           digitalWrite(led6, HIGH); 
                                 LEDN = true;

          }
          if(readString.indexOf("L=7") > 0) { //spegne il rele
         digitalWrite(led6, LOW); 
                            LEDN = false;

          }
          
          if(readString.indexOf("L=8") > 0) { //spegne tutti i rele
         digitalWrite(led6, LOW); 
           delay(250);
         digitalWrite(led7, LOW); 
           delay(250);
         digitalWrite(led8, LOW); 
                            LEDN = false;
                      LEDONn = false;
                LEDON = false;

          }
          
          
         // inizializzo pagina (da togliere se uso ajax)
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connnection: close");
          client.println();
                     client.println( "<html>");
           client.print("<head><title>FabryTerry Server Domotica</title> ");
         client.println(" <meta name='viewport' content='width=device-width, user-scrollbar=no'>");
         
         
                     client.println("<script>");

        client.println(" var d=new Date();");
 client.println("document.write(d);");
 client.println("  function myFunction()");
 client.println("{");
 client.println("onclick=location.href='/?L=1',alert('OK per aprire');");

 client.println("}");


            
              client.println("</script>");
          client.print("</head>");
           client.println(" <body bgcolor='#0099FF'>"); //inizio pagina
           
 
         client.println("<button><p>Temperatura e' di ");
        client.print(temperatureC);
        client.println(" Gradi</button> 
</p>");
                   client.println("<hr >");
          client.println("<h3>Apertura</h3>"); //apricancello

           
           client.println("<input type='button' onclick='myFunction()' value='Apri'>");
 
          client.println("<hr >");
          client.println("<h3>Rele'  n. 1<h3><button type=button><a href='/?L=2'>Accendi</button><button type=button><a href='/?L=3'>Spegni</a></button>");
          if (LEDON) {
              client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
            }
            else
            {
             
             
              client.println("<span style='color:grey; font-weight:bold;'>OFF</span></font>");
          }
          client.println("<hr >");

          client.println("<h3>Rele'  n. 2<h3><button type=button><a href='/?L=4'>Accendi</button><button type=button><a href='/?L=5'>Spegni</a></button>");
           if (LEDONn) {
              client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
            }
            else
            {
              client.println("<span style='color:grey; font-weight:bold;'>OFF</span></font>");
          }
          client.println("<hr >");

          client.println("<h3>Rele'  n. 3<h3><button type=button><a href='/?L=6'>Accendi</button><button type=button><a href='/?L=7 '>Spegni</a></button>");
          if (LEDN) {
              client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
            }
            else
            {
              client.println("<span style='color:grey; font-weight:bold;'>OFF</span></font>");
          }
          client.println("<hr >");

           client.println("<a href='/?L=10'>Accendi + cancello</a> "); // apricancello piu televisione e ampli
           
           client.println("<h3><a href='/?L=9'>Accendi</a><h3> ");//solo accendi tv
                      client.println("<h3><a href='/?L=8'>Spegni Tutto</a> "); //spegni tutti i rele

          client.println("</html>");

        readString="";
        //fermo il client
client.stop();
              }}}}}}

In pratica il mio obiettivo è creare un pulsante html dove io possa comandare l'accensione della televisione ma evidentemente sbaglio qualcosa perchè aggiungendolo arduino non funziona più

sketch con pulsanti ir:

#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
 #include <IRremote.h>
IRsend irsend;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // mac address
byte ip[] = { 192, 168, 1, 9 }; // ip arduino internet in
byte gateway[] = { 192, 168, 1, 9 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
 int sensorPin = 0;

unsigned int Samsung[68] ={4550,4450,600,1600,650,1650,600,1600,650,500,600,500,650,500,600,500,650,500,600,1650,600,1600,650,1600,650,500,600,500,650,500,600,500,650,500,600,500,650,1600,600,500,650,500,600,500,650,500,600,500,650,500,600,1600,650,500,600,1650,600,1650,600,1650,600,1650,600,1650,600,1650,600};
unsigned int dream[70] ={260,700,240,2560,260,700,240,2720,240,1240,260,1240,240,840,240,2040,260,12700,260,700,240,840,240,700,260,700,240,700,260,2700,260,700,240,700,260,15424,260,700,240,2560,260,700,240,2720,240,1240,260,1240,240,840,240,2040,260,12700,260,700,
240,1920,240,1760,260,700,240,700,260,2700,260,700,240,700};
  unsigned int box[72] ={260,15424,260,700,240,2560,240,720,240,2720,240,1240,240,1260,240,840,240,2040,260,12700,240,720,240,1900,260,1760,240,720,240,700,240,2720,240,720,240,700,240,11960,260,700,240,2560,260,700,240,2720,240,1240,260,1240,240,840,2040,260,12700,240,720,240,1760,260,1900,240,720,240,700,240,2720,260,700,240,700,260};
  

int led10 = 10;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9; // pin attuatore
boolean LEDON = false; // flag status attuatore
boolean LEDONn = false; // flag status attuatore
boolean LEDN = false; // flag status attuatore


String readString; //string
void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
pinMode(led9, OUTPUT);
pinMode(led8, OUTPUT);     
pinMode(led7, OUTPUT);     
pinMode(led6, OUTPUT);
  Serial.begin(9600);
   delay(1000);
  Serial.println("connecting...");

}
 
void loop(){
  int reading = analogRead(sensorPin);  
 int voltage = reading * 6.5;
 voltage /= 1024.0; 
 {
 int temperatureC = (voltage - 0.5) * 10 ;  //converting from 10 mv per degree wit 500 mV offset

 
/*inizio client*/
  // listen for incoming clients
 EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        readString.concat(c); //store characters to string
                  if (c == '\n' && currentLineIsBlank) {
       
        if(readString.indexOf("L=1") > 0) {
          digitalWrite(led10, HIGH);
           delay(1000);
           digitalWrite(led10, LOW); 

          digitalWrite(led9, HIGH);
           delay(1000);
          digitalWrite(led9, LOW); 
          
          
                }
          
          if(readString.indexOf("L=2") > 0) {
           digitalWrite(led8, HIGH);
                   LEDON = true;
                   
                       Serial.println("Led 2 acceso");


           //accende il led  
          }
          if(readString.indexOf("L=3") > 0) {
         digitalWrite(led8, LOW); 
                LEDON = false;
                    Serial.println("Led spento");


          }
           if(readString.indexOf("L=4") > 0) {
           digitalWrite(led7, HIGH); 
                       LEDONn = true;

          }
          if(readString.indexOf("L=5") > 0) {
         digitalWrite(led7, LOW); 
                      LEDONn = false;

          } 
      if(readString.indexOf("L=6") > 0) {
           digitalWrite(led6, HIGH); 
                                 LEDN = true;

          }
          if(readString.indexOf("L=7") > 0) {
         digitalWrite(led6, LOW); 
                            LEDN = false;

                     }
          
          if(readString.indexOf("L=8") > 0) {
         digitalWrite(led6, LOW); 
           delay(250);
         digitalWrite(led7, LOW); 
           delay(250);
         digitalWrite(led8, LOW); 
                            LEDN = false;
                      LEDONn = false;
                LEDON = false;

             }
          
          if(readString.indexOf("L=9") > 0) {
            irsend.sendRaw(Samsung,70,38);
             irsend.sendRaw(dream,70,38);
             irsend.sendRaw(box,72,38);
              delay(1000);
             irsend.sendNEC(0xA55A38C7,32);
              irsend.sendNEC(0xA55A38C7,32);
            
           delay(100);

            }
         // inizializzo pagina (da togliere se uso ajax)
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connnection: close");
          client.println();
                     client.println( "<html>");
           client.print("<head><title>FabryTerry Server Domotica</title> ");
         client.println(" <meta name='viewport' content='width=device-width, user-scrollbar=no'>");
         
         
                     client.println("<script>");

        client.println(" var d=new Date();");
 client.println("document.write(d);");
 client.println("  function myFunction()");
 client.println("{");
 client.println("onclick=location.href='/?L=1',alert('OK per aprire');");

 client.println("}");


            
              client.println("</script>");
          client.print("</head>");
           client.println(" <body bgcolor='#0099FF'>"); //inizio pagina
           
 
         client.println("<button><p>Temperatura e' di ");
        client.print(temperatureC);
        client.println(" Gradi</button> 
</p>");
                   client.println("<hr >");
          client.println("<h3>Apertura</h3>"); //apricancello

           
           client.println("<input type='button' onclick='myFunction()' value='Apri'>");
 
          client.println("<hr >");
          client.println("<h3>Rele'  n. 1<h3><button type=button><a href='/?L=2'>Accendi</button><button type=button><a href='/?L=3'>Spegni</a></button>");
          if (LEDON) {
              client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
            }
            else
            {
             
             
              client.println("<span style='color:grey; font-weight:bold;'>OFF</span></font>");
          }
          client.println("<hr >");

          client.println("<h3>Rele'  n. 2<h3><button type=button><a href='/?L=4'>Accendi</button><button type=button><a href='/?L=5'>Spegni</a></button>");
           if (LEDONn) {
              client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
            }
            else
            {
              client.println("<span style='color:grey; font-weight:bold;'>OFF</span></font>");
          }
          client.println("<hr >");

          client.println("<h3>Rele'  n. 3<h3><button type=button><a href='/?L=6'>Accendi</button><button type=button><a href='/?L=7 '>Spegni</a></button>");
          if (LEDN) {
              client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
            }
            else
            {
              client.println("<span style='color:grey; font-weight:bold;'>OFF</span></font>");
          }
          client.println("<hr >");

           client.println("<a href='/?L=10'>Accendi + cancello</a> "); // apricancello piu televisione e ampli
           
           client.println("<h3><a href='/?L=9'>Accendi</a><h3> ");//solo accendi tv
                      client.println("<h3><a href='/?L=8'>Spegni Tutto</a> "); //spegni tutti i rele


      


                                          
          client.println("</html>");

        readString="";
        //fermo il client
client.stop();
              }}}}}}

=(