Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Sistemi: Programmazione web
Italiano: Eugenio montale e la metafisicità del paesaggio
Storia: Guerra fredda
Un gruppo può accedere ad un solo impianto , mentre un impianto può
essere Gruppi n
Id
n nome 1
1
DatiImpianti GruppiUtenti
GruppiImpianti
Id utente
Id
impianto
Id_
Kwatt Id_gruppo
Id_gruppo
Co2
euro 1 1
n 1 1
Utente
Impianto Id
Id nome
Potenza cognome Login
Co2 sesso 1 1
Euro_annui Id
1 1
Area_ installazione User
sito
Proprietario pass
cellulare
Data_attivazione telefono
Note cfiscale
indirizzo
1
n 1
AccessiUtenti Attivazione
Id_utente Id_utente
Data Codice
Ip stato
dispositivo
visualizzato da più gruppi(1-n).
un utente può appartenere ad un solo gruppo mentre un gruppo può
contenere più utenti.
Un impianto può avere più record di “datiImpianti” relazionati, mentre ogni
record corrisponderà ad un solo impianto.
Tra login e utente e tra attivazione e utente si ha un’associazione 1 a 1 in
quanto ogni utente ha correlato un solo record di login ed un solo record di
attivazione.
Tra utente e accessi utenti si ha una relazione 1 a n in quanto ogni utente
può essere relazionato a più accessi , ma un accesso può corrispondere solo
ad un utente.
Android
L’applicazione rende possibile all’utilizzatore , il controllo dei dati degli impianti
a lui collegati , in tempo reale. Inoltre avrà a disposizione la possibilità di
modificare i propri dati entrando nell’apposito menù. Il collegamento al
database online è effettuato tramite l’utilizzo di appositi file php memorizzati
all’interno dello spazio web.Tali file restituisco e ottengono i dati relazionandosi
unicamente con l’applicazione android.
Per utilizzare l’app è necessario abilitare la connessione internet e anche il
rilevatore di posizione geografica (GPS).
Schermata iniziale : Login
1) Grazie a questa schermata l’utente
sarà abilitato a proseguire nell’utilizzo
dell’applicazione.
Inserendo i propri dati di “Username”
e “password” all’interno delle
apposite textbox , dopo la pressione
del button “login” verrà reindirizzato
nella pagina principale dell’utente .
Il sistema di Login funziona attraverso
un interfacciamento con file PHP
presenti nello spazio web occupato
dal sito e dal database.
Il file PHP , in questo caso
“check.php” , permette
all’applicazione di verificare se i valori
immessi dall’utente all’interno della
textbox sono validi e quindi se
username e password sono esistenti e
collegate tra di essi ad un account
Pagina principale dell’utente : Home
2) Login
1.
Settings
3.
3. Home 5. Data
4. Maps 6. Combobox
Una volta Loggato , l’utente avrà quindi a disposizione la precedente pagina.
Pagina dalla quale potrà effettuare diverse richieste ( mediante la pressione
degli appositi bottoni) che porteranno in chiaro i dati conservati sul database .
1.Login :
viene utilizzato per visualizzare con quale account , l’utente ha
effettuato l’accesso.
2.Settings:
Bottone utilizzato per visualizzare a video la pagina relativa a tutte le
impostazioni dell’utente (visualizzazione ,modifica dati dell’account).
3.Home :
Bottone per aggiornare la pagina e visualizzare nuovamente il
contenuto con i dati aggiornati.
4.Maps :
Dopo la sua pressione verrà visualizzata sulla mappa l’area di terreno
relativa all’impianto selezionato nella combobox.
5.Data :
Visualizza la pagina relativa a tutti i dati dell’impianto e consente la
visualizzazione delle informazioni raccolte in un determinato periodo
temporale sotto forma di tabella o grafico.
6.Combobox :
visualizza gli impianti collegati all’utente loggato e al cambio di valore
effettua il refresh dei dati .
3) Mappe : GPS Permette all’utente di
visualizzare sulla mappa
( Google maps) la locazione
dell’impianto fotovoltaico ed
eventualmente calcolare il
percorso per poterlo
raggiungere dall’attuale sua
posizione.
4) Informazioni
: Dati impianto Attraverso tale schermata sarà possibile
visualizzare tutti i dati relativi all’impianto
selezionato in precedenza nella pagina
principale.
Vi sono riportati tutti i dati principali ed è
possibile , visualizzare dati sotto forma di
grafici e anche la locazione sulla mappa.
Grafici
5)
Attraverso la pressione del bottone
grafici (nella precedente schermata )
sarà possibile passare ad una nuova
activity che renderà possibile la
visualizzazione dei grafici relativi allo
specifico impianto. Grafici che
avranno il compito di rendere
all’utente più facile la comprensione
dell’andamento dei guadagni
economici,ambientali ed elettrici
dell’impianto.
6) Informazioni : Dati Utente
Activity che visualizza tuttti i dati
dell’utente loggato al momento.
Attraverso la pressione del tasto modifica
l’utente avrà la possibilità di passare alla
pagina successiva per la modifica dati.
Modifica dati utente
7)
Attraverso tale activity l’utente avrà
a disposizione un form per effettuare
la modifica dei propri dati anagrafici
e della propria password.
Parti di codice
significative : (Login.java)
Classe per visualizzare e gestire la schermata principale dove l’utente
effettuerà il login
package tesina.solartest;
import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class SolartesActivity extends Activity {
EditText un,pw;
TextView error;
Button ok;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {//Alla crreazione della
classe verrà eseguito questo metodo
super.onCreate(savedInstanceState);
final Context context = getApplicationContext();
//toast sono le finiestrelle nere che appaiono visualizzando messaggi come
le alert in javascript
final int duration = Toast.LENGTH_SHORT;setContentView(R.layout.main);
//setta quale file xml deve essere visualizzato
//assegna i nuovi oggetti a quelli già identificati nel XML
un=(EditText)findViewById(R.id.et_un);
pw=(EditText)findViewById(R.id.et_pw);
ok=(Button)findViewById(R.id.btn_login);
error=(TextView)findViewById(R.id.tv_error);
// img = (ImageView) findViewById(R.id.img_logo);
// img.setImageResource(R.drawable.logo2);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent nextScreen = new Intent(getApplicationContext(),
home.class);//al click verrà reinderizzato alla nuova classe e schermata
ArrayList<NameValuePair> postParameters = new
ArrayList<NameValuePair>();//parametri della query
postParameters.add(new BasicNameValuePair("username",
un.getText().toString()));
postParameters.add(new BasicNameValuePair("password",
pw.getText().toString()));
String response = null;//inizializza la stringa che conterrà i
risultati della query
try { //attraverso una classe definita per lo scopo esegue il
file php ottenendone il risultato
response =
CustomHttpClient.executeHttpPost("http://solartest.altervista.org/android/check.
php", postParameters);
String res=response.toString();
res= res.replaceAll("\\s+","");
//gestione errori
if(res.equals("1")){//se è tutto apposto esegue la nuova
activity error.setText("Password e username corretti");
Toast toast = Toast.makeText(context, "Password e
username corretti!", duration);
toast.show();
nextScreen.putExtra("username",
un.getText().toString()); startActivity(nextScreen);}
else{//altrimenti visualizza l'errore
error.setText("Password o username non corretti!!
Riprovare"); Toast toast = Toast.makeText(context, "Password o username
non corretti!! Riprovare", duration);
toast.show();}
} catch (Exception e) {//visualizza gli errori non dovuti
all'utente int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, e.toString(),
duration); toast.show();
}
}
});
}
}
File XML per gestire l’interfaccia grafica della classe precedentemente
presentata.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/logo3"
> <TextView android:gravity="center" android:textColor="#7BA05B"
android:background="#7F7F7F" android:text="SolarTest"
android:id="@+id/textView1" android:layout_width="fill_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_height="wrap_content"></TextView>
<TextView
android:id="@+id/tv_un"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25dip"
android:text="Username" />
<EditText
android:id="@+id/et_un"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/tv_un"
android:layout_alignTop="@id/tv_un"/>
<TextView
android:id="@+id/tv_pw"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dip"
android:text="Password" />
<EditText
android:id="@+id/et_pw"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/tv_pw"
android:layout_alignTop="@id/tv_pw"
android:layout_below="@id/et_un"
android:password="true" />
<Button
android:id="@+id/btn_login"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/et_pw"
android:layout_alignParentLeft="true"
android:layout_marginTop="15dip"
android:text="Login"/>
<TextView
android:id="@+id/tv_error"
android:layout_width="fill_parent"
android:layout_height="240dip"
android:textSize="7pt"
android:layout_alignParentLeft="true"
android:layout_below="@id/btn_login"
android:layout_marginRight="9dip"
android:layout_marginTop="15dip"
android:layout_marginLeft="15dip"
android:textColor="#AA0000"
android:text=""/>
</LinearLayout>
</ScrollView>
ANDROID PARTE AMMINISTRATORE /
OPERATORE (dimostrazione)
Come specificato prima l’utente per potersi registrare avrà bisogno di un codice
di attivazione fornitoli dall’operatore o chi di competenza. L’emissione di tale
codice è stata simulata tramite una nuova applicazione disponibile solo per gli
operatori. Una volta loggato l’utilizzatore avrà a disposizione la possibilità di :
Aggiungere utenti : e quindi inserire i principali dati con i quali sarà
o possibile rintracciare l’utente in caso di contatto o rinuncia all’attivazione
o altri problemi.
Eliminazione utenti : Attraverso una semplice ricerca potrà essere
o evidenziato un eventuale utente da eliminare
Modifica Utenti : Verranno modificati i principali dati di un utente :
o ATTENZIONE non potranno essere modificate ne username ne password
dal dispositivo utilizzante tale applicazione.
Modifica impianti: E’ possibile modificare i dati di un impianto,
o modificarne lo stato ecc.
Come nella precedente applicazione
anche in essa la principale schermata fa riferimento ad un’ activity
che gestisce il login dell’operatore.
L’operatore loggato avrà quindi a disposizione la schermata a sinistra che gli
fornirà le varie possibilità sopra elencate .
WEB
La parte web presenta le stesse funzionalità dell’applicazione Android,
visualizzate ovviamente in maniera più dettagliata.
1) Homepage
Nella sezione Home è possibile visualizzare le informazioni più significative
riguardanti coloro che hanno sviluppato il sito e l’applicazione e eventuali news
che riguardano l’intero sistema. Per entrare più nel dettaglio è possibile
consultare la sezione “Cosa è”.
2) Android
In questa sezione, grazie al “QRCode”, l’utente potrà scaricare l’applicazione
android semplicemente utilizzando l’apposita applicazione smartphone, che
permette la lettura del QRcode.
3) Contatti
Qui è possibile trovare informazioni per prendere appuntamento per
l’installazione di pannelli solari o per sottoscrivere un contratto, in modo da
visualizzare i dati dei propri pannelli.
4) Area Utenti
Qui troviamo una delle parti fondamentali del sito: il login con la
propria username e password e l’attivazione dei propri dati.
Login: