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, Studeni
Anonim
Image
Image
Potrebni dijelovi
Potrebni dijelovi

Uvod

Svi znaju što se dogodi kada ostavimo smeće predugo u kanti za smeće, a da ga ne uklonimo. Pa, najočitije je da nema mjesta za još smeća, ali isto počinje smrditi i postaje jako neugodno.

Ovim projektom želimo vam pomoći u praćenju kanti za smeće po kući / radnom prostoru / itd., Tako da uvijek možete znati kada su pune, te možete poduzeti hitne mjere iznošenjem smeća.

Sustav će vas obavijestiti telefonskim obavijestima ili upozorenjem na nadzornoj ploči da morate isprazniti kantu za smeće. Sustav uzima u obzir razinu 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 značajke

  1. Nadzorna ploča za nadzor:

    • Glavni odjeljak:

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

      • Najpunija kanta za smeće.
      • Najtoplija kanta za smeće.
  2. Sustav upozorenja i obavijesti:

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

      • Kanta za smeće je puna.
      • Došlo je do pogreške senzora.
    • Upozorenja o napunjenosti uzimaju u obzir razinu napunjenosti kante za smeće, ali i temperaturu i vlažnost 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 sustav različitim kantama za smeće s različitim kapacitetima.
    • Moguće je relativno jednostavno dodati još kanti za smeće. Isti sustav možete sastaviti na novoj kanti za smeće, postaviti ID kante za smeće i kalibrirati je (pritiskom na gumb). Imati više od 3 kante za smeće zahtijevat će proširenje nadzorne ploče (jednostavan zadatak za izvođenje).

Tko smo mi?

Ovaj projekt su (s ljubavlju i predanošću!) Stvorili Rom Cyncynatus i Daniel Alima - studenti IDC -a Herzliya kao završni projekt za naš IoT tečaj. Nadamo se da će vam naš rad biti od koristi i da ćete ga uživati!

Korak 1: Potrebni dijelovi

Da biste izgradili sustav, 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 što ć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 će senzor mjeriti količinu smeća (razina napunjenosti) unutar kante.
  5. Senzor temperature i vlažnosti - DHT11: Ovaj će senzor mjeriti temperaturu i vlažnost u kanti za smeće.
  6. Trenutni prekidač: Koristit će se za kalibriranje senzora udaljenosti prema veličini kante za smeće.
  7. Aluminijska folija: Koristit će se za oblikovanje detektora statusa poklopca - bilo da je otvoren ili zatvoren.
  8. Kratkospojne žice: Dobijte ih puno, različitih duljina i boja. Spojiće sve zajedno.
  9. Ljepljiva traka: Morat ćemo pričvrstiti stvari na svoje mjesto.
  10. Mikro-USB kabel: Za povezivanje NodeMCU-a s računalom 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 ploču tako da ga kasnije bude prikladno pričvrstiti na kantu za smeće i na njega spojiti USB kabel. Zatim, pogledajte gornju shemu ožičenja kako biste spojili različite komponente na NodeMCU. Upotrijebite dugačke žice za senzore i statusne žice kako bi bilo prikladno instalirati sustav i koristiti kantu za smeće s njim.

  • IR senzor udaljenosti - Sharp 0A41SK:

    • Vin (Crveni) 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
    • Žica 2 GND

Skupština

Sastavljanje sustava na kanti za smeće prilično je jednostavno. Pričvrstite Breadboard na kantu za smeće, najbolje blizu poklopca. Za pričvršćivanje koristite vrpcu ili vezicu za kabel. Zatim:

  1. IR 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. Učvrstite trakom.
  3. Pokrijte bočnu stranu poklopca i vrh kante za smeće aluminijskom folijom. Provjerite postoji li dobar kontakt kada je poklopac zatvoren. To će signalizirati sustavu 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 poslužitelj MQTT, 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 poslužitelje, a IFTTT ćemo koristiti za push obavijesti.

  1. Prijavite se na CloudMQTT s besplatnim planom. Zabilježite svoje vjerodajnice za poslužitelj MQTT (korisničko ime i lozinku).
  2. Prijavite se na IFTTT. Izradite 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. To će vam omogućiti da primate push obavijesti.
  4. Prijavite se na FRED s besplatnim planom.
  5. Nakon što pokrenete FRED instancu, uvezite priložene tokove u nju (gumb s 3 trake Uvoz 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 biste ažurirali vjerodajnice za CloudMQTT.
  7. Uredite čvor IFTTT da biste ažurirali ključ ključa API -ja za proizvođača IFTTT.

Korak 4: Programirajte kalibraciju kapaciteta NodeMCU -a i 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. Ovdje preuzmite i instalirajte Arduino IDE.
  2. Instalirajte i postavite tip ploče NodeMCU kao što je objašnjeno na početku sljedećih uputstava.
  3. Instalirajte sljedeće knjižnice (Sketch Include Library Manage Libraries …):

    1. Knjižnica Adafruit MQTT (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še vjerodajnice 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. Prenesite ažuriranu skicu na svoj NodeMCU.
  6. Otvorite prozor serijskog monitora (Ctrl+M) i pobrinite se da uspije objaviti podatke senzora u CloudMQTT -u.
  7. Sada, kada je poklopac zatvoren i kanta za smeće prazna, dugo pritisnite gumb za kalibraciju da biste kalibrirali kapacitet kante za smeće.
  8. Kanta za smeće je spremna. Možete ga odspojiti s računala i spojiti na predviđeno mjesto pomoću USB napajanja.

Korak 5: Korištenje sustava

Korištenje sustava
Korištenje sustava
Korištenje sustava
Korištenje sustava
Korištenje sustava
Korištenje sustava

Ako ste stigli tako daleko, sve bi trebalo biti pokrenuto. Napravimo kratki pregled različitih aspekata korištenja sustava.

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

Prvo, obratite pozornost 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 obavijesti telefona i upozorenja na nadzornoj ploči.

Kad se količina smeća unutar kante za smeće promijeni, vidjet ćete da se mjerač mijenja u skladu s tim. To vrijedi i za grafikone temperature i vlažnosti.

Kad razina napunjenosti dosegne 85% -90% (točan prag ovisi o temperaturi i vlažnosti), ili je došlo do pogreške senzora, dobit ćete obavijest putem željenih metoda (a). Bit ćete obaviješteni svaki sat 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: Razumijevanje tijeka

Razumijevanje toka
Razumijevanje toka
Razumijevanje toka
Razumijevanje toka
Razumijevanje toka
Razumijevanje toka
Razumijevanje toka
Razumijevanje toka

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

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

NodeMCU mjeri različite senzore smještene u kantu za smeće i objavljuje podatke na poslužitelju MQTT (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 s poslužiteljem MQTT je Node-RED. Node-RED sluša različite poruke koje dolaze iz kante za smeće koje nose osjetne podatke i na nju primjenjuje svoju logiku. Radi pomoću "protoka" informacija. Svaki put kad se poruka primi, ovisno o njezinoj vrsti (tema MQTT), ona ulazi u određene lance operacija koje na kraju aktiviraju različite značajke sustava (ažuriranje nadzorne ploče, slanje upozorenja itd.) Bilo bi vrlo točno reći da je Node-RED "mozak" sustava. 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 obrađuju se 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 vlagom uzima se u obzir pri odlučivanju obavijestiti korisnika da je kanta za smeće puna. Također, senzorske pogreške prijavljuju se istim protokom.
  3. Statistika - Senzorni podaci prikupljaju se kako bi prikazali najpunije i najtoplije kante za smeće.

Kako bi Node-RED poslao push obavijest, povezuje se s uslugom koja se zove IFTTT (po HTTP protokolu). Aktivira određeni IFTTT događaj s 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 sustava i (b) 3 različita tijeka 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 sa svojim "feedovima" unutar Node-RED-a. Stoga smo se na kraju odlučili za CloudMQTT, koji se temelji na poslužitelju Mosquitto MQTT, i mnogo je 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 temeljen na protoku za konstruiranje naših potrebnih značajki sustava. Štoviše, jedna od njegovih najvećih prednosti je podrška za javascript kod, no trebalo je neko vrijeme da se naviknete jer nismo programeri javascripta. Unatoč svemu tome, jako smo uživali u radu s ovim posebnim 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 dopušta samo 24 sata ravne upotrebe, nakon čega se morate ručno prijaviti i resetirati mjerač vremena. Međutim, ti se problemi lako rješavaju ili 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 sustava i njegovo proširenje:

  1. Prijeđite na ne-besplatne usluge u oblaku. (jedan radni dan).
  2. Dodavanjem kompresora za smeće u kantu za smeće, čime se smanjuje učestalost pražnjenja. (4 mjeseca rada)
  3. Rad s gradskim i industrijskim kantama za smeće radi poboljšanja učinkovitosti gradskih kamiona koji prevoze smeće u gradu. To bi značilo uvelike poboljšati nadzornu ploču i sustav obavijesti kako bi vozači kamiona mogli bolje planirati svoju rutu pri rukovanju smećem. (6 mjeseci rada).
  4. Dodavanje sposobnosti recikliranja u kantu za smeće, poput mogućnosti izlijevanja posebnih bioloških otopina u smeće i pomoći u recikliranju dok je još u kanti za smeće. To se može koristiti u zemlji, na primjer za proizvodnju komposta za vrtove, ali se jasno može koristiti i na industrijskim limenkama. (6 mjeseci rada).

Preporučeni: