Go Down

Topic: Creare Telecomando da remoto Web (Read 2588 times) previous topic - next topic

Bmwpower

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

Madwriter

ti basta un arduino ethernet o un arduino con ethernet shield ,un led infrarossi la libreria di Ken o kevin qualcosa :D poi crei il webserver forse puoi sfruttare quel software che c'è qui sul forum in ajax,tu dove ti sei bloccato?
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

Bmwpower

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?

pictux

Ciao,
innanzitutto ken aveva fatto proprio quello che cerchi di fare tu:
http://www.arcfn.com/2009/11/controlling-your-stereo-over-web-with.html

Quote
con l'ide 1.0.1 genera l'errore


che errore?

Bmwpower

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!
:D

pictux

ciao

Quote
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?

Bmwpower

fondamentalmente , vorrei aggiungere questo sketch
Code: [Select]

#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


Code: [Select]

#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> <br /></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();
             }}}}}}


Bmwpower



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:
Code: [Select]
#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> <br /></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();
             }}}}}}




=(

Go Up