Innholdsfortegnelse:

IDC2018IOT GarbageCan-Online: 7 trinn
IDC2018IOT GarbageCan-Online: 7 trinn

Video: IDC2018IOT GarbageCan-Online: 7 trinn

Video: IDC2018IOT GarbageCan-Online: 7 trinn
Video: Truck Campers for Adventurous Travelers: Top 10 Picks 2024, November
Anonim
Image
Image
Nødvendige deler
Nødvendige deler

Introduksjon

Alle vet hva som skjer når vi lar søpla stå i søppeldunken for lenge uten å fjerne den. Det mest åpenbare er at det ikke er plass til mer søppel, men det begynner også å stinke, og det blir veldig ubehagelig.

Med dette prosjektet tar vi sikte på å hjelpe deg med å overvåke søppelbøttene dine rundt huset / arbeidsområdet / etc, slik at du alltid kan vite når de er fulle, og kan iverksette umiddelbare tiltak ved å ta søppelet ut.

Systemet vil varsle deg via telefonvarsel eller dashbordvarsel om at du må tømme søppeldunken. Systemet tar hensyn til fyllnivået i søppeldunken, men også temperaturen og fuktigheten målt inne i den. Vi er alle kjent med at det er viktig å tømme søppeldunkene på varme og fuktige dager …

Hovedtrekkene

  1. Overvåkingspanel:

    • Hoveddel:

      • Fyllnivå for hver søppeldunk.
      • Temperatur og fuktighet i hver søppeldunk.
    • Statistikk seksjon:

      • Fulleste søppeldunk.
      • Heteste søppeldunk.
  2. Varsler og varslingssystem:

    • Følgende hendelser støttes:

      • Søppelkassen er full.
      • Det oppstod en sensorfeil.
    • Fullhetsvarsler tar hensyn til fyllnivået til søppeldunken, men også søppelbeholderens temperatur og fuktighet.
    • Varsler kan sendes via telefonvarsler og dashbordvarsler.
    • Hver varslingskanal kan slås av og på via dashbordet.
  3. Skalerbarhet:

    • Ved hjelp av kalibreringsknappen er det mulig å justere systemet til forskjellige søppeldunker med varierende kapasitet.
    • Det er mulig å legge til flere søppelbøtter relativt enkelt. Man kan montere det samme systemet på en ny søppeldunk, sette søppelkassens ID og kalibrere den (trykk på en knapp). Å ha mer enn 3 søppelbøtter krever forlengelse av instrumentbordet (enkel oppgave å utføre).

Hvem er vi?

Dette prosjektet ble opprettet (med kjærlighet og engasjement!) Av Rom Cyncynatus og Daniel Alima - Studenter ved IDC Herzliya som et avsluttende prosjekt for vårt IoT -kurs. Vi håper du vil finne arbeidet vårt nyttig, og nyt det!

Trinn 1: Nødvendige deler

For å bygge systemet må du kjøpe følgende komponenter og deler:

  1. Søppelbøtte (helst med lokk): Dette vil bli brukt til … vel.. du vet hva vi skal gjøre med denne, eh?;)
  2. Brødbrett: For å koble til alle de forskjellige komponentene uten bruk av lodding.
  3. NodeMCU (ESP-8266): Ansvarlig for å lese sensorene og sende informasjonen til skyen.
  4. Distance IR Sensor - Sharp 0A41SK: Denne sensoren måler mengden søppel (Fullness -nivå) inne i boksen.
  5. Temperatur- og fuktighetssensor - DHT11: Denne sensoren måler temperatur og fuktighet inne i søppeldunken.
  6. Momentary Switch: Vil brukes til å kalibrere avstandssensoren i henhold til størrelsen på søppeldunken.
  7. Aluminiumsfolie: Vil brukes til å danne en detektor for lokkets status - enten den er åpnet eller lukket.
  8. Jumperwires: Få mye, og i forskjellige lengder og farger. Vil koble alt sammen.
  9. Duct Tape: Vi må feste ting på plass.
  10. Mikro-USB-kabel: For å koble NodeMCU til datamaskinen din for programmering, og senere for en strømforsyning.
  11. USB -strømforsyning (smarttelefonlader): Vil levere strøm til NodeMCU når den er installert på søppeldunken.

Trinn 2: Kabling og montering

Kabling og montering
Kabling og montering
Kabling og montering
Kabling og montering
Kabling og montering
Kabling og montering

Kabling

Plasser NodeMCU på brødbrettet slik at det vil være praktisk å feste det senere til søppeldunken din, og koble USB -kabelen til den. Se deretter koblingsskjemaet ovenfor for å koble de forskjellige komponentene til NodeMCU. Sørg for å bruke lange ledninger til sensorene og statustrådene, slik at det vil være praktisk å installere systemet og bruke søppeldunken med det.

  • Avstand IR -sensor - Sharp 0A41SK:

    • Vin (rød) Vin
    • GND (svart) GND
    • Vout (gul) A0
  • Temperatur- og fuktighetssensor - DHT11:

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

    • Pin1 D3
    • Pin2 GND
  • Lokkestatus (åpne / lukk) ledninger:

    • Wire1 D2
    • Wire2 GND

montering

Å montere systemet på søppeldunken er ganske enkelt. Fest brødbrettet til søppeldunken, gjerne nær lokket. Bruk tape eller kabelbinder for å feste den på plass. Deretter:

  1. Plasser IR -avstandssensoren midt på lokket (fra innsiden!). Sørg for å sikre den ordentlig, ellers støter du på falske avlesninger!
  2. Plasser temperatur- og fuktighetssensoren et sted inne i søppeldunken. Fest med tape.
  3. Dekk til siden av lokket og spissen av søppeldunken med aluminiumsfolie. Sørg for god kontakt når lokket er lukket. Dette vil signalisere systemet om at søppeldunken åpnes eller lukkes. Fest deretter hver av lokkets statusledninger i en av aluminiumsfolien, og fest med tape.

Trinn 3: Sett opp MQTT, Node-RED og IFTTT

Sett opp MQTT, Node-RED og IFTTT
Sett opp MQTT, Node-RED og IFTTT
Sett opp MQTT, Node-RED og IFTTT
Sett opp MQTT, Node-RED og IFTTT
Sett opp MQTT, Node-RED og IFTTT
Sett opp MQTT, Node-RED og IFTTT

Det meste av prosjektlogikken er faktisk implementert i skyen. NodeMCU sender dataene til MQTT-serveren, og Node-RED bruker den og bruker sin logikk på den (mer om arkitekturen lenger fremme). Til slutt, for å overføre push -varsler (varsler) til smarttelefonen vår, brukte vi IFTTT.

Vi vil bruke CloudMQTT og FRED skytjenester som henholdsvis våre MQTT og Node-RED servere, og vi vil bruke IFTTT for push-varsler.

  1. Registrer deg på CloudMQTT med gratisplanen. Legg merke til legitimasjonen din til MQTT -serveren (brukernavn og passord).
  2. Registrer deg på IFTTT. Lag en ny applet med "Webhooks IFTTT app -varsling". Bruk "Mobiltelefonvarsel" som WebHookds -hendelsesnavn. Se bildet ovenfor for detaljerte detaljer. Legg merke til maker -API -nøkkelen din.
  3. Last ned IFTTT -appen til telefonen og logg på med legitimasjon. Dette lar deg få push -varsler.
  4. Registrer deg på FRED med gratisplanen.
  5. Når du har FRED -forekomsten i gang, importerer du de vedlagte strømningene til den (3 stolper -knappen Importer fra utklippstavlen). Bare lim inn innholdet i hver fil (widgest.json, alerts.json, statistics.json) og importer den.
  6. Rediger en av MQTT -nodene (en er nok) for å oppdatere CloudMQTT -legitimasjonen din.
  7. Rediger IFTTT -noden for å oppdatere IFTTT maker API -nøkkelen.

Trinn 4: Programmer kalibrering av NodeMCU og Garbage Can Capacity

Når vi har alt koblet til, må vi programmere NodeMCU med riktig programvare (skisse) slik at den faktisk kan bruke alle tingene som er koblet til den, og kommunisere med internett.

  1. Last ned og installer Arduino IDE herfra.
  2. Installer og angi NodeMCU -korttypen som forklart i begynnelsen av følgende instrukser.
  3. Installer følgende biblioteker (Sketch Include Library Manage Libraries …):

    1. Adafruit MQTT Library (av Adafruit)
    2. DHT -sensorbibliotek (av Adafruit)
    3. SharpIR (av Giuseppe Masino)
    4. EEPROMAnything - forklaring her.
  4. Åpne GarbageCanOnline.ino -filen, og oppdater følgende:

    1. WiFi -legitimasjonen din (WLAN_SSID, WLAN_PASS)
    2. Din CloudMQTT -legitimasjon (MQTT_USERNAME, MQTT_PASSWORD)
    3. Hvis dette er en annen søppeldunk eller mer, må du bytte søppelkassens ID (GARBAGECAN_ID)
  5. Last opp den oppdaterte skissen til NodeMCU.
  6. Åpne det serielle skjermvinduet (Ctrl+M) og kontroller at det klarer å publisere sensordataene til CloudMQTT.
  7. Når lokket er lukket og søppeldunken er tom, trykker du lenge på kalibreringsknappen for å kalibrere søppelkassen.
  8. Søppelkassen er klar. Du kan koble den fra datamaskinen og koble den til det angitte stedet ved hjelp av USB -strømforsyningen.

Trinn 5: Bruke systemet

Bruke systemet
Bruke systemet
Bruke systemet
Bruke systemet
Bruke systemet
Bruke systemet

Hvis du har nådd så langt, bør alt være i gang. La oss gjøre en rask oversikt over de forskjellige bruksaspektene ved systemet.

Vi antar at du bare har en søppeldunk tilkoblet, men det er lett å legge til mer senere!

Legg først merke til hovedpanelet. Du bør være på startskjermen og se søppeldunkens fylde, temperatur og fuktighetsnivå. Du kan kontrollere telefonvarsler og kontrollpanelvarsler ved hjelp av bryterne til venstre.

Når søppelmengden inne i søppeldunken endres, vil du se måleren endres tilsvarende. Dette er også tilfelle for temperatur- og fuktighetsgrafer.

Når fyldegraden når 85% -90% (eksakt terskel avhenger av temperatur og fuktighet), eller det oppstår en sensorfeil, får du et varsel via foretrukne metode (r). Du vil bli varslet en gang i timen per søppelbøtte.

I statistikkvisningen vil du kunne se den mest fulle søppeldunken og den hotteste. Uflatterende tittel, hvis vi kan si …

Trinn 6: Forstå flyt

Forstå flyt
Forstå flyt
Forstå flyt
Forstå flyt
Forstå flyt
Forstå flyt
Forstå flyt
Forstå flyt

Som du sikkert har lagt merke til nå, har systemet mange "bevegelige deler". Vi vil prøve å avklare hvordan ting henger sammen.

For det første har vi søppeldunken vår med NodeMCU og dens sensorer. Vi kan ha mange av disse - bare "kopier" av hverandre.

NodeMCU måler de forskjellige sensorene som er plassert i søppeldunken, og publiserer dataene til MQTT -serveren (MQTT -protokollen). Du kan tenke på MQTT -serveren som en stor informasjonsutveksling, som mange søppelbøtter kan rapportere sin informasjon til.

En annen enhet som kobler seg til MQTT-serveren er Node-RED. Node-RED lytter til de forskjellige meldingene som kommer fra søppelbøttene (e) som bærer sensoriske data, og bruker sin logikk på den. Det fungerer ved å bruke "strømmer" av informasjon. Hver gang en melding mottas, basert på dens type (MQTT -emne), går den inn i spesifikke kjeder av operasjoner som ender opp med å aktivere de forskjellige funksjonene i systemet (oppdatering av dashbordet, sending av varsler, etc.) Det ville være veldig riktig å si at Node-RED er "hjernen" i systemet. Den er klar over alt som skjer overalt, og kan iverksette tiltak deretter.

Inne i Node-RED har vi konstruert 3 hovedinformasjonsstrømmer:

  1. Widgets - Sensorisk informasjon som mates inn i Node -RED vises deretter på dashbordet via målere og grafer.
  2. Varsler - Sensorisk informasjon behandles for å konkludere med om et varsel skal utløses (på dashbordet eller til smarttelefonappen). Fullhetsnivået, med temperatur og fuktighet, blir tatt i betraktning for å bestemme å informere brukeren om at søppeldunken er full. Også sensoriske feil rapporteres av den samme strømmen.
  3. Statistikk - Sensorisk informasjon er samlet for å vise de fyldigste og heteste søppeldunkene.

For at Node-RED skal kunne sende push-varsling, kobles den til en tjeneste som kalles IFTTT (med HTTP-protokoll). Den aktiverer en bestemt IFTTT -hendelse med den relevante varslingsteksten, og IFTTT sender varselet til smarttelefonen vår (HTTP- og XMPP -protokoller).

Se bildene ovenfor for bedre å forstå (a) systemets generelle struktur, og (b) de tre forskjellige informasjonsflytene inne i Node-RED

Trinn 7: Utfordringer, begrensninger og planer for fremtiden …

Utfordringer

Hovedutfordringene i dette prosjektet var for det meste håndtering av MQTT- og Node-RED-tjenestene. Vi brukte først AdafruitIO, men den tilpassede MQTT -implementeringen var ikke helt bra for oss. Det var ikke praktisk å jobbe med sine "feeds" inne i Node-RED. Derfor valgte vi til slutt CloudMQTT, som er basert på Mosquitto MQTT -serveren, og er mye mer standard. Så gikk vi videre for å håndtere Node-RED, noe som var ganske utfordrende, hovedsakelig fordi Node-RED er et dyr. For eksempel er det mye mer omfattende og profesjonelt enn IFTTT i vårt synspunkt. Vi måtte justere og lære å bruke den flytbaserte designtilnærmingen for å konstruere våre nødvendige funksjoner i systemet. En av de største fordelene er dessuten støtten til javascript -kode, men det tok litt tid å bli vant til det, siden vi ikke er javascript -programmerere. Til tross for alt dette likte vi veldig godt å jobbe med dette verktøyet, og vi syntes det var veldig interessant og nyttig.

Begrensninger

Når det gjelder begrensninger, vil den første være det faktum at vi bare brukte gratis tjenester, og de vil ikke tillate å gå i full skala. CloudMQTT gratis plan tillater ikke å ha mer enn 5 parallelle tilkoblinger, noe som betyr at vi bare kan ha 4 søppelbøtter og Node-RED. FRED Node-RED gratis plan tillater bare 24 timers rett bruk, hvoretter du må logge inn manuelt og tilbakestille timeren. Disse problemene er imidlertid lett å løse ved å enten kjøre disse tjenestene lokalt, eller betale litt ekstra for å løfte begrensningene. Den andre begrensningen er det faktum at når man legger til den fjerde søppeldunken og fremover, må han manuelt redigere widgetsflyten i Node-RED for å legge til de riktige widgets.

Planer for fremtiden

Vi hadde noen ideer for å forbedre systemet vårt ytterligere og utvide det:

  1. Gå videre til ikke-gratis skytjenester. (én arbeidsdag).
  2. Legge til en søppelkompressor i søppeldunken, og dermed redusere hyppigheten av tømming. (4 måneders arbeid)
  3. Arbeider med urbane og industrielle søppelbøtter for å forbedre effektiviteten til bybilene som håndterer søppel i byen. Dette vil bety å forbedre dashbordet og varslingssystemet sterkt, slik at lastebilsjåfører kan planlegge ruten mye bedre når de håndterer søppelet. (6 måneders arbeid).
  4. Å legge til resirkuleringsevner til søppeldunken, som evnen til å helle spesielle biologiske løsninger i søppelet og hjelpe til med å resirkulere det mens det fortsatt er inne i søppeldunken. Dette kan brukes innenlands for eksempel for å produsere kompost for hager, men kan tydeligvis også brukes på industrielle bokser. (6 måneders arbeid).

Anbefalt: