Sommario:

Connetti il tuo impianto al cloud: 10 passaggi
Connetti il tuo impianto al cloud: 10 passaggi

Video: Connetti il tuo impianto al cloud: 10 passaggi

Video: Connetti il tuo impianto al cloud: 10 passaggi
Video: Ecco come i LADRI entrano a casa tua - Sensore da esterno - Versione migliorata 2024, Luglio
Anonim
Connetti il tuo impianto al cloud
Connetti il tuo impianto al cloud
Connetti il tuo impianto al cloud
Connetti il tuo impianto al cloud
Connetti il tuo impianto al cloud
Connetti il tuo impianto al cloud

Nel nostro ufficio c'è un cactus che non riceveva l'attenzione che meritava. Dato che lavoro in un'azienda IT e volevo sperimentare LoRa, soluzioni serverless e AWS, ho chiamato il nostro cactus Steeve e l'ho connesso al cloud. Ora puoi monitorare Steeve da qualsiasi parte del mondo usando la pagina web che ho creato per lui: l'interfaccia web di Steeve.

Forniture

1 cactus / la tua pianta preferita

1 Arduino MKR WAN 1300 (negozio Arduino)

1 antenna da 868 mHz/914 mHz (dipende dalla tua posizione) (Amazon)

1 LoRa Gateway quando non è nel raggio di uno (Amazon)

2 batterie AA

1 sensore TMP102 (Amazon)

1 sensore di umidità del suolo (Amazon)

Cavi conduttivi (Amazon)

saldatore

Portabatterie (Amazon)

Astuccio

opzionale: stampante 3D (se puoi usare una stampante 3D non hai bisogno di un portabatterie o di una custodia)

Passaggio 1: stampa della custodia (opzionale)

Stampa della custodia (opzionale)
Stampa della custodia (opzionale)
Stampa della custodia (opzionale)
Stampa della custodia (opzionale)

Scarica questo file zip, decomprimilo e stampa i file. I file sono contrassegnati con la quantità necessaria dell'articolo.

Sentiti libero di aggiungere qualcosa al coperchio come ho fatto io.

Li ho stampati utilizzando un'altezza dello strato di 0,2 mm e un riempimento del 15%.

I ganci possono essere fissati con viti m3.

Una volta stampata la scatola, è possibile utilizzare del filo per effettuare i collegamenti necessari sul supporto della batteria. È possibile utilizzare l'immagine fornita come riferimento.

Passaggio 2: cablaggio

Cablaggio
Cablaggio
  • Prima di accendere l'arduino assicurarsi che l'antenna sia collegata, l'accensione dell'arduino senza l'antenna potrebbe causare danni.
  • Collegare il tutto secondo lo schema elettrico fornito.
  • Se stai saldando questi fili, assicurati di non collegare alcun pin sui sensori o sull'arduino!

Passaggio 3: crea un'app su Things Network

  • Vai su https://www.thethingsnetwork.org/ e se non hai ancora un account, creane uno.
  • Una volta che hai un account e hai effettuato l'accesso, puoi andare alla console (angolo in alto a destra, fai clic sul tuo nome utente e poi sulla console).
  • Fare clic su applicazioni.
  • Una volta caricata la pagina, dovresti essere in grado di fare clic su "aggiungi applicazione".
  • Compila il modulo e scegli la regione corretta in basso. Fare clic su "aggiungi applicazione".
  • Congratulazioni, hai appena creato un'applicazione sulla rete delle cose. =D

Passaggio 4: collegamento di Arduino alla rete delle cose

Per programmare l'arduino ti consiglio di usare l'ide arduino online, questo rende molto facile il caricamento nella libreria necessaria.

  • Apri la tua applicazione sulla rete delle cose.
  • Dovrebbe esserci un campo intitolato dispositivi, fare clic su Registra dispositivo.
  • vedrai un campo chiamato ID dispositivo. questo è il nome che vuoi dare al tuo sensore. Dovrebbe essercene un altro etichettato Device EUI, questa è la chiave univoca che il tuo arduino usa per autenticarsi.
  • Per ottenere questa chiave dobbiamo flashare l'arduino con uno schizzo specifico. Lo schizzo può essere trovato qui. Questo sketch dovrebbe essere eseguito e sul monitor seriale dovrebbe inviare l'eui. Copia l'ui dal monitor seriale nel campo Device EUI sulla rete delle cose.
  • Fare clic su registrati.
  • Ora abbiamo registrato il nostro arduino nel cloud. È ora di iniziare a inviare messaggi.
  • Dovresti essere stato reindirizzato a una pagina chiamata panoramica del dispositivo. Qui puoi vedere il tuo dispositivo eui, app eui e chiave app.
  • Per continuare dobbiamo eseguire il flashing dello schizzo finale sull'arduino. Lo schizzo può essere trovato qui.
  • Quando apri questo link vedrai che ci sono più schede. Apri la scheda dei segreti. Ci sono 2 chiavi di cui hai bisogno per far fronte alla rete delle cose al file dei segreti.
  • Una volta che queste chiavi sono state compilate, puoi far lampeggiare l'arduino. Inizierà a inviare dati alla rete delle cose una volta ogni ora.
  • Se tutto è andato bene dovresti essere in grado di vedere i messaggi in arrivo nella scheda Dati sulla rete delle cose dopo aver ripristinato l'arduino (l'unico pulsante sulla scheda).

    • Se non vengono visualizzati dati qui, ciò potrebbe significare che non sei nel raggio di un gateway LoRa corretto. Puoi controllare una mappa con tutti i gateway disponibili su https://thethingsnetwork.org. I gateway LoRa a canale singolo non funzioneranno con l'arduino consigliato.
    • Se non sei nel raggio di un gateway, puoi accoppiare il tuo gateway alla rete delle cose. Questi gateway di solito hanno tutorial abbastanza buoni su come collegarli. Cerca nell'elenco delle forniture il gateway consigliato.

Passaggio 5: interpretazione dei dati sulla rete delle cose

  • Per ottenere dati utilizzabili dai messaggi sulla rete delle cose abbiamo bisogno di decodificare il bytestream.
  • Sulla rete delle cose vai alla tua applicazione.
  • Dovrebbe esserci una scheda denominata "Formati payload", fai clic su questa scheda.
  • Ci sono 4 pulsanti uno accanto all'altro: "decodificatore", "convertitore", "validatore", "encoder".
  • Fare clic su decodificatore.
  • Incolla lì il seguente codice.

function Decoder(bytes, port) { // Decodifica un messaggio di uplink da un buffer // (array) di byte a un oggetto di campi. var stringToDecode=bin2String(byte); var res=stringToDecode.split(" "); var temp=res[1]; var umido= res[3]; var bat= res[5]; var decodificato = {"temperatura": temperatura, "umidità": umidità, "batteria": bat}; ritorno decodificato; } function bin2String(array) { var risultato = ""; for(var i = 0; i < array.length; ++i){ risultato+= (String.fromCharCode(array)); } restituisce il risultato;}

  • Fare clic su Salva.
  • Quando reimposti l'arduino e visualizzi la scheda dei dati, dovresti vedere un oggetto json ben formattato che puoi leggere facilmente.

Passaggio 6: connessione dell'app ad AWS

Utilizzeremo AWS per archiviare e utilizzare i dati dalla rete delle cose. Tutte le risorse che utilizzeremo sono coperte dal piano gratuito di AWS.

  • Vai su AWS
  • Login o creare un account.
  • Per connettere la tua applicazione sulla rete delle cose ad AWS ti consiglio di seguire questo tutorial:
  • Una volta completato questo tutorial, accedi nella console aws al segmento IoT-Core.
  • Nella barra dei menu di sinistra c'è un'etichetta "Gestisci", fai clic su di essa.
  • Ora dovresti vedere una scheda con il nome del tuo sensore.
  • Di nuovo nella barra dei menu di sinistra fai clic su "Agisci"
  • Se c'è una carta con l'etichetta Store, sei a posto.
  • In caso contrario, fai clic su "Crea".
  • Inserisci il nome "Negozio".
  • Puoi aggiungere una descrizione se lo desideri.
  • Come istruzione di query, inserisci il seguente codice: SELECT dev_id, metadata.time, payload_fields.temperature, payload_fields.moisture, payload_fields.battery FROM 'cactus_network/devices/+/up'.
  • In "Imposta una o più azioni" fai clic su aggiungi azione.
  • Seleziona "Dividi messaggio in più colonne di una tabella DynamoDb (DynamoDBv2)".
  • Fare clic su configura azione
  • Fare clic su Crea nuova risorsa.
  • Fai clic su Crea tabella e dai un nome alla tua tabella.
  • Sotto la chiave primaria, inserisci "dev_id".
  • Fare clic su aggiungi chiave di ordinamento
  • Inserisci "tempo".
  • Fare clic su Crea.
  • Se tutto è andato bene, dovresti essere di nuovo nella pagina di configurazione dell'azione.
  • C'è un'area leggermente in grigio in "Scegli o crea un ruolo per concedere l'accesso AWS IoT per eseguire questa azione".
  • Fare clic su Crea ruolo e assegnare un nome a questo ruolo.
  • Fare clic su Crea ruolo.
  • Fare clic su aggiungi azione.
  • Fare clic su Crea regola.
  • Ora dovresti avere una regola che memorizza automaticamente tutti i messaggi in arrivo dalla rete delle cose in DynamoDb.
  • Puoi verificare se funziona ripristinando l'arduino e andare a cercare nella tabella DynamoDb che hai appena creato.
  • Dovrebbe esserci un record con il messaggio.

Passaggio 7: creazione di un Lambda

Per leggere i dati da DynamoDB scriveremo un lambda AWS.

  • Nella console di gestione AWS in servizi è presente un collegamento denominato "Lambda", fare clic su questo.
  • Fare clic su Crea funzione.
  • Scegli un nome.
  • Imposta il runtime su Python 3.7.
  • Fare clic su Crea funzione.
  • Incolla questo codice nell'IDE integrato.

import json

import boto3 import time from datetime import datetime, timedelta from boto3.dynamodb.conditions import Key, Attr def lambda_handler(event, context): return retreive_data() def retreive_data(): # Ottieni la risorsa del servizio. dynamodb = boto3.resource('dynamodb') table = dynamodb. Table('TABLE NAME HERE') now = datetime.now() ieri = ora - timedelta(hours=24) fe = Key('time').between(ieri.isoformat(), now.isoformat()) fed =Key('time').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 '] restituisce i dati

  • Cambia il nome della tabella con quello che scegli.
  • Scorri verso il basso fino al ruolo di esecuzione.
  • Fai clic su Crea un nuovo ruolo dai modelli di criteri aws.
  • Scegli un nome.
  • In modelli di criteri selezionare "Autorizzazioni cablaggio di prova" e "Autorizzazioni microservizi semplici".
  • Fare clic su Salva.
  • Fare clic su prova.
  • Potrebbe apparire un popup, basta scegliere un nome e salvare.
  • Fare di nuovo clic su prova.
  • Nella parte superiore dovrebbe esserci un banner verde che dice "Risultato dell'esecuzione: riuscito".
  • Quando fai clic su questo banner dovresti vedere l'output di questa funzione, dovrebbe essere un elenco di sensordata.
  • Tieni presente che questo script elimina tutti i dati più vecchi di 24 ore.
  • Nel caso in cui il tuo banner non sia verde ma rosso, ti sei perso qualcosa e cliccando su questo banner otterrai il messaggio di errore completo. In questo caso Google è il tuo migliore amico.

Passaggio 8: creazione di un endpoint API

  • Nella console di gestione AWS in servizi è presente un collegamento denominato "api-gateway", fare clic su questo.
  • Fare clic su Crea API.
  • Assicurati che "REST" e "Nuova API" siano entrambi selezionati.
  • Scegli un nome per la tua API.
  • Fare clic su Crea API.
  • Dovrebbe esserci un pulsante con l'etichetta azioni sullo schermo ora, fai clic su di esso.
  • Quindi fare clic su Crea risorsa.
  • Come nome della risorsa dovresti inserire qualcosa di semplice come "impianto" o "dati impianto".
  • Fare clic su Crea risorsa.
  • Sulla sinistra dovrebbe ora esserci il nome che hai appena inserito. fare clic su questo nome.
  • Ora fai di nuovo clic su azioni e ora fai clic su aggiungi metodo.
  • Seleziona OTTIENI.
  • Fare clic sul segno di spunta.
  • Dovrebbe esserci una casella di testo denominata Funzione Lambda.
  • Inserisci qui il nome che hai dato alla funzione lambda.
  • Fare clic su Salva.
  • Potrebbe esserci un popup che ti avverte che sta creando autorizzazioni aggiuntive.
  • Accetta questo popup.
  • Ora sotto le azioni fai clic su abilita cors.
  • Fare clic su "abilita CORS e sostituisci le intestazioni CORS esistenti".
  • Fare clic su "sì, …".
  • Fare nuovamente clic su azioni e fare clic su Distribuisci API.
  • Nella fase di distribuzione seleziona [Nuova fase].
  • Scegli un nome.
  • Fare clic su Distribuisci.
  • Ora hai pubblicato la tua API online per il mondo.
  • Nella schermata in cui sei arrivato ora clicca su "OTTIENI" e cerca la risorsa che hai appena creato.
  • Dovrebbe esserci un collegamento in alto con l'etichetta "invoca URL".
  • Copia questo collegamento.
  • Incollalo in un browser e premi invio.
  • Dovresti vedere i dati che sono nel database.

Passaggio 9: collega il tuo impianto alla rete sociale dell'impianto

  • Vai su
  • Fare clic su "Accedi".
  • Fare clic su Crea account.
  • Compila il form per creare il tuo account.
  • Tieni presente che il nome utente deve essere anche la tua email.
  • Fare clic su Crea account.
  • Potrebbe essere necessario verificare la tua email prima di poter continuare.
  • Assicurati di aver effettuato l'accesso.
  • Torna alla home page (clicca sul logo in alto a sinistra).
  • Fai scorrere il pulsante delle impostazioni.
  • Compila il modulo, dovresti compilare ogni campo.
  • Il collegamento all'API è il collegamento che hai salvato dopo aver creato l'endpoint API.
  • Quando tutto è compilato, fai clic sul pulsante Salva impianto. il sistema ora verificherà il link API che hai inserito e se questo è corretto salverà il tuo impianto in rete.
  • Torna alla homepage.
  • Ora puoi fare clic su tutte le piante, dovresti essere in grado di vedere tutte le piante registrate. anche la tua pianta dovrebbe essere lì dentro. clicca sulla scheda e verrai indirizzato ad una pagina di panoramica del tuo impianto, inoltre verranno visualizzati consigli in base ai valori che hai impostato nelle impostazioni.

Passaggio 10: sdraiati e dai una pacca sulla schiena

Hai appena connesso un impianto a Internet. Abbastanza impressionante, vero?

Consigliato: