Pages: [1]   Go Down
Author Topic: Variare un valore X via http  (Read 357 times)
0 Members and 1 Guest are viewing this topic.
Novara
Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti!
Non sono riuscito a capire come poter variare il valore di una variabile via http.
Ho necessità di intervenire su un valore (in questo caso "variabile_x") e per fare dei test ho usato uno sketch di prova che ho trovato qua in giro che serve per comandare e verificare lo stato di ON o OFF di un pin ( ma sicuramente lo conoscerete già); ho quindi inserito la mia variabile e un form nella sezione http nel quale, inserendo il numero, dovrebbe variare il valore della mia "variabile_x", ma dopo ricerche e tentativi nn sono arrivato a nulla e questo xchè sicuramente conosco ancora poco di arduino.
Inserisco lo Sketch modificato e incopleto  smiley-confuse
Potreste aiutarmi?
Code:
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 2, 177 }; // ip in lan
//byte gateway[] = { 192, 168, 2, 1 }; // internet access via router
//byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
Server server(80); //server port
int variabile_x; // variabile che riceve il valore via web
String readString;

void setup()
{

  pinMode(13, OUTPUT); //pin selected to control
  //Ethernet.begin(mac, ip, gateway, subnet);
   Ethernet.begin(mac, ip);
  server.begin();

 
  Serial.begin(9600);
  Serial.println("servertest");
}

void loop(){
  // Create a client connection
  Client client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {

          //store characters to string
          //readString += c;
          Serial.print(c);
        }

        //if HTTP request has ended
        if (c == '\n') {

          Serial.println(readString); //print to serial monitor for debuging

          //now output HTML data header
             if(readString.indexOf('?') >=0) { //don't send new page
               client.println("HTTP/1.1 204 Zoomkat");
               client.println();
               client.println(); 
             }
             else {
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();

          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<TITLE>Arduino GET test page</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");

          client.println("<H1>Arduino test html on-off</H1>");
         
          client.println("<a href=\"/?on\" target=\"inlineframe\">ON</a>");
          client.println("<a href=\"/?off\" target=\"inlineframe\">OFF</a>");
          // form per inserire il valore da assegnare a "X"
          client.print("<form method=get name=variabile_x><input type=text name=variabile_x><input type=submit value=submit></form>");
           // fine form per inserire il valore da assegnare a "X"
          client.println("<IFRAME name=inlineframe style=\"display:none\" >");         
          client.println("</IFRAME>");

          client.println("</BODY>");
          client.println("</HTML>");
             }

          delay(1);
          //stopping client
          client.stop();

          // control arduino pin
          Serial.print(variabile_x); // visualizzo il valore della variabile
          if(readString.indexOf("on") >0)//checks for on
          {
            digitalWrite(13, HIGH);    // set pin 4 high
            Serial.println("Led On");
          }
          if(readString.indexOf("off") >0)//checks for off
          {
            digitalWrite(13, LOW);    // set pin 4 low
            Serial.println("Led Off");
          }
          //clearing string for next read
          readString="";

        }
      }
    }
  }
}

Grazie.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 104
Posts: 6626
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puoi indicare cosa usi per far funzionare lo sketch?  Modello dell'Arduino? Shield Ethernet? Versione dell'IDE?
Poi, forse, c'è un incompatibilità col PIN 13.

Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Novara
Offline Offline
Newbie
*
Karma: 0
Posts: 16
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Puoi indicare cosa usi per far funzionare lo sketch?  Modello dell'Arduino? Shield Ethernet? Versione dell'IDE?
Poi, forse, c'è un incompatibilità col PIN 13.

pensavo nn servisse smiley Arduino UNO, ethernetshield http://arduino.cc/en/Main/ArduinoEthernetShield e versione ide 0023.
cmq nn sono interessato ai pin e quant'altro anche se nello sketch ci sono; quella parte funziona benissimo; vorrei solo poter variare il valore della "variabile_x" che attualmente mi restituisce il valore zero



Logged

Pages: [1]   Go Up
Jump to: