Turinys:

IDC2018IOT GarbageCan-Online: 7 žingsniai
IDC2018IOT GarbageCan-Online: 7 žingsniai

Video: IDC2018IOT GarbageCan-Online: 7 žingsniai

Video: IDC2018IOT GarbageCan-Online: 7 žingsniai
Video: КОПАЕМ ОТ ДУШИ! ► Смотрим Shovel Knight: Treasure Trove 2024, Lapkritis
Anonim
Image
Image
Būtinos dalys
Būtinos dalys

Įvadas

Visi žino, kas nutinka, kai per ilgai paliekame šiukšles šiukšliadėžėje, jų neišimdami. Na, akivaizdžiausias dalykas yra tai, kad nėra vietos daugiau šiukšlių, bet taip pat pradeda smirdėti ir pasidaro labai nemalonu.

Šiuo projektu siekiame padėti jums stebėti šiukšliadėžes aplink namus / darbo erdvę / ir tt, kad visada žinotumėte, kada jos pilnos, ir nedelsdami imtis veiksmų išveždami šiukšles.

Sistema įspės jus telefonu arba prietaisų skydelio įspėjimu, kad turite ištuštinti šiukšliadėžę. Sistema atsižvelgia į šiukšliadėžės pilnumo lygį, taip pat į jos viduje išmatuotą temperatūrą ir drėgmę. Visi žinome, kaip skubiai reikia ištuštinti šiukšliadėžes karštomis ir drėgnomis dienomis …

Pagrindinės funkcijos

  1. Stebėjimo prietaisų skydelis:

    • Pagrindinis skyrius:

      • Kiekvienos šiukšliadėžės pilnumo lygis.
      • Kiekvienos šiukšliadėžės temperatūra ir drėgmė.
    • Statistikos skyrius:

      • Pilniausia šiukšlių dėžė.
      • Šilčiausia šiukšlių dėžė.
  2. Įspėjimų ir pranešimų sistema:

    • Palaikomi šie įvykiai:

      • Šiukšlių dėžė pilna.
      • Įvyko jutiklio klaida.
    • Įspėjimuose apie pilnumą atsižvelgiama į šiukšliadėžės pilnumo lygį, bet ir į šiukšliadėžės temperatūrą bei drėgmę.
    • Įspėjimai gali būti siunčiami per telefono pranešimus ir prietaisų skydelio įspėjimus.
    • Kiekvieną įspėjimo kanalą galima įjungti ir išjungti per prietaisų skydelį.
  3. Mastelis:

    • Naudojant kalibravimo mygtuką, sistemą galima pritaikyti prie skirtingų šiukšlių konteinerių, kurių talpa skirtinga.
    • Galima palyginti lengvai įdėti daugiau šiukšlių dėžių. Tą pačią sistemą galima surinkti ant naujos šiukšliadėžės, nustatyti šiukšlių dėžę ir ją kalibruoti (paspaudus mygtuką). Turint daugiau nei 3 šiukšliadėžes, reikės išplėsti prietaisų skydelį (lengva užduotis).

Kas mes esame?

Šį projektą (su meile ir atsidavimu!) Sukūrė Rom Cyncynatus ir Daniel Alima - IDC Herzliya studentai, kaip galutinis mūsų interneto kurso projektas. Tikimės, kad mūsų darbas jums bus naudingas ir jums patiks juo naudotis!

1 žingsnis: reikalingos dalys

Norėdami sukurti sistemą, turėsite įsigyti šiuos komponentus ir dalis:

  1. Šiukšliadėžė (pageidautina su dangčiu): ji bus naudojama … na.. žinote, ką mes su juo darysime, ar ne?;)
  2. Duonos lenta: Sujungti visus skirtingus komponentus nenaudojant litavimo.
  3. „NodeMCU“(ESP-8266): atsakingas už jutiklių skaitymą ir informacijos siuntimą į debesį.
  4. Atstumo IR jutiklis - Sharp 0A41SK: Šis jutiklis matuoja šiukšlių kiekį (pilnumo lygį) skardinėje.
  5. Temperatūros ir drėgmės jutiklis - DHT11: Šis jutiklis matuoja temperatūrą ir drėgmę šiukšliadėžės viduje.
  6. Momentinis jungiklis: bus naudojamas atstumo jutikliui kalibruoti pagal šiukšliadėžės dydį.
  7. Aliuminio folija: bus naudojama suformuojant detektorių dangčio būsenai - ar jis atidarytas, ar uždarytas.
  8. Džemperio laidai: gaukite daug įvairių ilgių ir spalvų. Viską sujungs.
  9. Kanalo juosta: Turėsime pritvirtinti daiktus į vietas.
  10. „Micro-USB“kabelis: norėdami prijungti „NodeMCU“prie kompiuterio, kad galėtumėte programuoti, o vėliau-maitinti.
  11. USB maitinimo šaltinis (išmaniojo telefono įkroviklis): maitins „NodeMCU“, kai bus sumontuotas ant šiukšliadėžės.

2 žingsnis: laidų prijungimas ir surinkimas

Laidai ir surinkimas
Laidai ir surinkimas
Laidai ir surinkimas
Laidai ir surinkimas
Laidai ir surinkimas
Laidai ir surinkimas

Laidai

Padėkite „NodeMCU“ant duonos lentos, kad vėliau būtų patogu jį pritvirtinti prie šiukšliadėžės, ir prijunkite prie jo USB kabelį. Tada, norėdami prijungti skirtingus komponentus prie „NodeMCU“, peržiūrėkite aukščiau pateiktą laidų schemos paveikslėlį. Įsitikinkite, kad jutikliams ir būsenos laidams naudojate ilgus laidus, kad būtų patogu montuoti sistemą ir kartu su ja naudoti šiukšliadėžę.

  • Atstumo IR jutiklis - „Sharp 0A41SK“:

    • Vin (raudona) Vin
    • GND (juoda) GND
    • Vout (geltona) A0
  • Temperatūros ir drėgmės jutiklis - DHT11:

    • Vin (raudona) 3V3
    • GND (juoda) GND
    • DUOMENYS (geltona) D4
  • Momentinis jungiklis:

    • 1 kaištis D3
    • Pin2 GND
  • Dangčio būsenos (atidaryti / uždaryti) laidai:

    • Viela 1 D2
    • Viela 2 GND

Surinkimas

Sistemos surinkimas ant šiukšliadėžės yra gana paprastas. Pritvirtinkite „Breadboard“prie šiukšliadėžės, geriausia - prie dangčio. Norėdami pritvirtinti, naudokite juostą arba kabelių kaklaraištį. Tada:

  1. Įdėkite IR atstumo jutiklį į dangčio vidurį (iš vidinės pusės!). Įsitikinkite, kad jis tinkamai pritvirtintas, nes priešingu atveju susidursite su klaidingais rodmenimis!
  2. Įdėkite temperatūros ir drėgmės jutiklį į šiukšliadėžės vidų. Pritvirtinkite juostele.
  3. Uždenkite dangčio šoną ir šiukšliadėžės galą aliuminio folija. Uždarę dangtį įsitikinkite, kad yra geras kontaktas. Tai signalizuos sistemai, kad šiukšlių dėžė atidaryta arba uždaryta. Tada kiekvieną dangčio būsenos laidą įklijuokite į vieną iš aliuminio folijos ir užfiksuokite juostele.

3 veiksmas: nustatykite MQTT, Node-RED ir IFTTT

Nustatykite MQTT, Node-RED ir IFTTT
Nustatykite MQTT, Node-RED ir IFTTT
Nustatykite MQTT, Node-RED ir IFTTT
Nustatykite MQTT, Node-RED ir IFTTT
Nustatykite MQTT, Node-RED ir IFTTT
Nustatykite MQTT, Node-RED ir IFTTT

Didžioji dalis projekto logikos iš tikrųjų įgyvendinama debesyje. „NodeMCU“siunčia duomenis į MQTT serverį, o „Node-RED“juos sunaudoja ir taiko savo logiką (daugiau apie tolesnę architektūrą). Galiausiai, norėdami perduoti tiesioginius pranešimus (įspėjimus) į savo išmanųjį telefoną, naudojome IFTTT.

Mes naudosime „CloudMQTT“ir „FRED“debesies paslaugas kaip atitinkamai MQTT ir „Node-RED“serverius, o IFTTT-tiesioginiams pranešimams.

  1. Prisiregistruokite prie „CloudMQTT“naudodami nemokamą planą. Atkreipkite dėmesį į savo kredencialus MQTT serveryje (vartotojo vardą ir slaptažodį).
  2. Prisiregistruokite IFTTT. Sukurkite naują programėlę „Webhooks IFTTT programos pranešimas“. Kaip „WebHookds“įvykio pavadinimą naudokite „Mobiliojo telefono pranešimas“. Norėdami sužinoti smulkmenas, žiūrėkite aukščiau esančiame paveikslėlyje. Atkreipkite dėmesį į kūrėjo API raktą.
  3. Atsisiųskite IFTTT programą į savo telefoną ir prisijunkite naudodami savo kredencialus. Tai leis jums gauti tiesioginius pranešimus.
  4. Prisiregistruokite prie FRED naudodami nemokamą planą.
  5. Kai paleisite FRED egzempliorių, į jį importuokite pridėtus srautus (3 juostų mygtukas Importuoti iš iškarpinės). Tiesiog įklijuokite kiekvieno failo (widgest.json, alerts.json, statistics.json) turinį ir jį importuokite.
  6. Redaguokite vieną iš MQTT mazgų (pakanka vieno), kad atnaujintumėte „CloudMQTT“kredencialus.
  7. Redaguokite IFTTT mazgą, kad atnaujintumėte IFTTT kūrėjo API raktą.

4 veiksmas: užprogramuokite „NodeMCU“ir šiukšliadėžės talpos kalibravimą

Kai viskas bus prijungta, turime užprogramuoti „NodeMCU“naudodami atitinkamą programinę įrangą (eskizą), kad ji iš tikrųjų panaudotų visą prie jo prijungtą medžiagą ir bendrautų su internetu.

  1. Atsisiųskite ir įdiekite „Arduino IDE“iš čia.
  2. Įdiekite ir nustatykite „NodeMCU“plokštės tipą, kaip paaiškinta šios instrukcijos pradžioje.
  3. Įdiekite šias bibliotekas (eskizas Įtraukti biblioteką Tvarkyti bibliotekas …):

    1. „Adafruit MQTT“biblioteka („Adafruit“)
    2. DHT jutiklių biblioteka („Adafruit“)
    3. „SharpIR“(Giuseppe Masino)
    4. EEPROMAnything - paaiškinimas čia.
  4. Atidarykite failą GarbageCanOnline.ino ir atnaujinkite šiuos dalykus:

    1. Jūsų „WiFi“prisijungimo duomenys (WLAN_SSID, WLAN_PASS)
    2. Jūsų „CloudMQTT“prisijungimo duomenys (MQTT_USERNAME, MQTT_PASSWORD)
    3. Jei tai yra antra ar daugiau šiukšliadėžė, pakeiskite šiukšliadėžės ID (GARBAGECAN_ID)
  5. Įkelkite atnaujintą eskizą į „NodeMCU“.
  6. Atidarykite serijinio monitoriaus langą (Ctrl+M) ir įsitikinkite, kad jis sugeba paskelbti jutiklių duomenis „CloudMQTT“.
  7. Dabar, kai dangtis uždarytas ir šiukšlių dėžė tuščia, ilgai paspauskite kalibravimo mygtuką, kad sukalibruotumėte šiukšliadėžės talpą.
  8. Šiukšlių dėžė jau paruošta. Galite atjungti jį nuo kompiuterio ir prijungti jį tam skirtoje vietoje naudodami USB maitinimo šaltinį.

5 žingsnis: Sistemos naudojimas

Sistemos naudojimas
Sistemos naudojimas
Sistemos naudojimas
Sistemos naudojimas
Sistemos naudojimas
Sistemos naudojimas

Jei pasiekėte taip toli, viskas turėtų būti paruošta ir veikia. Trumpai apžvelkime įvairius sistemos naudojimo aspektus.

Manome, kad turite tik vieną šiukšliadėžę, tačiau vėliau nesunku pridėti daugiau!

Pirmiausia atkreipkite dėmesį į pagrindinį prietaisų skydelį. Turėtumėte būti pagrindiniame ekrane, matydami šiukšliadėžės pilnumą, temperatūrą ir drėgmės lygį. Telefono pranešimus ir prietaisų skydelio įspėjimus galite valdyti naudodami kairėje esančius jungiklius.

Kai šiukšlių kiekis šiukšlių viduje gali pasikeisti, matysite, kaip atitinkamai keičiasi matuoklis. Tai taip pat taikoma temperatūros ir drėgmės grafikams.

Kai pilnumo lygis pasiekia 85–90% (tiksli riba priklauso nuo temperatūros ir drėgmės) arba įvyko jutiklio klaida, gausite pranešimą pasirinktu (-ais) metodu (-ais). Vieną kartą per valandą gausite pranešimą apie šiukšliadėžę.

Rodinyje „Statistika“galėsite pamatyti šiuo metu pilniausią ir karščiausią šiukšliadėžę. Neįtikėtinas pavadinimas, jei galima sakyti …

6 žingsnis: Supraskite srautą

Srauto supratimas
Srauto supratimas
Srauto supratimas
Srauto supratimas
Srauto supratimas
Srauto supratimas
Srauto supratimas
Srauto supratimas

Kaip jau tikriausiai pastebėjote, sistemoje yra daug „judančių dalių“. Pabandysime išsiaiškinti, kaip dalykai yra tarpusavyje susiję.

Pirma, mes turime šiukšliadėžę su „NodeMCU“ir jo jutikliais. Tokių galime turėti daug - tik vienas kito „kopijas“.

„NodeMCU“matuoja įvairius į šiukšliadėžę įdėtus jutiklius ir skelbia duomenis MQTT serveryje (MQTT protokolas). Galite galvoti apie MQTT serverį kaip didelį keitimąsi informacija, kuriai daugelis šiukšlių dėžių gali pranešti apie savo informaciją.

Kitas subjektas, jungiantis prie MQTT serverio, yra „Node-RED“. „Node-RED“klausosi įvairių pranešimų, gaunamų iš šiukšliadėžės (-ių), kuriose yra jutimo duomenys, ir taiko savo logiką. Jis veikia panaudodamas informacijos „srautus“. Kiekvieną kartą gavus pranešimą, atsižvelgiant į jo tipą (MQTT tema), jis patenka į konkrečias operacijų grandines, kurios galiausiai suaktyvina skirtingas sistemos funkcijas (atnaujina prietaisų skydelį, siunčia įspėjimus ir pan.) Būtų labai teisinga sakyti kad „Node-RED“yra sistemos „smegenys“. Ji žino viską, kas vyksta visur, ir gali atitinkamai imtis veiksmų.

„Node-RED“viduje sukūrėme 3 pagrindinius informacijos srautus:

  1. Valdikliai - jutiklinė informacija, įvedama į „Node -RED“, prietaisų skydelyje rodoma matuokliais ir grafikais.
  2. Įspėjimai - jutiminė informacija apdorojama siekiant nuspręsti, ar reikia suaktyvinti įspėjimą (prietaisų skydelyje ar išmaniojo telefono programoje). Atsižvelgiant į pilnumo lygį, atsižvelgiant į temperatūrą ir drėgmę, nusprendžiama pranešti vartotojui, kad šiukšlių dėžė pilna. Taip pat tas pats srautas praneša apie jutimo klaidas.
  3. Statistika - Jutiminė informacija kaupiama, kad būtų rodomos pilnos ir karščiausios šiukšliadėžės.

Kad „Node-RED“galėtų siųsti tiesioginį pranešimą, jis prisijungia prie paslaugos, vadinamos IFTTT (HTTP protokolu). Jis suaktyvina tam tikrą IFTTT įvykį su atitinkamu pranešimo tekstu, o IFTTT siunčia pranešimą į mūsų išmanųjį telefoną (HTTP ir XMPP protokolai).

Peržiūrėkite aukščiau pateiktus vaizdus, kad geriau suprastumėte (a) bendrą sistemos struktūrą ir (b) 3 skirtingus informacijos srautus „Node-RED“viduje

7 žingsnis: iššūkiai, apribojimai ir ateities planai…

Iššūkiai

Pagrindiniai šio projekto iššūkiai dažniausiai buvo MQTT ir „Node-RED“paslaugų tvarkymas. Pirmą kartą naudojome „AdafruitIO“, tačiau jo pritaikytas MQTT diegimas mums nebuvo visai geras. Nebuvo patogu dirbti su jo „kanalais“„Node-RED“viduje. Todėl galiausiai pasirinkome „CloudMQTT“, kuris yra pagrįstas „Mosquitto MQTT“serveriu ir yra daug standartiškesnis. Tada mes pradėjome tvarkyti „Node-RED“, kuris buvo gana sudėtingas, daugiausia dėl to, kad „Node-RED“yra žvėris. Pavyzdžiui, mūsų požiūriu jis yra daug išsamesnis ir profesionalesnis nei IFTTT. Turėjome sureguliuoti ir išmokti naudoti srautu pagrįstą projektavimo metodą, kad sukurtume reikalingas sistemos funkcijas. Be to, vienas didžiausių jo pranašumų yra „JavaScript“kodo palaikymas, tačiau prireikė šiek tiek laiko, kol pripratome, nes nesame „JavaScript“programuotojai. Nepaisant viso to, mums labai patiko dirbti su šiuo konkrečiu įrankiu ir manėme, kad tai labai įdomu ir naudinga.

Apribojimai

Kalbant apie apribojimus, pirmasis būtų tai, kad naudojomės tik nemokamomis paslaugomis ir jos neleis naudotis visomis apimtimis. Nemokamas „CloudMQTT“planas neleis turėti daugiau nei 5 lygiagrečių jungčių, tai reiškia, kad galime turėti tik 4 šiukšliadėžes ir „Node-RED“. Nemokamas „FRED Node-RED“planas leidžia naudotis 24 valandas iš eilės, po to turite rankiniu būdu prisijungti ir iš naujo nustatyti laikmatį. Tačiau šias problemas galima lengvai išspręsti naudojant šias paslaugas vietoje arba sumokėjus šiek tiek papildomai, kad panaikintumėte apribojimus. Antrasis apribojimas yra tai, kad pridėjus ketvirtą šiukšliadėžę ir vėliau jis turi rankiniu būdu redaguoti valdiklių srautą „Node-RED“, kad pridėtų atitinkamus valdiklius.

Ateities planai

Turėjome keletą idėjų, kaip dar labiau patobulinti savo sistemą ir ją išplėsti:

  1. Pereikite prie nemokamų debesies paslaugų. (viena darbo diena).
  2. Į šiukšliadėžę įdėjus šiukšlių kompresorių, taip sumažėja jo ištuštinimo dažnis. (4 mėnesiai darbo)
  3. Darbas su miesto ir pramonės šiukšliadėžėmis, siekiant pagerinti miesto sunkvežimių, kurie tvarko miesto šiukšles, efektyvumą. Tai reikštų gerokai patobulinti prietaisų skydelį ir pranešimų sistemą, kad sunkvežimių vairuotojai galėtų daug geriau planuoti savo maršrutą tvarkydami šiukšles. (6 mėnesiai darbo).
  4. Į šiukšliadėžę įtraukiamos perdirbimo galimybės, pvz., Galimybė į šiukšles supilti specialius biologinius tirpalus ir padėti jas perdirbti, kol jos dar yra šiukšliadėžės viduje. Jis gali būti naudojamas vidaus reikmėms, pavyzdžiui, sodams skirtam kompostui gaminti, tačiau gali būti naudojamas ir pramoninėse skardinėse. (6 mėnesiai darbo).

Rekomenduojamas: