Kazalo:

IDC2018IOT GarbageCan-Online: 7 korakov
IDC2018IOT GarbageCan-Online: 7 korakov

Video: IDC2018IOT GarbageCan-Online: 7 korakov

Video: IDC2018IOT GarbageCan-Online: 7 korakov
Video: Шоу Мокки - 425 - Математика 2024, Julij
Anonim
Image
Image
Potrebni deli
Potrebni deli

Uvod

Vsi vedo, kaj se zgodi, če smeti predolgo pustimo v košu za smeti, ne da bi jih odstranili. No, najbolj očitno je, da ni prostora za več smeti, ampak tudi začne smrditi in postane zelo neprijetno.

S tem projektom vam želimo pomagati pri spremljanju vaših košev za smeti po hiši / delovnem prostoru / itd., Tako da lahko vedno veste, kdaj so napolnjeni, in lahko takoj ukrepate tako, da odnesete smeti.

Sistem vas bo z obvestilom po telefonu ali na nadzorni plošči opozoril, da morate izprazniti koš za smeti. Sistem upošteva stopnjo polnosti koša za smeti, pa tudi temperaturo in vlažnost, izmerjeno v njem. Vsi poznamo nujnost praznjenja košev za smeti v vročih in vlažnih dneh …

Glavne značilnosti

  1. Nadzorna plošča za spremljanje:

    • Glavni razdelek:

      • Stopnja polnosti vsakega koša za smeti.
      • Temperatura in vlažnost vsakega smetnjaka.
    • Oddelek za statistiko:

      • Največji koš za smeti.
      • Najtoplejši koš za smeti.
  2. Sistem opozoril in obvestil:

    • Podprti so naslednji dogodki:

      • Koš za smeti je poln.
      • Prišlo je do napake senzorja.
    • Opozorila o polnosti upoštevajo stopnjo polnosti koša za smeti, pa tudi temperaturo in stopnjo vlažnosti koša za smeti.
    • Opozorila lahko pošljete prek telefonskih obvestil in opozoril na nadzorni plošči.
    • Vsak opozorilni kanal lahko vklopite in izklopite prek nadzorne plošče.
  3. Razširljivost:

    • Z gumbom za umerjanje je mogoče sistem prilagoditi različnim smetnjakom z različno prostornino.
    • Relativno enostavno je mogoče dodati več košev za smeti. Isti sistem lahko sestavite na novem smetnjaku, nastavite ID koša za smeti in ga umerite (pritisk gumba). Če imate več kot 3 koše za smeti, boste morali razširiti nadzorno ploščo (enostavna naloga).

Kdo smo mi?

Ta projekt sta (z ljubeznijo in predanostjo!) Ustvarila Rom Cyncynatus in Daniel Alima - študenta IDC Herzliya, kot zaključni projekt našega tečaja IoT. Upamo, da vam bo naše delo koristilo in da ga boste z veseljem uporabljali!

1. korak: potrebni deli

Za izdelavo sistema boste morali kupiti naslednje komponente in dele:

  1. Koš za smeti (po možnosti s pokrovom): To bo uporabljeno za … no.. veš, kaj bomo s tem naredili, kajne?;)
  2. Ogledna plošča: Za povezavo vseh različnih komponent brez spajkanja.
  3. NodeMCU (ESP-8266): Zadolžen za branje senzorjev in pošiljanje informacij v oblak.
  4. IR senzor razdalje - Sharp 0A41SK: Ta senzor bo meril količino smeti (stopnja polnosti) v posodi.
  5. Senzor temperature in vlažnosti - DHT11: Ta senzor bo meril temperaturo in vlažnost v košu za smeti.
  6. Momentalno stikalo: Uporablja se za umerjanje senzorja razdalje glede na velikost koša za smeti.
  7. Aluminijasta folija: Uporablja se za oblikovanje detektorja stanja pokrova - ne glede na to, ali je odprt ali zaprt.
  8. Mostične žice: Pridobite veliko in različnih dolžin in barv. Bo povezal vse skupaj.
  9. Lepilni trak: Stvari bomo morali pritrditi na svoje mesto.
  10. Kabel mikro-USB: za priključitev NodeMCU na računalnik za programiranje in kasneje za napajanje.
  11. Napajanje USB (polnilnik za pametne telefone): NodeMCU bo napajal, ko bo nameščen na smetnjaku.

2. korak: Ožičenje in montaža

Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža

Ožičenje

NodeMCU postavite na mizo, tako da ga boste kasneje lahko priročno pritrdili na koš za smeti in nanj priključili kabel USB. Nato si oglejte zgornjo sliko ožičenja, da različne komponente povežete z NodeMCU. Za senzorje in statusne žice uporabite dolge žice, da bo sistem priročno namestiti in s seboj uporabiti koš za smeti.

  • IR senzor razdalje - Sharp 0A41SK:

    • Vin (rdeča) Vin
    • GND (črna) GND
    • Vout (rumena) A0
  • Senzor temperature in vlažnosti - DHT11:

    • Vin (rdeča) 3V3
    • GND (črna) GND
    • PODATKI (rumena) D4
  • Momentalno stikalo:

    • Pin1 D3
    • Pin2 GND
  • Žice stanja pokrova (odprite / zaprite):

    • Žica 1 D2
    • Žica 2 GND

Montaža

Sestavljanje sistema na smetnjaku je precej preprosto. Ploščo pritrdite na koš za smeti, po možnosti blizu pokrova. Za pritrditev uporabite trak ali kabelsko vezico. Nato:

  1. Senzor IR razdalje postavite na sredino pokrova (z notranje strani!). Zagotovite ga pravilno, sicer boste naleteli na napačne odčitke!
  2. Senzor za temperaturo in vlažnost postavite nekje v koš za smeti. Zavarujte s trakom.
  3. Stransko stran pokrova in konico koša za smeti pokrijte z aluminijasto folijo. Ko je pokrov zaprt, poskrbite za dober stik. To bo sistemu sporočilo, da je koš za smeti odprt ali zaprt. Nato vsako žico stanja pokrova prilepite v eno od aluminijastih folij in pritrdite s trakom.

3. korak: Nastavite MQTT, Node-RED in IFTTT

Nastavite MQTT, Node-RED in IFTTT
Nastavite MQTT, Node-RED in IFTTT
Nastavite MQTT, Node-RED in IFTTT
Nastavite MQTT, Node-RED in IFTTT
Nastavite MQTT, Node-RED in IFTTT
Nastavite MQTT, Node-RED in IFTTT

Večina logike projekta se dejansko izvaja v oblaku. NodeMCU pošlje podatke strežniku MQTT, Node-RED pa jih porabi in na njej uporabi svojo logiko (več o arhitekturi naprej). Nazadnje smo za prenos push obvestil (opozoril) na naš pametni telefon uporabili IFTTT.

Storitve v oblaku CloudMQTT in FRED bomo uporabljali kot strežnika MQTT oziroma Node-RED, IFTTT pa za potisna obvestila.

  1. Prijavite se v CloudMQTT z brezplačnim paketom. Zabeležite svoje poverilnice za strežnik MQTT (uporabniško ime in geslo).
  2. Prijavite se na IFTTT. Ustvarite nov programček »Obvestilo o aplikaciji Webhooks IFTTT«. Kot ime dogodka WebHookds uporabite "Obvestilo mobilnega telefona". Za podrobnosti o drobtinah glejte zgornjo sliko. Upoštevajte ključ API -ja izdelovalca.
  3. Prenesite aplikacijo IFTTT v telefon in se prijavite s svojimi poverilnicami. Tako boste lahko prejemali potisna obvestila.
  4. Prijavite se na FRED z brezplačnim paketom.
  5. Ko zaženete in zaženete primerek FRED, uvozite priložene tokove vanj (gumb 3 vrstice Uvozi iz odložišča). Samo prilepite vsebino vsake datoteke (widgest.json, alerts.json, statistics.json) in jo uvozite.
  6. Uredite eno od vozlišč MQTT (eno je dovolj), da posodobite poverilnice CloudMQTT.
  7. Uredite vozlišče IFTTT, da posodobite ključ API -ja za izdelovalca IFTTT.

4. korak: Programirajte kalibracijo zmogljivosti NodeMCU in smeti

Ko imamo vse povezano, moramo programirati NodeMCU z ustrezno programsko opremo (skico), tako da bo dejansko uporabljal vse stvari, ki so z njim povezane, in komuniciral z internetom.

  1. Od tu prenesite in namestite Arduino IDE.
  2. Namestite in nastavite vrsto plošče NodeMCU, kot je razloženo na začetku naslednjih navodil.
  3. Namestite naslednje knjižnice (Sketch Include Library Manage Libraries …):

    1. Knjižnica Adafruit MQTT (avtor Adafruit)
    2. Knjižnica senzorjev DHT (avtor Adafruit)
    3. SharpIR (avtor Giuseppe Masino)
    4. EEPROMA nič - razlaga tukaj.
  4. Odprite datoteko GarbageCanOnline.ino in posodobite naslednje:

    1. Vaše poverilnice WiFi (WLAN_SSID, WLAN_PASS)
    2. Vaše poverilnice za CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
    3. Če je to drugi koš za smeti ali več, spremenite ID koša za smeti (GARBAGECAN_ID)
  5. Posodobljeno skico naložite v svoj NodeMCU.
  6. Odprite okno serijskega monitorja (Ctrl+M) in se prepričajte, da uspe objaviti podatke senzorjev v CloudMQTT.
  7. Zdaj, ko je pokrov zaprt in je koš za smeti prazen, dolgo pritisnite gumb za umerjanje, da umerite kapaciteto koša za smeti.
  8. Koš za smeti je pripravljen. Lahko ga odklopite od računalnika in ga priključite na predvideno mesto z napajalnikom USB.

5. korak: Uporaba sistema

Uporaba sistema
Uporaba sistema
Uporaba sistema
Uporaba sistema
Uporaba sistema
Uporaba sistema

Če ste prišli tako daleč, bi moralo biti vse pripravljeno. Na kratko naredimo kratki pregled različnih vidikov uporabe sistema.

Predvidevamo, da imate priključen samo en koš za smeti, vendar ga je pozneje enostavno dodati več!

Najprej opazite glavno armaturno ploščo. Morali bi biti na domačem zaslonu in videti polnost, temperaturo in vlažnost koša za smeti. Obvestila telefona in opozorila na nadzorni plošči lahko nadzirate s stikali na levi.

Ko se količina smeti v košu za smeti spremeni, se bo ustrezno spremenilo merilo. To velja tudi za grafe temperature in vlažnosti.

Ko raven napolnjenosti doseže 85% -90% (natančen prag je odvisen od temperature in vlažnosti) ali če je prišlo do napake senzorja, boste prejeli obvestilo po želenih metodah. Vsako uro boste obveščeni o smetnjaku.

V pogledu Statistika boste lahko videli trenutno največjo količino smeti in najbolj vročo. Neprijeten naslov, če lahko rečemo …

6. korak: Razumevanje toka

Razumevanje toka
Razumevanje toka
Razumevanje toka
Razumevanje toka
Razumevanje toka
Razumevanje toka
Razumevanje toka
Razumevanje toka

Kot ste verjetno že opazili, ima sistem veliko "gibljivih delov". Poskušali bomo razjasniti, kako so stvari med seboj povezane.

Najprej imamo koš za smeti z NodeMCU in njegovimi senzorji. Teh imamo lahko ogromno - samo "kopije" drug drugega.

NodeMCU meri različne senzorje, nameščene v koš za smeti, in podatke objavi na strežniku MQTT (protokol MQTT). Strežnik MQTT si lahko predstavljate kot veliko izmenjavo informacij, kamor lahko mnoge koše za smeti sporočijo svoje podatke.

Druga entiteta, ki se poveže s strežnikom MQTT, je Node-RED. Node-RED posluša različna sporočila, ki prihajajo iz košev za smeti, ki prenašajo senzorične podatke, in na to uporabi svojo logiko. Deluje z uporabo "tokov" informacij. Ob vsakem prejemu sporočila glede na njegovo vrsto (tema MQTT) vstopi v posebne verige operacij, ki na koncu aktivirajo različne funkcije sistema (posodobitev nadzorne plošče, pošiljanje opozoril itd.) Bilo bi zelo pravilno reči da je Node-RED "možgani" sistema. Zaveda se vsega, kar se dogaja povsod, in lahko ustrezno ukrepa.

Znotraj Node-RED smo zgradili 3 glavne tokove informacij:

  1. Pripomočki - Senzorični podatki, ki se vnesejo v Node -RED, se nato prikažejo na armaturni plošči prek merilnikov in grafov.
  2. Opozorila - Občutljivi podatki se obdelujejo, da se ugotovi, ali je treba sprožiti opozorilo (na nadzorni plošči ali v aplikaciji za pametni telefon). Stopnja polnosti ter temperatura in vlaga se upoštevajo pri odločitvi, da se uporabnika obvesti, da je koš za smeti poln. Tudi isti tok poroča o senzoričnih napakah.
  3. Statistika - Senzorični podatki so združeni za prikaz najbolj polnih in najbolj vročih košev za smeti.

Da lahko Node-RED pošlje potisno obvestilo, se poveže s storitvijo, imenovano IFTTT (po protokolu HTTP). Aktivira določen dogodek IFTTT z ustreznim besedilom obvestila, IFTTT pa obvestilo pošlje v naš pametni telefon (protokoli HTTP in XMPP).

Če želite bolje razumeti (a) splošno strukturo sistema in (b) tri različne tokove informacij znotraj Node-RED, si oglejte zgornje slike

7. korak: Izzivi, omejitve in načrti za prihodnost …

Izzivi

Glavni izzivi pri tem projektu so bili predvsem obravnava storitev MQTT in Node-RED. Najprej smo uporabili AdafruitIO, vendar nam njegova izvedba po meri MQTT ni bila ravno dobra. Ni bilo priročno delati s svojimi »viri« znotraj Node-RED. Zato smo se na koncu odločili za CloudMQTT, ki temelji na strežniku Mosquitto MQTT in je veliko bolj standarden. Nato smo prešli na obravnavo Node-RED, kar je bilo precej zahtevno, predvsem zato, ker je Node-RED zver. Na primer, je z našega vidika veliko bolj obsežen in profesionalen kot IFTTT. Morali smo se prilagoditi in se naučiti uporabljati pristop oblikovanja, ki temelji na pretoku, za izdelavo naših zahtevanih funkcij sistema. Poleg tega je ena njegovih največjih prednosti podpora kode javascript, vendar se je navaditi trajalo kar nekaj časa, saj nismo programerji javascripta. Kljub vsemu nam je bilo zelo všeč delo s tem posebnim orodjem, ki se nam je zdelo zelo zanimivo in uporabno.

Omejitve

Kar zadeva omejitve, bi bila prva dejstvo, da smo uporabljali samo brezplačne storitve, ki pa ne dovoljujejo širitve. Brezplačni načrt CloudMQTT ne bo dovoljeval več kot 5 vzporednih povezav, kar pomeni, da imamo lahko samo 4 koše za smeti in Node-RED. Brezplačni načrt FRED Node-RED omogoča le 24 ur neprekinjene uporabe, nato pa se morate ročno prijaviti in ponastaviti časovnik. Vendar pa so te težave zlahka rešljive tako, da te storitve izvajate lokalno ali pa plačate malo več za odpravo omejitev. Druga omejitev je dejstvo, da mora, ko dodaš četrti koš za smeti in naprej, ročno urediti tok gradnikov v Node-RED, da doda ustrezne pripomočke.

Načrti za prihodnost

Imeli smo nekaj idej za nadgradnjo in razširitev našega sistema:

  1. Preidite na neproste storitve v oblaku. (en dan dela).
  2. Če v koš za smeti dodate kompresor za smeti in s tem zmanjšate pogostost praznjenja. (4 mesece dela)
  3. Delo z mestnimi in industrijskimi koši za smeti za izboljšanje učinkovitosti mestnih tovornjakov, ki ravnajo s smeti v mestu. To bi pomenilo močno izboljšanje armaturne plošče in sistema obveščanja, tako da lahko vozniki tovornjakov veliko bolje načrtujejo svojo pot pri ravnanju s smeti. (6 mesecev dela).
  4. Dodajanje sposobnosti recikliranja v koš za smeti, na primer sposobnost, da v smeti vlijete posebne biološke raztopine in jih pomagate reciklirati, dokler je še v smetnjaku. To se lahko uporablja na primer doma za proizvodnjo komposta za vrtove, lahko pa se uporablja tudi v industrijskih pločevinkah. (6 mesecev dela).

Priporočena: