Arduino Yun - solpanel övervakningssystem (6 / 8 steg)
Steg 6: SOLPANEL övervaka – ANDROID APP (1)
Android app innehåller 5 delar.
- Huvudprogrammet visar ständigt de uppmätta värdena från Arduino styrelsen
- Databasen och funktioner att komma åt databasen
- Widgeten app som visar de senaste mätningarna på enhetens startskärmen
- Den bakgrundstjänst som synkroniserar Android en gång varje dag med Arduino styrelsen
- Starta om tjänsten som börjar uppdatera timers för widgeten app och synkroniseringstjänsten automatiskt efter Android-enhet var påslagen eller rebootet.
Jag går inte i varje liten detalj av källkoden, istället kommer jag att visa de viktiga kodavsnitt för varje modul.
MAIN TILLÄMPNINGEN
SPLASH AKTIVITETEN
När programmet startas den första aktiviteten som kallas är SplashActivity.
SplashActivity allmänna programflöde:
SplashActivity onCreate
WiFi aktiverat?
Nej = > stoppa
Ja = > IP-adress sparas?
Nej = > starta sökningen för Arduino ombord på det lokala nätverket
Ja = > Arduino ombord ansluten till denna IP-adress?
Nej = > starta sökningen för Arduino ombord på det lokala nätverket
Ja = > starta den huvudsakliga verksamheten
Sök efter Arduino ombord framgångsrika?
Nej = > stoppa
Ja = > starta den huvudsakliga verksamheten
Valfria IP-adress kan anges manuellt. Sök efter Arduino styrelsen sker i en AsyncTask = >
privat klass findArduino sträcker sig AsyncTask < sträng, sträng, sträng >
Kolla in SplashActivity.java för detaljer.
MAIN-AKTIVITET
Första aktivitet här är att synkronisering den lokala databasen för Android-enhet med databasen på Arduino styrelsen. Återigen detta görs i en AsyncTask = >
allmän klass syncDBtoDB sträcker sig AsyncTask < sträng, sträng, sträng >
Synkroniseringen kan ta lite tid, det är därför det måste köras i bakgrunden. När synkroniseringen är klar UI visar dagens mätningar och en timer startas att uppdatera varje minut.
Som ni kan se i bilderna ovan jag använde en skärm från emoncms.org som en mall för den huvudsakliga UI.
Skärmen visar i den översta raden (blå), nuvarande energiförbrukning produktionen av solpanelen (ljus orange) och i mitten om jag exportera eller importera makt till eller från elnätet. Nedan visas de maximala värdena.
Diagrammet innehåller en översikt från midnatt till aktuell tid. Den blå linjen visar strömförbrukningen. Denna linje kan visa negativa värden om solpaneler producerar mer energi än vad huset förbrukar. Den ljusa orange linjen visar makt produktion av solpaneler.
Diagrammen kan döljas med kryssrutorna i den nedre delen av skärmen. På nästa är skärmdumpar endast en av listorna synlig.
Dessa diagram skapas med öppen källkod graf biblioteket MPAndroidChart. Det är ett trevligt bibliotek och lätt att använda. Du bör kolla upp det om du behöver några diagram i din Android app. Det erbjuder ett brett utbud av olika diagramtyper.
Diagrammet kan zoomas horisontellt och vertikalt. Om du zoomar det är också möjligt att bläddra genom diagrammet. En kran på någon del av diagrammet visar ett litet fönster med värden på denna punkt.
Den lägre mellersta delen av skärmen används för statusmeddelanden. Det visar efter varje uppdatera värdena läsa från Arduino styrelsen.
Knapparna ovanför diagrammet (från höger till vänster):
Nära = > stänga programmet
Stoppa (Start) = > stoppa eller starta kontinuerlig uppdatering av diagrammet
Uppdatera = > synkronisera data från enheten med Arduino styrelsen
Status = > Visa kalibrering värdena används på Arduino styrelsen i fönstret status meddelande
<< och >> = > Visa historiska data
Med den << och >> knappar funktionsläget av UI förändringar. Med varje tryck på en av dessa knappar historiska data från den föregående eller nästa dag visas i stället för den fortlöpande uppdateras datan.
Att trycka på startknappen går tillbaka till det kontinuerligt läget. Två funktioner som saknas fortfarande är att säkerhetskopiera databasen till en fil/moln/PC och återställa data.