Spisu treści:

Połącz swoją roślinę z chmurą: 10 kroków
Połącz swoją roślinę z chmurą: 10 kroków

Wideo: Połącz swoją roślinę z chmurą: 10 kroków

Wideo: Połącz swoją roślinę z chmurą: 10 kroków
Wideo: Rośliny idealne dla początkujących | Roślinne porady 2024, Czerwiec
Anonim
Połącz swoją roślinę z chmurą
Połącz swoją roślinę z chmurą
Połącz swoją roślinę z chmurą
Połącz swoją roślinę z chmurą
Połącz swoją roślinę z chmurą
Połącz swoją roślinę z chmurą

W naszym gabinecie jest kaktus, który nie cieszył się taką uwagą, na jaką zasługiwał. Ponieważ pracuję w firmie IT i chciałem poeksperymentować z LoRa, rozwiązaniami serverless i AWS, nazwałem naszego kaktusa Steeve i podłączyłem go do chmury. Możesz teraz monitorować Steeve'a z dowolnego miejsca na świecie, korzystając ze strony, którą dla niego stworzyłem: interfejsu WWW Steeve'a.

Kieszonkowe dzieci

1 kaktus / twoja ulubiona roślina

1 Arduino MKR WAN 1300 (sklep Arduino)

1 antena 868mHz/914mHz (w zależności od lokalizacji) (Amazon)

1 bramka LoRa, gdy nie jest w zasięgu jednej (Amazon)

2 baterie AA

1 czujnik TMP102 (Amazonka)

1 czujnik wilgotności gleby (Amazon)

Kable przewodzące (Amazon)

lutownica

Uchwyt baterii (Amazon)

Obudowa

opcjonalnie: drukarka 3D (jeśli możesz korzystać z drukarki 3d, nie potrzebujesz uchwytu na baterie ani etui)

Krok 1: Drukowanie obudowy (opcjonalnie)

Drukowanie obudowy (opcjonalnie)
Drukowanie obudowy (opcjonalnie)
Drukowanie obudowy (opcjonalnie)
Drukowanie obudowy (opcjonalnie)

Pobierz ten plik zip, rozpakuj go i wydrukuj pliki. Pliki są oznaczone potrzebną ilością towaru.

Zapraszam do dodania czegoś do pokrywki, tak jak ja.

Wydrukowałem je przy wysokości warstwy 0,2 mm i 15% wypełnienia.

Boxhook można przymocować za pomocą śrub m3.

Gdy pudełko jest wydrukowane, możesz użyć drutu, aby wykonać potrzebne połączenia na uchwycie baterii. Możesz użyć dostarczonego zdjęcia jako odniesienia.

Krok 2: Okablowanie

Okablowanie
Okablowanie
  • Przed włączeniem arduino upewnij się, że antena jest podłączona, włączenie arduino bez anteny może spowodować uszkodzenie.
  • Podłącz wszystko zgodnie z dostarczonym schematem elektrycznym.
  • Jeśli lutujesz te przewody, upewnij się, że nie mostkujesz żadnych pinów na czujnikach lub arduino!

Krok 3: Utwórz aplikację w sieci Things

  • Przejdź do https://www.thethingsnetwork.org/ i jeśli nie masz jeszcze konta, załóż je.
  • Po założeniu konta i zalogowaniu się możesz przejść do konsoli (prawy górny róg, kliknij swoją nazwę użytkownika, a następnie na konsoli).
  • Kliknij aplikacje.
  • Po załadowaniu strony powinieneś być w stanie kliknąć „dodaj aplikację”.
  • Wypełnij formularz i wybierz właściwy region na dole. Kliknij „dodaj aplikację”.
  • Gratulacje, właśnie stworzyłeś aplikację w sieci Things. =D

Krok 4: Podłączanie Arduino do sieci Things

Aby zaprogramować arduino, radzę skorzystać z internetowego ide arduino, dzięki czemu ładowanie potrzebnej biblioteki jest bardzo łatwe.

  • Otwórz swoją aplikację w sieci Things.
  • Powinno być pole zatytułowane urządzenia, kliknij zarejestruj urządzenie.
  • zobaczysz pole o nazwie Identyfikator urządzenia. to jest nazwa, którą chcesz nadać swojemu czujnikowi. Powinien być jeszcze jeden oznaczony jako Device EUI, jest to unikalny klucz, którego twój arduino używa do uwierzytelnienia się.
  • Aby uzyskać ten klucz, musimy sflashować arduino konkretnym szkicem. Szkic można znaleźć tutaj. Ten szkic powinien działać i przez monitor szeregowy powinien wysłać eui. Skopiuj eui z monitora szeregowego do pola Device EUI w sieci Things.
  • Kliknij zarejestruj się.
  • Teraz zarejestrowaliśmy nasze arduino w chmurze. Czas zacząć wysyłać wiadomości.
  • Powinieneś zostać przekierowany na stronę o nazwie Przegląd urządzeń. Tutaj możesz zobaczyć eui urządzenia, eui aplikacji i klucz aplikacji.
  • Aby kontynuować, musimy sflashować ostateczny szkic do arduino. Szkic można znaleźć tutaj.
  • Po otwarciu tego linku zobaczysz, że jest wiele kart. Otwórz zakładkę sekretów. Istnieją 2 klucze, które musisz przetworzyć z sieci Things do pliku tajnego.
  • Po wypełnieniu tych kluczy możesz sflashować arduino. Rozpocznie wysyłanie danych do sieci rzeczy raz na godzinę.
  • Jeśli wszystko poszło dobrze, powinieneś zobaczyć komunikaty pojawiające się w zakładce Dane w sieci rzeczy po zresetowaniu arduino (jedyny przycisk na płycie).

    • Jeśli w tym miejscu nie pojawiają się żadne dane, może to oznaczać, że nie znajdujesz się w zasięgu prawidłowej bramy LoRa. Możesz sprawdzić mapę ze wszystkimi dostępnymi bramkami na https://thethingsnetwork.org. Bramki jednokanałowe LoRa nie będą działać z zalecanym arduino.
    • Jeśli nie znajdujesz się w zasięgu bramki, możesz połączyć swoją własną bramę z siecią Things. Te bramy zwykle mają dość dobre samouczki, jak je połączyć. Poszukaj zalecanej bramy na liście zaopatrzenia.

Krok 5: Interpretacja danych w sieci rzeczy

  • Aby uzyskać użyteczne dane z wiadomości w sieci rzeczy, musimy zdekodować strumień bajtów.
  • W sieci rzeczy przejdź do swojej aplikacji.
  • Powinna istnieć zakładka o nazwie „Formaty ładunku”, kliknij tę zakładkę.
  • Obok siebie znajdują się 4 przyciski: „dekoder”, „konwerter”, „walidator”, „enkoder”.
  • Kliknij na dekoder.
  • Wklej tam następujący kod.

function Decoder(bytes, port) { // Dekoduj wiadomość uplink z bufora // (tablicy) bajtów do obiektu pól. var stringToDecode=bin2String(bajty); var res=stringToDecode.split(" "); var temp=res[1]; var moist= res[3]; var bat= res[5]; var dekodowane = {"temperatura":temp, "wilgotność":wilgotne, "bateria":bat}; zwrot dekodowany; } function bin2String(tablica) { var wynik = ""; for(var i = 0; i < array.length; ++i){ wynik+= (String.fromCharCode(array)); } zwróć wynik;}

  • Kliknij Zapisz.
  • Po zresetowaniu arduino i wyświetleniu karty danych powinieneś zobaczyć ładnie sformatowany obiekt json, który możesz łatwo odczytać.

Krok 6: Łączenie aplikacji z AWS

Będziemy używać AWS do przechowywania i wykorzystywania danych z sieci Things. Wszystkie zasoby, z których będziemy korzystać, są objęte bezpłatną warstwą AWS.

  • Przejdź do AWS
  • Zaloguj się lub utwórz konto.
  • Aby połączyć swoją aplikację w sieci Things z AWS, polecam skorzystać z tego samouczka:
  • Po ukończeniu tego samouczka przejdź w konsoli aws do segmentu IoT-Core.
  • W lewym pasku menu znajduje się etykieta "Zarządzaj", kliknij to.
  • Powinieneś teraz zobaczyć kartę z nazwą twojego czujnika.
  • Ponownie w lewym pasku menu kliknij „Działaj”
  • Jeśli jest karta oznaczona jako Sklep, dobrze jest iść.
  • Jeśli nie, kliknij „Utwórz”.
  • Wpisz nazwę „Sklep”.
  • Możesz dodać opis, jeśli chcesz.
  • Jako instrukcję zapytania wpisz następujący kod: SELECT dev_id, metadata.time, payload_fields.temperature, payload_fields.moisture, payload_fields.battery FROM 'cactus_network/devices/+/up'.
  • W sekcji „Ustaw co najmniej jedną akcję” kliknij dodaj akcję.
  • Wybierz „Podziel wiadomość na wiele kolumn tabeli DynamoDb (DynamoDBv2)”.
  • Kliknij konfiguruj akcję
  • Kliknij utwórz nowy zasób.
  • Kliknij utwórz stół i nadaj swojej tabeli nazwę.
  • Pod kluczem podstawowym wpisz „dev_id”.
  • Kliknij dodaj klucz sortowania
  • Wpisz „czas”.
  • Kliknij Utwórz.
  • Jeśli wszystko poszło dobrze, powinieneś wrócić na stronę konfiguracji akcji.
  • W obszarze „Wybierz lub utwórz rolę, aby przyznać dostęp AWS IoT w celu wykonania tej akcji”, znajduje się nieco wyszarzony obszar.
  • Kliknij Utwórz rolę i nadaj tej roli nazwę.
  • Kliknij utwórz rolę.
  • Kliknij dodaj akcję.
  • Kliknij utwórz regułę.
  • Powinieneś teraz mieć regułę, która automatycznie przechowuje wszystkie wiadomości przychodzące z sieci Things w DynamoDb.
  • Możesz sprawdzić, czy to działa, resetując arduino i zajrzyj do właśnie utworzonej tabeli DynamoDb.
  • Wiadomość powinna zawierać zapis.

Krok 7: Tworzenie lambda

Aby odczytać dane z DynamoDB, napiszemy lambdę AWS.

  • W konsoli zarządzania AWS pod usługami znajduje się link oznaczony "Lambda", kliknij ten.
  • Kliknij Utwórz funkcję.
  • Wybierz nazwę.
  • Ustaw środowisko uruchomieniowe na Pythona 3.7.
  • Kliknij Utwórz funkcję.
  • Wklej ten kod do zintegrowanego środowiska IDE.

importuj json

import boto3 import czas z datetime import datetime, timedelta z boto3.dynamodb.conditions import Key, Attr def lambda_handler(zdarzenie, kontekst): return retreive_data() def retreive_data(): # Pobierz zasób usługi. dynamodb = boto3.resource('dynamodb') table = dynamodb. Table('TUTAJ NAZWA TABELI') now = datetime.now() wczoraj = teraz - timedelta(hours=24) fe = Key('time').between(wczoraj.isoformat(), now.isoformat()) fed =Key('czas').lt(yesterday.isoformat()) response = table.scan(FilterExpression=fe) recordsToDelete=table.scan(FilterExpression=fed) for f in recordsToDelete['Items']: #print(f) table.delete_item(Key={'dev_id':f['dev_id'], 'time':f['time']}) data = response['Items '] zwróć dane

  • Zmień nazwę tabeli na wybraną przez siebie.
  • Przewiń w dół do roli wykonawczej.
  • Kliknij utwórz nową rolę z szablonów zasad aws.
  • Wybierz nazwę.
  • W szablonach zasad wybierz „Uprawnienia do wiązki testowej” i „Uprawnienia prostego mikroserwisu”.
  • Kliknij Zapisz.
  • Kliknij test.
  • Może pojawić się wyskakujące okienko, po prostu wybierz nazwę i zapisz.
  • Kliknij test ponownie.
  • U góry powinien znajdować się zielony baner z napisem „Wynik egzekucji: powiodło się”.
  • Po kliknięciu tego banera powinieneś zobaczyć dane wyjściowe tej funkcji, powinna to być lista danych z czujników.
  • Należy pamiętać, że ten skrypt usuwa wszystkie dane starsze niż 24 godziny.
  • Jeśli twój baner nie jest zielony, ale czerwony, coś przeoczyłeś, a kliknięcie tego banera da ci pełny komunikat o błędzie. W tym przypadku google jest twoim najlepszym przyjacielem.

Krok 8: Tworzenie punktu końcowego API

  • W konsoli zarządzania AWS pod usługami znajduje się link oznaczony "api-gateway", kliknij ten.
  • Kliknij Utwórz interfejs API.
  • Upewnij się, że wybrano „REST” i „Nowy interfejs API”.
  • Wybierz nazwę dla swojego interfejsu API.
  • Kliknij Utwórz interfejs API.
  • Na ekranie powinien być teraz przycisk oznaczony akcjami, kliknij go.
  • Następnie kliknij Utwórz zasób.
  • Jako nazwę zasobu należy podać coś prostego, np. „roślina” lub „dane rośliny”.
  • Kliknij Utwórz zasób.
  • Po lewej stronie powinna być teraz wpisana nazwa. kliknij tę nazwę.
  • Teraz kliknij ponownie akcje, a teraz kliknij dodaj metodę.
  • Wybierz POBIERZ.
  • Kliknij znacznik wyboru.
  • Powinno tam być pole tekstowe o nazwie Funkcja Lambda.
  • Wpisz tutaj nazwę, którą nadałeś funkcji lambda.
  • Kliknij Zapisz.
  • Może pojawić się wyskakujące okienko, które ostrzega, że tworzy dodatkowe uprawnienia.
  • Zaakceptuj to wyskakujące okienko.
  • Teraz pod akcjami kliknij włącz cors.
  • Kliknij „włącz CORS i zastąp istniejące nagłówki CORS”.
  • Kliknij „tak, …”.
  • Kliknij ponownie akcje i kliknij Wdróż interfejs API.
  • Na etapie wdrażania wybierz [Nowy etap].
  • Wybierz nazwę.
  • Kliknij Wdróż.
  • Opublikowałeś swoje API online na całym świecie.
  • Na ekranie, do którego dotarłeś, kliknij „POBIERZ” i właśnie utworzony zasób.
  • Na górze powinien znajdować się link oznaczony „wywołaj adres URL”.
  • Skopiuj ten link.
  • Wklej go w przeglądarce i naciśnij Enter.
  • Powinieneś zobaczyć dane znajdujące się w bazie danych.

Krok 9: Połącz swoją roślinę z Social Plant Network

  • Przejdź do
  • Kliknij "Zaloguj się".
  • Kliknij Utwórz konto.
  • Wypełnij formularz, aby utworzyć konto.
  • Pamiętaj, że nazwa użytkownika musi być również Twoim adresem e-mail.
  • Kliknij Utwórz konto.
  • Być może będziesz musiał zweryfikować swój adres e-mail, zanim będziesz mógł kontynuować.
  • Upewnij się, że jesteś zalogowany.
  • Wróć do strony głównej (kliknij logo w lewym górnym rogu).
  • Kliknij przycisk ustawień.
  • Wypełnij formularz, powinieneś wypełnić wszystkie pola.
  • Łącze do interfejsu API to łącze zapisane po utworzeniu punktu końcowego interfejsu API.
  • Gdy wszystko zostanie wypełnione, kliknij przycisk Zapisz roślinę. system zweryfikuje teraz wprowadzony link api i jeśli jest poprawny, zapisze twoją instalację w sieci.
  • Wróć na stronę główną.
  • Możesz teraz kliknąć wszystkie rośliny, powinieneś być w stanie zobaczyć wszystkie zarejestrowane rośliny. twoja roślina również powinna tam być. kliknij kartę, a zostaniesz przeniesiony na stronę przeglądu swojego zakładu, a także wyświetli porady oparte na wartościach ustawionych w ustawieniach.

Krok 10: Oprzyj się i poklep się po plecach

Właśnie podłączyłeś zakład do internetu. Dość imponujące, prawda?

Zalecana: