Inhoudsopgave:

IDC2018IOT GarbageCan-Online - Ajarnpa
IDC2018IOT GarbageCan-Online - Ajarnpa

Video: IDC2018IOT GarbageCan-Online - Ajarnpa

Video: IDC2018IOT GarbageCan-Online - Ajarnpa
Video: IDC2018 IOT SMART TRASH BIN 2024, November
Anonim
Image
Image
Vereiste onderdelen
Vereiste onderdelen

Invoering

Iedereen weet wat er gebeurt als we het afval te lang in de vuilnisbak laten staan zonder het te verwijderen. Nou, het meest voor de hand liggende is dat er geen ruimte is voor meer afval, maar het begint ook te stinken, en het wordt erg onaangenaam.

Met dit project willen we u helpen uw vuilnisbakken rond het huis\werkruimte\etc. in de gaten te houden, zodat u altijd weet wanneer ze vol zijn en onmiddellijk actie kunt ondernemen door de vuilnis buiten te zetten.

Het systeem waarschuwt u per telefoonmelding of dashboardwaarschuwing dat u de prullenbak moet legen. Het systeem houdt rekening met het volheidsniveau van de vuilnisbak, maar ook met de temperatuur en vochtigheid die erin wordt gemeten. We kennen allemaal de urgentie van het legen van de vuilnisbakken op warme en vochtige dagen…

Belangrijkste kenmerken:

  1. Controledashboard:

    • Hoofdsectie:

      • Volheidsniveau van elke vuilnisbak.
      • Temperatuur en vochtigheid van elke vuilnisbak.
    • Statistieken Sectie:

      • Volste vuilnisbak.
      • Heetste vuilnisbak.
  2. Waarschuwingen en meldingensysteem:

    • De volgende evenementen worden ondersteund:

      • Vuilnisbak is vol.
      • Er is een sensorfout opgetreden.
    • Volheidswaarschuwingen houden rekening met het volheidsniveau van de vuilnisbak, maar ook met de temperatuur en vochtigheid van de vuilnisbak.
    • Waarschuwingen kunnen worden verzonden via telefoonmeldingen en dashboardwaarschuwingen.
    • Elk waarschuwingskanaal kan via het dashboard worden in- en uitgeschakeld.
  3. schaalbaarheid:

    • Met behulp van de kalibratieknop is het mogelijk om het systeem aan te passen aan verschillende vuilnisbakken met verschillende capaciteiten.
    • Het is relatief eenvoudig mogelijk om meer vuilnisbakken toe te voegen. Men kan hetzelfde systeem op een nieuwe vuilnisbak monteren, de vuilnisbak-ID instellen en deze kalibreren (druk op de knop). Als u meer dan 3 vuilnisbakken heeft, moet het dashboard worden uitgebreid (eenvoudige taak om uit te voeren).

Wie zijn we?

Dit project is gemaakt (met liefde en toewijding!) door Rom Cyncynatus en Daniel Alima - Studenten van de IDC Herzliya als een afstudeerproject voor onze IoT-cursus. We hopen dat u ons werk nuttig vindt en dat u er veel plezier aan zult beleven!

Stap 1: Vereiste onderdelen

Om het systeem te bouwen, moet u de volgende componenten en onderdelen aanschaffen:

  1. Vuilnisbak (liefst met deksel): Deze wordt gebruikt voor… nou ja.. je weet wat we met deze gaan doen, hè?;)
  2. Breadboard: om alle verschillende componenten aan te sluiten zonder te hoeven solderen.
  3. NodeMCU (ESP-8266): Verantwoordelijk voor het lezen van de sensoren en het verzenden van de informatie naar de cloud.
  4. Afstand IR-sensor - Sharp 0A41SK: deze sensor meet de hoeveelheid afval (volheidsniveau) in het blik.
  5. Temperatuur- en vochtigheidssensor - DHT11: deze sensor meet de temperatuur en vochtigheid in de vuilnisbak.
  6. Momentschakelaar: wordt gebruikt om de afstandssensor te kalibreren op basis van de grootte van de vuilnisbak.
  7. Aluminiumfolie: wordt gebruikt om een detector te vormen voor de status van het deksel - of het nu geopend of gesloten is.
  8. Overbruggingsdraden: zorg voor voldoende, en in verschillende lengtes en kleuren. Zal alles met elkaar verbinden.
  9. Duct Tape: We zullen dingen op hun plaats moeten bevestigen.
  10. Micro-USB-kabel: om de NodeMCU op uw computer aan te sluiten voor programmering en later voor een voeding.
  11. USB-voeding (smartphone-oplader): levert stroom aan de NodeMCU wanneer deze op de vuilnisbak is geïnstalleerd.

Stap 2: Bedrading en montage

Bedrading en montage
Bedrading en montage
Bedrading en montage
Bedrading en montage
Bedrading en montage
Bedrading en montage

Bedrading

Plaats de NodeMCU op het breadboard zodat u deze later gemakkelijk aan uw vuilnisbak kunt bevestigen en sluit de USB-kabel erop aan. Raadpleeg vervolgens de afbeelding van het bedradingsschema hierboven om de verschillende componenten op de NodeMCU aan te sluiten. Zorg ervoor dat u lange draden gebruikt voor de sensoren en statusdraden, zodat het handig is om het systeem te installeren en de vuilnisbak ermee te gebruiken.

  • Afstand IR-sensor - Sharp 0A41SK:

    • Vin (Rood) Vin
    • GND (zwart) GND
    • Vout (Geel) A0
  • Temperatuur- en vochtigheidssensor - DHT11:

    • Vin (Rood) 3V3
    • GND (zwart) GND
    • GEGEVENS (Geel) D4
  • Momentschakelaar:

    • Pin1 D3
    • Pin2 GND
  • Dekselstatus (open\dicht) draden:

    • Draad1 D2
    • Draad2 GND

samenkomst

Het monteren van het systeem op de vuilnisbak is vrij eenvoudig. Bevestig de Breadboard aan de vuilnisbak, bij voorkeur dicht bij het deksel. Gebruik tape of kabelbinder om het op zijn plaats te bevestigen. Vervolgens:

  1. Plaats de IR-afstandssensor in het midden van het deksel (van binnenuit!). Zorg ervoor dat u het goed vastzet, anders krijgt u valse metingen!
  2. Plaats de temperatuur- en vochtigheidssensor ergens in de vuilnisbak. Zet vast met plakband.
  3. Bedek de zijkant van het deksel en de punt van de vuilnisbak met aluminiumfolie. Zorg voor goed contact als het deksel gesloten is. Dit zal het systeem signaleren dat de vuilnisbak wordt geopend of gesloten. Plak vervolgens elk van de statusdraden van het deksel in een van de aluminiumfolie en zet vast met tape.

Stap 3: MQTT, Node-RED en IFTTT instellen

MQTT, Node-RED en IFTTT. instellen
MQTT, Node-RED en IFTTT. instellen
MQTT, Node-RED en IFTTT. instellen
MQTT, Node-RED en IFTTT. instellen
MQTT, Node-RED en IFTTT instellen
MQTT, Node-RED en IFTTT instellen

De meeste projectlogica wordt daadwerkelijk in de cloud geïmplementeerd. De NodeMCU stuurt de gegevens naar de MQTT-server en Node-RED gebruikt deze en past de logica erop toe (meer over de architectuur verderop). Ten slotte hebben we IFTTT gebruikt om pushmeldingen (waarschuwingen) naar onze smartphone te verzenden.

We zullen de CloudMQTT- en FRED-cloudservices gebruiken als respectievelijk onze MQTT- en Node-RED-servers, en we zullen IFTTT gebruiken voor pushmeldingen.

  1. Meld u aan bij CloudMQTT met het gratis abonnement. Noteer uw inloggegevens voor de MQTT-server (gebruikersnaam en wachtwoord).
  2. Meld u aan bij IFTTT. Maak een nieuwe applet van "Webhooks IFTTT app-melding". Gebruik 'Mobiele telefoonmelding' als de naam van de WebHookds-gebeurtenis. Raadpleeg de afbeelding hierboven voor de details. Noteer uw maker API-sleutel.
  3. Download de IFTTT-app naar uw telefoon en log in met uw inloggegevens. Hiermee kunt u pushmeldingen ontvangen.
  4. Meld u aan bij FRED met het gratis abonnement.
  5. Zodra u de FRED-instantie in gebruik heeft, importeert u de bijgevoegde stromen erin (3 balken-knop Importeren vanaf klembord). Plak de inhoud van elk bestand (widgest.json, alerts.json, statistics.json) en importeer het.
  6. Bewerk een van de MQTT-knooppunten (één is genoeg) om uw CloudMQTT-inloggegevens bij te werken.
  7. Bewerk het IFTTT-knooppunt om uw IFTTT-maker API-sleutel bij te werken.

Stap 4: Programmeer de capaciteitskalibratie van NodeMCU en vuilnisbak

Zodra we alles hebben aangesloten, moeten we de NodeMCU programmeren met de juiste software (schets), zodat deze daadwerkelijk alle dingen gebruikt die erop zijn aangesloten en met internet zal communiceren.

  1. Download en installeer de Arduino IDE vanaf hier.
  2. Installeer en stel het NodeMCU-bordtype in zoals uitgelegd aan het begin van de volgende instructie.
  3. Installeer de volgende bibliotheken (Sketch Include Library Manage Libraries…):

    1. Adafruit MQTT-bibliotheek (door Adafruit)
    2. DHT-sensorbibliotheek (door Adafruit)
    3. SharpIR (door Giuseppe Masino)
    4. EEPROMAlles - uitleg hier.
  4. Open het GarbageCanOnline.ino-bestand en werk het volgende bij:

    1. Uw wifi-inloggegevens (WLAN_SSID, WLAN_PASS)
    2. Uw CloudMQTT-inloggegevens (MQTT_USERNAME, MQTT_PASSWORD)
    3. Als dit een tweede vuilnisbak of meer is, wijzigt u de vuilnisbak-ID (GARBAGECAN_ID)
  5. Upload de bijgewerkte schets naar uw NodeMCU.
  6. Open het seriële monitorvenster (Ctrl+M) en zorg ervoor dat het erin slaagt de sensorgegevens naar CloudMQTT te publiceren.
  7. Wanneer het deksel nu gesloten is en de vuilnisbak leeg is, drukt u lang op de kalibratieknop om de capaciteit van de vuilnisbak te kalibreren.
  8. De vuilnisbak is helemaal klaar. U kunt hem loskoppelen van uw computer en hem aansluiten op de daarvoor bestemde plaats met behulp van de USB-voeding.

Stap 5: Het systeem gebruiken

Het systeem gebruiken
Het systeem gebruiken
Het systeem gebruiken
Het systeem gebruiken
Het systeem gebruiken
Het systeem gebruiken

Als je zo ver bent gekomen, zou alles moeten werken. Laten we een snel overzicht geven van de verschillende gebruiksaspecten van het systeem.

We gaan ervan uit dat je maar één vuilnisbak hebt aangesloten, maar het is gemakkelijk om er later meer bij te tellen!

Let eerst op het hoofddashboard. Je zou in het startscherm moeten zijn en de volheid, temperatuur en vochtigheid van de vuilnisbak zien. U kunt telefoonmeldingen en Dashboard-waarschuwingen bedienen met de schakelaars aan de linkerkant.

Wanneer de hoeveelheid afval in de vuilnisbak verandert, ziet u dat de meter dienovereenkomstig verandert. Dit is ook het geval voor de grafieken van temperatuur en vochtigheid.

Wanneer het volheidsniveau 85%-90% bereikt (exacte drempel hangt af van de temperatuur en vochtigheid), of als er een sensorfout is opgetreden, ontvangt u een melding via uw voorkeursmethode(n). U krijgt één keer per uur een melding per prullenbak.

In de weergave Statistieken kunt u de momenteel volste vuilnisbak en de heetste zien. Onflatteuze titel, als we mogen zeggen…

Stap 6: De stroom begrijpen

De stroom begrijpen
De stroom begrijpen
De stroom begrijpen
De stroom begrijpen
De stroom begrijpen
De stroom begrijpen
De stroom begrijpen
De stroom begrijpen

Zoals je waarschijnlijk al gemerkt hebt, heeft het systeem veel "bewegende delen". We zullen proberen duidelijk te maken hoe de zaken met elkaar verbonden zijn.

Ten eerste hebben we onze vuilnisbak met de NodeMCU en zijn sensoren. We kunnen er genoeg hebben - alleen "kopieën" van elkaar.

De NodeMCU meet de verschillende sensoren die in de vuilnisbak zijn geplaatst en publiceert de gegevens naar de MQTT-server (MQTT-protocol). Je kunt de MQTT-server zien als een grote informatie-uitwisseling, waar veel vuilnisbakken hun informatie aan kunnen melden.

Een andere entiteit die verbinding maakt met de MQTT-server is Node-RED. Node-RED luistert naar de verschillende berichten die uit de vuilnisbak(ken) komen die de sensorische gegevens bevatten, en past de logica daarop toe. Het werkt door gebruik te maken van "stromen" van informatie. Elke keer dat een bericht wordt ontvangen, op basis van het type (MQTT-onderwerp), komt het in specifieke ketens van bewerkingen die uiteindelijk de verschillende functies van het systeem activeren (het dashboard bijwerken, waarschuwingen verzenden, enz.) Het zou heel correct zijn om te zeggen dat Node-RED het "brein" van het systeem is. Het is op de hoogte van alles wat er overal gebeurt en kan daarop actie ondernemen.

Binnen Node-RED hebben we 3 hoofdstromen van informatie geconstrueerd:

  1. Widgets - Sensorische informatie die in Node-RED wordt ingevoerd, wordt vervolgens via meters en grafieken op het dashboard weergegeven.
  2. Waarschuwingen - Sensorische informatie wordt verwerkt om te concluderen of een waarschuwing moet worden geactiveerd (op het dashboard of naar de smartphone-app). Er wordt rekening gehouden met het volheidsniveau, met de temperatuur en vochtigheid om de gebruiker te informeren dat de vuilnisbak vol is. Ook worden sensorische fouten gemeld door dezelfde stroom.
  3. Statistieken - Zintuiglijke informatie wordt geaggregeerd om de volste en heetste vuilnisbakken weer te geven.

Om ervoor te zorgen dat Node-RED pushmeldingen kan verzenden, maakt het verbinding met een service genaamd IFTTT (via HTTP-protocol). Het activeert een bepaalde IFTTT-gebeurtenis met de relevante meldingstekst en IFTTT stuurt de melding naar onze smartphone (HTTP- en XMPP-protocollen).

Raadpleeg de bovenstaande afbeeldingen om (a) de algemene structuur van het systeem en (b) de 3 verschillende informatiestromen binnen Node-RED beter te begrijpen

Stap 7: Uitdagingen, beperkingen en plannen voor de toekomst…

Uitdagingen

De belangrijkste uitdagingen in dit project waren vooral het omgaan met de MQTT- en Node-RED-services. We gebruikten eerst AdafruitIO, maar de aangepaste MQTT-implementatie was niet helemaal goed voor ons. Het was niet handig om met zijn "feeds" in Node-RED te werken. Daarom hebben we uiteindelijk gekozen voor CloudMQTT, dat gebaseerd is op de Mosquitto MQTT-server, en veel standaarder is. Daarna gingen we verder met Node-RED, wat best een uitdaging was, vooral omdat Node-RED een beest is. Het is bijvoorbeeld veel uitgebreider en professioneler dan IFTTT in onze optiek. We moesten ons aanpassen en leren hoe we de op stroom gebaseerde ontwerpbenadering moesten gebruiken om onze vereiste functies van het systeem te bouwen. Bovendien is een van de grootste voordelen de ondersteuning van javascript-code, maar het was even wennen omdat we geen javascript-programmeurs zijn. Ondanks dat alles hebben we echt genoten van het werken met deze specifieke tool, en we vonden het erg interessant en nuttig.

Beperkingen

Met betrekking tot beperkingen, zou de eerste het feit zijn dat we alleen gratis diensten hebben gebruikt, en ze zullen niet toelaten om op volledige schaal te gaan. Het gratis CloudMQTT-abonnement staat niet toe dat er meer dan 5 parallelle verbindingen zijn, wat betekent dat we slechts 4 vuilnisbakken en de Node-RED kunnen hebben. FRED Node-RED gratis abonnement staat slechts 24 uur rechtstreeks gebruik toe, waarna u handmatig moet inloggen en de timer opnieuw moet instellen. Deze problemen zijn echter eenvoudig op te lossen door deze services lokaal uit te voeren of een beetje extra te betalen om de beperkingen op te heffen. De tweede beperking is het feit dat wanneer iemand de vierde vuilnisbak en verder toevoegt, hij de widgets-stroom in Node-RED handmatig moet bewerken om de juiste widgets toe te voegen.

Plannen voor de toekomst

We hadden enkele ideeën om ons systeem verder te verbeteren en uit te breiden:

  1. Stap over op niet-gratis clouddiensten. (enkele werkdag).
  2. Het toevoegen van een afvalcompressor aan de vuilnisbak, waardoor de frequentie van het legen ervan wordt verminderd. (4 maanden werk)
  3. Werken met stedelijke en industriële vuilnisbakken om de efficiëntie te verbeteren van de stadsvrachtwagens die het afval in de stad verwerken. Dit zou betekenen dat het dashboard en het meldingssysteem sterk moeten worden verbeterd, zodat vrachtwagenchauffeurs hun route veel beter kunnen plannen bij het omgaan met het afval. (6 maanden werk).
  4. Het toevoegen van recyclingmogelijkheden aan de vuilnisbak, zoals het vermogen om speciale biologische oplossingen in het afval te gieten en het te helpen recyclen terwijl het nog in de vuilnisbak zit. Dit kan in huis worden gebruikt om bijvoorbeeld compost voor tuinen te produceren, maar kan natuurlijk ook op industriële blikken worden gebruikt. (6 maanden werk).

Aanbevolen: