Internet Enabled Solar Tracker (14 / 15 steg)
Steg 14: Web App och Smartphone-gränssnittet
Förmågan att kontrollera och övervaka status för solpanelen var ett designmål. För att vara tydlig, du behöver inte funktionen för tracker att arbeta. Det är ytterligare funktioner som gör att du kan övervaka statusen för tracker distans.
För att använda koden, du behöver en webbserver inrätta kör IIS Version 7 eller senare. Du kan köra webbserver på din egen dator eller använda en extern värdtjänst som http://1and1.com (jag använder 1and1). Om du använder din egen webbserver som värd hemma, kommer att du behöva registrera dig med en dynamisk DNS-tjänst så att datorn går att hitta från Imp-servern.
Gränssnittet till panelen är skapad av Index.html. Denna webbsida använder JQuery Mobile http://jquerymobile.com/ för att skapa utseendet av en infödda iPhone app. Den enda begränsningen med JQuery Mobile är att du inte kommer åt smartphone specifik hårdvara som accelerometer och GPS. Det finns 3: e part plattformar som tillåter dig att överbrygga denna klyfta som Phonegap http://phonegap.com/
Fina med Phonegap är att du kan ha din kod kompileras för iOS och Android plattformarna. Om du undvika beroenden på telefon hårdvara som jag har gjort för denna app, du behöver inte thse 3rd party plattformar och din kod kommer att köras på någon Smartphone, Tablet eller PC med en passande aktuell webbläsare. Brower måste stödja HTML5.
Solar Tracker ansökan behöver inte telefon hårdvara, så JQuery Mobile är enda beroende.
Hur det fungerar
Index.html filen har två huvudsakliga interna "sidor"
- Statussidan övervakning – frågar regelbundet aktuella hårdvara värden från SQL-databasen så att du kan se systemets status.
- Motion control sida – kan du driva panelen motorer till en viss elevation och Azimut. Du kan till exempel skicka panelen till en storm-säker position.
- Sidan Inställningar - detta genomfördes inte men i framtiden kommer att innehålla vissa parametrar som kan lagras i den integrerade havspolitiken som Lat och Lon.
Övervakning statussidan frågar regelbundet (en gång var 2 sekunder för utveckling – kommer att gå långsammare senare) webbservern för data som visas i ett rutnät-liknande sätt. Dessa data finns från SQL Server (värd också 1and1.com). Gränssnittet är via webbsidan TrackerStatus.aspx som läser data från SQL Server-databasen och returnerar svaret AJAX frågan gjort av Index.html körs på Smartphone. Index.html uppdateras visningen av med de senaste värdena.
För att styra rörelse i panelen manuellt, gör Motion control sidan ett AJAX-anrop till sidan Services.Aspx . Denna sida tolkar samtalet och passerar en JSON objekt till den elektriska Imp "HTTP i" nod värd elektriska Imp servern. Noden "HTTP i" ansluter till firmware genom en Input Port kallas HTMLCommands. Ekorre koden stödja denna port extraherar vinkel målinformationen och använder Tracker objekt i firmware för att köra motorerna till önskad manuell position.
Firmware är kunna uppdatera SQL Server-databasen genom att data skickas till noden HTTP-begäran. Den här noden är konfigurerad för att skicka data till DatabaseUpdater.aspx som skriver information i databasen. All statusinformation skrivs till SQL med DatabaseUpdater.aspx.
Du kan kopiera de medföljande filerna till din webbplats målkatalogen. För att sammanfatta:
- Index.html -filen läses in av smartphone webbläsare. Ger UI för uppföljningssystemet och UI för manuell kontroll av spårning metar vid behov
- Services.apsx – ASP.Net-fil som tar emot manuell tracking vinklar från Index.html. Ger dessa vinklar till Imp HTTP i nod, som vidarebefordrar dem till firmware via HTTP. Denna fil kan tyckas överflödig men man undviker problem med Cross ursprung resursdelning. Webbläsare är i allmänhet inte glad AJAX samtal till en annan domän än den domän som serveras på sidan som de använder. MyWebServ.com serveras till exempel filen index.html. Index.html använder AJAX för att göra en begäran till electricimp.com... webbläsare freaks ut. Samtal får man ibland men returneras ett fel. Alla samtal till samma webbserver undviker detta. Jag är säker på att det finns andra sätt men jag vet inte dem!
- TrackerStatus.aspx – ASP.Net-fil som förhör i databasen på begäran för den senaste statusinformationen från den integrerade havspolitiken. Data begärs av index.html AJAX samtal. TrackerStatus.aspx frågar databasen, paket resultatet som en JSON-sträng och returnerar Svaren till index.html
- DatabaseUpdater.aspx – Peridodically firmware skriver att det har utgång (CompassPort). Imp planeraren har konfigurerats med en HTTP-begäran nod som ansluter till CompassPort. När ett datapaket tas emot, kommer att noden HTTP-begäran göra en begäran till målsidan som det har konfigurerats. Denna sida är DatabaseUpdater.aspx som skriver de aktuella värdena för status i databasen via en SQL uppdateringsfråga.
Du kommer att behöva konfigurera din databasanslutningssträng samt din elektriska imp URL detaljerna. Den bifogade filen WebFiles.PDF innehåller all källkod för webbtjänsterna. Byt namn på filen till PDF-filen till zip och packa upp.