Sadržaj:

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

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

Video: IDC2018IOT Povezani sistem za hranu, vodu i monitor za kućne ljubimce: 7 koraka
Video: Маленький лисенок вышел к людям за помощью 2024, Juli
Anonim
Image
Image
IDC2018IOT Povezani sistem za hranu, vodu i monitor za kućne ljubimce
IDC2018IOT Povezani sistem za hranu, vodu i monitor 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 na sofi (kopile!). Vrijeme je da prestanete tražiti usluge ili čak plaćati takve usluge.

Ovim sjajnim 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 sa svojim prijateljima ili nekim drugim.

Ovaj sistem će vam omogućiti da hranite svog ljubimca na daljinu, dok kontrolirate količinu hrane koju sipate iz posude, punite posudu za vodu kad god je prazna. Osim toga, sada možemo pratiti nivo 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 strastveni studenti informatike iz IDC-a u Hercegovini. Ovo je naš prvi projekt Instructables u sklopu IoT radionice - nadamo se da će vam biti zanimljivo i zabavno graditi!

Korak 1: Razumijevanje arhitekture:

Razumevanje arhitekture
Razumevanje arhitekture
Razumevanje arhitekture
Razumevanje arhitekture

Ovaj sistem možemo podijeliti na dva glavna dijela:

  1. Dolazni kanali podataka:

    • Senzor vode - uzorkovanje nivoa vode u zdjeli za kućne ljubimce, podaci se prenose s Node -MCU jedinice na Blynk server i na kraju se prezentiraju putem nadzorne ploče za kućne ljubimce.
    • Sonarni senzor - uzorkovanje sadržaja kontejnera 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 servera koji pruža uživo prijenos na nadzornu ploču za kućne ljubimce.
  2. Tok naredbe:

    • Dugme za uvlačenje (nadzorna ploča) - ažurira se vrijednost virtualnog pina putem Blynka, relevantna 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 vrijednost virtualnog pina putem Blynka, relevantna funkcija se aktivira na ploči Node -MCU, relej se uključuje na UKLJUČENO, pumpa za vodu će početi strujati vodu u zdjelu ljubimca.
    • Feed Live Feed (Dashboard) - ugrađen u nadzornu ploču i predstavlja podatke uživo putem poslužitelja za bočice koji radi na Pi uređaju.

Korak 2: Lista dijelova

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

Za početak rada na ovom sistemu 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;)
    • Džemper žice: Što je veselije, uvijek je dobro imati dodatnu vrijednost ako nešto pođe po zlu.
    • Ethernet kabel: Za povezivanje našeg Arduina (sa Ethernet štitom) na internet.
    • Vrtlarska konzerva: Koristi se kao spremnik za vodu i pumpu za vodu.
    • Kratka cijev za vodu: Spojena na pumpu i sipa vodu u zdjelu ljubimca.
  2. Senzori:

    • WINGONEER Senzor nivoa vode: Izmerite nivoe vode u činiji kućnog ljubimca.
    • Sonarni senzor - Izmjerite udaljenost nivoa hrane od gornjeg poklopca unutar posude.
    • TONGLING Relej: Omogućava nam da uključimo/isključimo pumpu 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. Elektronski uređaji / ploče:

    • Arduino Uno: Kontrolira implementaciju jedinice kontejnera za hranu.
    • 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 server kamere i pruža live feedove na nadzornoj ploči kućnih ljubimaca.
    • Potopna pumpa za vodu VicTsing 80 GPH: Struji vodu iz vrtlarske kante u zdjelu, zajedno sa 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 matičnu ploču kako bi se olakšalo spajanje svih žica i postavljanje na bilo koju fizičku lokaciju. Osim toga, preporučuje se upotreba dugih žica kako bi se spriječile greške koje proizlaze iz odvajanja kabela. Dobili smo dijagram ožičenja za Node-MCU (jedinica za vodu) i Arduino (jedinica za hranu).

  1. Jedinica za hranu (Arduino):

    • Sonarni senzor:

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

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

    • Senzor nivoa vode:

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

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

    • Senzor kamere:

      • Povežite se s Pi -jevim portom za jednu kameru (fluks kabel)
      • Ako želite saznati više o Pi s modulom kamere - Link

Sastavljanje delova zajedno

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

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

    • Gornji poklopac: Izrežite 2 rupe u poklopcu kako bi se senzor sonara uklopio (pogledajte 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 priključite servo. Sada nam trebaju 2 rupe na samom poklopcu. Prvi bi trebao omogućiti servo da stane u mehanizam koji smo konstruirali postavljen na "unutrašnjoj strani" poklopca. Izrežite drugu rupu na osnovu strane "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 kantu (pazite da NE postavite pogrešan dio sa relejem i električnim žicama unutar vode).
  3. Jedinica kamere: Sve što trebate učiniti je postaviti Pi sa modulom kamere na lokaciju po vašem izboru.

Korak 4: Postavite Blynk

Podešavanje Blynk
Podešavanje Blynk
Podešavanje Blynk
Podešavanje 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 dozvoljava da definiramo virtualne pinove, koji će se koristiti kao adresa za izvršavanje određenih funkcija vezanih za izlijevanje vode, hranjenje i uzorkovanje različitih senzora (mi smo taj dio uradili za vas, sve što trebate učiniti je nabaviti vlastiti token aplikacije, što će biti objašnjeno dalje).

Kako nabaviti 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. Započnite novi projekt, svakako odaberite odgovarajući uređaj (u našem slučaju ESP8266).
  4. Nakon kreiranja, 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 smo odlučili implementirati vlastitu prilagođenu nadzornu ploču.

Konačno, da biste prešli na sljedeći korak, trebate preuzeti i instalirati Blynk biblioteku - Veza (preskočite na dio 3)

Korak 5: 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
Konfigurirajte spremnik za hranu, pumpu za vodu i kameru uživo

U ovom smo trenutku završili sastavljanje svih dijelova i dobili naš blynkAuthAppToken (pogledajte 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 sistemom.

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 biblioteke: Sketch -> Include Library -> Manage Libraries

    Relej (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 jedinica za vodu

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

    Za detaljna objašnjenja pogledajte prvi dio ovog uputstva

  2. Provjerite imate li instalirane ove biblioteke: 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. Povežite 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. Postavite Flask server web kamere:

    • 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 Flask web server da se pokreće pri pokretanju:

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

      python /camera_server.py

Korak 6: Kako koristiti kontrolnu ploču

Kako se koristi kontrolna tabla
Kako se koristi kontrolna tabla

Postaviti

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

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

Upotreba

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

Napomena: Ako želite prilagoditi koliko se puta spremnik hrane otvara prilikom hranjenja, otvorite datoteku "index.js" i promijenite "vrijednost" u sljedećem retku sa "3" na bilo koji broj po vašem izboru:

fetch (baseURL + '/update/V1? value = 3');

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

Izazovi

Glavni izazovi za nas u ovom projektu odnosili su se na dizajniranje mehanizma za otvaranje/zatvaranje kontejnera za hranu i stvaranje stabilnog istovremenog 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" pomijera 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 i senzora udaljenosti s druge strane za mjerenje njegovog sadržaja.

Ograničenja

U ovoj fazi projekta postoji nekoliko ograničenja sistema:

  1. Nije potpuno automatiziran, što znači da se hranjenje i izlijevanje vode vrši ručno putem nadzorne ploče bez ikakvih pametnih rasporeda (koji bi u budućnosti mogli dodati ili implementirati!).
  2. Kontrolna ploča radi lokalno s vašeg prijenosnog računala, kako bi bila pristupačnija, može se hostirati na popularnim platformama kao što je "Heroku".
  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).

Budući planovi

Da smo imali vremena i budžeta za nastavak razvoja ovog sistema, imali smo na umu nekoliko ideja i mogući raspored:

  1. Dodavanje automatskog sistema za hranjenje kućnih ljubimaca - 2 ~ 3 dana rada.
  2. Izrada web stranice koja će korisnicima našeg sistema omogućiti stvaranje 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 sistema, koji je omogućio većem broju vlasnika kućnih ljubimaca da bolje kontrolišu i komuniciraju sa svojim ljubimcima na mreži, imali smo veliko interesovanje prijatelja koji su vidjeli ishod ovog uputstva. Dakle, ako imate vremensku strast za podizanje projekta na viši nivo - imate punu podršku!

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

Preporučuje se: