W5500 Ethernet – strona w sieci lokalnej

  • 22 marca 2020

Poniżej sketch do zrobienia prostej strony opartej na W5500 i Arduino.

Board do W5500 oraz Arduino Mega dostępny w naszym sklepie

#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //Określenie adresu MAC
byte ip[] = {192, 168, 1, 177}; //Określenie adresu IP
EthernetServer server(80); //Określenie portu
String readString;

void setup() {
  Ethernet.init(10);
  pinMode(15, OUTPUT); //pin do którego podłączona jest dioda LED
  Ethernet.begin(mac, ip); //uruchomienie modułu
}

void loop() {
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (readString.length() < 100) {
          readString += c;
        }
        if (c == '\n') {
          Serial.println(readString);
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          client.println("<hmtl>");
          client.println("<head>");
          client.println("Local EasySwitch");
          client.println("</head>");
          client.println("<title>");
          client.println("Local EasySwitch"); //tutuł strony
          client.println("</title>");
          client.println("<body bgcolor=black>"); //kolor tła
          client.println("<font color=white>"); //kolor czcionki
          client.println("<meta http-equiv=\"refresh\" content=\"5\">"); //inna metoda na ustawienie czasu odświeżania
          client.println("<center>"); //ustawienie wyśrodkowania
          client.println("<b>");
          client.println("<font color = white size=10>");
          client.println("Witaj EasySwitch :)");//tekst
          client.println("</font>");
          client.println("</br>");
          client.println("Test nowego modulu pod Ethernet W5500");
          client.println("</br>");
          client.println("<p>");
          client.println("<table border=0 width=200>");
          client.println("<tr>");
          client.println("<td align=center>");
          client.println("<font color=white>");
          client.println("Stan pinu A0 wynosi");
          client.println("</td>");
          client.println("</tr>");
          client.println("<tr>");
          client.println("<td align=center>");
          client.println("<font color = white size=10>");
          int pinA = analogRead(0);//zmienna
          client.println(pinA);//wyswietlenie stanu pinu A0
          client.println("</td>");
          client.println("</tr>");
          client.println("</table>");
          client.println("<p>");
          client.println("<FORM>");
          client.println("<INPUT type=button value=LED-ON onClick=window.location='/?lighton1\'>");//przyciski do diody
          client.println("<INPUT type=button value=LED-OFF onClick=window.location='/?lightoff1\'>");
          client.println("</FORM>");
          client.println("</center>");
          client.println("</font>");
          client.println("</body>");
          client.println("</html>");

          delay(1);
          if (readString.indexOf("?lighton") > 0) //czytanie stanu przycisku
          {
            digitalWrite(15, HIGH);
          }
          else {
            if (readString.indexOf("?lightoff") > 0)
            {
              digitalWrite(15, LOW);
            }
          }
            readString = "";
            client.stop();            // End of session.
        }
      }
    }
  }
}

po wpisaniu w przeglądarkę adresu 192.168.1.177 zobaczymy naszą stronę w sieci lokalnej.