Budowa serwera z Arduino

Czas czytania: 3 min.

Niniejszy artykuł przedstawia przykładowe rozwiązanie techniczne prototypu serwera internetowego opartego na platformie Arduino i module Arduino Ethernet Shield.

Zastosowanie modułu Ethernet Shield

Aby przekształcić Arduino w miniaturowe centrum zarządzania rozmaitymi procesami poprzez internet, wystarczy podłączyć nakładkę Ethernet Shield. Wówczas Arduino staje się miniaturowym serwerem WWW, do którego dostęp jest umożliwiony z poziomu przeglądarki w urządzeniu mobilnym lub komputerze klasy PC. Wykorzystując taki system łączności zdalnej, możemy wykonać rozmaite czynności obejmujące m.in. odczyt stanów przełączników i przycisków, sterowanie parametrami roboczymi urządzeń i podzespołów podłączonych do Arduino, a także odczytywanie parametrów z czujników pomiarowych.

Miniaturowy serwer domowy WWW na Arduino - elementy potrzebne do wykonania projektu

Aby wykonać miniaturowy serwer WWW wykorzystując ekosystem Arduino, potrzebne będą następujące podzespoły:

  • platforma Arduino UNO R3 lub Arduino MEGA2560
  • nakładka rozszerzeniowa Arduino Ethernet Shield
  • Przewodowe połączenie Ethernet/LAN o przepustowości 10/100Mb/s\
  • kabel połączeniowy Ethernet
  • router Wi-Fi
  • płytka stykowa
  • przewody połączeniowe do płytek stykowych
  • rezystor 10k/0,6W
  • Zasilacz DC 2x9V
  • przycisk monostabilny (mikrostyk)

Miniaturowy serwer domowy WWW na Arduino - podłączenie elementów systemu

Komponenty należy połączyć w następujący sposób: do pinu cyfrowego nr 8 w Arduino, podłączony jest przycisk monostabilny i jest skonfigurowany jako wejście. Po naciśnięciu przycisku, Arduino odczyta na tym pinie stan niski. W konsekwencji, Arduino ustawi wtedy wyjście w stan wysoki. Po zwolnieniu przycisku, na wyjściu ponownie pojawi się i utrzyma stan niski. Informacja o zanotowanej zmianie w stanie położenia przycisku, zostanie przesłana do serwera WWW.

Ustawienia nakładki Ethernet Shield

Do sterowania nakładką Ethernet, służy biblioteka Ethernet.h. Nakładka musi mieć przypisany adres MAC i IP za pomocą funkcji Ethernet.begin(). W przypadku konkretnego urządzenia adres MAC jest globalnie unikalnym identyfikatorem. Aktualne wersje nakładek Ethernet, są dostarczane z naklejką wskazującą adres MAC. W przypadku starszych tarcz powinna działać losowa, ale nie należy używać tej samej na wielu planszach. Ważność adresów IP zależy od konfiguracji sieci. Jeśli używany jest DHCP, może dynamicznie przypisywać adres IP do nakładki.

Określanie adresu IP

Adres IP (adres protokołu internetowego) to etykieta numeryczna przypisywana każdemu urządzeniu uczestniczącemu w sieci komputerowej, która używa do komunikacji protokołu internetowego. Określenie adresu IP odbywa się poprzez wpisanie linii:

				
					byte ip[] = { 192, 168, 0, 112 };
				
			

Adres IP należy zmienić, aby pasował do jednej własnej konfiguracji. Na przykład, aby przypisać adres IP osłony Ethernet do 192.168.0.30, należy wprowadzić wiersz:

				
					byte ip[] = { 192, 168, 0, 30 };
				
			

Określanie adresu MAC

Adres MAC (adres kontroli dostępu do nośnika) to unikalny identyfikator przypisany do każdego urządzenia uczestniczącego w sieci fizycznej. Każde urządzenie sieciowe ma unikalny numer seryjny, który identyfikuje się w sieci i jest to zwykle zaprogramowane na stałe w oprogramowaniu sprzętowym urządzenia. Jednak w przypadku Arduino możemy sami zdefiniować adres MAC:

				
					byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x85, 0xD9 };
				
			

Możesz ustawić podsieć i bramę za pomocą następujących poleceń:

				
					byte subnet[] = { 255, 255, 255, 0 }; //maska podsieci
byte gateway[] = { 192, 168, 0, 1 }; //adres bramki sieciowej
				
			

Tak więc, aby skonfigurować osłonę Ethernet, blok kodu jest podany poniżej:

				
					byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x85, 0xD9 }; //ustawianie adresu MAC
byte ip[] ={ 192, 168, 0, 30 }; // ustawianie adresu IP
byte subnet[] = { 255, 255, 255, 0 }; //maska podsieci
byte gateway[] = { 192, 168, 0, 1 }; // przypisanie domyslnej bramki sieciowej
				
			

Arduino jako serwer WWW - kod programu docelowego

				
					client.println(""); //strona uzywa skryptu HTML
client.println(""); client.println(""); client.println("Arduino jako serwer "); client.println(""); client.println(""); client.println(""); client.println(""); client.println(" Observing State Of Switch"); client.print("");
Switch is: <!--2-->"); if (digitalRead(8)) { client.println(" ON"); } else { client.println("OFF"); client.println("");
				
			

Powyższy skrypt nakazuje przeglądarce odświeżenie strony. Gdy strona zostanie ponownie otwarta, Arduino ponownie odczyta stan przełącznika i wyświetli ten stan. Po naciśnięciu przycisku, możemy obserwować zmieniający się stan przełącznika, jak pokazano w demonstracji wideo. Możesz także ustawić osprzęt, aby działał bez routera. Aby to zrobić, należy przypisać ręcznie adres IP do sieci Ethernet Arduino, np. 192.168.0.2, a domyślny adres maski podsieci 255.255.255.0. Należy użyć skrosowanego kabla Ethernet, aby połączyć oba urządzenia (np. komputer PC i Arduino). Powinniśmy wtedy móc pobrać witrynę Arduino pod adresem http://192.168.0.2 z komputera PC.

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.3 / 5. Liczba głosów: 17

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Maciej Figiel

Maciej Figiel

Wszechstronny, chętnie podejmuje się wyzwań, bo uważa, że jest to najszybsza droga ku rozwojowi. Ceni sobie kontakt z naturą i aktywny wypoczynek. Pasjonat motoryzacji i nowych technologii.

Zobacz więcej:

Masz pytanie techniczne?
Napisz komentarz lub zapytaj na zaprzyjaźnionym forum o elektronice.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce prywatności i Warunkom użytkowania.