W ostatniej części krótki opis aplikacji na urządzenia mobilne.
Powyższy zrzut prezentuje wygląd aplikacji. Mamy tutaj dane odczytane z czujnika warunków atmosferycznych, oraz przekazane przez serwer dane dotyczące godziny i daty wykonanego odczytu.
Aplikacja wykorzystuje bibliotekę retrofit, dzięki której odbierane dane (metodą GET) są automatycznie mapowane na pola obiektu, który wygląda tak:
package pl.elektrofanklub.weatherreceiver; public class WeatherData { double temperature; int humidity; String date; String time; public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public double getTemperature() { return temperature; } public void setTemperature(double temperature) { this.temperature = temperature; } public int getHumidity() { return humidity; } public void setHumidity(int humidity) { this.humidity = humidity; } }
Wykorzystany jest też butterknife, który ułatwia powiązanie kontrolek widoku z obiektami w kodzie.
Wciśnięcie przycisku Pobierz powoduje wysłanie żądania do serwera. Jego adres jest zapisany na sztywno w kodzie. W prezentowanym przykładzie jest to nazwa hosta raspberrypi w lokalnej sieci (telefon musi korzystać z Wifi w tej samej sieci). Aby komunikacja działała przez internet, należy oczywiście wpisać publiczny adres serwera i w razie potrzeby udostępnić odpowiednie porty.
W przypadku błędu użytkownik zobaczy dymek (toast) z odpowiednim komunikatem.
Kod programu do pobrania: weatherreceiver
Tak w całości prezentuje się projekt systemu prezentacji wskazań czujnika temperatury i wilgotności powietrza na urządzeniu mobilnym przez sieć lub internet. Sam projekt raczej nie ma zbyt wielu zastosowań praktycznych. Jest przykładem praktycznej realizacji zagadnienia tego typu i może stanowić bazę dla projektów związanych ze zdalnym sterowaniem lub monitoringiem i telemetrią. Łączy kilka ciekawych technologii, takich jak transmisja bezprzewodowa w dwóch pasmach (433 i 2400MHz), wykorzystanie Javy na RaspberryPi, json, serwer http oraz Android wraz z bibliotekami Retrofit i Butterknife.
Pierwsza część opisu pod tym linkiem: http://www.elektrofanklub.pl/stacja-pogodowa-z-prezentacja-pomiarow-w-internecie-cz-1/