Ethernet Shield, czyli Arduino w Internecie

Ostatnio opisywałem mały router Edimaksa. Nie bez powodu. Zamierzam podłączyć Arduino do Internetu. Właściwie głównie do sieci lokalnej, ale z możliwością bezpośrednich zapytań „w świat”. Jak to zrobić? Przez Ethernet Shield – rozszerzenie nakładane na Arduino (kompatybilne zarówno z Uno jak i Mega).

Arduino z Ethernet Shield

Komunikuje się ono przez interfejs SPI, który w Arduino Uno wyprowadzony jest na wyjścia 11, 12 i 13, natomiast w Mega na 50, 51 i 52. I tu może pojawić się pytanie, w jaki sposób jest w takim razie, shield jest kompatybilny z obydwoma płytkami. Jest, bo używa pinów oznaczonych jako ICSP, które są połączone z właściwymi wyjściami konkretnego Arduino. Warto to wiedzieć, bo na rynku jest jeszcze kilka „wynalazków” bez złącza ICSP, które używają zwykłych wyjść i nie współpracują poprawnie z wersją Mega (można je zmusić, ale nie w sposób elegancki). Oficjalna wersja działa w każdym razie poprawnie w każdym przypadku.

Ethernet shield to jednak nie tylko sieć. Rozszerzenie ma także wbudowany czytnik kart micro sd. On także obsługiwany jest przez SPI, ale używa dodatkowo wejść A0 i A1 (do zabezpieczania przed zapisem i wykrywania karty). Ponieważ obie funkcje karty sterowane są przez SPI, to użyte są jeszcze wyjścia 4 i 10 – do wyboru, która z nich ma być użyta.

Podsumowując, jeżeli używamy Ethernet Shield, nie powinniśmy korzystać z wyjść 4, 10-13 (4, 10, 51-52 w przypadku Mega) oraz A0 i A1. Jest to na pewno spore ograniczenie, jeżeli planowaliśmy duży projekt, ale małą ilość wyjść można obejść w inny sposób lub zastosować Arduino Mega. W przypadku Uno, do naszej dyspozycji pozostaje 9 wyjść cyfrowych i 4 analogowe. Zawsze trzeba to wziąć pod uwagę.

Znamy już ograniczenia, ale jakie możliwości daje nam to rozszerzenie? Bardzo szerokie. Arduino przekształca się w urządzenie, które może łączyć się z Internetem. Może być zarówno klientem różnych usług, jak i serwerem. Może więc na przykład cyklicznie wysyłać wyniki jakichś pomiarów do serwera w Internecie – choćby do popularnej usługi pachube/cosm, dla której jest nawet dostępny przykładowy kod klienta. Może też dziłać jako serwer i udostępniać wyniki pomiarów, gdy jakiś klient o nie zapyta.

Oczywiście to nie jedyne możliwości. Ogranicza nas wyobraźnia, projekt i zasoby Arduino. Bez problemu można jednak zbudować rozwiązanie, które będzie działać jako klient i jednocześnie serwer. Dzięki temu będzie mogło przyjmować polecenia i udostępniać dane do jakiegoś systemu nadrzędnego oraz wysyłać do niego informacje o różnych zdarzeniach. Na tym założeniu będzie oparty system nawadniania, alarmu i inteligentnego domu, o czym wkrótce…

Reklamy

3 Responses to Ethernet Shield, czyli Arduino w Internecie

  1. Pawel says:

    Mam pytanie, w jaki sposób ten shield „zajmuje” piny 51 i 52 w mega? Na mojej płytce w ogóle nie wydają się one być połączone z shieldem (tak jak na załączonym obrazku).

    http://www.laurenceliss.com/sites/default/files/styles/large/public/IMG_4666.JPG?itok=KHtmInDA

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

%d blogerów lubi to: