Sadržaj:

IDC2018IOT GarbageCan-Online: 7 koraka
IDC2018IOT GarbageCan-Online: 7 koraka

Video: IDC2018IOT GarbageCan-Online: 7 koraka

Video: IDC2018IOT GarbageCan-Online: 7 koraka
Video: ИСЧЕЗЛИ ИЗ ДОМА. Трое из Спрингфилда. Таинственное исчезновение трёх женщин | Неразгаданные тайны 2024, Juli
Anonim
Image
Image
Potrebni dijelovi
Potrebni dijelovi

Uvod

Svi znaju šta se dogodi kada ostavimo smeće predugo u kanti za smeće, a da ga ne uklonimo. Pa, najočiglednije je da nema mjesta za još smeća, ali i počinje smrdjeti, i postaje vrlo neugodno.

Ovim projektom nastojimo vam pomoći da nadgledate kante za smeće po kući / radni prostor / itd., Tako da uvijek možete znati kada su pune, te možete poduzeti hitne mjere iznošenjem smeća.

Sistem će vas obavijestiti putem telefona ili upozorenja na kontrolnoj tabli da morate isprazniti kantu za smeće. Sistem uzima u obzir nivo napunjenosti kante za smeće, ali i mjerenje temperature i vlažnosti u njoj. Svima nam je poznata hitnost pražnjenja kanti za smeće u vrućim i vlažnim danima …

Glavne karakteristike

  1. Nadzorna ploča za nadzor:

    • Glavni odeljak:

      • Nivo napunjenosti svake kante za smeće.
      • Temperatura i vlažnost svake kante za smeće.
    • Odsjek za statistiku:

      • Najviše kante za smeće.
      • Najtoplija kanta za smeće.
  2. Sistem upozorenja i obavještenja:

    • Podržani su sljedeći događaji:

      • Kanta za smeće je puna.
      • Došlo je do greške senzora.
    • Upozorenja o napunjenosti uzimaju u obzir nivo napunjenosti kante za smeće, ali i temperaturu i nivo vlažnosti kante za smeće.
    • Upozorenja se mogu slati putem telefonskih obavijesti i upozorenja na nadzornoj ploči.
    • Svaki kanal upozorenja može se uključiti i isključiti putem nadzorne ploče.
  3. Skalabilnost:

    • Pomoću gumba za kalibraciju moguće je prilagoditi sistem različitim kantama za smeće različitog kapaciteta.
    • Moguće je relativno jednostavno dodati još kanti za smeće. Isti sistem možete sastaviti na novoj kanti za smeće, postaviti ID kante za smeće i kalibrirati je (pritiskom na dugme). Ako imate više od 3 kante za smeće, bit će potrebno proširiti nadzornu ploču (jednostavan zadatak za izvođenje).

Ko smo mi?

Ovaj projekat su (sa ljubavlju i posvećenošću!) Kreirali Rom Cyncynatus i Daniel Alima - studenti IDC Herzliya, kao završni projekat za naš predmet IoT. Nadamo se da će vam naš rad biti od koristi i da ćete ga uživati!

Korak 1: Potrebni dijelovi

Da biste izgradili sistem, morat ćete nabaviti sljedeće komponente i dijelove:

  1. Kanta za smeće (po mogućnosti s poklopcem): Ovo će se koristiti za … pa … znate šta ćemo s ovim, a?;)
  2. Oglasna ploča: Za povezivanje svih različitih komponenti bez lemljenja.
  3. NodeMCU (ESP-8266): Zadužen je za čitanje senzora i slanje informacija u oblak.
  4. IR senzor udaljenosti - Sharp 0A41SK: Ovaj senzor će mjeriti količinu smeća (nivo napunjenosti) unutar kante.
  5. Senzor temperature i vlažnosti - DHT11: Ovaj senzor će mjeriti temperaturu i vlažnost u kanti za smeće.
  6. Trenutni prekidač: Koristi se za kalibraciju senzora udaljenosti prema veličini kante za smeće.
  7. Aluminijumska folija: Koristi se za formiranje detektora statusa poklopca - bilo da je otvoren ili zatvoren.
  8. Kratkospojne žice: Dobijte obilje, različitih dužina i boja. Povezaće sve zajedno.
  9. Kaseta: Morat ćemo pričvrstiti stvari na svoje mjesto.
  10. Mikro-USB kabl: Za povezivanje NodeMCU-a sa računarom radi programiranja, a kasnije i za napajanje.
  11. USB napajanje (punjač za pametne telefone): Omogućit će napajanje NodeMCU -a kada se instalira na kantu za smeće.

Korak 2: Ožičenje i sastavljanje

Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje

Ožičenje

Postavite NodeMCU na matičnu ploču tako da ga kasnije bude zgodno pričvrstiti na kantu za smeće i na njega spojiti USB kabel. Zatim pogledajte gornju shemu ožičenja za povezivanje različitih komponenti na NodeMCU. Upotrijebite dugačke žice za senzore i statusne žice kako bi bilo prikladno instalirati sistem i koristiti kantu za smeće s njim.

  • IR senzor udaljenosti - Sharp 0A41SK:

    • Vin (Crveno) Vin
    • GND (crno) GND
    • Vout (žuti) A0
  • Senzor temperature i vlažnosti - DHT11:

    • Vin (crveni) 3V3
    • GND (crno) GND
    • PODACI (žuto) D4
  • Trenutni prekidač:

    • Pin1 D3
    • Pin2 GND
  • Žice statusa poklopca (otvaranje / zatvaranje):

    • Žica1 D2
    • Wire2 GND

Montaža

Sastavljanje sistema na kanti za smeće je prilično jednostavno. Pričvrstite Breadboard na kantu za smeće, po mogućnosti blizu poklopca. Za pričvršćivanje koristite traku ili kabelsku vezicu. Zatim:

  1. IC senzor udaljenosti postavite na sredinu poklopca (s unutarnje strane!). Pobrinite se da ga pravilno učvrstite, inače ćete naići na lažna očitanja!
  2. Senzor temperature i vlažnosti postavite negdje unutar kante za smeće. Osigurajte trakom.
  3. Pokrijte bočnu stranu poklopca i vrh kante za smeće aluminijskom folijom. Uverite se da postoji dobar kontakt kada je poklopac zatvoren. Ovo će signalizirati sistemu da se kanta za smeće otvara ili zatvara. Zatim svaku žicu statusa poklopca zalijepite u jednu od aluminijske folije i pričvrstite trakom.

Korak 3: Postavite MQTT, Node-RED i IFTTT

Postavite MQTT, Node-RED i IFTTT
Postavite MQTT, Node-RED i IFTTT
Postavite MQTT, Node-RED i IFTTT
Postavite MQTT, Node-RED i IFTTT
Postavite MQTT, Node-RED i IFTTT
Postavite MQTT, Node-RED i IFTTT

Većina logike projekta zapravo je implementirana u oblaku. NodeMCU šalje podatke na MQTT poslužitelj, a Node-RED ih troši i na njemu primjenjuje svoju logiku (više o arhitekturi dalje). Na kraju, za prijenos push obavijesti (upozorenja) na naš pametni telefon, koristili smo IFTTT.

Koristit ćemo CloudMQTT i FRED cloud usluge kao naše MQTT i Node-RED servere, a IFTTT ćemo koristiti za push obavijesti.

  1. Prijavite se na CloudMQTT s besplatnim planom. Zabilježite svoje vjerodajnice za MQTT server (korisničko ime i lozinku).
  2. Prijavite se na IFTTT. Kreirajte novi aplet "Obavijest o aplikaciji Webhooks IFTTT". Koristite "Obavijest mobilnog telefona" kao naziv događaja WebHookds. Za detalje o sitnim mrljama pogledajte gornju sliku. Zabilježite svoj API ključ proizvođača.
  3. Preuzmite aplikaciju IFTTT na svoj telefon i prijavite se svojim vjerodajnicama. Ovo će vam omogućiti da primate push obavijesti.
  4. Prijavite se na FRED sa besplatnim planom.
  5. Nakon što pokrenete FRED instancu, uvezite priložene tokove u nju (dugme s 3 trake Uvezi iz međuspremnika). Samo zalijepite sadržaj svake datoteke (widgest.json, alerts.json, statistics.json) i uvezite je.
  6. Uredite jedan od čvorova MQTT (jedan je dovoljan) da ažurirate svoje vjerodajnice za CloudMQTT.
  7. Uredite IFTTT čvor kako biste ažurirali ključ ključa za IFTTT maker.

Korak 4: Programirajte NodeMCU i kalibraciju kapaciteta kante za smeće

Nakon što sve ožičimo, moramo programirati NodeMCU s odgovarajućim softverom (skicom) tako da će on zapravo koristiti sve stvari koje su s njim povezane i komunicirati s internetom.

  1. Preuzmite i instalirajte Arduino IDE odavde.
  2. Instalirajte i postavite tip ploče NodeMCU kako je objašnjeno na početku sljedećih uputstava.
  3. Instalirajte sljedeće biblioteke (Sketch Include Library Manage Libraries …):

    1. Adafruit MQTT biblioteka (Adafruit)
    2. Biblioteka DHT senzora (Adafruit)
    3. SharpIR (Giuseppe Masino)
    4. EEPROMA ništa - objašnjenje ovdje.
  4. Otvorite datoteku GarbageCanOnline.ino i ažurirajte sljedeće:

    1. Vaše WiFi vjerodajnice (WLAN_SSID, WLAN_PASS)
    2. Vaši akreditivi za CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
    3. Ako je ovo druga kanta za smeće ili više, promijenite ID kante za smeće (GARBAGECAN_ID)
  5. Otpremite ažuriranu skicu na svoj NodeMCU.
  6. Otvorite prozor serijskog monitora (Ctrl+M) i pobrinite se da uspije objaviti podatke senzora u CloudMQTT.
  7. Sada, kada je poklopac zatvoren i kanta za smeće prazna, dugo pritisnite dugme za kalibraciju da biste kalibrirali kapacitet kante za smeće.
  8. Kanta za smeće je spremna. Možete ga odvojiti od računara i spojiti na predviđeno mjesto pomoću USB napajanja.

Korak 5: Upotreba sistema

Korišćenje sistema
Korišćenje sistema
Korišćenje sistema
Korišćenje sistema
Korišćenje sistema
Korišćenje sistema

Ako ste stigli dovde, sve bi trebalo biti pokrenuto. Napravimo kratak pregled različitih aspekata upotrebe sistema.

Pretpostavljamo da imate spojenu samo jednu kantu za smeće, ali kasnije je lako dodati još!

Prvo, obratite pažnju na glavnu nadzornu ploču. Trebali biste biti na početnom ekranu i vidjeti napunjenost, temperaturu i vlažnost kante za smeće. Pomoću prekidača s lijeve strane možete kontrolirati obavještenja telefona i upozorenja na nadzornoj ploči.

Kada se količina smeća unutar kante za smeće promijeni, vidjet ćete da se mjerač mijenja u skladu s tim. To se također odnosi na grafikone temperature i vlažnosti.

Kada nivo napunjenosti dosegne 85% -90% (tačan prag ovisi o temperaturi i vlažnosti), ili je došlo do greške senzora, dobit ćete obavijest putem željene metode (metoda). Dobivat ćete obavještenja jednom po satu po kanti za smeće.

U prikazu Statistika moći ćete vidjeti trenutno najpuniju kantu za smeće, i onu s najtoplijim. Neugodan naslov, ako možemo reći…

Korak 6: Razumevanje toka

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

Kao što ste do sada vjerovatno primijetili, sistem ima mnogo "pokretnih dijelova". Pokušat ćemo razjasniti kako su stvari međusobno povezane.

Prvo, imamo svoju kantu za smeće sa NodeMCU -om i njegovim senzorima. Možemo ih imati na pretek - samo "kopije" jedna od druge.

NodeMCU mjeri različite senzore smještene u kantu za smeće i objavljuje podatke na MQTT poslužitelju (MQTT protokol). MQTT poslužitelj možete smatrati velikom razmjenom informacija na koju mnoge kante za smeće mogu prijaviti svoje podatke.

Drugi entitet koji se povezuje na MQTT poslužitelj je Node-RED. Node-RED sluša različite poruke koje dolaze iz kante za smeće koje nose senzorne podatke i na nju primjenjuje svoju logiku. Radi pomoću "protoka" informacija. Svaki put kada se poruka primi, na osnovu njenog tipa (tema MQTT), ona ulazi u određene lance operacija koje na kraju aktiviraju različite značajke sistema (ažuriranje nadzorne ploče, slanje upozorenja itd.) Bilo bi vrlo ispravno reći da je Node-RED "mozak" sistema. Svjestan je svega što se svugdje događa i može poduzeti odgovarajuće mjere.

Unutar Node-RED-a izgradili smo 3 glavna toka informacija:

  1. Widgeti - Senzorne informacije koje se unose u Node -RED tada se prikazuju na nadzornoj ploči putem mjerača i grafikona.
  2. Upozorenja - Senzorne informacije se obrađuju kako bi se zaključilo treba li se aktivirati upozorenje (na nadzornoj ploči ili u aplikaciji za pametni telefon). Razina napunjenosti, s temperaturom i vlažnošću uzimaju se u obzir pri odlučivanju obavijestiti korisnika da je kanta za smeće puna. Također, senzorske greške prijavljuju se istim protokom.
  3. Statistika - Senzorne informacije se prikupljaju kako bi prikazale najpunije i najtoplije kante za smeće.

Da bi Node-RED poslao push obavijest, povezuje se s uslugom koja se zove IFTTT (po HTTP protokolu). Aktivira određeni IFTTT događaj sa odgovarajućim tekstom obavijesti, a IFTTT šalje obavijest na naš pametni telefon (HTTP i XMPP protokoli).

Pogledajte gornje slike da biste bolje razumjeli (a) opću strukturu sistema i (b) 3 različita toka informacija unutar Node-RED-a

Korak 7: Izazovi, ograničenja i planovi za budućnost …

Izazovi

Glavni izazovi u ovom projektu uglavnom su bili rukovanje uslugama MQTT i Node-RED. Prvo smo koristili AdafruitIO, ali njegova prilagođena implementacija MQTT -a nije bila baš dobra za nas. Nije bilo zgodno raditi s njegovim "feedovima" unutar Node-RED-a. Stoga smo se na kraju odlučili za CloudMQTT, koji je zasnovan na Mosquitto MQTT serveru, i koji je mnogo standardniji. Zatim smo prešli na rukovanje Node-RED-om, što je bilo prilično izazovno, uglavnom zato što je Node-RED zvijer. Na primjer, s našeg je gledišta mnogo opsežniji i profesionalniji od IFTTT -a. Morali smo se prilagoditi i naučiti kako koristiti pristup dizajna zasnovan na protoku za konstrukciju naših potrebnih karakteristika sistema. Štaviše, jedna od njegovih najvećih prednosti je podrška za javascript kod, ali trebalo je neko vrijeme da se naviknete jer nismo programeri na javascriptu. Usprkos svemu tome, zaista smo uživali u radu s ovim alatom i otkrili smo da je vrlo zanimljiv i koristan.

Ograničenja

Što se tiče ograničenja, prvo bi bilo to što smo koristili samo besplatne usluge, a one neće dopustiti puni opseg. Besplatni plan CloudMQTT neće dopustiti više od 5 paralelnih veza, što znači da možemo imati samo 4 kante za smeće i Node-RED. Besplatni plan FRED Node-RED dozvoljava samo 24 sata neprekidne upotrebe, nakon čega se morate ručno prijaviti i resetirati tajmer. Međutim, ti se problemi lako mogu riješiti lokalnim pokretanjem ovih usluga ili plaćanjem malo više za uklanjanje ograničenja. Drugo ograničenje je činjenica da kad se doda četvrta kanta za smeće pa nadalje, mora ručno urediti tok widgeta u Node-RED-u kako bi dodao odgovarajuće widgete.

Planovi za budućnost

Imali smo neke ideje za dodatno poboljšanje našeg sistema i njegovo proširenje:

  1. Pređite na usluge koje nisu besplatne u oblaku. (jedan radni dan).
  2. Dodavanjem kompresora za smeće u kantu za smeće, čime se smanjuje učestalost pražnjenja. (4 meseca rada)
  3. Rad sa gradskim i industrijskim kantama za smeće radi poboljšanja efikasnosti gradskih kamiona koji prevoze smeće u gradu. To bi značilo znatno poboljšanje nadzorne ploče i sistema obavještavanja kako bi vozači kamiona mogli bolje planirati svoju rutu pri rukovanju smećem. (6 meseci rada).
  4. Dodavanje sposobnosti recikliranja u kantu za smeće, poput mogućnosti izlijevanja posebnih bioloških otopina u smeće i pomoć pri recikliranju dok je još u kanti za smeće. Ovo se može koristiti u zemlji, na primjer za proizvodnju komposta za vrtove, ali se jasno može koristiti i na industrijskim limenkama. (6 meseci rada).

Preporučuje se: