1. Treści programowe:
Android
Studio, Java, ESP8266, http.
2. Cel zajęć:
Celem zajęć jest
nabycie przez studentów umiejętności programowania aplikacji mobilnej w środowisku
Android Studio dla systemu operacyjnego Android wymieniającej informacje z
zewnętrznym układem ESP8266 poprzez protokół http.
3. Materiały dydaktyczne
I.
Przykładowa
aplikacja komunikująca się z układem ESP8266 (kod programu II z instrukcji nr
4) z wykorzystaniem pakietu java.net.HttpURLConnection:
Wymagana
konfiguracja projektu:
-
Plik AndroidManifest.xml:
-
plik zasobów (folder res/xml)
network_security_config.xml:
II.
Kod
aplikacji stworzony w środowisku Android Studio, w którym przedstawiono trzy
sposoby komunikacji z układem ESP8266: metoda GET bez parametrów, metoda GET z
parametrami oraz metoda POST wysyłająca dane w części body.


conn.setConnectTimeout(5000);
·
Ustawia
maksymalny czas (w milisekundach), jaki program będzie czekał na nawiązanie
połączenia z serwerem.
·
5000
oznacza 5 sekund.
·
Jeśli
po tym czasie nie uda się połączyć (np. ESP jest offline), wyrzuci wyjątek SocketTimeoutException.
conn.setReadTimeout(5000);
·
Ustawia
maksymalny czas oczekiwania na odpowiedź z serwera po nawiązaniu połączenia. Również
5 sekund.
·
Jeśli
serwer (ESP) nie odeśle danych w tym czasie — rzuci błąd.
conn.setDoOutput(true);
·
Informuje,
że będziesz wysyłać dane w ciele zapytania — np. POST, PUT.
·
Bez
tego nie można wysyłać danych do serwera (OutputStream
będzie niedostępny).
·
Nie
trzeba go ustawiać przy zapytaniach GET, bo one nie mają ciała.
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
·
Ustawia
nagłówek HTTP Content-Type — czyli mówi serwerowi, jakiego
typu dane są wysyłane w ciele zapytania.
III.
Kod
programu na urządzenie ESP8266 odbierający dane na trzy sposoby (wspomniane we
wcześniejszym opisie) oraz wysyłający odpowiedz do klienta:
4.
Zadania
Zadanie
1.
Napisz program, w którym umieść trzy przyciski realizujące
trzy różne sposoby komunikacji (GET bez parametrów, GET z parametrami oraz POST
wysyłający dane w części body. Odpowiedzi serwera wyświetl w polu tekstowym.
Zadanie
2.
Zaimplementuj wybrany układ czasowy z poprzedniej
instrukcji oraz utwórz interfejs w środowisku Android Studio do sterowania układem.