Esempio sensore temperatura web server

ciao ragazzi, ho costruito in visual basic un programma che accende e spegne delle uscite con webserver. praticamente ho caricato lo schetck e poi su ogni button ho assegnato l'uscita WebBrowser1.Navigate("192.168.1.177/?L4") nel posto dove mi serve, ora nello scheck vorrei implementare 4 sensori di temperatura di cui 3 sono per il riscaldamento,

fino qui funziona tutto ma nn so come implementare questi sensori

ragazzi ho inserito i 4 sensori...e sono riuscito a far visualizzare la temperatura sulle label ........uhhhhhhh :)

ora non mi resta che tramite la combobox settare la temperatura del singolo sensore in modo tale da impostare la variabile e con un if far accendere il led..................................... :-* chi mi spiega bene come fare.........................fino adesso mi sono sbattuto........e io html lo odiooooo :smiling_imp:

Scusa ma senza vedere il codice di quello che hai fatto fino ad ora ? E poi info. Comunicazione tra pc-arduino via web ? seriale ? Quale scheda ethernet per Arduino ?

ecco il codice…ho risolto riguardo alla combobox quindi da vb…se seleziono esempio: 10 mi invia (TR10) E LO ricevo su arduino con questo codice… ora io vorrei prendere questo valore e metterlo dentro una variabile in modo che al raggiungimento della temperatura mi attiva un’uscita.

  msg.toUpperCase();
                  p=msg.indexOf("GET /");
                  q=msg.indexOf(" HTTP/1.1");
                 if ((p>=0) && (q>=0))
               cmd=msg.substring(p+strlen("GET /"),q);

questo è il codice completo di cui ci sto lavorando

#include <Ethernet.h>
#include <SPI.h>
//network NB: Pins 10, 11, 12 and 13 are reserved for Ethernet module. 
//#define sensorPinStart 0 //change to 2 if using Arduino Ethernet Shield 05 or 06
//#define noOfSensors 2
//#define DHTPIN A1
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 177 };
byte gateway[] = { 192, 168, 1, 1 };
byte subnet[] = { 255, 255, 255, 0 };
String inString = String(35);
String Led;
int led[] = {00, 2, 3, 4 ,5 ,6 ,7 ,8,9  }; //Led pins num 0 in arry is not used
int numofleds = 8; //numofleds
String value[] = {"off","off","off","off","off","off","off","off","off"}; //startup all led are off
EthernetServer server(80);
int p,q;

  

///////////////////////////////////////////
float temp;
int tempPin = analogRead (A0); ////esterna
////////////////////////////////////////////////
float temp1;
int temp1Pin = analogRead (A1); ////RUSTICO
////////////////////////////////////////////////////
float temp2;
int temp2Pin = analogRead (A2); ////PRIMO PIANO
///////////////////////////////////////////////////

float temp3;
int temp3Pin = analogRead (A3); ////SECONDO PIANO
/////////////////////////////////////////



/////////////////////////////////////////
void setup()
{

  
  
  Serial.begin(9600);
  Ethernet.begin(mac, ip,gateway,subnet); 
  server.begin();
  //set pin mode
  for (int j = 1; j < (numofleds + 1); j++)
  {
    pinMode(led[j], OUTPUT);
    pinMode(52, OUTPUT);
    pinMode(53, OUTPUT);
    pinMode(54, OUTPUT);
    digitalWrite(52, LOW);
    digitalWrite(53, LOW);
  }
  Serial.println("Serial READY");
  Serial.println("Ethernet READY");
  Serial.println("Server READY");
}

void loop()
{
   String msg = "";
   String cmd = "";
  //////////////////////////////////////////
  temp = analogRead(tempPin);
  temp = temp * 0.48828125;
  Serial.print(temp);
  Serial.println(" *C1");
    delay(500);
  ////////////////////////////////////////////
  temp1 = analogRead(temp1Pin);
  temp1 = temp1 * 0.48828125;
  Serial.print(temp1);
  Serial.println(" *C2");
  delay(500);
  ///////////////////////////////////////////
  temp2 = analogRead(temp2Pin);
  temp2 = temp2 * 0.48828125;
  //Serial.print(temp2);
  //Serial.println(" *C3");
    delay(500);
  ////////////////////////////////////////////
  temp3 = analogRead(temp3Pin);
  temp3 = temp3 * 0.48828125;
  //Serial.print(temp3);
  //Serial.println(" *C4");
    delay(500);
  //////////////////////////////////////////
  EthernetClient client = server.available();  
  if (client)
  {
    // an http request ends with a blank line
    boolean current_line_is_blank = true;
    while (client.connected()) 
    {     
      if (client.available()) 
      {      
        char c = client.read();
        // if we've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so we can send a reply
        
        
        msg += c;
        
        if (inString.length() < 35) 
        {
          inString.concat(c);
        } 
        if (c == '\n' && current_line_is_blank) 
        {  
          //int a = data.indexOf("GET") + 4;
          //if (a < 0 )continue;
          //int b = data.indexOf("HTTP/1.1");
          //cmd = data.substring(a, b - a);
                 
                
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          client.println("<html>");
          client.println("<meta http-equiv=\"refresh\" content=\"2\">");
          client.println("<body><form method=get>");
          client.println("<center><p><h1>Freeduino/Arduino Web Sensor And Switch</h1></p><hr></center>"); 
          client.println("<h2>");
          client.println("Sensor Reading:
");
          //for (int analogChannel = sensorPinStart ; analogChannel < sensorPinStart+noOfSensors ; analogChannel++)
          //if (data == 10)
           //Serial.print(cmd);  //qui io dovrei avere  il valore di (cmd)
             msg.toUpperCase();
                  p=msg.indexOf("GET /");
                  q=msg.indexOf(" HTTP/1.1");
                 if ((p>=0) && (q>=0))
               cmd=msg.substring(p+strlen("GET /"),q);
                //eseguo il comando 
                  //if (cmd=="T18")
                  if (cmd=="TR15")
                  
           {

questa è l’altra metà

         Serial.println(cmd);
              
           }
           // else if (cmd=="T21")
           //  {
             // Serial.println(cmd);
              //Serial.println("Comando T21");
           // }
              // Serial.print(data); // che scrivo?
          {
            
            //cmd = data.indexOf("10");
            
            
            //if (cmd == 10 )
            //Serial.print (cmd);
           ////////////////////////////////////////// 
            if ("temp == T21")
            {digitalWrite(52, HIGH);
            //Serial.println("VALVOLA 1 ATTIVA");
          }
            else 
           { digitalWrite(52, LOW);
               //Serial.println("VALVOLA 1 DISATTIVATA");
             }
               //////////////////////////////////////////////
               if ("temp1 == T20")
           { digitalWrite(53, HIGH);
            //Serial.println("VALVOLA 2 ATTIVA");
            }
            else 
           { digitalWrite(53, LOW);
               Serial.println("VALVOLA 2 DISATTIVATA");
               }
               
               
               
              ///////////////////////////////////////////// 
            //int sensorReading = analogRead(analogChannel);
            //client.print("Analog Input ");
            client.println("<h3>");
            client.print(temp);
            client.print("*C ");
            client.println("<h3>");
            /////////////////////////////////////////////
            client.println("<h4>");
            client.print(temp1);
            client.print("*C ");
            client.println("<h4>");
            //////////////////////////////////////////////
            client.println("<h5>");
            client.print(temp2);
            client.print("*C ");
            client.println("<h5>");
            /////////////////////////////////
            client.println("<h6>");
            client.print(temp3);
            client.print("*C ");
            client.println("<h6>");
            ///////////////////////////////////////
            //client.print(" : ");
            //client.print(sensorReading);
            //client.println("
");
          }
          client.println("<p></p>Switches Status:
");
          for(int i=1;i < (numofleds + 1) ;i++) 
          { 
            Led = String("Switch") + i;
            if(inString.indexOf(Led+"=off")>0 || inString.indexOf("all=on")>0)
            {
              Serial.println(Led+"on");
              digitalWrite(led[i], HIGH);
              value[i] = "on"; 
            }
            else if(inString.indexOf(Led+"=on")>0 || inString.indexOf("all=off")>0 )
            {          
              Serial.println(Led+"off");
              digitalWrite(led[i], LOW);
              value[i] = "off";
            }
            client.println(Led+"  <input type=submit name="+Led+" value="+value[i]+">"+"
");
          }
          client.println("<p></p>Switches Action:
");
          client.println("All <input type=submit name=all value=on><input type=submit name=all value=off>");
          client.println("</form><hr></h2>");
          client.println("<center>The web page will automatically refresh every 1 seconds.</center>");
          client.println("</html></body>");
          
          
          
          
          
          break;
          
          
          
        }
        if (c == '\n') 
    
        {
          // we're starting a new line
          current_line_is_blank = true;
        } 
        else if (c != '\r') 
        {
          // we've gotten a character on the current line
          current_line_is_blank = false;
        }
      }  // End of if (client.available)
    }  // End of while (client.connected())
    // give the web browser time to receive the data
    delay(1);
    inString = "";
        cmd = "";
    client.stop();
  } //End of if (client)
}

[/code]

io ho 3 combobox1,2,3 la prima trasmette TR(VALORE) = TEMPERATURA RUSTICO T1(VALORE) = TEMPERATURA PRIMO PIANO

T2(Valore) = temperatura secondo piano

la temperatura essendo un termostato la faccio variare da 15-25 °c però non capisco come indirizzare TR15 E poi fargli fare il confronto con la temperatura del sensore ( temp)

mmmm

mi sono accorto che nel codice ce un errore sulle temperature ma ho corretto.

float temp;
int tempPin =  0; ////esterna
////////////////////////////////////////////////
float temp1;
int temp1Pin = 1; ////RUSTICO
////////////////////////////////////////////////////
float temp2;
int temp2Pin =  2; ////PRIMO PIANO
///////////////////////////////////////////////////

float temp3;
int temp3Pin = 3; ////SECONDO PIANO

ragazzi ho risolto anche questo problema :) ora funziona tutto ..appena finisco tutto il programma lo posto ....:)

future1980: ..appena finisco tutto il programma lo posto ....:)

Grazie. Se poi hai voglia cambia il titolo (modifica il tuo primo post) e metti, "Esempio sensore temperatura web server"