From SparkfunWifiShield to ArduinoWebserver

I am trying to send to send data from a SparkfunWifiShield to a arduino webserver that is created with a ethernet shield. I used this code: Arduino - Webserver with an Arduino + Ethernet Shield | Random Nerd Tutorials

I am now trying to send some kind of POST data with the wifishield. Eventually I want to use a button that can control the led.

Current code of WifiShield:

#include <SoftwareSerial.h> // Include software serial library, ESP8266 library dependency
#include <SparkFunESP8266WiFi.h> // Include the ESP8266 AT library
ESP8266Client client; // Create a client object
int x = 1;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);



if (esp8266.begin()) // Initialize the ESP8266 and check it's return status
    Serial.println("ESP8266 ready to go!"); // Communication and setup successful
else
    Serial.println("Unable to communicate with the ESP8266 :(");


int retVal;
retVal = esp8266.connect("****", "****");
if (retVal < 0)
{
    Serial.print(F("Error connecting: "));
    Serial.println(retVal);
}

retVal = client.connect("***", 80); // Connect to sparkfun (HTTP port)
if (retVal > 0)
    Serial.println("Successfully connected!");
}

void loop() {
/*client.print("data" + String(x) + "\n\n");
Serial.println(x);
delay(1000);
x++;*/

/*client.print("POST /?buttonScoreThuisPlus=1");
delay(1000);*/

}

Code of webserver:

/*
 Created by Rui Santos
 Visit: https://randomnerdtutorials.com for more arduino projects

 Arduino with Ethernet Shield
 */

#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h> 
int led = 4;
Servo microservo; 
int pos = 0; 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };   //physical mac address
byte ip[] = { *** };                      // ip in lan (that's what you need to use in your browser. ("192.168.1.178")
byte gateway[] = { 192, 168, 1, 1 };                   // internet access via router
byte subnet[] = { 255, 255, 255, 0 };                  //subnet mask
EthernetServer server(80);                             //server port     
String readString;

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  pinMode(led, OUTPUT);
  microservo.attach(7);
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
  // Create a client connection
  EthernetClient 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
     
           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("<meta name='apple-mobile-web-app-capable' content='yes' />");
           client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
           client.println("<link rel='stylesheet' type='text/css' href='https://randomnerdtutorials.com/ethernetcss.css' />");
           client.println("<TITLE>Random Nerd Tutorials Project</TITLE>");
           client.println("</HEAD>");
           client.println("<BODY>");
           client.println("<H1>Random Nerd Tutorials Project</H1>");
           client.println("<hr />");
           client.println("<br />");  
           client.println("<H2>Arduino with Ethernet Shield</H2>");
           client.println("<br />");  
           client.println("<a href=\"/?button1on\"\">Turn On LED</a>");
           client.println("<a href=\"/?button1off\"\">Turn Off LED</a><br />");   
           client.println("<br />");     
           client.println("<br />"); 
           client.println("<a href=\"/?button2on\"\">Rotate Left</a>");
           client.println("<a href=\"/?button2off\"\">Rotate Right</a><br />"); 
           client.println("<p>Created by Rui Santos. Visit https://randomnerdtutorials.com for more projects!</p>");  
           client.println("<br />"); 
           client.println("</BODY>");
           client.println("</HTML>");
     
           delay(1);
           //stopping client
           client.stop();
           //controls the Arduino if you press the buttons
           if (readString.indexOf("?button1on") >0){
               digitalWrite(led, HIGH);
           }
           if (readString.indexOf("?button1off") >0){
               digitalWrite(led, LOW);
           }
           if (readString.indexOf("?button2on") >0){
                for(pos = 0; pos < 180; pos += 3)  // goes from 0 degrees to 180 degrees 
                {                                  // in steps of 1 degree 
                  microservo.write(pos);              // tell servo to go to position in variable 'pos' 
                  delay(15);                       // waits 15ms for the servo to reach the position 
                } 
           }
           if (readString.indexOf("?button2off") >0){
                for(pos = 180; pos>=1; pos-=3)     // goes from 180 degrees to 0 degrees 
                {                                
                  microservo.write(pos);              // tell servo to go to position in variable 'pos' 
                  delay(15);                       // waits 15ms for the servo to reach the position 
                } 
           }
            //clearing string for next read
            readString="";  
           
         }
       }
    }
}
}

Hoi Vincent11155, welkom op het Nederlandstalige gedeelte.

In dit gedeelte spreken we gewoon Nederlands, om zo eventuele taalbarrières weg te nemen.
Ik zie dat je in dit onderwerp een tijdje terug al wat vragen hebt gesteld.
In de code die je daar laat zien, komen Nederlandse teksten voor dus ik neem aan dat dat je dagelijkse voertaal is.
In dit nieuwe onderwerp hier op het Nederlandstalige gedeelte heb je alleen een mededeling gedaan en laat je 2 voorbeeld sketches zien, maar je hebt geen vraag gesteld.

Dus wat is je vraag ?

Ik probeer om een GET request te sturen naar een webserver om zo dan een waarde aan te passen. De webserver word aangemaakt door een ethernetshield. maar ik kan maar geen succevolle manier vinden om dat te doen. Sorry als ik het niet zo goed kan uitleggen.

Ik heb een oplossing gevonden door een site refresh te sturen naar de webserver.
client.println("Refresh: 4;URL='//192.168.0.149/?buttonScoreThuisPlus'>");
door dit te doen kan ik de waarde veranderen van het scorebord.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.