Kazalo:

Povežite svojo rastlino z oblakom: 10 korakov
Povežite svojo rastlino z oblakom: 10 korakov

Video: Povežite svojo rastlino z oblakom: 10 korakov

Video: Povežite svojo rastlino z oblakom: 10 korakov
Video: Высокая плотность 2022 2024, Julij
Anonim
Povežite svojo rastlino z oblakom
Povežite svojo rastlino z oblakom
Povežite svojo rastlino z oblakom
Povežite svojo rastlino z oblakom
Povežite svojo rastlino z oblakom
Povežite svojo rastlino z oblakom

V naši pisarni je kaktus, ki ni zaslužil pozornosti, ki si jo zasluži. Ker delam v podjetju za IT in sem želel eksperimentirati z LoRa, rešitvami brez strežnika in AWS, sem našega kaktusa poimenoval Steeve in ga povezal z oblakom. Zdaj lahko spremljate Steeveja od koder koli po svetu s pomočjo spletne strani, ki sem jo naredila zanj: Steeve spletnega vmesnika.

Zaloge

1 kaktus / vaša najljubša rastlina

1 Arduino MKR WAN 1300 (trgovina Arduino)

1 868mHz/914mHz (odvisno od vaše lokacije) antena (Amazon)

1 LoRa Gateway, če ni v dosegu enega (Amazon)

2 bateriji AA

1 senzor TMP102 (Amazon)

1 senzor vlažnosti tal (Amazon)

Prevodni kabli (Amazon)

spajkalnik

Nosilec baterije (Amazon)

Ovitek

neobvezno: 3D tiskalnik (če lahko uporabljate 3D tiskalnik, potem ne potrebujete držala za baterije ali etuija)

1. korak: Tiskanje ohišja (izbirno)

Tiskanje ohišja (neobvezno)
Tiskanje ohišja (neobvezno)
Tiskanje ohišja (neobvezno)
Tiskanje ohišja (neobvezno)

Prenesite to datoteko zip, jo razpakirajte in natisnite datoteke. Datoteke so označene s potrebno količino predmeta.

Ne pozabite dodati pokrova, kot sem jaz.

Natisnil sem jih z uporabo višine plasti 0,2 mm in 15% polnila.

Kljuke lahko pritrdite z vijaki m3.

Ko je škatla natisnjena, lahko uporabite nekaj žice za potrebne povezave na nosilcu baterije. Priloženo sliko lahko uporabite kot referenco.

2. korak: Ožičenje

Ožičenje
Ožičenje
  • Preden vklopite arduino, se prepričajte, da je antena priključena. Vklop arduina brez antene lahko poškoduje.
  • Priključite vse v skladu s priloženim diagramom ožičenja.
  • Če spajkate te žice, pazite, da ne premostite nožic na senzorjih ali arduinu!

3. korak: Ustvarite aplikacijo v omrežju Things

  • Pojdite na https://www.thethingsnetwork.org/ in če še nimate računa, ga ustvarite.
  • Ko imate račun in ste prijavljeni, lahko odprete konzolo (v zgornjem desnem kotu, kliknite svoje uporabniško ime in nato na konzoli).
  • Kliknite aplikacije.
  • Ko se stran naloži, lahko kliknete »dodaj aplikacijo«.
  • Izpolnite obrazec in na dnu izberite ustrezno regijo. Kliknite na "dodaj aplikacijo".
  • Čestitamo, pravkar ste ustvarili aplikacijo v omrežju stvari. = D

4. korak: Arduino povežite z omrežjem Things

Svetujem vam, da za programiranje arduina uporabite spletni arduino ide, kar olajša nalaganje v potrebno knjižnico.

  • Odprite aplikacijo v omrežju stvari.
  • Tam mora biti polje z naslovom naprave, kliknite na registracijo naprave.
  • videli boste polje z imenom ID naprave. to ime želite dati svojemu senzorju. Obstajati mora še ena oznaka EUI naprave, to je edinstven ključ, ki ga arduino uporablja za preverjanje pristnosti.
  • Za pridobitev tega ključa moramo arduino utripati z določeno skico. Skico lahko najdete tukaj. Ta skica se mora izvesti in čez serijski monitor poslati eui. Kopirajte eui iz serijskega monitorja v polje Device EUI v omrežju stvari.
  • Kliknite Registracija.
  • Zdaj smo registrirali naš arduino v oblaku. Čas je, da začnete pošiljati sporočila.
  • Morali bi biti preusmerjeni na stran, imenovano Pregled naprave. Tu lahko vidite svojo napravo eui, app eui in ključ aplikacije.
  • Za nadaljevanje moramo posneti zadnjo skico na arduino. Skico najdete tukaj.
  • Ko odprete to povezavo, boste videli, da obstaja več zavihkov. Odprite zavihek skrivnosti. Obstajata 2 ključa, ki jih morate obvladati od omrežja stvari do datoteke skrivnosti.
  • Ko so ti ključi napolnjeni, lahko arduino utripate. Začel bo pošiljati podatke v omrežje stvari enkrat na uro.
  • Če je šlo vse v redu, bi morali videti ponastavitev sporočil na zavihku Podatki v omrežju stvari ob ponastavitvi arduina (edini gumb na plošči).

    • Če se tukaj ne prikažejo podatki, lahko to pomeni, da niste v dosegu pravilnega prehoda LoRa. Zemljevid z vsemi razpoložljivimi prehodi lahko preverite na https://thethingsnetwork.org. Enokanalni prehodi LoRa ne bodo delovali s priporočenim arduinom.
    • Če niste v dosegu prehoda, lahko svoj lasten prehod povežete z omrežjem stvari. Ti prehodi imajo običajno precej dobre vaje, kako jih povezati. Na seznamu zalog poiščite priporočeni prehod.

5. korak: Razlaga podatkov v omrežju stvari

  • Za pridobivanje uporabnih podatkov iz sporočil v omrežju stvari moramo dekodirati bytestream.
  • V omrežju stvari pojdite na svojo aplikacijo.
  • Moral bi biti zavihek z oznako "Oblike koristnega tovora", kliknite ta zavihek.
  • Ob vsakem drugem so 4 gumbi: "dekoder", "pretvornik", "validator", "kodirnik".
  • Kliknite na dekoder.
  • Tam prilepite naslednjo kodo.

funkcija Decoder (bajti, vrata) {// Dekodiranje sporočila navzgor od medpomnilnika // (polja) bajtov do objekta polj. var stringToDecode = bin2String (bajti); var res = stringToDecode.split (""); var temp = res [1]; var moist = res [3]; var bat = res [5]; var decoded = {"temperatura": temp, "vlaga": vlažno, "baterija": bat}; dekodirano vračilo; } funkcija bin2String (niz) {var result = ""; for (var i = 0; i <dolžina niza; ++ i) {rezultat+= (String.fromCharCode (niz )); } vrni rezultat;}

  • Kliknite shrani.
  • Ko ponastavite arduino in si ogledate zavihek s podatki, bi morali videti lepo oblikovan predmet json, ki ga lahko preprosto preberete.

6. korak: Povezovanje aplikacije z AWS

AWS bomo uporabljali za shranjevanje in uporabo podatkov iz omrežja stvari. Vsi viri, ki jih bomo uporabili, so zajeti v brezplačni ravni AWS.

  • Pojdite na AWS
  • Prijavite se ali ustvarite račun.
  • Če želite svojo aplikacijo v omrežju stvari povezati z AWS, priporočam, da sledite tej vadnici:
  • Ko končate to vadnico, se v konzoli aws pomaknite do segmenta IoT-Core.
  • V levi menijski vrstici je oznaka "Upravljanje", kliknite to.
  • Zdaj bi morali videti kartico z imenom vašega senzorja.
  • Ponovno v levi vrstici menija kliknite »Ukrepi«
  • Če obstaja kartica z oznako Trgovina, ste pripravljeni.
  • Če ne, kliknite "Ustvari".
  • Izpolnite ime »Trgovina«.
  • Če želite, lahko dodate opis.
  • Kot stavek poizvedbe vnesite naslednjo kodo: SELECT dev_id, metadata.time, payload_fields.temperature, payload_fields.moisture, payload_fields.battery IZ 'cactus_network/devices/+/up'.
  • Pri »Nastavi eno ali več dejanj« kliknite dodajanje dejanja.
  • Izberite "Razdeli sporočilo na več stolpcev tabele DynamoDb (DynamoDBv2)".
  • Kliknite konfiguriraj dejanje
  • Kliknite Ustvari nov vir.
  • Kliknite Ustvari tabelo in ji dajte ime.
  • Pod primarnim ključem vnesite "dev_id".
  • Kliknite Dodaj ključ za razvrščanje
  • Izpolnite "čas".
  • Kliknite na Ustvari.
  • Če je vse v redu, se morate vrniti na stran z nastavitvami dejanj.
  • Pod "Izberite ali ustvarite vlogo, ki bo AWS IoT omogočila dostop za izvajanje tega dejanja, je rahlo zatemnjeno območje."
  • Kliknite ustvarjanje vloge in tej vlogi dajte ime.
  • Kliknite na ustvarjanje vloge.
  • Kliknite Dodaj dejanje.
  • Kliknite Ustvari pravilo.
  • Zdaj bi morali imeti pravilo, ki samodejno shrani vsa dohodna sporočila iz omrežja stvari v DynamoDb.
  • Ali to deluje, lahko preverite tako, da ponastavite arduino in si ogledate tabelo DynamoDb, ki ste jo pravkar ustvarili.
  • S sporočilom mora biti zapis.

7. korak: Ustvarjanje lambde

Za branje podatkov iz DynamoDB bomo napisali AWS lambda.

  • V konzoli za upravljanje AWS pod storitvami je povezava z oznako "Lambda", kliknite to.
  • Kliknite Ustvari funkcijo.
  • Izberite ime.
  • Nastavite čas izvajanja na python 3.7.
  • Kliknite Ustvari funkcijo.
  • To kodo prilepite v integrirano IDE.

uvoz json

import boto3 import time from datetime import datetime, timedelta from boto3.dynamodb.conditions import Key, Attr def lambda_handler (dogodek, kontekst): return retreive_data () def retreive_data (): # Pridobite vir storitev. dynamodb = boto3.resource ('dynamodb') table = dynamodb. Table ('IME TABLE TUKAJ') zdaj = datetime.now () včeraj = zdaj - timedelta (ure = 24) fe = Key ('čas'). med (včeraj.isoformat (), zdaj.isoformat ()) fed = ključ ('čas'). lt (včeraj.isoformat ()) odziv = table.scan (FilterExpression = fe) recordsToDelete = table.scan (FilterExpression = fed) za f v recordsToDelete ['Items']: #print (f) table.delete_item (Key = {'dev_id': f ['dev_id'], 'time': f ['time']}) data = response ['Items '] vrniti podatke

  • Ime tabele spremenite v izbrano.
  • Pomaknite se navzdol do izvršilne vloge.
  • Kliknite Ustvari novo vlogo iz predlogov pravilnikov aws.
  • Izberite ime.
  • Pri predlogah pravilnika izberite "Dovoljenja za preizkus pasov" in "Enostavna dovoljenja za mikro storitve".
  • Kliknite shrani.
  • Kliknite test.
  • Lahko se prikaže pojavno okno, samo izberite ime in shranite.
  • Znova kliknite test.
  • Na vrhu naj bo zelena pasica z napisom "Rezultat izvršitve: uspelo".
  • Ko kliknete to pasico, bi morali videti izpis te funkcije, to bi moral biti seznam senzorskih podatkov.
  • Upoštevajte, da ta skript izbriše vse podatke, starejše od 24 ur.
  • Če vaša pasica ni zelena, ampak rdeča, ste nekaj zamudili in s klikom na to pasico boste dobili celotno sporočilo o napaki. V tem primeru je google vaš najboljši prijatelj.

8. korak: Ustvarjanje končne točke API

  • V konzoli za upravljanje AWS pod storitvami je povezava z oznako "api-gateway", kliknite to.
  • Kliknite Ustvari API.
  • Prepričajte se, da sta izbrana "REST" in "New API".
  • Izberite ime za svoj api.
  • Kliknite Ustvari API.
  • Na zaslonu bi moral biti gumb z oznako dejanja, kliknite ga.
  • Nato kliknite Ustvari vir.
  • Kot ime vira bi morali narediti nekaj preprostega, na primer "plant" ali "plant-data".
  • Kliknite Ustvari vir.
  • Na levi strani bi moralo biti ime, ki ste ga pravkar vnesli. kliknite to ime.
  • Zdaj znova kliknite dejanja in nato kliknite način dodajanja.
  • Izberite GET.
  • Kliknite kljukico.
  • Moralo bi biti polje z besedilom z oznako Lambda funkcija.
  • Tukaj vnesite ime, ki ste mu dali lambda funkcijo.
  • Kliknite shrani.
  • Morda se prikaže pojavno okno, ki vas opozori, da ustvarja dodatna dovoljenja.
  • Sprejmi to pojavno okno.
  • Zdaj pod dejanja kliknite omogoči kor.
  • Kliknite »omogoči CORS in zamenjaj obstoječe glave CORS«.
  • Kliknite "da, …".
  • Znova kliknite dejanja in nato Uveži API.
  • V fazi uvajanja izberite [New Stage].
  • Izberite ime.
  • Kliknite razporedi.
  • Svoj API ste zdaj objavili na svetu.
  • Na zaslonu, kamor ste prispeli, kliknite "GET" in prenesite vir, ki ste ga pravkar ustvarili.
  • Na vrhu bi morala biti povezava z oznako »prikliči URL«.
  • Kopirajte to povezavo.
  • Prilepite ga v brskalnik in pritisnite enter.
  • Videti bi morali podatke, ki so v bazi podatkov.

9. korak: Povežite svojo rastlino z omrežjem socialnih rastlin

  • Pojdite na
  • Kliknite "Prijava".
  • Kliknite Ustvari račun.
  • Izpolnite obrazec, da ustvarite svoj račun.
  • Upoštevajte, da mora biti uporabniško ime tudi vaš e -poštni naslov.
  • Kliknite Ustvari račun.
  • Morda boste morali pred nadaljevanjem preveriti svoj e -poštni naslov.
  • Prepričajte se, da ste prijavljeni.
  • Vrnite se na domačo stran (kliknite logotip v zgornjem levem kotu).
  • Pritisnite gumb za nastavitve.
  • Izpolnite obrazec, izpolnite vsako polje.
  • Povezava do api je povezava, ki ste jo shranili, potem ko ste ustvarili končno točko API.
  • Ko je vse napolnjeno, kliknite gumb shrani rastlino. sistem bo zdaj preveril api povezavo, ki ste jo vnesli, in če je to pravilno, bo shranil vašo napravo v omrežje.
  • Vrnite se na domačo stran.
  • Zdaj lahko kliknete na vse rastline, videli bi lahko vse registrirane rastline. tam mora biti tudi vaša rastlina. kliknite kartico in preusmerjeni boste na pregledno stran vaše rastline, prikazana pa bo tudi nasvet glede na vrednosti, ki ste jih nastavili v nastavitvah.

10. korak: Nagnite se nazaj in se pobožajte po hrbtu

Pravkar ste priključili obrat na internet. Precej impresivno, kajne?

Priporočena: