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/
