#include <SPI.h> #include <Ethernet.h> // adres mac który nadajemy dla arduino byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //Numer IP Arduino IPAddress ip(192, 168, 0, 5); //Port na którym Arduino będzie nasłuchiwało unsigned int localPort = 8888; EthernetServer server(localPort); void initializeNetwork() { Ethernet.begin(mac, ip); } void checkNetwork() { EthernetClient client = server.available(); /* jesli nadeszło połączenie od klienta zapisujemy przysłaną komendę ustaliłem że znak # oznacza koniec polecenia Docelowo warto zabezpieczyć program aby nikt nie przysłał zbyt długiego ciągu znaków i na przykład zrywać połączenie jeśli nie przyszedł znak końca polecenia po powiedzmy 20 znakach */ if (client) { String clientMsg =""; while (client.connected()) { if (client.available()) { char c = client.read(); clientMsg+=c;//zapisujemy otrzymane polecenie do String'a if (c == '#') { /* otrzymaliśmy całe polecenie. Próbujemy je wykonać */ Serial.println("Message from Client:"+clientMsg);//print it to the serial executeRemoteCommand(clientMsg); /* obsługa polecenia wykonana, można zamknąć połączenie aby opuścić pętlę while */ client.stop(); } } } } } void executeRemoteCommand(String command) { Serial.println(command); /* jeśli otrzymane polecenie to polecenie zmiany stanu oświetlenia LED w salonie - wykonujemy polecenie */ if (command == SALON_LED_REMOTE_COMMAND) { toogleSalonLed(); } }