Använda RPi, Azure och Cortana att automatisera ditt hem! (10 / 15 steg)
Steg 10: Skapa din Windows Phone App del 3: azurblå på Windows Phone 8,1
Där det blir komplicerat...
Att super fin, lätt att förklara format vi har haft så länge? Japp. Säga adjö. Detta specifika steg, medan inte svårt kan vara riktigt förvirrande för alla som inte känner till grundläggande resten tjänster och nätverksprotokoll. Intresse inte blåser detta instructable into ett på roman, kommer vi att behandla Azure servicebesök här inom Windows Phone som i huvudsak en "Svart låda" samtal. Det innebär vi kommer att kopiera och klistra in några kod och bara kompilera den. Vi kommer inte att gå igenom den, och några av er kanske har ingen aning vad den även gör, men det spelar egentligen ingen roll, eftersom det fungerar. Det finns en bra lista med resurser i slutet av denna guide som kan hjälpa dig att förstå det bättre, men för nu, låt oss bara bita våra läpp och tryck fram.
Installation av bibliotek och behörigheter
Vi kommer att använda några fancy internet protocol bibliotek för att komma Azure eftersom det inte tyvärr för närvarande en särskild Azure SDK för Windows Phone (ännu). Ha för att göra det, vi kommer att installera ett paket (en bibliotek) från NuGet Pakethanteraren.
- Figur 1 - Högerklicka på WindowsPhone projektet och välj "hantera NuGet paket..."
- Bild 2- Sök för "Json" i sökfältet på övre högra hörnet och klicka på 'Json.NET', sedan 'installera'
- Stäng av Pakethanteraren
Stor, har vi de bibliotek vi behöver. Nu måste vi aktivera "Mikrofon" och "Internet" funktionerna för vår app. Detta kommer att låta vår app som låter oss använda Cortana och skicka meddelanden till våra Azure Service Bus.
- Dubbelklicka på "Package.appxmanifest"
- Figur 3- Växla till fliken funktioner
- Figur 3 - se till att "Internet (klient och Server) och"Mikrofon"kontrolleras.
Nu, på toppen av din fil, infoga följande kod att referera till alla dessa nya fancy paket inom vår kod:
använder Newtonsoft.Json; < br > med Windows.Security.Cryptography;
använder Windows.Security.Cryptography.Core;
använder System.Net;
använder System.Net.Http;
använder System.Net.Http.Headers;
Coding azurblå samtalet
Den bifogade uppförandekoden filen AzureCall.cs är inte hela App.xaml.cs filen, det är bara 3 funktioner som du bör kopiera och klistra in filen App.xaml.cs. Jag skulle rekommendera kopiera och klistra in dessa 3 funktioner under funktionen OnSuspending . Låt oss göra en mycket kort översikt över dessa 3 funktioner:
- SendSBMessage - funktionen som du kommer att ringa. Vi kommer att dyka djupare in i funktionen nedan.
- SASTokenHelper - funktionen hjälper oss koda ut SAS token att logga in på våra Azure Service Bus
- HmacSha256 - denna funktion är rent där för kryptografi. Om du inte förstår det, oroa dig inte.
Helt kort titta på SendSbMessage()
Låt oss bara helt kort kika in detta meddelande. Specifikt, vill jag att vi ska titta på detta stycke logik inom funktionen:
HttpContent innehåll = nya StringContent (json, Encoding.UTF8);
innehåll. Headers.ContentType = ny MediaTypeHeaderValue("application/json");
innehåll. Headers.Add ("led", meddelande);
String väg = "/ lighttopic/meddelanden";
var Svaren = klienten. PostAsync (väg, innehåll). Resultatet;
Specifikt, låt oss titta på att ringa
innehåll. Headers.Add ("led", meddelande);
String väg = "/ lighttopic/meddelanden";
Kom ihåg att "lighttopic" är vårt ämnesnamn, och att vi i vår Python skript på våra Raspberrry Pi kontrolleras för sidhuvud-variabel kopplad till rubriken "led". Förhoppningsvis börjar detta komma samman lite. Huvudsak denna funktion tar i ett meddelande som kommer att vara en 0 eller 1 för antingen "OFF" eller "På". Vi kommer att bifogas som våra LED huvud och sedan skicka den till vår Azure Service Bus.