Arduino webserver pagina

Projecten die niet passen in bovenstaande onderwerpen
Gebruikers-avatar
Berichten: 91
Geregistreerd: 18 Sep 2015, 12:31

Re: Arduino webserver pagina

Berichtdoor SpeedFM » 29 Mei 2017, 16:26

Die heb ik aan staan.
Beginner Arduino DUE.

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Arduino webserver pagina

Berichtdoor nicoverduin » 29 Mei 2017, 17:35

En er staat helemaal niets voor die boodschap?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 91
Geregistreerd: 18 Sep 2015, 12:31

Re: Arduino webserver pagina

Berichtdoor SpeedFM » 29 Mei 2017, 19:18

Probleem is opgelost.
Het was een stukje code die er niet in hoorde.
Ik kan echter nog steeds geen images openen.
Wel kan ik de voorpagina openen.
Laatst gewijzigd door SpeedFM op 29 Mei 2017, 20:17, in totaal 1 keer gewijzigd.
Beginner Arduino DUE.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Arduino webserver pagina

Berichtdoor nicoverduin » 29 Mei 2017, 20:14

Wat was het nou? Dan heeft een ander er ook wat aan
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 91
Geregistreerd: 18 Sep 2015, 12:31

Re: Arduino webserver pagina

Berichtdoor SpeedFM » 29 Mei 2017, 20:51

Probleem wat ik had, is opgelost.
Code: Alles selecteren
#include <SPI.h>
#include <SD.h>
#include <TFT.h>
#include <UIPEthernet.h>
#include <UIPServer.h>
#include <UIPClient.h>

#define cs   52
#define dc   9
#define rst  8
#define sd_cs 4

const int RedLed = 34;

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

IPAddress ip(192, 168, 0, 8);

EthernetServer server(80);

TFT screen = TFT(cs, dc, rst);

PImage logo;

File webFile;

void setup() {
  Serial.begin(9600);
  SPI.begin();
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server run on IP ");
  Serial.println(Ethernet.localIP());
  screen.begin();
  screen.background(255, 255, 255);
  screen.stroke(0, 0, 0);
  screen.setTextSize(2);
  screen.text("Testing!", 10, 10);
  pinMode(RedLed, OUTPUT);
  Serial.print("Initializing SD card...");
  if (!SD.begin(sd_cs)) {
    Serial.println("failed!");
    return;
  }
  Serial.println("OK!");
  logo = screen.loadImage("logo.bmp");
  if (!logo.isValid()) {
    Serial.println("error while loading logo.bmp");
  }
  if (!SD.exists("page.php")) {
    Serial.println("ERROR - Can't find page.php file!");
    return;
  }
  Serial.println("SUCCESS - Found page.php file.");
}

char linebuf[80];
int charcount = 0;

void loop() {
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    memset(linebuf, 0, sizeof(linebuf));
    charcount = 0;
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        linebuf[charcount] = c;
        if (charcount < sizeof(linebuf) - 1) charcount++;
        if (c == '\n') {
          currentLineIsBlank = true;
          if (strstr(linebuf, "GET /sfm_logo.png") > 0) {
            Serial.println("Load images");
            webFile = SD.open("sfm_logo.png");
            if (webFile) {
              Serial.println("Show images");
              client.println("HTTP/1.1 200 OK");
              client.println();
              if (webFile) {
                while (webFile.available()) {
                  client.write(webFile.read());
                }
                webFile.close();
              }
            }
          } else if (strstr(linebuf, "GET /") > 0 || strstr(linebuf, "GET /index.htm") > 0) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-Type : text/html");
            client.println();
            client.println("<!DOCTYPE HTML><html><head>");
            client.println("<TITLE>Arduino - Teste LED's</TITLE>");
            client.println("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></head>");
            if (digitalRead(RedLed)) {
              client.print("LED is <font color='green'>ON</font>");
            } else {
              client.print("LED is <font color='red'>OFF</font>");
            }
            client.println("<br />");
            client.println("<form method=get>");
            client.println("<p>Led controller</p>");
            if (digitalRead(RedLed)) {
              client.println("<br>1 <input type=submit name=\"status\" value=\"off\">");
            } else {
              client.println("<br>1 <input type=submit name=\"status\" value=\"on\">");
            }
            client.println("</from>");
            client.println("</html>");
          }
          if (strstr(linebuf, "GET /?status=on") > 0) {
            client.println("<script language=\"javascript\">");
            client.println("location.href=\"../\"");
            client.println("</script>");
            Serial.println("LED 1 ON");
            digitalWrite(RedLed, HIGH);
          } else if (strstr(linebuf, "GET /?status=off") > 0) {
            client.println("<script language=\"javascript\">");
            client.println("location.href=\"../\"");
            client.println("</script>");
            Serial.println("LED 1 OFF");
            digitalWrite(RedLed, LOW);
          }
          currentLineIsBlank = true;
          memset(linebuf, 0, sizeof(linebuf));
          charcount = 0;
          break;
        } else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
    Serial.println("client disconnected");
  }
}

In plaats van de StrContains te gebruiken, gebruik ik de strstr.
Ik kan de led aansturen en een images vanaf de SD openen.
Beginner Arduino DUE.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Arduino webserver pagina

Berichtdoor Koepel » 30 Mei 2017, 04:34

Okay, dat ziet er beter uit. Het is soms een beetje kort door de bocht, maar ik zie geen echte problemen.
Probeer het eens met verschillende browsers.

Meestal is zo'n sketch alleen maar een begin en blijft de web-interface steeds verder groeien :geek:

Vorige

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Bing [Bot], Google [Bot] en 10 gasten