Stap 6: ZONNEPANEEL toezicht – ANDROID APP (1)
De Android app bevat 5 hoofdonderdelen.
- De belangrijkste toepassing voortdurend te tonen de gemeten waarden van de Arduino board
- De database en de functies voor toegang tot de database
- De app widget die tonen de laatste metingen op het apparaat thuis scherm
- De achtergrond service die wordt gesynchroniseerd de Android eenmaal per dag met de Arduino board
- De service opnieuw opstarten die begint bijwerken tijdopnemers voor de widget van de app en de tijdsynchronisatie-service automatisch na het Android apparaat was ingeschakeld of rebootet.
Ik zal niet ingaan op elk klein detail van de broncode, in plaats daarvan dat zal ik laten zien van de belangrijke codefragmenten van elke modul.
DE MAIN-TOEPASSING
DE SPLASH-ACTIVITEIT
Wanneer de toepassing wordt gestart met de eerste activiteit die heet is de SplashActivity.
SplashActivity algemene programma flow:
SplashActivity onCreate Wifi enabled? no => stop yes => IP address saved? no => start search for Arduino board in the local network yes => Arduino board connected to this IP address? no => start search for Arduino board in the local network yes => start the main activity Search for Arduino board successfull? no => stop yes => start the main activity
Optioneel het IP-adres kan handmatig worden ingevoerd. De zoektocht naar de Arduino board is gedaan in een AsyncTask = >
private class findArduino extends AsyncTask<String, String, String>
Check out SplashActivity.java voor details.
DE BELANGRIJKSTE ACTIVITEIT
Eerste activiteit hier is synchronisatie de lokale database van het Android apparaat met de database op de Arduino board. Dit gebeurt opnieuw in een AsyncTask = >
public class syncDBtoDB extends AsyncTask<String, String, String>
De synchronisatie kan enige tijd duren, dat is waarom het moet draaien op de achtergrond. Nadat de synchronisatie is voltooid de UI zal het tonen van hedendaagse metingen en een timer is begonnen met het bijwerken van de informatie van elke minuut.
Zoals u in de bovenstaande foto's dat ik een scherm van emoncms.org gebruikt als een sjabloon voor de belangrijkste UI zien kunt.
Het scherm toont in de bovenste rij van het huidige energieverbruik (blauw), de productie van het zonnepaneel (licht oranje) en in het midden als ik exporteren of importeren van macht naar of van het elektriciteitsnetwerk. Hieronder worden de maximumwaarden weergegeven.
Het diagram toont het overzicht van middernacht tot de huidige tijd. De blauwe lijn toont het stroomverbruik. Deze regel kan negatieve waarden weergegeven als het zonnepaneel meer energie produceert dan het huis verbruikt. De licht oranje lijn toont de elektriciteitsproductie van het zonnepaneel.
De grafieken kunnen worden verborgen met de selectievakjes in het onderste gedeelte van het scherm. Op de volgende is screenshots slechts één van de grafieken zichtbaar.
Deze grafiek is gemaakt met de open source grafiek bibliotheek MPAndroidChart. Het is een aardige bibliotheek en makkelijk te gebruiken. U moet check it out, moet u sommige grafieken in uw Android app. Het biedt een breed scala aan verschillende grafiektypen.
De grafiek kan worden ingezoomd horizontaal en verticaal. Als het in-of uitgezoomd is ook mogelijk om door de grafiek te bladeren. Een tik op enig deel van de grafiek toont een klein venster met de waarden op dit punt.
Het lagere middengedeelte van het scherm wordt gebruikt voor statusberichten. Het toont na elke update die de waarden van de Arduino board leest.
De knoppen boven de grafiek (van rechts naar links):
Dicht = > Sluit de toepassing
Stoppen (Start) = > stoppen of starten van de continue actualisering van de grafiek
Vernieuwen = > synchroniseren van de gegevens van het apparaat met de Arduino board
Status = > de kalibratie-waarden gebruikt op de Arduino bord in het statusvenster bericht weergeven
<< en >> = > historische gegevens weergeven
Met de << en >> de wijze van de veranderingen UI knoppen. Met elke druk op een van deze knoppen historische gegevens van de vorige of de volgende dag wordt weergegeven in plaats van de continu vernieuwde gegevens.
Op de startknop gaat terug tot de continue mode. Twee functies die nog ontbreken is om een backup van de database naar een bestand/cloud/PC en om gegevens te herstellen.