Skyddsrock (din egen Smart Lock) (1 / 3 steg)
Steg 1: Få din programvara redo!
Naturligtvis i linje med mjukvaruutveckling finns en oändlig mängd sätt att gå om att göra ett program som gör din budgivning, så rekommenderar jag starkt att förstå allt i min kod och ställa frågor, som det bästa att göra är lär dig! Detta är en mycket komplicerad del att lägga till bilder, eftersom det finns så många bilder för varje litet steg. Ändå får inte avskräckt eftersom de coolaste projekten kommer från de mest tangentbord bashing!
Programvara översikt:
För att användaren ska kunna göra allt på distans,
Det finns två saker som måste tas om hand: server-sidig tillämpningen, och klienten-ta parti mot någon ansökan. Servern ensidig ansökan tar hand om alla bakom scen saker, som att skapa åtgärder baserat på user input och databas värden, alla logiska hantering (till exempel om dörren är i låst tillstånd, slå Lås-knappen kommer bara throwback ett undantag som "Dörren är redan låst"), och alla andra åtgärder som hanterar till exempel köra ett skript som kommer att köra en motor. Sidan klientprogrammet används av våra användare. Den innehåller allt från att ge användaren ett Unlock lås alternativ eller ens ge dem ett trevligt användargränssnitt som en hemsida att arbeta med. I de flesta och i vårt fall, servern ensidig ansökan kommer att vara en mycket tuffare utmaning. Det kommer att vara mycket utmanande för mig att ta du just steg för steg igenom allt på grund av hur obegränsad implementationer är! Men jag kommer alltid svara på dina frågor och guidar dig till slutförande :)
Microsoft Azure:
En mycket stor del av detta är Microsoft Azure cloud computing kapacitet. Vi måste skapa en bro mellan användaren och His/Her Raspberry Pi lås, som kommer att vara vår Microsoft Azure Dedikerad Server. En dedikerad server är i grunden en dator som sitter med rack för andra datorer på vissa Microsoft Hub, att vi kan kontrollera med hjälp av anslutning till fjärrskrivbord-protokollet som kan användas på datorer, Mac och Linux-operativsystem. Du kan registrera dig för ett gratis Microsoft Azure rättegång här att komma igång: http://azure.microsoft.com/en-us/. Det första du kommer att göra är att inrätta en dedikerad server. Plocka vad paketet du vänligen som vår server inte kommer att under tung press tills vi införliva flera lås! På din dedikerade server, installera MYSQL, som är en open source databasverktyget av Oracle. (Tyvärr Microsoft inte SQLServer för den här killen: D). Med Microsoft-dokumentation som stöd, korrekt öppna port 3306 och se till att både UDP och TCP tillåts utgående och inkommande trafik. Om MYSQL vill du skapa en databas och konfigurera sina tabeller baserat på hur du implementerar Java-programmet diskuteras nedan. Nyckel-tanken är att vår databas är värd på en IP-adress som 232.33.64.32:3306, och kan nås, och Queryed använder våra Java-program nedan! Inte får återigen överväldigad, Microsoft har lämnat massor av dokumentation av att arbeta med sina dedikerade servrar och är mycket lätt att förstå.
EN punkt av råd: När plocka vad paket för Microsoft Azure, se till att det är en Window Server som det är mycket lättare för den vanliga användaren, men om du är en Linux Gud göra vad du vill ^. ^
Server ensidig ansökan:
Vi måste först skapa en mekanism för att kontrollera våra Raspberry Pi mikrodator så det kan styra alla aspekter av låsa. Vi kommer att göra med ett Java-program, programmet kommer att kunna hålla reda på statligt av lock(unlock/locked), att kunna köra skript som kör motor, Läs användardata från webbsidan användaren kommer att använda. Innan vi fortsätter vi att installera en databas som kommer att hålla alla användare ingångar i form av ett nummer. Så när användaren träffar på Lås upplåsningsknappen på sin telefon skriver en 0 till databasen, och om de träffar på låsknappen skriver en 1 till databasen. Programmet måste sedan kontrollera status för låset och jämför det med databasen värdet, om de är samma ingen åtgärd har vidtagits, men om de skiljer sig programmet vet användaren har drabbat en knapp och kommer att vidta de respektive åtgärden, efter åtgärden tas det kommer Uppdatera statusen för låset och sedan värdet av databasen ska vara lika statusvärdet också. Detta är den grundläggande tanken med programmet som bifogas i slutet av denna rapport (Smock SQL). Det finns en ytterligare komponent på servern Dubbelsidig applicering vilken är den mekanism genom vilken motorn kommer att flytta. Detta kommer att åstadkommas med två olika skript i Python. Ett skript kommer att flytta stegmotor den nödvändiga mängden steg, och den andra kommer att göra exakt samma sak i motsatt riktning. Dessa skript körs i Java-programmet, när den databas och statusvärdet är olika som diskuterats tidigare. Alla dessa kombinerade skapar servern dubbelsidig med detta projekt. Självklart måste du installera Java för detta för att arbeta, och konfigurera din Azure Dedikerad Server ordentligt! Även Stepper.py nedan är en allmän beskrivning, kan du skapa i 2 separata skript mycket enkelt (låsa upp och låsa).
De bifogade filer kallas: Stepper.py och SmockSQL.java Visa dig vad jag gjorde!
Klienten ensidig ansökan:
Användaren behöver en mekanism genom vilken han kan redigera värden för databasen, så Java-programmet vet när en åtgärd behövs vidtas. Många sätt kan åstadkomma detta slutmål, en är att ha användare logga in på den server som har databasen och ändra värdet, men det är långtråkigt och inte praktiska för våra användare. Så vi kommer att skapa en webbplats som de kan logga in på sitt konto och kontrollera dörren med en mycket bekant låsa och låsa upp knapp. Låsa upp och låsa knappen blir en JSP-sida som är i grunden en Java-baserad webbapplikation. Målet med denna sida är så när användaren träffar på Unlock Lås knappen, nödvändiga frågan till databasen ska köras och värdet av databasen uppdateras baserat på knappen träffen. Vår Server dubbelsidig Java kommer att läsa detta uppdateras värdet sedan och genomföra nödvändiga åtgärder. JSP-sidan med sin Java-program som används för detta projekt i slutet av detta betänkande.
De bifogade filer kallas: resten av Java filer är JSP-sidor som visar dig vad jag gjorde! Du kan genomföra dessa JSP serverlets i webbsidor använder Netbeans och distribuera det som en WAR-fil på våra Microsoft Azure VPS.
Detta avslutar ganska mycket alla program av projektet. Vidare till nästa fas!