Använda RPi, Azure och Cortana att automatisera ditt hem! (2 / 15 steg)
Steg 2: Konfigurera Azure 1: A Crash Course i Azure
Det är mycket troligt att du aldrig ens har använt en tjänst som Microsoft Azure så vi kommer att börja med lite av en snabbkurs. Vi kommer inte självklart täcker allt (det är vad timmar och timmar av online-material är för) men istället fokusera på vad exakt vi gör. Sätt dig inte bara bygger en svart låda och har ingen aning om det magiska händer bakom kulisserna, men snarare en hög nivå begreppsförståelse. Detta gör att du kan expandera på det i framtiden, och även förstå Syftet bakom varför vi använder Azure kontra en annan tjänst.
Varför Azure?
Varför inte Node.js? Det är nog en fråga som många av er kommer att fråga, och det är en mycket berättigad fråga. Varför inte bara skapa en grundläggande resten server som vi kan träffa för att befalla våra enheter? Problemet är väl att vi lever i framtiden och framtiden handlar om Internet of Things (IoT). Sakernas Internet erbjudanden med tiotals om inte hundratals små enheter runt ditt hem, alla anslutna ger dig oöverträffad kontroll. Blir en enkel nod server körs på en Pi kunna hantera allt detta? Inte hantera all det funky serverkod en annan guide (om inte hela boken) i egen rätt? Ja, ja det är, och det är därför Azure är här till undsättning. Medan vi verkligen inte kommer att se fördelarna med Azure i denna inledande guide eftersom vi endast ansluter en enhet, när vi börjar att koppla in fler enheter kommer vi att kunna se de verkliga fördelarna.
Vad kommer vi att göra?
För vårt projekt kommer vi att göra en Service Bus som ska bearbeta ämnen och prenumerationer. Oroa dig inte, jag vet att vi kastar en massa fancy ord runt tidigt, men jag försäkrar er att det inte tar lång tid att få en grundläggande förståelse. En Service Bus, i ett nötskal, ger en mycket robust messaging ram som fungerar som ett relä mellan två (eller fler) slutpunkter. Det är i huvudsak den magiska "moln" som vi hör så mycket om. Något skickar den ett meddelande, det avgör var att budskapet ska gå, skickar det, och en annan enhet får meddelandet. Tjänsten bussen är vår post sorteringsanläggning, vettigt?
Så vad sägs om dessa ämnen och prenumerationer? Varför kan inte vi bara kalla dem meddelanden? Jo, för det inte är helt enkelt. Ett ämne innehåller ett meddelande, men du kan inte säga att ett ämne är en meddelande. Det är bara fel. Så vad är ett ämne? Ett ämne bildar en relation (både logiska och fysiska) mellan förlag och prenumeranter så att publisher (Cortana) kan publicera meddelanden till flera abonnenter (alla våra IoT enheter). Tänk på det här sättet: säga vi haft 10 olika IoT enheter runt vårt hem, alla hakas upp till olika strömbrytare. När vi ger kommandot "Stänga ljuset av" vi vill skicka ett meddelande till var och varje IoT enhet säga till den att stänga av, men vi vill inte skicka 10 olika meddelanden. Dessutom hur mycket av en smärta är det varje gång vi lägger till en IoT enhet måste vi åter kod våra hela Cortana logik? I stället vi publicerar ett meddelande på ämnet "LightControls" och det ämnet nu publicerar alla abonnenter (som skulle vara varje IoT enhet som styr en lightswitch) gå till "OFF"-läge.
Fortfarande förvirrad? Oroa dig inte, detta är inte något som är lätt att plocka upp (än mindre förklara) i ett stycke eller två. Om du fortfarande vill veta mer, är här några bra resurser:
Att införa köer och ämnen i Azurblå Service Bus - kod Magazine
Hur till User Service buss ämnen/abonnemang - Microsoft
Windows Azure Service buss ämnen och abonnemang - Neudesic
I ett nötskal...
Cortana kommer att skicka ett meddelande till ett ämne på Service Bus (moln). Vår Cloud kommer skicka sedan meddelandet till varje enhet som har "prenumererar" på detta ämne. Så när vi skickar "DeskLightsOff" till "LightControl" ämnet, våra DeskLights kommer har anslutit sig till det, får det och sedan kommer att bearbeta det kommandot.