Inhaltsverzeichnis:

IDC2018IOT GarbageCan-Online - Gunook
IDC2018IOT GarbageCan-Online - Gunook

Video: IDC2018IOT GarbageCan-Online - Gunook

Video: IDC2018IOT GarbageCan-Online - Gunook
Video: IDC2018 IOT SMART TRASH BIN 2024, November
Anonim
Image
Image
Erforderliche Teile
Erforderliche Teile

Einführung

Jeder weiß, was passiert, wenn wir den Müll zu lange im Mülleimer lassen, ohne ihn zu entfernen. Nun, das Offensichtlichste ist, dass für mehr Müll kein Platz ist, aber es fängt auch an zu stinken und es wird sehr unangenehm.

Mit diesem Projekt möchten wir Ihnen helfen, Ihre Mülltonnen im Haus\Arbeitsbereich\etc zu überwachen, damit Sie immer wissen, wann sie voll sind, und sofort Maßnahmen ergreifen können, indem Sie den Müll rausbringen.

Das System benachrichtigt Sie per Telefonbenachrichtigung oder Dashboard-Benachrichtigung, dass Sie den Mülleimer leeren müssen. Dabei berücksichtigt das System den Füllgrad der Mülltonne, aber auch die darin gemessene Temperatur und Luftfeuchtigkeit. Wir alle kennen die Dringlichkeit, die Mülltonnen an heißen und feuchten Tagen zu leeren…

Haupteigenschaften

  1. Monitoring-Dashboard:

    • Hauptteil:

      • Füllstand jeder Mülltonne.
      • Temperatur und Luftfeuchtigkeit jeder Mülltonne.
    • Statistikbereich:

      • Der vollste Mülleimer.
      • Der heißeste Mülleimer.
  2. Warn- und Benachrichtigungssystem:

    • Folgende Veranstaltungen werden unterstützt:

      • Mülleimer ist voll.
      • Ein Sensorfehler ist aufgetreten.
    • Füllstandswarnungen berücksichtigen den Füllstand der Mülltonne, aber auch die Temperatur und Luftfeuchtigkeit der Mülltonne.
    • Warnungen können über Telefonbenachrichtigungen und Dashboard-Benachrichtigungen gesendet werden.
    • Jeder Alarmkanal kann über das Dashboard ein- und ausgeschaltet werden.
  3. Skalierbarkeit:

    • Über die Kalibriertaste ist es möglich, das System an verschiedene Mülltonnen mit unterschiedlichem Fassungsvermögen anzupassen.
    • Es ist relativ einfach möglich, weitere Mülleimer hinzuzufügen. Man kann das gleiche System auf eine neue Mülltonne montieren, die Mülltonnen-ID einstellen und kalibrieren (Knopfdruck). Wenn Sie mehr als 3 Mülleimer haben, müssen Sie das Dashboard erweitern (einfache Aufgabe).

Wer sind wir?

Dieses Projekt wurde (mit Liebe und Hingabe!) von Rom Cyncynatus und Daniel Alima - Studenten des IDC Herzliya als Abschlussprojekt für unseren IoT-Kurs erstellt. Wir hoffen, Sie finden unsere Arbeit nützlich und wünschen Ihnen viel Freude damit!

Schritt 1: Erforderliche Teile

Um das System zu bauen, müssen Sie die folgenden Komponenten und Teile erwerben:

  1. Mülleimer (am besten mit Deckel): Dieser wird verwendet für… na ja… weißt du, was wir damit machen, oder?;)
  2. Steckbrett: Zum Verbinden aller verschiedenen Komponenten ohne Löten.
  3. NodeMCU (ESP-8266): Verantwortlich für das Auslesen der Sensoren und das Senden der Informationen an die Cloud.
  4. Entfernungs-IR-Sensor - Sharp 0A41SK: Dieser Sensor misst die Müllmenge (Füllstand) in der Dose.
  5. Temperatur- und Feuchtigkeitssensor - DHT11: Dieser Sensor misst die Temperatur und Feuchtigkeit in der Mülltonne.
  6. Momentary Switch: Wird verwendet, um den Abstandssensor entsprechend der Größe des Mülleimers zu kalibrieren.
  7. Aluminiumfolie: Wird verwendet, um einen Detektor für den Deckelstatus zu bilden - ob geöffnet oder geschlossen.
  8. Überbrückungsdrähte: Holen Sie sich viele und in verschiedenen Längen und Farben. Werde alles miteinander verbinden.
  9. Klebeband: Wir müssen die Dinge anbringen.
  10. Micro-USB-Kabel: Zum Anschließen der NodeMCU an Ihren Computer zur Programmierung und später zur Stromversorgung.
  11. USB-Netzteil (Smartphone-Ladegerät): Versorgt die NodeMCU mit Strom, wenn sie auf dem Mülleimer installiert ist.

Schritt 2: Verdrahtung & Montage

Verkabelung & Montage
Verkabelung & Montage
Verkabelung & Montage
Verkabelung & Montage
Verkabelung & Montage
Verkabelung & Montage

Verdrahtung

Platzieren Sie die NodeMCU auf dem Steckbrett, damit Sie sie später bequem an Ihrem Mülleimer befestigen können, und schließen Sie das USB-Kabel daran an. Sehen Sie sich dann das obige Schaltbild an, um die verschiedenen Komponenten an die NodeMCU anzuschließen. Stellen Sie sicher, dass Sie lange Kabel für die Sensoren und Statuskabel verwenden, damit es bequem ist, das System zu installieren und den Mülleimer damit zu verwenden.

  • Entfernungs-IR-Sensor - Sharp 0A41SK:

    • Vin (Rot) Vin
    • GND (Schwarz) GND
    • Vout (Gelb) A0
  • Temperatur- und Feuchtigkeitssensor - DHT11:

    • Vin (Rot) 3V3
    • GND (Schwarz) GND
    • DATEN (Gelb) D4
  • Momentaner Schalter:

    • Pin1 D3
    • Pin2 GND
  • Deckelstatus (offen/geschlossen) Drähte:

    • Draht1 D2
    • Draht2 GND

Montage

Die Montage des Systems auf dem Mülleimer ist recht einfach. Befestigen Sie das Breadboard am Mülleimer, vorzugsweise nahe am Deckel. Verwenden Sie entweder Klebeband oder Kabelbinder, um es zu befestigen. Dann:

  1. Platzieren Sie den IR-Distanzsensor in der Mitte des Deckels (von der Innenseite!). Stellen Sie sicher, dass Sie es richtig sichern, sonst werden Sie auf falsche Messwerte stoßen!
  2. Platzieren Sie den Temperatur- und Feuchtigkeitssensor irgendwo in der Mülltonne. Mit Klebeband sichern.
  3. Decken Sie die Seite des Deckels und die Spitze des Mülleimers mit Alufolie ab. Achten Sie bei geschlossenem Deckel auf guten Kontakt. Dies signalisiert dem System, dass der Mülleimer geöffnet oder geschlossen ist. Kleben Sie dann jeden der Deckelstatusdrähte in eine der Aluminiumfolien und sichern Sie sie mit Klebeband.

Schritt 3: MQTT, Node-RED und IFTTT einrichten

MQTT, Node-RED und IFTTT einrichten
MQTT, Node-RED und IFTTT einrichten
MQTT, Node-RED und IFTTT einrichten
MQTT, Node-RED und IFTTT einrichten
MQTT, Node-RED und IFTTT einrichten
MQTT, Node-RED und IFTTT einrichten

Der Großteil der Projektlogik wird tatsächlich in der Cloud implementiert. Die NodeMCU sendet die Daten an den MQTT-Server, und Node-RED konsumiert sie und wendet ihre Logik darauf an (mehr zur Architektur weiter unten). Schließlich haben wir IFTTT verwendet, um Push-Benachrichtigungen (Alerts) an unser Smartphone zu senden.

Wir werden die Cloud-Dienste CloudMQTT und FRED als unsere MQTT- bzw. Node-RED-Server verwenden und wir werden IFTTT für Push-Benachrichtigungen verwenden.

  1. Melden Sie sich mit dem kostenlosen Plan bei CloudMQTT an. Notieren Sie Ihre Zugangsdaten zum MQTT-Server (Benutzername und Passwort).
  2. Melden Sie sich bei IFTTT an. Erstellen Sie ein neues Applet von "Webhooks IFTTT App Notification". Verwenden Sie "Mobiltelefonbenachrichtigung" als WebHookds-Ereignisnamen. Konsultieren Sie das Bild oben für die wichtigsten Details. Notieren Sie sich Ihren Maker-API-Schlüssel.
  3. Laden Sie die IFTTT-App auf Ihr Telefon herunter und melden Sie sich mit Ihren Zugangsdaten an. Auf diese Weise können Sie Push-Benachrichtigungen erhalten.
  4. Melden Sie sich mit dem kostenlosen Plan bei FRED an.
  5. Sobald Sie die FRED-Instanz in Betrieb genommen haben, importieren Sie die angehängten Flows in sie (Schaltfläche 3 Balken aus Zwischenablage importieren). Fügen Sie einfach den Inhalt jeder Datei (widgest.json, alerts.json, statistics.json) ein und importieren Sie sie.
  6. Bearbeiten Sie einen der MQTT-Knoten (einer reicht aus), um Ihre CloudMQTT-Anmeldeinformationen zu aktualisieren.
  7. Bearbeiten Sie den IFTTT-Knoten, um Ihren IFTTT-Maker-API-Schlüssel zu aktualisieren.

Schritt 4: Programmieren Sie die NodeMCU und die Kapazitätskalibrierung des Mülleimers

Sobald wir alles verkabelt haben, müssen wir die NodeMCU mit der entsprechenden Software (Skizze) so programmieren, dass sie tatsächlich alle damit verbundenen Daten nutzt und mit dem Internet kommuniziert.

  1. Laden Sie die Arduino-IDE von hier herunter und installieren Sie sie.
  2. Installieren und stellen Sie den NodeMCU-Kartentyp ein, wie am Anfang der folgenden Anleitung beschrieben.
  3. Installieren Sie die folgenden Bibliotheken (Skizze Include Library Manage Libraries…):

    1. Adafruit MQTT-Bibliothek (von Adafruit)
    2. DHT-Sensorbibliothek (von Adafruit)
    3. SharpIR (von Giuseppe Masino)
    4. EEPROMAnything - Erklärung hier.
  4. Öffnen Sie die Datei GarbageCanOnline.ino und aktualisieren Sie Folgendes:

    1. Ihre WLAN-Zugangsdaten (WLAN_SSID, WLAN_PASS)
    2. Ihre CloudMQTT-Anmeldeinformationen (MQTT_USERNAME, MQTT_PASSWORD)
    3. Wenn dies ein zweiter oder mehr Mülleimer ist, ändern Sie die Mülltonnen-ID (GARBAGECAN_ID)
  5. Laden Sie die aktualisierte Skizze auf Ihre NodeMCU hoch.
  6. Öffnen Sie das serielle Monitorfenster (Strg+M) und stellen Sie sicher, dass es die Sensordaten in CloudMQTT veröffentlicht.
  7. Wenn nun der Deckel geschlossen und der Mülleimer leer ist, drücken Sie lange auf die Kalibrierungstaste, um die Kapazität des Mülleimers zu kalibrieren.
  8. Der Mülleimer ist fertig. Sie können es von Ihrem Computer trennen und mit dem USB-Netzteil an seinem vorgesehenen Ort anschließen.

Schritt 5: Verwenden des Systems

Verwenden des Systems
Verwenden des Systems
Verwenden des Systems
Verwenden des Systems
Verwenden des Systems
Verwenden des Systems

Wenn Sie so weit gekommen sind, sollte alles betriebsbereit sein. Lassen Sie uns einen kurzen Überblick über die verschiedenen Nutzungsaspekte des Systems geben.

Wir gehen davon aus, dass Sie nur einen einzigen Mülleimer angeschlossen haben, aber es ist einfach, später mehr zu addieren!

Beachten Sie zunächst das Haupt-Dashboard. Sie sollten sich auf dem Startbildschirm befinden und den Füllstand des Mülleimers, die Temperatur und die Luftfeuchtigkeit sehen. Sie können Telefonbenachrichtigungen und Dashboard-Warnungen mit den Schaltern auf der linken Seite steuern.

Wenn sich die Müllmenge im Mülleimer ändert, ändert sich die Anzeige entsprechend. Dies gilt auch für die Temperatur- und Feuchtigkeitskurven.

Wenn der Füllgrad 85%-90% erreicht (der genaue Schwellenwert hängt von der Temperatur und Luftfeuchtigkeit ab) oder ein Sensorfehler aufgetreten ist, erhalten Sie eine Benachrichtigung über Ihre bevorzugte(n) Methode(n). Sie werden einmal pro Stunde pro Mülltonne benachrichtigt.

In der Statistikansicht sehen Sie den aktuell vollsten Mülleimer und den heißesten. Wenig schmeichelhafter Titel, wenn wir so sagen dürfen…

Schritt 6: Den Ablauf verstehen

Den Fluss verstehen
Den Fluss verstehen
Den Fluss verstehen
Den Fluss verstehen
Den Fluss verstehen
Den Fluss verstehen
Den Fluss verstehen
Den Fluss verstehen

Wie Sie wahrscheinlich schon bemerkt haben, hat das System viele "bewegte Teile". Wir werden versuchen zu klären, wie die Dinge miteinander verbunden sind.

Zuerst haben wir unseren Mülleimer mit der NodeMCU und ihren Sensoren. Davon können wir viele haben - nur "Kopien" voneinander.

Die NodeMCU misst die verschiedenen Sensoren im Mülleimer und veröffentlicht die Daten an den MQTT-Server (MQTT-Protokoll). Sie können sich den MQTT-Server als einen großen Informationsaustausch vorstellen, an den viele Mülleimer ihre Informationen melden können.

Eine weitere Entität, die sich mit dem MQTT-Server verbindet, ist Node-RED. Node-RED hört auf die verschiedenen Nachrichten, die von den Mülltonnen kommen, die die sensorischen Daten enthalten, und wendet seine Logik darauf an. Es funktioniert, indem es "Informationsflüsse" nutzt. Jedes Mal, wenn eine Nachricht empfangen wird, tritt sie basierend auf ihrem Typ (MQTT-Thema) in bestimmte Operationsketten ein, die schließlich die verschiedenen Funktionen des Systems aktivieren (Aktualisieren des Dashboards, Senden von Warnungen usw.). Es wäre sehr korrekt zu sagen dass Node-RED das "Gehirn" des Systems ist. Es ist sich allem bewusst, was überall passiert, und kann entsprechende Maßnahmen ergreifen.

Innerhalb von Node-RED haben wir 3 Hauptinformationsflüsse aufgebaut:

  1. Widgets - Sensorische Informationen, die in Node-RED eingespeist werden, werden dann über Messgeräte und Grafiken auf dem Dashboard angezeigt.
  2. Warnungen - Sensorische Informationen werden verarbeitet, um zu entscheiden, ob eine Warnung ausgelöst werden soll (auf dem Dashboard oder in der Smartphone-App). Der Füllgrad sowie die Temperatur und Luftfeuchtigkeit werden berücksichtigt, um den Benutzer darüber zu informieren, dass der Mülleimer voll ist. Auch sensorische Fehler werden durch den gleichen Fluss gemeldet.
  3. Statistik - Sensorische Informationen werden aggregiert, um die vollsten und heißesten Mülltonnen anzuzeigen.

Damit Node-RED Push-Benachrichtigungen senden kann, verbindet es sich mit einem Dienst namens IFTTT (per HTTP-Protokoll). Es aktiviert ein bestimmtes IFTTT-Ereignis mit dem entsprechenden Benachrichtigungstext und IFTTT sendet die Benachrichtigung an unser Smartphone (HTTP- & XMPP-Protokolle).

Sehen Sie sich die Abbildungen oben an, um (a) die allgemeine Struktur des Systems und (b) die 3 verschiedenen Informationsflüsse in Node-RED besser zu verstehen

Schritt 7: Herausforderungen, Einschränkungen und Pläne für die Zukunft…

Herausforderungen

Die Hauptherausforderungen in diesem Projekt waren hauptsächlich die Handhabung der MQTT- und Node-RED-Dienste. Wir haben zuerst AdafruitIO verwendet, aber die benutzerdefinierte MQTT-Implementierung war für uns nicht so gut. Es war nicht bequem, mit seinen "Feeds" in Node-RED zu arbeiten. Daher haben wir uns letztendlich für CloudMQTT entschieden, das auf dem Mosquitto MQTT-Server basiert und viel mehr Standard ist. Dann haben wir uns mit Node-RED beschäftigt, was ziemlich herausfordernd war, hauptsächlich weil Node-RED ein Biest ist. Zum Beispiel ist es aus unserer Sicht viel umfassender und professioneller als IFTTT. Wir mussten uns anpassen und lernen, wie wir den flussbasierten Designansatz verwenden, um unsere erforderlichen Funktionen des Systems zu konstruieren. Darüber hinaus ist einer der größten Vorteile die Unterstützung von Javascript-Code, aber es dauerte eine Weile, bis wir uns daran gewöhnt hatten, da wir keine JavaScript-Programmierer sind. Trotzdem hat uns die Arbeit mit diesem speziellen Tool sehr viel Spaß gemacht und wir fanden es sehr interessant und nützlich.

Einschränkungen

In Bezug auf Einschränkungen wäre die erste die Tatsache, dass wir nur kostenlose Dienste genutzt haben und diese nicht die volle Nutzung zulassen. Der kostenlose CloudMQTT-Plan erlaubt nicht mehr als 5 parallele Verbindungen, was bedeutet, dass wir nur 4 Mülleimer und den Node-RED haben können. Der kostenlose FRED Node-RED-Plan ermöglicht nur 24 Stunden direkte Nutzung, danach müssen Sie sich manuell anmelden und den Timer zurücksetzen. Diese Probleme lassen sich jedoch leicht lösen, indem Sie diese Dienste entweder lokal ausführen oder einen kleinen Aufpreis zahlen, um die Einschränkungen aufzuheben. Die zweite Einschränkung ist die Tatsache, dass man beim Hinzufügen des vierten Mülleimers und darüber hinaus den Widgets-Flow in Node-RED manuell bearbeiten muss, um die entsprechenden Widgets hinzuzufügen.

Pläne für die Zukunft

Wir hatten einige Ideen, um unser System weiter zu verbessern und zu erweitern:

  1. Wechseln Sie zu nicht-kostenlosen Cloud-Diensten. (einer Arbeitstag).
  2. Hinzufügen eines Müllkompressors zum Mülleimer, wodurch die Häufigkeit des Entleerens reduziert wird. (4 Monate Arbeit)
  3. Arbeiten mit städtischen und industriellen Mülleimern, um die Effizienz der städtischen Lastwagen zu verbessern, die den Müll in der Stadt behandeln. Dies würde bedeuten, das Dashboard und das Benachrichtigungssystem stark zu verbessern, damit LKW-Fahrer ihre Route beim Umgang mit dem Müll viel besser planen können. (6 Monate Arbeit).
  4. Hinzufügen von Recyclingfähigkeiten zum Mülleimer, wie die Möglichkeit, spezielle biologische Lösungen in den Müll zu gießen und beim Recycling zu helfen, während er sich noch in der Mülltonne befindet. Dies kann im Haushalt zum Beispiel zur Herstellung von Gartenkompost verwendet werden, kann aber natürlich auch auf Industriedosen verwendet werden. (6 Monate Arbeit).