Sadržaj:

IDC2018IOT Povezani sustav za hranu, vodu i monitor za kućne ljubimce: 7 koraka
IDC2018IOT Povezani sustav za hranu, vodu i monitor za kućne ljubimce: 7 koraka

Video: IDC2018IOT Povezani sustav za hranu, vodu i monitor za kućne ljubimce: 7 koraka

Video: IDC2018IOT Povezani sustav za hranu, vodu i monitor za kućne ljubimce: 7 koraka
Video: Маленький лисенок вышел к людям за помощью 2024, Srpanj
Anonim
Image
Image
IDC2018IOT Povezani sustav hrane, vode i monitora za kućne ljubimce
IDC2018IOT Povezani sustav hrane, vode i monitora za kućne ljubimce

Uvod

Bilo da ste student pod pritiskom, vrijedna osoba ili jednostavno niste kod kuće više od nekoliko sati dnevno. Kao brižni vlasnici kućnih ljubimaca, želimo osigurati da naši voljeni ostanu zdravi, nahranjeni i naravno NE ležeći na sofi (kopile!). Vrijeme je da prestanete tražiti usluge ili čak plaćati takve usluge.

S ovim cool projektom želimo vam omogućiti da to učinite sami (čuo sam da je to sada stvar). Izradit ćemo rješenje za bolji nadzor naših ljubimaca, pa čak i poduzeti mjere dok smo u uredu, školi ili samo družimo se s prijateljima ili nekim drugim.

Ovaj sustav omogućit će vam daljinsko hranjenje vašeg ljubimca uz kontrolu količine hrane koju izlijete iz spremnika, napunite zdjelu za vodu kad god je prazna. Osim toga, sada možemo pratiti razinu vode u zdjeli u stvarnom vremenu, mjeriti sadržaj spremnika za hranu i najvažnije gledati kućnog ljubimca uživo pomoću jednostavnog modula kamere.

O nama

Tomer Maimon, Gilad Ram i Alon Shprung. Tri strastvena studenta informatike IDC-a Herceg. Ovo je naš prvi projekt Instructables u sklopu IoT radionice - nadamo se da će vam biti zanimljivo i zabavno graditi!

Korak 1: Razumijevanje arhitekture:

Razumijevanje arhitekture
Razumijevanje arhitekture
Razumijevanje arhitekture
Razumijevanje arhitekture

Ovaj sustav možemo podijeliti na dva glavna dijela:

  1. Dolazni podatkovni kanali:

    • Senzor vode - uzorkovanje razine vode u zdjeli za kućne ljubimce, podaci se prenose s Node -MCU jedinice na poslužitelj Blynk i na kraju se prezentiraju putem nadzorne ploče za kućne ljubimce.
    • Sonarni senzor - uzorkovanje sadržaja spremnika za hranu, podaci se prenose s Arduino jedinice (s nastavkom za Ethernet štit) na Blynk poslužitelj i na kraju se prezentiraju putem nadzorne ploče za kućne ljubimce.
    • Modul Pi kamere - stalno uzorkuje okvire područja za kućne ljubimce, Pi je domaćin vlastitog poslužitelja koji pruža prijenos uživo nadzornoj ploči za kućne ljubimce.
  2. Tok naredbe:

    • Gumb za uvlačenje (nadzorna ploča) - ažurira se vrijednost virtualnog pina putem Blynka, odgovarajuća funkcija pokreće se na Arduino ploči, servo se tada pomiče kako bi omogućio hrani da prođe kroz poklopac.
    • Daj vodu (nadzorna ploča) - aktivno ažurira virtualnu vrijednost pin -a putem Blynka, relevantna funkcija se aktivira na ploči Node -MCU, relej se uključuje na UKLJUČENO, pumpa za vodu počet će strujati vodu u zdjelu ljubimca.
    • Pet Live Feed (Dashboard) - ugrađen je u nadzornu ploču i prezentira podatke uživo putem poslužitelja za tikvice koji radi na Pi uređaju.

Korak 2: Popis dijelova

Popis dijelova
Popis dijelova
Popis dijelova
Popis dijelova
Popis dijelova
Popis dijelova

Za početak rada na ovom sustavu trebat će vam sljedeći (ili slični) dijelovi:

  1. Fizički:

    • Kontejner za hranu: Koristili smo industrijsku dvostranu cijev od 45 cm koju smo kupili u kućnoj robnoj kući. Važno je imati 2 izlaza. Jedan za mjerenje sadržaja, a drugi izlaz za mehanizam otvaranja/zatvaranja.
    • Ljepljiva traka: Da držite stvari na okupu;)
    • Jumper žice: Što je veselije, uvijek je dobro imati nešto više ako krene po zlu.
    • Ethernet kabel: Za povezivanje našeg Arduina (s Ethernet štitom) na internet.
    • Vrtlarska konzerva: Koristi se kao spremnik za vodu i pumpu za vodu.
    • Kratka cijev za vodu: Spojena na pumpu i ulijeva vodu u zdjelu ljubimca.
  2. Senzori:

    • WINGONEER Senzor razine vode: Izmjerite razinu vode u zdjeli kućnog ljubimca.
    • Sonarni senzor - Izmjerite udaljenost razine hrane od gornjeg poklopca unutar spremnika.
    • TONGLING Relej: Omogućuje nam uključivanje/isključivanje pumpe za vodu koja struji vodu.
    • Modul Pi kamere: Spojen na Pi uređaj maline i struji slike područja za kućne ljubimce.
    • Generički servo: zaključava i otključava spremnik za hranu.
  3. Elektronički uređaji / ploče:

    • Arduino Uno: Kontrolira implementaciju jedinice spremnika hrane.
    • Arduino Ethernet Shield: Omogućuje internetsku vezu s našom pločom.
    • NodeMCU (ESP-8266): Upravlja jedinicom za vodu, kako za mjerenje tako i za izlijevanje vode. Ova ploča ima mogućnost povezivanja putem WiFi -a.
    • Raspberry Pi 3 - hostira poslužitelj kamere i pruža uživo feedove na nadzornoj ploči kućnih ljubimaca.
    • Potopna pumpa za vodu VicTsing 80 GPH: Struji vodu iz vrtlarske kante u zdjelu, zajedno s cijevi za vodu.

Korak 3: Ožičenje i postavljanje stvari zajedno

Ožičenje i postavljanje stvari zajedno
Ožičenje i postavljanje stvari zajedno
Ožičenje i postavljanje stvari zajedno
Ožičenje i postavljanje stvari zajedno
Ožičenje i postavljanje stvari zajedno
Ožičenje i postavljanje stvari zajedno

Ožičenje

Prije nego što počnemo, preporučuje se postavljanje Arduino / Node-MCU-a na ploču za lakše spajanje svih žica i postavljanje na bilo koje fizičko mjesto. Osim toga, preporučuje se uporaba dugih žica kako bi se spriječile pogreške koje proizlaze iz odvajanja kabela. Dobili smo dijagram ožičenja za čvor-MCU (jedinica za vodu) i Arduino (jedinica za hranu).

  1. Jedinica hrane (Arduino):

    • Sonarni senzor:

      • GND (crno) = GND
      • VCC (crveno) = 5V
      • Okidač (ljubičasta) = 3
      • Odjek (plava) = 4
    • Servo:

      • GND (crno) = GND
      • VCC (crveno) = 5V
      • Signal (žuti) = 9
  2. Vodena jedinica (čvor):

    • Senzor razine vode:

      • S (plavo) = A0
      • + (Crveno) = 3v3
      • - (crno) = GND
    • Relej (električno spojen na pumpu za vodu):

      • IN (žuta) = D1
      • VCC (crveno) = Vin
      • GND (crno) = GND
  3. Jedinica kamere (Pi):

    • Senzor kamere:

      • Spojite se na Pi -ov priključak za jednu kameru (fluks kabel)
      • Ako želite saznati više o Pi s modulom kamere - Link

Sastavljanje dijelova zajedno

U ovom dijelu možete prilagoditi i izmijeniti ovaj projekt kako biste ga „učinili svojim“. No mi ćemo vam dostaviti slike i opis za rekonstrukciju naše verzije proizvoda.

  1. Jedinica za hranu (Arduino): Kontejner je prilično naprijed, usredotočit ćemo se na izradu dva poklopca.

    • Gornji poklopac: Izrežite 2 rupe u poklopcu kako bi senzor sonara mogao stati (vidi priloženu sliku).
    • Donji poklopac + mehanizam: Počnite s uzimanjem jednog od plastičnih nastavka (isporučenih sa servo senzorom) i konstruirajte oblik "čekića" pomoću ljepljive trake / drvenih štapića (koristili smo samo traku). Zatim ga priključite na servo. Sada nam trebaju 2 rupe na samom poklopcu. Prvi bi trebao omogućiti servo da stane u s. Mehanizam koji smo konstruirali postavljen na "unutarnjoj strani" poklopca. Izrežite drugu rupu na temelju stranice "glave čekića" koju ste izradili. Na ovaj način, kad god se servo otvori, rep čekića će pomesti hranu prema izlazu i spriječiti da se veliki komadi zalijepe.
  2. Vodena jedinica (čvor-MCU): Jednostavno spojite cijev za vodu na pumpu za vodu, a zatim je postavite u vrtnu posudu (pazite da NE postavite pogrešan dio s relejem i električnim žicama unutar vode).
  3. Jedinica kamere: Sve što trebate učiniti je postaviti Pi sa modulom kamere na mjesto po vašem izboru.

Korak 4: Postavite Blynk

Postavite Blynk
Postavite Blynk
Postavite Blynk
Postavite Blynk

Sve daljinske mogućnosti u ovom projektu temelje se na Blynku. Ova usluga nam u osnovi pruža besplatni web-poslužitelj i RESTful API za komunikaciju s našim Arduino/Node-MCU uređajima putem interneta pomoću HTTP protokola. Blynk nam omogućuje definiranje virtualnih pinova, koji će se koristiti kao adresa za izvršavanje posebnih funkcija vezanih za izlijevanje vode, hranjenje i uzorkovanje različitih senzora (taj smo dio odradili za vas, sve što trebate učiniti je nabaviti vlastiti token aplikacije, što će biti objašnjeno dalje).

Kako dobiti moj Blynk token za provjeru autentičnosti

  1. Preuzmite aplikaciju Blynk putem AppStore / PlayStore za svoj mobilni uređaj.
  2. Prijavite se za ovu uslugu (besplatna je za korištenje).
  3. Pokrenite novi projekt, svakako odaberite ispravan uređaj (u našem slučaju ESP8266).
  4. Nakon izrade, bit će poslana e -poruka s TOKENOM ZA AUTHENTICATION - Spremite token za sljedeće korake.

Napomena: Blynk se može u potpunosti koristiti putem aplikacije, ali odlučili smo implementirati vlastitu prilagođenu nadzornu ploču.

Konačno, da biste prešli na sljedeći korak, trebali biste preuzeti i instalirati Blynk knjižnicu - veza (preskočite na dio 3)

Korak 5: Konfigurirajte spremnik za hranu, vodenu pumpu i kameru uživo

Konfigurirajte spremnik za hranu, pumpu za vodu i kameru uživo
Konfigurirajte spremnik za hranu, pumpu za vodu i kameru uživo
Konfigurirajte spremnik za hranu, pumpu za vodu i kameru uživo
Konfigurirajte spremnik za hranu, pumpu za vodu i kameru uživo

Na ovom smo mjestu završili sastavljanje svih dijelova i dobili naš blynkAuthAppToken (vidi korak 3).

Pružili smo vam sav kôd koji vam je potreban za pokretanje ovog projekta. Sve što trebate učiniti je promijeniti nekoliko varijabli u kodu, što će ga učiniti "vašim" privatnim sustavom.

Prije svega, počnite s preuzimanjem Arduino IDE -a (ako to još niste učinili) - Link

Arduino kontejner za hranu

  1. Postavite IDE na Arduino ploču: Alati -> Ploča -> Arduino/Genuino Uno
  2. Provjerite imate li instalirane ove knjižnice: Sketch -> Include Library -> Manage Libraries

    Štafeta (Rafael)

  3. Otvorite datoteku skice PetFeeder.ino, konfigurirajte sljedeće parametre (za pomoć pogledajte priloženu sliku):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Sastavite i prenesite skicu na svoj Arduino uređaj.

Čvor-MCU Vodena jedinica

  1. Postavite IDE na Node-MCU ploču:

    Za detaljna objašnjenja pogledajte prvi dio ovog uputstva

  2. Provjerite imate li instalirane ove knjižnice: Sketch -> Include Library -> Manage Libraries

    WiFi Manager (Autor tzapu)

  3. Otvorite datoteku skice PetFeeder.ino, konfigurirajte sljedeće parametre (za pomoć pogledajte priloženu sliku):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "YOUR_WIFI_SSID"; // U osnovi to je naziv vaše WiFi mreže
    • pass = "YOUR_WIFI_PASSWORD"; // ako nemate lozinku, upotrijebite prazan niz ""
  4. Sastavite i prenesite skicu na svoj Node-MCU uređaj.

Modul kamere Pi Live

  1. Spojite modul pi kamere
  2. Pokrenite "sudo raspi-config" i uključite opciju "camera".
  3. Testirajte kameru pomoću naredbe "raspistill" za snimanje slike

    r aspistill -o image.jpg

  4. Postavi poslužitelj web kamere Flask:

    • Instalirajte sve zahtjeve pomoću pip install -r requirements.txt
    • Koristite python za pokretanje camera_server.py
    • Provjerite na 127.0.0.1:5000/video_feed
  5. Postavite web poslužitelj Flask da se pokreće pri pokretanju:

    • Dodajte sljedeći redak u /etc/rc.local (prije izlazne linije):

      python /camera_server.py

Korak 6: Kako koristiti upravljačku ploču

Kako koristiti upravljačku ploču
Kako koristiti upravljačku ploču

Postaviti

Ovaj dio je prilično jednostavan, sve što trebate učiniti je umetnuti datoteku "token aplikacije blynk" u datoteku "index.js" na sljedeći način:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // koristite isti token iz prethodnih koraka.

Upotreba

  1. Otvorite nadzornu ploču dvostrukim klikom na datoteku "index.html".
  2. Nadzorna ploča automatski će uzorkovati sustav svakih 10 minuta.
  3. Mjere u posudama za vodu i hranu mogu se poduzeti ručno.
  4. Gumbi "Daj vodu" i "Hrani" koriste se za aktivno opskrbu vašeg ljubimca hranom i vodom.
  5. Donji dio nadzorne ploče prikazat će feed uživo s modula kamere ako ste pažljivo slijedili upute iz prethodnog koraka.

Napomena: Ako želite prilagoditi broj otvaranja spremnika za hranu tijekom hranjenja, otvorite datoteku "index.js" i promijenite "vrijednost" u sljedećem retku sa "3" na bilo koji broj po vašem izboru:

dohvatiti (baseURL + '/ažuriranje/V1? vrijednost = 3');

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

Izazovi

Glavni izazovi za nas u ovom projektu odnosili su se na projektiranje mehanizma za otvaranje/zatvaranje spremnika hrane i stvaranje stabilnog istodobnog koda za kontrolu i mjerenje jedinice hrane. Vjerujem da smo isprobali barem 4 različite verzije dok nismo bili zadovoljni. Glavna briga bila je hrana koja je blokirala izlaz. Kako bismo to spriječili, odabrali smo dizajn čekića, na ovaj način, kad god otvorimo spremnik, rep "čekića" pomiče hranu prema izlazu. Štoviše, korištenje dvostrane cijevi učinilo nam je život mnogo jednostavnijim pri izgradnji posude za hranu. Takav je objekt savršen za postavljanje izlaznog mehanizma s jedne strane, te senzora udaljenosti s druge strane za mjerenje njegovog sadržaja.

Ograničenja

U ovoj fazi projekta postoji nekoliko ograničenja sustava:

  1. Nije potpuno automatiziran, što znači da se hranjenje i izlijevanje vode vrši ručno putem nadzorne ploče za nadzor bez ikakvih pametnih rasporeda (koji bi u budućnosti mogli dodati ili implementirati!).
  2. Nadzorna ploča radi lokalno s vašeg prijenosnog računala, kako bi bila pristupačnija, može se hostirati na popularnim platformama poput "Herokua".
  3. Koristili smo vrlo jednostavan modul kamere, koji se može zamijeniti mnogo složenijim modulom kako bi se omogućila bolja kvaliteta slike i moguće dodavanje komunikacijskog kanala s vašim ljubimcem (pomoću zvučnika).

Planovi za buducnost

Da smo imali vremena i proračuna za nastavak razvoja ovog sustava, imali smo na umu nekoliko ideja i mogući raspored:

  1. Dodavanje automatskog sustava za hranjenje kućnih ljubimaca - 2 ~ 3 dana rada.
  2. Izrada web stranice koja će korisnicima našeg sustava omogućiti izradu prilagođene nadzorne ploče koja se hostira na mreži i dostupna je sa bilo kojeg povezanog uređaja - 1-2 mjeseca rada.
  3. Rad na industrijskoj verziji ovog sustava, koji je omogućio većem broju vlasnika kućnih ljubimaca da bolje kontroliraju i komuniciraju sa svojim kućnim ljubimcima na mreži, imali smo veliko zanimanje prijatelja koji su vidjeli ishod ovog Instructable -a. Dakle, ako imate vremensku strast za podizanje projekta na višu razinu - imate punu podršku!

Nadamo se da ste uživali čitajući (i nadamo se da ćete izgraditi!) Ovaj projekt:)

Preporučeni: