Innehållsförteckning:

Anslut din anläggning till molnet: 10 steg
Anslut din anläggning till molnet: 10 steg

Video: Anslut din anläggning till molnet: 10 steg

Video: Anslut din anläggning till molnet: 10 steg
Video: Installera/Återställa Windows, ENKELT - Komplett.se 2024, Juli
Anonim
Anslut din anläggning till molnet
Anslut din anläggning till molnet
Anslut din anläggning till molnet
Anslut din anläggning till molnet
Anslut din anläggning till molnet
Anslut din anläggning till molnet

På vårt kontor finns en kaktus som inte fick den uppmärksamhet den förtjänade. Eftersom jag arbetar på ett IT -företag och ville experimentera med LoRa, serverlösa lösningar och AWS, namngav jag vår kaktus Steeve och kopplade honom till molnet. Du kan nu övervaka Steeve från nästan var som helst i världen med hjälp av den webbsida jag skapade för honom: Steeves webbgränssnitt.

Tillbehör

1 kaktus / din favoritväxt

1 Arduino MKR WAN 1300 (Arduino -butik)

1 868mHz/914mHz (beror på din plats) antenn (Amazon)

1 LoRa Gateway när den inte är inom en (Amazon)

2 AA -batterier

1 TMP102 -sensor (Amazon)

1 jordfuktighetssensor (Amazon)

Ledande kablar (Amazon)

lödkolv

Batterihållare (Amazon)

fall

valfritt: 3D -skrivare (om du kan använda en 3d -skrivare behöver du inte en batterihållare eller ett fodral)

Steg 1: Skriva ut fodralet (tillval)

Skriva ut fodralet (tillval)
Skriva ut fodralet (tillval)
Skriva ut fodralet (tillval)
Skriva ut fodralet (tillval)

Ladda ner den här zip -filen, packa upp den och skriv ut filerna. Filerna är markerade med objektets behov.

Lägg gärna till något på locket som jag gjorde.

Jag skrev ut dessa med en lagerhöjd på 0,2 mm och 15% fyllning.

Boxhooks kan fästas med m3 skruvar.

När lådan är tryckt kan du använda lite tråd för att göra de anslutningar som behövs på batterihållaren. Du kan använda den medföljande bilden som referens.

Steg 2: Kabeldragning

Kabeldragning
Kabeldragning
  • Innan du sätter på arduino, se till att antennen är ansluten. Arduino kan startas utan antenn.
  • Anslut allt enligt det medföljande kopplingsschemat.
  • Om du löd dessa trådar, se till att du inte överbryggar några stift på sensorerna eller arduino!

Steg 3: Skapa en app på Things Network

  • Gå till https://www.thethingsnetwork.org/ och om du inte har ett konto än, gör ett.
  • När du har ett konto och är inloggad kan du gå till konsolen (högst upp till höger, klicka på ditt användarnamn och sedan på konsolen).
  • Klicka på applikationer.
  • När sidan laddats bör du kunna klicka på "lägg till program".
  • Fyll i formuläret och välj rätt region längst ner. Klicka på "lägg till applikation".
  • Grattis, du har just skapat en applikation på saker -nätverket. = D

Steg 4: Anslutning av Arduino till Things Network

För att programmera arduino rekommenderar jag dig att använda online arduino ide, detta gör det enkelt att ladda in det bibliotek som behövs.

  • Öppna din ansökan på saker -nätverket.
  • Det ska finnas ett fält med titeln enheter, klicka på registrera enhet.
  • du kommer att se ett fält som heter Device ID. detta är namnet du vill ge din sensor. Det borde finnas ytterligare en som heter Device EUI, det här är den unika nyckeln din arduino använder för att autentisera sig själv.
  • För att få denna nyckel måste vi blinka arduino med en specifik skiss. Skissen finns överallt. Denna skiss ska köras och över seriemonitorn ska skicka eui. Kopiera eui från den seriella bildskärmen till fältet Device EUI på saknätverket.
  • Klicka på registrera.
  • Nu har vi registrerat vår arduino i molnet. Det är dags att börja skicka meddelanden.
  • Du borde ha omdirigerats till en sida som heter enhetsöversikt. Här kan du se din enhet eui, app eui och appnyckel.
  • För att fortsätta måste vi blinka den sista skissen till arduinoen. Skissen hittar du här.
  • När du öppnar den här länken ser du att det finns flera flikar. Öppna fliken hemligheter. Det finns två nycklar du behöver för att hantera allt från saknätverket till hemlighetsfilen.
  • När dessa nycklar har fyllts i kan du blinka arduino. Det kommer att börja skicka data till saknätverket en gång i timmen.
  • Om allt gick rätt borde du kunna se meddelanden som kommer in på fliken Data på tingsnätverket när du återställer arduino (den enda knappen på tavlan).

    • Om det inte finns någon data som visas över det här kan det betyda att du inte befinner dig inom en korrekt LoRa -gateway. Du kan kontrollera en karta med alla tillgängliga gateways på https://thethingsnetwork.org. Enkanals LoRa -gateways fungerar inte med den rekommenderade arduino.
    • Om du inte är inom räckhåll för en gateway kan du koppla din egen gateway till tingsnätverket. Dessa gateways har vanligtvis ganska bra handledning om hur du ansluter dem. Leta efter den rekommenderade gatewayen i utbudslistan.

Steg 5: Tolkning av data i Things Network

  • För att få användbar data från meddelandena på saknätverket måste vi avkoda byteströmmen.
  • På saker nätverk gå till din ansökan.
  • Det ska finnas en flik märkt "nyttolastformat", klicka på den här fliken.
  • Det finns 4 knappar bredvid varandra: "avkodare", "omvandlare", "validator", "kodare".
  • Klicka på avkodaren.
  • Klistra in följande kod där.

funktion Avkodare (byte, port) {// Avkoda ett upplänkmeddelande från en buffert // (array) av byte till ett objekt av fält. var stringToDecode = bin2String (byte); var res = stringToDecode.split (""); var temp = res [1]; var fuktig = res [3]; var bat = res [5]; var avkodad = {"temperatur": temp, "fukt": fuktig, "batteri": bat}; retur avkodad; } funktion bin2String (array) {var resultat = ""; för (var i = 0; i <array.length; ++ i) {result+= (String.fromCharCode (array )); } returnera resultat;}

  • Klicka på Spara.
  • När du återställer arduino och visar din dataflik bör du se ett snyggt formaterat json -objekt som du enkelt kan läsa.

Steg 6: Ansluter din app till AWS

Vi kommer att använda AWS för att lagra och använda data från saknätverket. Alla resurser vi ska använda omfattas av gratisnivån för AWS.

  • Gå till AWS
  • Logga in eller skapa ett konto.
  • För att ansluta din applikation på saknätverket till AWS rekommenderar jag att du följer den här självstudien:
  • När du har slutfört den här självstudien navigerar du i aws-konsolen till IoT-Core-segmentet.
  • I den vänstra menyraden finns en etikett "Hantera", klicka på den här.
  • Du bör nu se ett kort med namnet på din sensor i det.
  • Klicka igen på "Act" i den vänstra menyraden
  • Om det finns ett kort märkt Store, är du bra att gå.
  • Om inte, klicka på "Skapa".
  • Fyll i namnet "Butik".
  • Du kan lägga till en beskrivning om du vill.
  • Som en frågeformulär fyller du i följande kod: SELECT dev_id, metadata.time, payload_fields.temperature, payload_fields.moisture, payload_fields.battery FROM 'cactus_network/devices/+/up'.
  • Klicka på Lägg till åtgärd under Ange en eller flera åtgärder.
  • Välj "Dela meddelande i flera kolumner i en DynamoDb -tabell (DynamoDBv2)".
  • Klicka på konfigurera åtgärd
  • Klicka på skapa ny resurs.
  • Klicka på skapa tabell och ge ditt bord ett namn.
  • Fyll i "dev_id" under huvudnyckeln.
  • Klicka på lägg till sorteringsnyckel
  • Fyll i "tid".
  • Klicka på skapa.
  • Om allt gick bra borde du vara tillbaka på sidan med konfigurationsåtgärder.
  • Det finns ett något nedtonat område under "Välj eller skapa en roll för att ge AWS IoT åtkomst för att utföra denna åtgärd."
  • Klicka på skapa roll och ge den här rollen ett namn.
  • Klicka på skapa roll.
  • Klicka på lägg till åtgärd.
  • Klicka på skapa regel.
  • Du bör nu ha en regel som automatiskt lagrar alla inkommande meddelanden från saknätverket i DynamoDb.
  • Du kan kontrollera om detta fungerar genom att återställa arduino och gå in i DynamoDb -tabellen du just skapade.
  • Det ska finnas en post med meddelandet.

Steg 7: Skapa en Lambda

För att läsa data från DynamoDB ska vi skriva en AWS -lambda.

  • I AWS -hanteringskonsolen under tjänster finns en länk märkt "Lambda", klicka på den här.
  • Klicka på skapa funktion.
  • Välj ett namn.
  • Ställ in körtiden till python 3.7.
  • Klicka på skapa funktion.
  • Klistra in den här koden i den integrerade IDE.

importera json

import boto3 importtid från datetime import datetime, timedelta från boto3.dynamodb.conditions importnyckel, Attr def lambda_handler (händelse, kontext): return retreive_data () def retreive_data (): # Hämta tjänstresursen. dynamodb = boto3.resource ('dynamodb') tabell = dynamodb. Table ('TABLE NAME HERE') nu = datetime.now () igår = nu - timedelta (timmar = 24) fe = Key ('tid'). mellan (igår.isoformat (), nu.isoformat ()) matad = Nyckel ('tid'). lt (igår.isoformat ()) svar = tabell.scan (FilterExpression = fe) recordsToDelete = tabell.scan (FilterExpression = matad) för f in recordsToDelete ['Items']: #print (f) table.delete_item (Key = {'dev_id': f ['dev_id'], 'time': f ['time']}) data = response ['Artiklar '] returnera data

  • Ändra tabellnamnet till det du väljer.
  • Rulla ner till utförande roll.
  • Klicka på skapa en ny roll från aws policymallar.
  • Välj ett namn.
  • Under policymallar väljer du "Testkabelbehörigheter" och "Enkla mikrotjänstbehörigheter".
  • Klicka på Spara.
  • Klicka på test.
  • En popup kan visas, välj bara ett namn och spara.
  • Klicka på test igen.
  • Överst bör det finnas en grön banner som säger "Exekveringsresultat: lyckades".
  • När du klickar på denna banner bör du se utdata från denna funktion, detta bör vara en lista av sensordata.
  • Tänk på att detta skript raderar all data som är äldre än 24 timmar.
  • Om din banner inte är grön men röd har du missat något och om du klickar på denna banner får du hela felmeddelandet. I det här fallet är google din bästa vän.

Steg 8: Skapa en API -slutpunkt

  • I AWS-hanteringskonsolen under tjänster finns en länk märkt "api-gateway", klicka på den här.
  • Klicka på skapa API.
  • Se till att "REST" och "Nytt API" är valda.
  • Välj ett namn för din API.
  • Klicka på skapa API.
  • Det ska finnas en knapp märkt åtgärder på skärmen nu, klicka på den.
  • Klicka sedan på skapa resurs.
  • Som resursnamn bör du välja något enkelt som "växt" eller "växtdata".
  • Klicka på skapa resurs.
  • Till vänster ska det nu vara namnet du just skrev in. klicka på det här namnet.
  • Klicka nu på åtgärder igen och nu på lägg till metod.
  • Välj Hämta.
  • Klicka på bocken.
  • Det bör finnas en textruta märkt Lambda Function.
  • Ange namnet du gav dig lambda -funktionen här.
  • Klicka på Spara.
  • Det kan finnas en popup som varnar dig för att den skapar extra behörigheter.
  • Acceptera denna popup.
  • Klicka nu på aktivera kors under åtgärder.
  • Klicka på "aktivera CORS och ersätt befintliga CORS -rubriker".
  • Klicka på "ja, …".
  • Klicka på åtgärder igen och klicka på Distribuera API.
  • Under distributionsstadiet väljer du [New Stage].
  • Välj ett namn.
  • Klicka på distribuera.
  • Du har nu publicerat din API online för världen.
  • På skärmen dit du har kommit nu klickar du på "Hämta" annan resursen du just skapade.
  • Det bör finnas en länk överst med namnet "anropa URL".
  • Kopiera den här länken.
  • Klistra in den i en webbläsare och tryck på enter.
  • Du bör se data som finns i databasen.

Steg 9: Anslut din anläggning till Social Plant Network

  • Gå till
  • Klicka på "Logga in".
  • Klicka på skapa konto.
  • Fyll i formuläret för att skapa ditt konto.
  • Observera att användarnamnet också måste vara din e -postadress.
  • Klicka på skapa konto.
  • Du kan behöva verifiera din e -post innan du kan fortsätta.
  • Se till att du är inloggad.
  • Gå tillbaka till hemsidan (klicka på logotypen i det övre vänstra hörnet).
  • Glicka på inställningsknappen.
  • Fyll i formuläret, du bör fylla i alla fält.
  • Länken till API: et är länken du sparade efter att du skapade API -slutpunkten.
  • När allt är ifyllt klickar du på knappen Spara växt. systemet kommer nu att verifiera api -länken du angav och om detta är korrekt kommer det att spara din anläggning i nätverket.
  • Gå tillbaka till hemsidan.
  • Du kan nu klicka på alla växter, du borde kunna se alla registrerade växter. din växt borde också vara där. klicka på kortet och du kommer till en översiktssida för din anläggning, det kommer också att visa råd baserat på värdena du ställer in i inställningarna.

Steg 10: Luta dig tillbaka och klappa dig själv på ryggen

Du har precis anslutit en anläggning till internet. Ganska imponerande, eller hur?

Rekommenderad: