Sommario:

IDC2018IOT GarbageCan-Online: 7 passaggi
IDC2018IOT GarbageCan-Online: 7 passaggi

Video: IDC2018IOT GarbageCan-Online: 7 passaggi

Video: IDC2018IOT GarbageCan-Online: 7 passaggi
Video: Днестр- от истока до моря Часть 7 Монологи на реке Сплав по реке 2024, Novembre
Anonim
Image
Image
Parti richieste
Parti richieste

introduzione

Tutti sanno cosa succede quando lasciamo troppo a lungo la spazzatura nel bidone della spazzatura senza rimuoverla. Bene, la cosa più ovvia è che non c'è spazio per altra spazzatura, ma inizia anche a puzzare e diventa molto sgradevole.

Con questo progetto, miriamo ad aiutarti a monitorare i tuoi bidoni della spazzatura in casa\spazio di lavoro\ecc, in modo che tu possa sempre sapere quando sono pieni e puoi agire immediatamente portando fuori la spazzatura.

Il sistema ti avviserà tramite una notifica telefonica o un avviso sul cruscotto che devi svuotare il bidone della spazzatura. Il sistema tiene conto del livello di riempimento del bidone della spazzatura, ma anche della temperatura e dell'umidità misurate al suo interno. Conosciamo tutti l'urgenza di svuotare i bidoni della spazzatura nelle giornate calde e umide…

Caratteristiche principali

  1. Pannello di monitoraggio:

    • Sezione principale:

      • Livello di pienezza di ogni bidone della spazzatura.
      • Temperatura e umidità di ogni bidone della spazzatura.
    • Sezione Statistica:

      • Il bidone della spazzatura più pieno.
      • Il bidone della spazzatura più caldo.
  2. Sistema di avvisi e notifiche:

    • Sono supportati i seguenti eventi:

      • Il bidone della spazzatura è pieno.
      • Si è verificato un errore del sensore.
    • Gli avvisi di riempimento tengono conto del livello di riempimento del bidone della spazzatura, ma anche dei livelli di temperatura e umidità del bidone della spazzatura.
    • Gli avvisi possono essere inviati tramite notifiche telefoniche e avvisi sulla dashboard.
    • Ogni canale di avviso può essere attivato e disattivato tramite la dashboard.
  3. Scalabilità:

    • Utilizzando il pulsante di calibrazione, è possibile adattare il sistema a diversi bidoni della spazzatura con capacità variabili.
    • È possibile aggiungere più bidoni della spazzatura in modo relativamente semplice. Si può assemblare lo stesso sistema su un nuovo bidone della spazzatura, impostare l'ID del bidone della spazzatura e calibrarlo (premendo un pulsante). Avere più di 3 bidoni della spazzatura richiederà l'estensione della Dashboard (operazione facile da eseguire).

Chi siamo noi?

Questo progetto è stato creato (con amore e dedizione!) da Rom Cyncynatus e Daniel Alima - Studenti dell'IDC Herzliya come progetto finale per il nostro corso IoT. Ci auguriamo che troverai utile il nostro lavoro e ti divertirai ad usarlo!

Passaggio 1: parti necessarie

Per costruire il sistema, dovrai acquisire i seguenti componenti e parti:

  1. Bidone della spazzatura (preferibilmente con un coperchio): Questo servirà per… beh.. sai cosa faremo con questo, eh?;)
  2. Breadboard: Per collegare tutti i diversi componenti senza utilizzare alcuna saldatura.
  3. NodeMCU (ESP-8266): responsabile della lettura dei sensori e dell'invio delle informazioni al cloud.
  4. Sensore IR di distanza - Sharp 0A41SK: questo sensore misurerà la quantità di spazzatura (livello di pienezza) all'interno del bidone.
  5. Sensore di temperatura e umidità - DHT11: questo sensore misurerà la temperatura e l'umidità all'interno del bidone della spazzatura.
  6. Interruttore momentaneo: verrà utilizzato per calibrare il sensore di distanza in base alle dimensioni del bidone della spazzatura.
  7. Foglio di alluminio: verrà utilizzato per formare un rilevatore per lo stato del coperchio, indipendentemente dal fatto che sia aperto o chiuso.
  8. Cavi per ponticelli: prendine molti e di diverse lunghezze e colori. Collegherà tutto insieme.
  9. Nastro adesivo: dovremo attaccare le cose al loro posto.
  10. Cavo micro-USB: per collegare il NodeMCU al computer per la programmazione e in seguito per l'alimentazione.
  11. Alimentatore USB (caricatore per smartphone): fornirà alimentazione al NodeMCU quando installato sul bidone della spazzatura.

Passaggio 2: cablaggio e assemblaggio

Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio

Cablaggio

Posiziona il NodeMCU sulla breadboard in modo che sia conveniente collegarlo in seguito al tuo bidone della spazzatura e collega il cavo USB ad esso. Quindi, consultare l'immagine dello schema elettrico sopra per collegare i diversi componenti al NodeMCU. Assicurati di utilizzare cavi lunghi per i sensori e i cavi di stato in modo che sia conveniente installare il sistema e utilizzare il bidone della spazzatura con esso.

  • Sensore IR di distanza - Sharp 0A41SK:

    • Vin (rosso) Vin
    • GND (Nero) GND
    • Vout (giallo) A0
  • Sensore di temperatura e umidità - DHT11:

    • Vin (rosso) 3V3
    • GND (Nero) GND
    • DATI (giallo) D4
  • Interruttore momentaneo:

    • Pin1 D3
    • Pin2 GND
  • Fili di stato del coperchio (aperto\chiuso):

    • Filo1 D2
    • Filo2 GND

Assemblea

L'assemblaggio del sistema sul bidone della spazzatura è abbastanza semplice. Attacca la breadboard al bidone della spazzatura, preferibilmente vicino al coperchio. Utilizzare nastro o fascetta per fissarlo in posizione. Quindi:

  1. Posiziona il sensore di distanza IR al centro del coperchio (dal lato interno!). Assicurati di fissarlo correttamente, o incontrerai false letture!
  2. Posiziona il sensore di temperatura e umidità da qualche parte all'interno del bidone della spazzatura. Fissare con nastro adesivo.
  3. Copri il lato del coperchio e la punta del bidone della spazzatura con un foglio di alluminio. Assicurati che ci sia un buon contatto quando il coperchio è chiuso. Questo segnalerà al sistema che il bidone della spazzatura è aperto o chiuso. Quindi incollare ciascuno dei fili di stato del coperchio in uno dei fogli di alluminio e fissarlo con del nastro adesivo.

Passaggio 3: imposta MQTT, Node-RED e IFTTT

Configura MQTT, Node-RED e IFTTT
Configura MQTT, Node-RED e IFTTT
Configura MQTT, Node-RED e IFTTT
Configura MQTT, Node-RED e IFTTT
Configura MQTT, Node-RED e IFTTT
Configura MQTT, Node-RED e IFTTT

La maggior parte della logica del progetto è effettivamente implementata nel cloud. Il NodeMCU invia i dati al server MQTT e Node-RED li consuma e applica la sua logica su di esso (più avanti sull'architettura). Infine, per trasmettere le notifiche push (alert) al nostro smartphone, abbiamo utilizzato IFTTT.

Utilizzeremo i servizi cloud CloudMQTT e FRED rispettivamente come nostri server MQTT e Node-RED e utilizzeremo IFTTT per le notifiche push.

  1. Iscriviti a CloudMQTT con il piano gratuito. Annota le tue credenziali al server MQTT (nome utente e password).
  2. Iscriviti a IFTTT. Crea una nuova applet di "Notifica dell'app IFTTT Webhooks". Utilizzare "Notifica cellulare" come nome dell'evento WebHookds. Consulta l'immagine sopra per i dettagli nitidi e grintosi. Prendi nota della tua chiave API Maker.
  3. Scarica l'app IFTTT sul tuo telefono e accedi con le tue credenziali. Questo ti permetterà di ricevere notifiche push.
  4. Iscriviti a FRED con il piano gratuito.
  5. Una volta che l'istanza FRED è attiva e funzionante, importa i flussi allegati in essa (pulsante 3 barre Importa dagli appunti). Basta incollare il contenuto di ogni file (widgest.json, alerts.json, statistics.json) e importarlo.
  6. Modifica uno dei nodi MQTT (uno è sufficiente) per aggiornare le tue credenziali CloudMQTT.
  7. Modifica il nodo IFTTT per aggiornare la tua chiave API del creatore IFTTT.

Passaggio 4: programmare il NodeMCU e la calibrazione della capacità del bidone della spazzatura

Una volta che abbiamo cablato tutto, dobbiamo programmare il NodeMCU con il software appropriato (schizzo) in modo che utilizzi effettivamente tutte le cose ad esso collegate e comunichi con Internet.

  1. Scarica e installa l'IDE Arduino da qui.
  2. Installare e impostare il tipo di scheda NodeMCU come spiegato all'inizio delle istruzioni seguenti.
  3. Installa le seguenti librerie (Sketch Include Library Gestisci librerie…):

    1. Libreria Adafruit MQTT (di Adafruit)
    2. Libreria di sensori DHT (di Adafruit)
    3. SharpIR (di Giuseppe Masino)
    4. EEPROMAnything - spiegazione qui.
  4. Apri il file GarbageCanOnline.ino e aggiorna quanto segue:

    1. Le tue credenziali WiFi (WLAN_SSID, WLAN_PASS)
    2. Le tue credenziali CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
    3. Se questo è un secondo bidone della spazzatura o più, cambia l'ID del bidone della spazzatura (GARBAGECAN_ID)
  5. Carica lo schizzo aggiornato sul tuo NodeMCU.
  6. Apri la finestra del monitor seriale (Ctrl+M) e assicurati che riesca a pubblicare i dati dei sensori su CloudMQTT.
  7. Ora, quando il coperchio è chiuso e il bidone della spazzatura è vuoto, premere a lungo il pulsante di calibrazione per calibrare la capacità del bidone della spazzatura.
  8. Il bidone della spazzatura è pronto. Puoi scollegarlo dal computer e collegarlo nella posizione designata utilizzando l'alimentatore USB.

Passaggio 5: utilizzo del sistema

Utilizzo del sistema
Utilizzo del sistema
Utilizzo del sistema
Utilizzo del sistema
Utilizzo del sistema
Utilizzo del sistema

Se sei arrivato fin qui, tutto dovrebbe essere pronto e funzionante. Facciamo una rapida panoramica dei diversi aspetti di utilizzo del sistema.

Supponiamo che tu abbia un solo bidone della spazzatura collegato, ma è facile aggiungerne altri in seguito!

Innanzitutto, nota la dashboard principale. Dovresti essere nella schermata iniziale, vedere la pienezza del bidone della spazzatura, la temperatura e i livelli di umidità. Puoi controllare le notifiche del telefono e gli avvisi della dashboard utilizzando gli interruttori a sinistra.

Quando la quantità di spazzatura all'interno del bidone della spazzatura cambia, vedrai che l'indicatore cambia di conseguenza. Questo vale anche per i grafici di temperatura e umidità.

Quando il livello di pienezza raggiunge l'85%-90% (la soglia esatta dipende dalla temperatura e dall'umidità) o si è verificato un errore del sensore, riceverai una notifica tramite il metodo o i metodi preferiti. Riceverai una notifica ogni ora per ogni bidone della spazzatura.

Nella vista Statistiche, sarai in grado di vedere il bidone della spazzatura attualmente più pieno e quello più caldo. Titolo poco lusinghiero, se possiamo dire…

Passaggio 6: comprendere il flusso

Capire il flusso
Capire il flusso
Capire il flusso
Capire il flusso
Capire il flusso
Capire il flusso
Capire il flusso
Capire il flusso

Come probabilmente avrai già notato, il sistema ha molte "parti mobili". Cercheremo di chiarire come le cose sono collegate tra loro.

Innanzitutto, abbiamo il nostro bidone della spazzatura con il NodeMCU e i suoi sensori. Possiamo averne in abbondanza, solo "copie" l'una dell'altra.

Il NodeMCU misura i diversi sensori collocati nel bidone della spazzatura e pubblica i dati sul server MQTT (protocollo MQTT). Puoi pensare al server MQTT come a un grande scambio di informazioni, a cui molti bidoni della spazzatura possono riportare le loro informazioni.

Un'altra entità che si connette al server MQTT è Node-RED. Node-RED ascolta i diversi messaggi provenienti dal/i bidone/i della spazzatura che trasportano i dati sensoriali, e vi applica la sua logica. Funziona utilizzando "flussi" di informazioni. Ogni volta che un messaggio viene ricevuto, in base alla sua tipologia (argomento MQTT), entra in specifiche catene di operazioni che finiscono per attivare le diverse funzionalità del sistema (aggiornamento del dashboard, invio di alert, ecc.) Sarebbe molto corretto dire che Node-RED è il "cervello" del sistema. È consapevole di tutto ciò che accade ovunque e può intraprendere azioni di conseguenza.

All'interno di Node-RED abbiamo costruito 3 principali flussi di informazioni:

  1. Widget: le informazioni sensoriali inserite in Node-RED vengono quindi visualizzate sul cruscotto tramite indicatori e grafici.
  2. Avvisi - Le informazioni sensoriali vengono elaborate per stabilire se deve essere attivato un avviso (sul cruscotto o sull'app per smartphone). Il livello di riempimento, con la temperatura e l'umidità, vengono presi in considerazione per decidere di informare l'utente che il bidone della spazzatura è pieno. Inoltre, gli errori sensoriali sono segnalati dallo stesso flusso.
  3. Statistiche - Le informazioni sensoriali vengono aggregate per visualizzare i bidoni della spazzatura più pieni e più caldi.

Affinché Node-RED possa inviare notifiche push, si connette a un servizio chiamato IFTTT (tramite protocollo HTTP). Attiva un determinato evento IFTTT con il relativo testo di notifica e IFTTT invia la notifica al nostro smartphone (protocolli HTTP e XMPP).

Consultare le immagini sopra per comprendere meglio (a) la struttura generale del sistema e (b) i 3 diversi flussi informativi all'interno di Node-RED

Passaggio 7: sfide, limiti e piani per il futuro…

Sfide

Le principali sfide in questo progetto sono state principalmente la gestione dei servizi MQTT e Node-RED. Abbiamo usato per la prima volta AdafruitIO, ma la sua implementazione MQTT personalizzata non era abbastanza buona per noi. Non era conveniente lavorare con i suoi "feed" all'interno di Node-RED. Pertanto alla fine abbiamo optato per CloudMQTT, che si basa sul server Mosquitto MQTT ed è molto più standard. Poi siamo passati alla gestione di Node-RED, il che è stato piuttosto impegnativo, soprattutto perché Node-RED è una bestia. Ad esempio, dal nostro punto di vista è molto più completo e professionale di IFTTT. Abbiamo dovuto adattarci e imparare a usare il suo approccio progettuale basato sul flusso per costruire le nostre caratteristiche richieste del sistema. Inoltre, uno dei suoi maggiori vantaggi è il supporto del codice javascript, ma ci è voluto un po' di tempo per abituarcisi perché non siamo programmatori javascript. Nonostante tutto ciò, ci è piaciuto molto lavorare con questo particolare strumento e l'abbiamo trovato molto interessante e utile.

Limitazioni

Per quanto riguarda le limitazioni, la prima sarebbe il fatto che abbiamo utilizzato solo servizi gratuiti e non consentiranno di andare su larga scala. Il piano gratuito CloudMQTT non consentirà di avere più di 5 connessioni parallele, il che significa che possiamo avere solo 4 bidoni della spazzatura e Node-RED. Il piano gratuito FRED Node-RED consente solo 24 ore di utilizzo diretto, dopodiché è necessario accedere manualmente e reimpostare il timer. Tuttavia, questi problemi sono facilmente risolvibili eseguendo questi servizi localmente o pagando un piccolo extra per eliminare le limitazioni. La seconda limitazione è il fatto che quando si aggiunge il quarto bidone della spazzatura in poi, si deve modificare manualmente il flusso dei widget in Node-RED per aggiungere i widget appropriati.

Piani per il futuro

Abbiamo avuto alcune idee per migliorare ulteriormente il nostro sistema ed estenderlo:

  1. Passa a servizi cloud non gratuiti. (un giorno di lavoro).
  2. Aggiungere un compressore per rifiuti al bidone della spazzatura, riducendo così la frequenza di svuotamento. (4 mesi di lavoro)
  3. Lavorare con bidoni della spazzatura urbani e industriali per migliorare l'efficienza dei camion cittadini che gestiscono la spazzatura in città. Ciò significherebbe migliorare notevolmente il cruscotto e il sistema di notifica in modo che i camionisti possano pianificare molto meglio il loro percorso durante la movimentazione della spazzatura. (6 mesi di lavoro).
  4. Aggiunta di capacità di riciclaggio al bidone della spazzatura, come la capacità di versare soluzioni biologiche speciali nella spazzatura e aiutarlo a riciclarlo mentre è ancora all'interno del bidone della spazzatura. Questo può essere utilizzato in ambito domestico, ad esempio per produrre compost per giardini, ma può essere chiaramente utilizzato anche su lattine industriali. (6 mesi di lavoro).

Consigliato: