Smarta hemmet energi övervakning & management system (6 / 9 steg)
Steg 6: Gateway design
Porten är ansvarig för insamling av uppgifter och sedan skicka den till android ansökan gräns flat. Det har också en konsol tillgång som kan visa all relevant information tillsammans med en liten gränssnitt. Begär information från noden energi via trådbunden kommunikation. Noden energi skickar sedan informationen tillbaka till gateway. Gateway vidarebefordrar sedan denna information till android ansökan gräns flat. Denna process sker i stamgästmellanrum som kan ställas in i menyn-gränssnittet. Eftersom porten och energi noder är separata kan ett enda system bestå av många energi noder. Fördelen med detta är att kostnaden för att övervaka en annan ytterligare apparat är låg eftersom endast noden energi måste köpas.
Ansökan om porten är utformad helt med C-språket. Flödesschema för programmet visas i figur inneslutna. Programmet startar med initiering av GPIO stiften styrelsens Beaglebone svart med "sys"-systemet. Riktningarna av GPIO stiften ställs sedan att rymma funktionerna används på stiftet. Till exempel valdes stiften som reläer förbands som resultat medan stiften som växlar förbands valdes som insatsvaror.
Efter GPIO pins initieringen öppnar vi två seriella portar noder som kan nås i linux filsystem som "/ dev/ttyOx" där x är antalet UART. Dessa två seriella portar är de på som vår energi mätning noder förbinds direkt med UART. Sätt först efter öppna dessa portar, skulle vi kunna få tillgång till dessa portar. Efter då vi läst tidigare konfigurationer av de seriella portarna och skapa ett nytt att matcha vår EMIC kapacitet. Efter framgångsrika inställningar i de seriella portarna lasta vi kalibrering konstanter på våra två EMIC styrelser och således initierar de två CS5490 EMICs redo för energi mätningar.
Efter framgångsrika lastning av kalibrering konstanter sätta vi en signal hanterare för nödsituationer stoppa gateway serverprogrammet. Här gör vi alla kloka deallocation resurser som server filen deskriptorer, seriella portar och allt som vi har använt i vår ansökan.
Som gateway ansvarar också för att lagra Mätarvärdena i en databas, använder här vi sqlite databas för att lagra läsningen från mätaren i ett strukturerat format. Efter initieringen av signal hanterarna, vi öppna / skapa databasfilerna för motsvarande mätare med namnet "METERx" där x är antalet meter. Om databasfilen inte var där från början, det skapas annars det öppnas. Tabellerna för motsvarande månad och år är nu skapad / öppnade med formatet "month_year". För en ny månad/år skapar programmet automatiskt i motsvarande tabell i databasen.
Nu för att genomföra parallellitet i programmet gateway, genomföra vi tre trådar som körs tre olika användarorienterad funktioner. Här initiera vi tre trådar. Den första är "timer tråden" som ansvarar för att upprätthålla referens tidsfördröjningen i programmet för Periodisk uppdatering av databasen och användargränssnitt för Mätarvärdena. Nästa tråd "växla polling tråd" är ansvarig för kontinuerlig övervakning växlar om de trycks eller inte, och därmed köra motsvarande ladda växlingen funktionalitet. Den tredje tråden "server tråd" är ansvarig för att skapa, bindande, lyssnar och underhålla en TCP/IP anslutning med android klient-applikationen för data updation och hämtning.
Prototyp demonstrationen, har vi valt Beaglebone svart, en utveckling styrelse från Texas Instruments som gateway processor. Det är utrustat med en minsta uppsättning funktioner ge användaren möjlighet att uppleva kraften i processorn och är inte avsedd som en full utvecklingsplattform som många av de funktioner och gränssnitt av processorn inte är tillgänglig från BeagleBone Black via inbyggt stöd för vissa gränssnitt. BeagleBone Black är inte en komplett produkt för att göra någon särskild funktion. Det är en grund för experiment och lära sig att programmera processorn och tillgång till kringutrustningen genom skapandet av din egen programvara och maskinvara. Också erbjuder tillgång till många av gränssnitt och möjliggör användning av tillägg styrelser kallas uddar, att lägga till många olika kombinationer av funktioner. En användare kan också utveckla sin egen styrelse eller lägga till sin egen krets.
Styrelsen dragen omfattar:
1. AM335x 1GHz ARM® Cortex-A8
2. 512MB DDR3 RAM
3. 4GB 8-bitars eMMC ombord blixt lagring
4. 3D grafikaccelerator
5. NEON floating-point accelerator
Anslutning:
1. USB-klient för power & kommunikation
2. USB-värd
3. Ethernet
4. HDMI
5. 2 x 46 pin header
Programvarukompatibilitet:
1. debian
2. android
3. Ubuntu
4. Cloud9 IDE