#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x38,20,4);
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC-Adresse
byte ip[] = {192, 168, 0, 98}; // IP-Adresse
EthernetServer server(1000); // Port
String readBuffer;
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("dalbi");
lcd.setCursor(0,1);
lcd.print("SPS <-> Arduino");
Ethernet.begin(mac, ip);
server.begin();
delay(1000);
}
void loop() {
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
readBuffer = readBuffer + c;
if (c == '\n') { // warten auf new line
// clearlcd <= Löscht alle Zeichen
if(readBuffer.startsWith("clearlcd")) {
lcd.clear();
client.println("ACK");
}
// writelcd 1.Testtext <= Schreibt Testtext in Zeile 1
// writelcd 2.Testtext <= Schreibt Testtext in Zeile 2
if(readBuffer.startsWith("writelcd")) {
lcd.setCursor(0, readBuffer[9]-49); // Zeile 1-x
lcd.print(readBuffer.substring(11, readBuffer.length()-2));
client.println("ACK");
}
// backllcd 1 <= Schaltet die Hintergrundbeleuchtung ein
// backllcd 0 <= Schaltet die Hintergrungbeleuchtung aus
if(readBuffer.startsWith("backllcd")) {
if ((readBuffer[9]-48) == 1) {
lcd.setBacklight(0);
} else {
lcd.backlight();
}
client.println("ACK");
}
readBuffer = "";
}
}
}
}
client.stop();
}