Innehållsförteckning:

IDC2018IOT GarbageCan-Online: 7 steg
IDC2018IOT GarbageCan-Online: 7 steg

Video: IDC2018IOT GarbageCan-Online: 7 steg

Video: IDC2018IOT GarbageCan-Online: 7 steg
Video: НОВИЧОК ПЕРЕХОДИТ НА НОВЫЙ УРОВЕНЬ! ПОСЛЕДНИЙ ШАГ НОВИЧКА – Last Day on Earth: Survival 2024, November
Anonim
Image
Image
Obligatoriska delar
Obligatoriska delar

Introduktion

Alla vet vad som händer när vi lämnar papperskorgen i soptunnan för länge utan att ta bort den. Det mest uppenbara är att det inte finns utrymme för mer skräp, men det börjar också stinka och det blir väldigt obehagligt.

Med detta projekt syftar vi till att hjälpa dig att övervaka dina soptunnor runt huset / arbetsyta / etc, så att du alltid kan veta när de är fulla och kan vidta omedelbara åtgärder genom att ta ut soporna.

Systemet meddelar dig via telefon eller instrumentpanel om att du måste tömma soptunnan. Systemet tar hänsyn till sopkärlens fyllnadsnivå, men också temperaturen och luftfuktigheten som mäts inuti den. Vi är alla bekanta med hur brådskande det är att tömma soptunnorna under varma och fuktiga dagar …

Viktigaste egenskaper

  1. Övervakning Dashboard:

    • Huvudsektion:

      • Fullhetsnivå för varje soptunna.
      • Temperatur och luftfuktighet för varje soptunna.
    • Statistikavsnittet:

      • Fullaste soptunnan.
      • Hetaste soptunnan.
  2. System för varningar och meddelanden:

    • Följande händelser stöds:

      • Soptunnan är full.
      • Ett sensorfel inträffade.
    • Fullhetsvarningar tar hänsyn till sopkärlens fyllnadsnivå, men också sopkärlens temperatur och fuktighet.
    • Varningar kan skickas via telefonaviseringar och instrumentpanelvarningar.
    • Varje varningskanal kan slås på och av via instrumentpanelen.
  3. Skalbarhet:

    • Med hjälp av kalibreringsknappen är det möjligt att anpassa systemet till olika sopkärl med olika kapacitet.
    • Det är möjligt att lägga till fler soptunnor relativt enkelt. Man kan montera samma system på en ny soptunna, ställa sopkärlens ID och kalibrera det (tryck på en knapp). Att ha mer än 3 soptunnor kräver att instrumentpanelen förlängs (enkel uppgift att utföra).

Vilka är vi?

Detta projekt skapades (med kärlek och engagemang!) Av Rom Cyncynatus och Daniel Alima - Studenter vid IDC Herzliya som ett slutprojekt för vår IoT -kurs. Vi hoppas att du kommer att tycka att vårt arbete är användbart och njuta av att använda det!

Steg 1: Obligatoriska delar

För att bygga systemet får du följande komponenter och delar:

  1. Soptunna (helst med lock): Detta kommer att användas till … ja.. du vet vad vi ska göra med den här, va?;)
  2. Brödbräda: För att ansluta alla de olika komponenterna utan att behöva lödas.
  3. NodeMCU (ESP-8266): Ansvarig för att läsa av sensorerna och skicka informationen till molnet.
  4. Avstånd IR -sensor - Sharp 0A41SK: Denna sensor mäter mängden skräp (Fullness -nivå) inuti burken.
  5. Temperatur- och fuktighetssensor - DHT11: Denna sensor mäter temperatur och luftfuktighet inuti soptunnan.
  6. Momentary Switch: Kommer att användas för att kalibrera avståndssensorn enligt sopkärlets storlek.
  7. Aluminiumfolie: Används för att bilda en detektor för lockets status - oavsett om den är öppen eller stängd.
  8. Bygeltrådar: Få massor, och i olika längder och färger. Kommer att koppla ihop allt.
  9. Kanaltape: Vi måste fästa saker på plats.
  10. Micro-USB-kabel: För att ansluta NodeMCU till din dator för programmering, och senare för en strömförsörjning.
  11. USB -strömförsörjning (smarttelefonladdare): Ger ström till NodeMCU när den installeras på soptunnan.

Steg 2: Kabeldragning och montering

Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering

Kabeldragning

Placera NodeMCU på brödbrädan så att det blir bekvämt att fästa den senare i din soptunna och anslut USB -kabeln till den. Se sedan bilden över kopplingsschemat ovan för att ansluta de olika komponenterna till NodeMCU. Se till att använda långa ledningar för sensorerna och statuskablarna så att det blir bekvämt att installera systemet och använda soptunnan med det.

  • Avstånd IR -sensor - Sharp 0A41SK:

    • Vin (röd) Vin
    • GND (svart) GND
    • Vout (gul) A0
  • Temperatur- och luftfuktighetssensor - DHT11:

    • Vin (röd) 3V3
    • GND (svart) GND
    • DATA (gul) D4
  • Momentary Switch:

    • Stift 1 D3
    • Pin2 GND
  • Lockstatus (öppna / stäng) ledningar:

    • Wire1 D2
    • Wire2 GND

hopsättning

Att montera systemet på soptunnan är ganska enkelt. Fäst brödbrädan på soptunnan, helst nära locket. Använd antingen tejp eller kabelband för att fästa den på plats. Sedan:

  1. Placera IR -avståndssensorn i mitten av locket (från insidan!). Se till att säkra den ordentligt, annars kommer du att få falska avläsningar!
  2. Placera temperatur- och fuktighetssensorn någonstans inuti soptunnan. Säkra med tejp.
  3. Täck lockets sida och soptunnans spets med aluminiumfolie. Se till att det finns god kontakt när locket är stängt. Detta kommer att signalera systemet att soptunnan öppnas eller stängs. Stick sedan var och en av lockets statuskablar i en av aluminiumfolien och fäst med tejp.

Steg 3: Konfigurera MQTT, Node-RED och IFTTT

Ställ in MQTT, Node-RED och IFTTT
Ställ in MQTT, Node-RED och IFTTT
Ställ in MQTT, Node-RED och IFTTT
Ställ in MQTT, Node-RED och IFTTT
Ställ in MQTT, Node-RED och IFTTT
Ställ in MQTT, Node-RED och IFTTT

Det mesta av projektlogiken är faktiskt implementerat i molnet. NodeMCU skickar data till MQTT-servern, och Node-RED förbrukar den och tillämpar sin logik på den (mer om arkitekturen längre fram). Slutligen, för att överföra push -meddelanden (varningar) till vår smartphone, använde vi IFTTT.

Vi kommer att använda CloudMQTT- och FRED-molntjänsterna som våra MQTT- och Node-RED-servrar respektive, och vi kommer att använda IFTTT för push-meddelanden.

  1. Registrera dig för CloudMQTT med den kostnadsfria planen. Notera dina referenser till MQTT -servern (användarnamn och lösenord).
  2. Registrera dig till IFTTT. Skapa en ny applet med "Webhooks IFTTT app notification". Använd "Mobiltelefonavisering" som WebHookds -händelsens namn. Se bilden ovan för detaljerade detaljer. Notera din maker API -nyckel.
  3. Ladda ner IFTTT -appen till din telefon och logga in med dina uppgifter. Detta gör att du kan få push -aviseringar.
  4. Registrera dig för FRED med gratisplanen.
  5. När du har FRED -instansen igång importerar du de bifogade flödena till den (3 staplar -knappen Importera från urklipp). Klistra bara in innehållet i varje fil (widgest.json, alerts.json, statistics.json) och importera den.
  6. Redigera en av MQTT -noder (en räcker) för att uppdatera dina CloudMQTT -uppgifter.
  7. Redigera IFTTT -noden för att uppdatera din IFTTT maker API -nyckel.

Steg 4: Programmera NodeMCU och sopkammarkalibrering

När vi har gjort allt klart måste vi programmera NodeMCU med lämplig programvara (skiss) så att den faktiskt kommer att använda alla saker som är anslutna till den och kommunicera med internet.

  1. Ladda ner och installera Arduino IDE härifrån.
  2. Installera och ställ in typen av NodeMCU -kort enligt beskrivningen i början av följande instruktioner.
  3. Installera följande bibliotek (Sketch Include Library Manage Libraries …):

    1. Adafruit MQTT Library (av Adafruit)
    2. DHT -sensorbibliotek (av Adafruit)
    3. SharpIR (av Giuseppe Masino)
    4. EEPROMAnything - förklaring här.
  4. Öppna GarbageCanOnline.ino -filen och uppdatera följande:

    1. Dina WiFi -uppgifter (WLAN_SSID, WLAN_PASS)
    2. Dina CloudMQTT -uppgifter (MQTT_USERNAME, MQTT_PASSWORD)
    3. Om detta är en andra soptunna eller mer, byt sopburkens ID (GARBAGECAN_ID)
  5. Ladda upp den uppdaterade skissen till din NodeMCU.
  6. Öppna fönstret för seriell bildskärm (Ctrl+M) och se till att det lyckas publicera sensordata till CloudMQTT.
  7. Nu, när locket är stängt och soptunnan är tom, tryck länge på kalibreringsknappen för att kalibrera soptunnans kapacitet.
  8. Soptunnan är klar. Du kan koppla bort den från din dator och ansluta den till den angivna platsen med hjälp av USB -strömförsörjningen.

Steg 5: Använda systemet

Använda systemet
Använda systemet
Använda systemet
Använda systemet
Använda systemet
Använda systemet

Om du har nått så långt ska allt vara igång. Låt oss göra en snabb översikt över systemets olika användningsaspekter.

Vi antar att du bara har en enda soptunna ansluten, men det är lätt att lägga till mer senare!

Lägg först märke till huvudpanelen. Du bör vara på startskärmen och se sopkärlens fylde, temperatur och fuktighetsnivåer. Du kan styra telefonaviseringar och instrumentpanelvarningar med hjälp av omkopplarna till vänster.

När sopmängden inuti soptunnan ändras ser du mätaren ändras i enlighet därmed. Detta är också fallet för temperatur- och luftfuktighetsgraferna.

När fullhetsnivån når 85% -90% (exakt tröskel beror på temperaturen och luftfuktigheten), eller om ett sensorfel inträffade, får du ett meddelande via din eller dina föredragna metoder. Du får en avisering varje timme per soptunna.

I statistikvyn kommer du att kunna se den för närvarande fullaste sopkärlen och den hetaste. Smickrande titel, om vi får säga …

Steg 6: Förstå flödet

Förstå flödet
Förstå flödet
Förstå flödet
Förstå flödet
Förstå flödet
Förstå flödet
Förstå flödet
Förstå flödet

Som du säkert har märkt vid det här laget har systemet många "rörliga delar". Vi kommer att försöka klargöra hur saker och ting är kopplade till varandra.

Först har vi vår soptunna med NodeMCU och dess sensorer. Vi kan ha gott om dessa - bara "kopior" av varandra.

NodeMCU mäter de olika sensorerna i soptunnan och publicerar data till MQTT -servern (MQTT -protokoll). Du kan tänka på MQTT -servern som ett stort informationsutbyte som många soptunnor kan rapportera sin information till.

En annan enhet som ansluter till MQTT-servern är Node-RED. Node-RED lyssnar på de olika meddelandena som kommer från soptunnorna (s) som bär sensoriska data, och tillämpar sin logik på den. Det fungerar genom att använda "flöden" av information. Varje gång ett meddelande tas emot, baserat på dess typ (MQTT -ämne), går det in i specifika operationskedjor som slutar aktivera de olika funktionerna i systemet (uppdatera instrumentpanelen, skicka varningar etc.) Det skulle vara mycket korrekt att säga att Node-RED är "hjärnan" i systemet. Den är medveten om allt som händer överallt och kan vidta åtgärder därefter.

Inuti Node-RED har vi konstruerat tre huvudsakliga informationsflöden:

  1. Widgets - Sensorisk information som matas in i Node -RED visas sedan på instrumentbrädan via mätare och grafer.
  2. Varningar - Sensorisk information bearbetas för att avgöra om en varning ska utlösas (på instrumentpanelen eller till smartphone -appen). Fullhetsnivån, med temperatur och luftfuktighet beaktas för att besluta att informera användaren om att soptunnan är full. Även sensoriska fel rapporteras av samma flöde.
  3. Statistik - Sensorisk information aggregeras för att visa de fullaste och hetaste soptunnorna.

För att Node-RED ska kunna skicka push-meddelande ansluter den till en tjänst som kallas IFTTT (med HTTP-protokoll). Den aktiverar en viss IFTTT -händelse med relevant aviseringstext, och IFTTT skickar meddelandet till vår smartphone (HTTP- och XMPP -protokoll).

Se bilderna ovan för att bättre förstå (a) systemets allmänna struktur och (b) de tre olika informationsflödena i Node-RED

Steg 7: Utmaningar, begränsningar och planer för framtiden …

Utmaningar

De främsta utmaningarna i detta projekt var mestadels hanteringen av tjänsterna MQTT och Node-RED. Vi använde först AdafruitIO, men dess anpassade MQTT -implementering var inte riktigt bra för oss. Det var inte bekvämt att arbeta med sina "flöden" inuti Node-RED. Därför valde vi så småningom CloudMQTT, som är baserat på Mosquitto MQTT -servern, och är mycket mer standard. Sedan gick vi vidare för att hantera Node-RED, vilket var ganska utmanande, mest för att Node-RED är ett odjur. Till exempel är det mycket mer omfattande och professionellt än IFTTT i vår synvinkel. Vi var tvungna att justera och lära oss hur vi använder det flödesbaserade designmetoden för att konstruera våra nödvändiga funktioner i systemet. En av dess största fördelar är dessutom stödet för javascript -kod, men det tog ett tag att vänja sig eftersom vi inte är javascript -programmerare. Trots allt detta tyckte vi verkligen om att arbeta med det här verktyget, och vi tyckte att det var väldigt intressant och användbart.

Begränsningar

När det gäller begränsningar skulle den första vara det faktum att vi endast använde gratistjänster, och de tillåter inte att gå i full skala. CloudMQTT gratis plan tillåter inte att ha mer än 5 parallella anslutningar, vilket innebär att vi bara kan ha fyra soptunnor och Node-RED. FRED Node-RED gratis plan tillåter bara 24 timmars rak användning, varefter du måste logga in manuellt och återställa timern. Men dessa problem är lätt att lösa genom att antingen köra dessa tjänster lokalt eller betala lite extra för att lyfta begränsningarna. Den andra begränsningen är det faktum att när man lägger till den fjärde soptunnan och framåt måste han manuellt redigera widgetflödet i Node-RED för att lägga till lämpliga widgets.

Planer för framtiden

Vi hade några idéer för att ytterligare förbättra vårt system och utöka det:

  1. Gå vidare till icke-fria molntjänster. (enda arbetsdag).
  2. Lägga till en sopkompressor i soptunnan, vilket minskar tömningsfrekvensen. (4 månaders arbete)
  3. Arbetar med urbana och industriella soptunnor för att förbättra effektiviteten hos stadsbilarna som hanterar soporna i staden. Detta skulle innebära att instrumentpanelen och aviseringssystemet förbättras kraftigt så att lastbilschaufförer kan planera sin rutt mycket bättre när de hanterar papperskorgen. (6 månaders arbete).
  4. Att lägga till återvinningsförmåga till soptunnan, som förmågan att hälla speciella biologiska lösningar i soporna och hjälpa till att återvinna det medan det fortfarande är inne i soptunnan. Detta kan användas inhemskt till exempel för att producera kompost för trädgårdar, men kan helt klart användas även på industriella burkar. (6 månaders arbete).

Rekommenderad: