Stavba serveru s Arduino

Čas čtení: 2 min.

Tento článek představuje technický příklad prototypu webového serveru založeného na platformě Arduino a modulu Arduino Ethernet Shield.

Použití modulu Ethernet Shield

Chcete-li z Arduino vytvořit miniaturní centrum pro řízení různých procesů přes internet, stačí připojit překryvný štít Ethernet Shield. Arduino se pak stane miniaturním webovým serverem, ke kterému lze přistupovat z prohlížeče na mobilním zařízení nebo počítači. Pomocí takového systému vzdáleného připojení můžeme provádět řadu činností včetně čtení stavů spínačů a tlačítek, ovládání provozních parametrů zařízení a komponent připojených k Arduino a čtení parametrů z měřicích senzorů.

Miniaturní domácí webový server na Arduino - komponenty potřebné pro projekt

K výrobě miniaturního webového serveru pomocí ekosystému Arduino budete potřebovat následující komponenty:

  • Platforma Arduino UNO R3 nebo Arduino MEGA2560
  • Rozšiřující deska Arduino Ethernet Shield
  • Kabelové připojení Ethernet/LAN 10/100 Mb/s
  • Připojovací kabel Ethernet
  • Wi-Fi router
  • kontaktní deska
  • připojovací kabely pro kontaktní desky
  • rezistor 10k/0,6W
  • Napájecí zdroj DC 2x9V
  • monostabilní tlačítko (mikrospínač)

Miniaturní domácí webový server na Arduino - propojení komponent systému

Komponenty by měly být připojeny takto: k digitálnímu pinu 8 na Arduino je připojeno monostabilní tlačítko, které je nakonfigurováno jako vstup. Když je tlačítko stisknuto, Arduino bude na tomto pinu číst nízký stav. Následně Arduino nastaví výstup do vysokého stavu. Po uvolnění tlačítka se na výstupu opět načte a udrží nízký stav. Informace o zaznamenané změně stavu polohy tlačítka bude odeslána na webový server.

Nastavení krytu Ethernet Shield

K ovládání překryvného rozhraní Ethernet se používá knihovna Ethernet.h. Překrytí musí být přiřazena MAC a IP adresa pomocí funkce Ethernet.begin(). Pro konkrétní zařízení je adresa MAC globálně jedinečným identifikátorem. Současné verze ethernetových překryvů se dodávají s nálepkou, na které je uvedena adresa MAC. U starších štítů by měla fungovat náhodná, ale stejná by se neměla používat na více deskách. Platnost IP adres závisí na konfiguraci sítě. Pokud se používá protokol DHCP, může překryvné vrstvě dynamicky přidělovat adresu IP.

Určení adresy IP

IP adresa (adresa internetového protokolu) je číselné označení přidělené každému zařízení zapojenému do počítačové sítě, která ke komunikaci používá internetový protokol. Zadání adresy IP se provádí zadáním řádku:

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

IP adresa musí být změněna tak, aby odpovídala jedné vlastní konfiguraci. Chcete-li například přiřadit IP adresu ethernetového štítu 192.168.0.30, zadejte řádek:

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

Určení adresy MAC

Adresa MAC (media access control address) je jedinečný identifikátor přiřazený každému zařízení zapojenému do fyzické sítě. Každé síťové zařízení má jedinečné sériové číslo, kterým se identifikuje v síti a které je obvykle trvale naprogramováno ve firmwaru zařízení. V případě Arduino však můžeme adresu MAC definovat sami:

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

Podsíť a bránu můžete nastavit pomocí následujících příkazů:

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

Níže je uveden blok kódu pro konfiguraci štítu Ethernet:

				
					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 server WWW – kód cílového programu

				
					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("");
				
			

Výše uvedený skript přikáže prohlížeči obnovit stránku. Po opětovném otevření stránky Arduino znovu načte stav přepínače a zobrazí jej. Po stisknutí tlačítka můžeme sledovat měnící se stav spínače, jak je vidět na videoukázce. Hardware lze také nastavit tak, aby fungoval bez směrovače. Za tímto účelem přiřaďte ručně síťovému rozhraní Arduino adresu IP, např. 192.168.0.2, a výchozí adresu masky podsítě 255.255.255.0. K propojení obou zařízení (např. počítače PC a Arduina) je třeba použít křížený kábel Ethernet. Poté bychom měli být schopni stáhnout web Arduino na adrese http://192.168.0.2 z počítače PC.

Jak hodnotíte tento článek na blogu?

Klikněte na hvězdičku a ohodnoťte!

Průměrné hodnocení 4.3 / 5. Počet hlasů 18

Zatím nejsou žádné hlasy! Buďte první, kdo ohodnotí tento článek.

Sdílet:

Picture of Maciej Figiel

Maciej Figiel

Je všestranný a rád přijímá výzvy, protože věří, že je to nejrychlejší způsob, jak se rozvíjet. Oceňuje kontakt s přírodou a aktivní odpočinek. Vášnivě se zajímá o automobily a nové technologie.

Viz více:

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Z důvodu bezpečnosti je nutné používat službu reCAPTCHA společnosti Google, která podléhá zásadám ochrany osobních údajů a podmínkám používání společnosti Google. S těmito podmínkami souhlasím..