elty.pl
Koszyk
Zamknij
Kontynuuj zakupy ZAMAWIAM
suma: 0,00 zł
Ulubione produkty
Lista ulubionych jest pusta.

Wybierz coś dla siebie z naszej aktualnej oferty lub zaloguj się, aby przywrócić dodane produkty do listy z poprzedniej sesji.

Szukaj
Menu
blog Elty
Cotygodniowa dawka eksperckiej wiedzy. Sprawdź czym dziś Cię zaskoczymy!

Na prośbę kilku osób przygotowałem bardzo prostą aplikacje na Androida umożliwiającą sterownie płytki Arduino podpiętej do sieci ethernet, sam program może stanowić bazę dla większych projektów.

Aplikacja w działaniu:

 

 

 

Co jest potrzebne:

  • płytka zgodna z Arduino, 
  • ethernet shield z układem Wiznet W5100

 

lub można użyć płytek stanowiących połączenie Arduino oraz shielda np. Iboard Ex lub Iboard pro

 

Schemat podłączenia:

 

Zasada działania:

Aplikacja z androida wysyła do płytki Arduino pakiety danych UDP, Arduino odbiera je i w zależności od zawartości pakietu steruje odpowiednimi wyjściami lub odpowiada zwracając interesującą nas informację - w przykładowej aplikacji jest to stan wejścia D7.

 

Co musimy wiedzieć o pakietach UDP:

  • aby go wysłać potrzebujemy IP Arduino oraz port, na którym pracuje serwer, w przykładowej aplikacji jest to IP 192.168.1.177 port 8888
  • po otrzymaniu pakietu Arduino wie z jakiego adresu IP otrzymało ten pakiet i może odpowiedzieć - to zostało wkorzystane aby odczytywać stan wejść.

 

Aplikacja na Androida:

  • została napisana w Android Studio, konfiguracja systemu jest do znalezienia np. na Youtube
  • Android Studio posiada wbudowany emulator systemu więc przykładową aplikację możemy przetestować na PC

 

Działanie aplikacji na Androida:

    • sterowanie odbywa się za pomocą komunikatów UDP i np. wysłanie komunikatu: D2ON powoduje włączenie diody podłączonej do wyjścia D2 Arduino od strony Arduino wygląda to następująco: 
      value=packetBuffer;
      if(value.indexOf("D2ON")==0)
      {
      digitalWrite(2, HIGH);
      }
    • odczyt danych z Arduino: ponieważ to Arduino odpowiada na zapytania ze strony Androida potrzebny jest mechanizm, który będzie co jakiś czas odpytywał Arduino o stan wejść, w tym celu został użyty timer który co 1 s wysyła do Arduino zapytanie: STATUSD7 na co Arduino odpowiada stanem wejscia D7, od strony Arduino wygląda to następująco:
      if(value.indexOf("STATUSD7")==0)
          {
              if (digitalRead(7)==0)
                 {
                   buffer = "D7 LOW ";
                    buffer.toCharArray(ReplyBuffer,9);
                  }
             if (digitalRead(7)==1)
                 {
                 buffer = "D7 HIGH ";
                 buffer.toCharArray(ReplyBuffer,9);
                 }

         }  

Aby rozpocząć odczyt danych a Arduino należy wcisnąć przycisk: timer start

 

 Pliki do pobrania:

Komentarze do wpisu (0)

Holder do góry
Szablon Shoper Modern 3.0™ od GrowCommerce
Sklep jest w trybie podglądu
Pokaż pełną wersję strony
Sklep internetowy Shoper Premium