Innholdsfortegnelse:

IDC2018IOT Connected Pet Food, Water and Monitor System: 7 trinn
IDC2018IOT Connected Pet Food, Water and Monitor System: 7 trinn

Video: IDC2018IOT Connected Pet Food, Water and Monitor System: 7 trinn

Video: IDC2018IOT Connected Pet Food, Water and Monitor System: 7 trinn
Video: Connected Pet Control System 2024, November
Anonim
Image
Image
IDC2018IOT Connected Pet Food, Water and Monitor System
IDC2018IOT Connected Pet Food, Water and Monitor System

Introduksjon

Enten du er en student under press, en hardtarbeidende person eller bare er borte fra hjemmet i mer enn noen få timer om dagen. Som omsorgsfulle kjæledyrseiere vil vi sørge for at våre kjære forblir sunne, matede og selvfølgelig IKKE liggende på sofaen (din jævel!). Det er på tide å slutte å be om tjenester, eller til og med betale for slike tjenester.

Med dette kule prosjektet tar vi sikte på å gi deg muligheten til å gjøre-det-selv (jeg hørte at det er en ting nå). Vi vil bygge en løsning for å overvåke kjæledyrene våre bedre, og til og med iverksette tiltak mens vi er på kontoret, skolen eller bare henger med våre venner eller viktige andre.

Dette systemet lar deg mate kjæledyret ditt eksternt mens du kontrollerer mengden mat du heller fra beholderen, fyll vannskålen når den går tom. I tillegg kan vi nå overvåke bollenes vannstand i sanntid, måle innholdet i matbeholderen og viktigst av alt se på kjæledyret live ved hjelp av en enkel kameramodul.

Om oss

Tomer Maimon, Gilad Ram og Alon Shprung. Tre lidenskapelige informatikkstudenter ved IDC Herzeliya. Dette er vårt første Instructables -prosjekt som en del av et IoT -verksted - vi håper du vil synes det er interessant og morsomt å bygge!

Trinn 1: Forstå arkitekturen:

Forstå arkitekturen
Forstå arkitekturen
Forstå arkitekturen
Forstå arkitekturen

Vi kan dele dette systemet i to hoveddeler:

  1. Innkommende datakanaler:

    • Vannsensor - prøvetaking av vannstandene inne i kjæledyrskålen, data overføres fra Node -MCU -enheten til Blynk -serveren og presenteres til slutt via Pet Dashboard.
    • Ekkoloddsensor - prøvetaking av innholdet i matbeholderen, data overføres fra Arduino -enheten (med Ethernet -skjermforlengelse) til Blynk -serveren og presenteres til slutt via Pet Dashboard.
    • Pi kameramodul - prøver hele tiden rammer av kjæledyrområdet, Pi er vert for sin egen server som leverer live feed til kjæledyrets dashbord.
  2. Kommandoflyt:

    • Feed Button (Dashboard) - oppdatering av en virtuell pin -verdi gjennom Blynk, den relevante funksjonen utløses på Arduino -kortet, og servoen beveger seg for å la mat passere gjennom lokket.
    • Give Water (Dashboard) - oppdaterer aktivt en virtuell pin -verdi gjennom Blynk, den relevante funksjonen utløses på Node -MCU -kortet, reléet er slått til ON, vannpumpen begynner å strømme vann til kjæledyrets bolle.
    • Pet Live Feed (Dashboard) - innebygd i dashbordet, og presenterer live data via kolbserveren som kjører på Pi -enheten.

Trinn 2: Liste over deler

Liste over deler
Liste over deler
Liste over deler
Liste over deler
Liste over deler
Liste over deler

For å begynne å jobbe med dette systemet trenger du følgende (eller lignende) deler:

  1. Fysisk:

    • Matbeholder: Vi brukte et industrielt 45 cm tosidig rør, som vi kjøpte i et hjemmevarehus. Det er viktig å ha 2 utganger. En for måling av innholdet, og andre utgang for åpen/lukk -mekanismen.
    • Duct Tape: For å holde ting sammen;)
    • Jumper Wires: Jo mer jo hyggeligere, alltid godt å ha litt ekstra hvis noe går galt.
    • Ethernet -kabel: For å koble Arduino (med ethernet -skjerm) til internett.
    • Hagekanne: Brukes som beholder for vann og vannpumpe.
    • Kort vannrør: Koblet til pumpen og heller vann til kjæledyrets bolle.
  2. Sensorer:

    • WINGONEER vannnivåsensor: Mål vannstanden inne i kjæledyrets bolle.
    • Ekkoloddsensor - Mål avstanden til matnivået fra det øvre lokket inne i beholderen.
    • TONGLING Relé: Lar oss slå på/av vannpumpen som strømmer vann.
    • Pi kameramodul: Koblet til en bringebær Pi -enhet, og strømmer bilder av kjæledyrområdet.
    • Generisk servo: Låser og låser opp matbeholderen.
  3. Elektroniske enheter / tavler:

    • Arduino Uno: Kontrollerer implementeringen av matbeholderenheten.
    • Arduino Ethernet Shield: Gir internettforbindelse til vårt bord.
    • NodeMCU (ESP-8266): Kontrollerer vanneenheten, både for måling og skjenking av vann. Dette kortet har muligheten til å koble til via WiFi.
    • Raspberry Pi 3 - vert for kameratjeneren og gir live feed til kjæledyrets dashbord.
    • VicTsing 80 GPH nedsenkbar vannpumpe: Strømmer vann fra hageboksen til bollen, sammen med vannslangen.

Trinn 3: Kabling og plassering av ting sammen

Kabling og plassering av ting sammen
Kabling og plassering av ting sammen
Kabling og plassering av ting sammen
Kabling og plassering av ting sammen
Kabling og plassering av ting sammen
Kabling og plassering av ting sammen

Kabling

Før vi begynner, anbefales det å plassere Arduino / Node-MCU på et brødbrett for å gjøre det lettere å sette sammen alle ledningene og plassere det på et hvilket som helst fysisk sted. I tillegg anbefales det å bruke lange ledninger for å forhindre feil som følge av at kabelen løsnes. Vi ga deg et koblingsskjema for Node-MCU (Water Unit) og Arduino (Food Unit).

  1. Food Unit (Arduino):

    • Ekkoloddsensor:

      • GND (svart) = GND
      • VCC (rød) = 5V
      • Trig (lilla) = 3
      • Ekko (blå) = 4
    • Servo:

      • GND (svart) = GND
      • VCC (rød) = 5V
      • Signal (gul) = 9
  2. Vann enhet (node):

    • Vannstandssensor:

      • S (blå) = A0
      • + (Rød) = 3v3
      • - (Svart) = GND
    • Relé (elektrisk koblet til vannpumpen):

      • IN (gul) = D1
      • VCC (rød) = Vin
      • GND (svart) = GND
  3. Kameraenhet (Pi):

    • Kamerasensor:

      • Koble til Pi -kameraporten (flusskabel)
      • Hvis du ønsker å lære mer om Pi med kameramodul - Link

Montering av deler sammen

I denne delen er du velkommen til å tilpasse og modifisere dette prosjektet for å "gjøre det ditt". Men vi gir deg bilder og beskrivelse for å rekonstruere vår versjon av produktet.

  1. Food Unit (Arduino): Beholderen er ganske rett frem, vi vil fokusere på å lage de to lokkene.

    • Øvre lokk: Skjær 2 hull i lokket slik at ekkoloddsensoren kan passe inn (se vedlagte bilde).
    • Nedre lokk + Mekanisme: Begynn med å ta en av plastfestene (følger med servosensoren) og konstruer en "Sledge Hammer" -form ved hjelp av duct tape / trepinner (vi brukte bare tape). Fest deretter servoen. Nå trenger vi 2 hull på selve lokket. Den første skal la servoen passe inn i mekanismen vi konstruerte i plassert på "innsiden" av lokket. Skjær et annet hull basert på siden av "hammerhodet" du laget. På denne måten, når servoen åpnes, vil halen på hammeren feie mat mot utgangen og forhindre at store biter blir sittende fast.
  2. Vann enhet (Node-MCU): Bare koble vannslangen til vannpumpen, plasser den nå i hageboksen (pass på at du IKKE plasserer feil del med reléet og elektriske ledninger inne i vannet).
  3. Kameraenhet: Alt du trenger å gjøre er å plassere Pi med kameramodulen på et sted du ønsker.

Trinn 4: Konfigurer Blynk

Oppsett Blynk
Oppsett Blynk
Oppsett Blynk
Oppsett Blynk

Alle de eksterne egenskapene i dette prosjektet er basert på Blynk. Denne tjenesten gir oss i utgangspunktet en gratis webserver og RESTful API for kommunikasjon med våre Arduino/Node-MCU-enheter over internett ved hjelp av HTTP-protokoll. Blynk lar oss definere virtuelle pins, som vil bli brukt som en adresse for å utføre spesifikke funksjoner relatert til å helle vann, mate og sampler de forskjellige sensorene (vi gjorde den delen for deg, alt du trenger å gjøre er å få ditt eget applikasjonstoken, som vil bli forklart neste).

Slik får du My Blynk Authentication Token

  1. Last ned Blynk -appen via AppStore / PlayStore for din mobile enhet.
  2. Registrer deg for denne tjenesten (den er gratis å bruke).
  3. Start et nytt prosjekt, sørg for å velge riktig enhet (i vårt tilfelle ESP8266).
  4. Etter opprettelsen vil en e -post med AUTHENTICATION TOKEN bli sendt - Lagre tokenet for neste trinn.

Merk: Blynk kan brukes fullt ut via appen, men vi bestemte oss for å implementere vårt eget tilpassede dashbord.

Til slutt, for å gå videre til neste trinn, bør du laste ned og installere Blynk -biblioteket - lenke (hopp til del 3)

Trinn 5: Konfigurer matbeholder, vannpumpe og levende kamera

Konfigurer matbeholder, vannpumpe og levende kamera
Konfigurer matbeholder, vannpumpe og levende kamera
Konfigurer matbeholder, vannpumpe og levende kamera
Konfigurer matbeholder, vannpumpe og levende kamera

På dette tidspunktet var vi ferdig med å sette sammen alle delene og fikk vårt blynkAuthAppToken (se trinn 3).

Vi ga deg all koden du trenger for å kjøre dette prosjektet. Alt du trenger å gjøre er å endre få variabler i koden, noe som vil gjøre det til ditt "eget" private system.

Først av alt, begynn med å laste ned Arduino IDE (hvis du ikke har gjort det ennå) - Link

Arduino matbeholder

  1. Sett opp IDE til Arduino -kortet: Verktøy -> Brett -> Arduino/Genuino Uno
  2. Sørg for at du har disse bibliotekene installert: Skisse -> Inkluder bibliotek -> Administrer biblioteker

    Stafett (Av Rafael)

  3. Åpne PetFeeder.ino skissefil, konfigurer følgende params (se vedlagte bilde for hjelp):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Kompiler og last opp skissen til din Arduino -enhet.

Node-MCU vann enhet

  1. Sett opp IDE til Node-MCU-kortet:

    Se denne instruksjons første del for detaljert forklaring

  2. Sørg for at du har disse bibliotekene installert: Skisse -> Inkluder bibliotek -> Administrer biblioteker

    WiFi Manager (av tzapu)

  3. Åpne PetFeeder.ino skissefil, konfigurer følgende params (se vedlagte bilde for hjelp):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "YOUR_WIFI_SSID"; // I utgangspunktet er det navnet på WiFi -nettverket ditt
    • pass = "YOUR_WIFI_PASSWORD"; // hvis du ikke har noe passord, bruk tom streng ""
  4. Kompiler og last opp skissen til Node-MCU-enheten din.

Pi Live Camera Module

  1. Koble til pi -kameramodulen
  2. Kjør "sudo raspi-config" og angi alternativet "kamera".
  3. Test kameraet med kommandoen "raspistill" for å ta et bilde

    r aspistill -o image.jpg

  4. Sett Flask webkamera -server:

    • Installer alle kravene ved hjelp av pip install -r requirements.txt
    • Bruk python for å kjøre camera_server.py
    • Sjekk det ut på 127.0.0.1:5000/video_feed
  5. Sett Flask webserver til å kjøre ved oppstart:

    • Legg til følgende linje til /etc/rc.local (før exit linje):

      python /camera_server.py

Trinn 6: Slik bruker du kontrollpanelet

Slik bruker du kontrollpanelet
Slik bruker du kontrollpanelet

Oppsett

Denne delen er ganske enkel, alt du trenger å gjøre er å sette inn "blynk app token" i "index.js" filen som følger:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // bruk samme token fra tidligere trinn.

Bruk

  1. Åpne dashbordet ved å dobbeltklikke på filen "index.html".
  2. Dashbordet vil prøve systemet automatisk hvert 10. minutt.
  3. Vann- og matbeholder -tiltak kan tas manuelt.
  4. "Gi vann" og "Feed" -knappene brukes til aktivt å forsyne kjæledyret ditt med mat og vann.
  5. Den nedre delen av dashbordet vil presentere strømmen fra kameramodulen hvis du fulgte de forrige trinninstruksjonene nøye.

Merk: Hvis du vil tilpasse antall ganger matbeholderen åpnes når du mater, åpner du "index.js" -filen og endrer "verdien" på neste linje fra "3" til et hvilket som helst nummer du ønsker:

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

Trinn 7: Utfordringer, grenser og fremtidsplaner

Utfordringer

De største utfordringene for oss i dette prosjektet, var knyttet til å designe matbeholderens åpne/lukke -mekanisme og lage en stabil samtidig kode for kontroll og måling av matenheten. Jeg tror vi prøvde minst 4 forskjellige versjoner til vi var fornøyd. Den største bekymringen var mat som blokkerte utgangen. For å forhindre det valgte vi et Sledge-Hammer-design, på denne måten hver gang vi åpner beholderen, feier halen på "hammeren" maten mot utgangen. Videre gjorde bruk av et tosidig rør livet vårt mye enklere mens vi bygde matbeholderen. Et slikt objekt er perfekt for å plassere utgangsmekanismen på den ene siden, og en avstandssensor på den andre siden for å måle innholdet.

Grenser

I denne fasen av prosjektet er det få begrensninger for systemet:

  1. Det er ikke helt automatisert, noe som betyr at fôring og skjenking av vann gjøres manuelt via overvåkingsdashbordet uten noen smarte planleggere (som kan legges til i fremtiden eller implementeres av deg!).
  2. Dashbordet kjører lokalt fra din egen bærbare datamaskin, for å gjøre det mer tilgjengelig kan det være vert på populære plattformer som "Heroku".
  3. Vi brukte en veldig enkel kameramodul, som kan erstattes med en mye mer komplisert modul for å muliggjøre bedre bildekvalitet og mulig tillegg av kommunikasjonskanal med kjæledyret ditt (ved hjelp av en høyttaler).

Fremtidsplaner

Hvis vi hadde tid og budsjett til å fortsette å utvikle dette systemet, hadde vi noen få ideer og mulige planer i tankene:

  1. Legger til automatisk planleggingssystem for dyrefôring - 2 ~ 3 arbeidsdager.
  2. Å bygge et nettsted for å gjøre det mulig for brukerne av systemet vårt å lage tilpasset oversikt som er hostet online og tilgjengelig fra alle tilkoblede enheter - 1-2 måneders arbeid.
  3. Arbeid med en industriell versjon for dette systemet, slik at flere dyreeiere kan bedre kontrollere og kommunisere med kjæledyrene sine på nettet, vi hadde stor interesse fra venner som så utfallet av denne Instructable. Så hvis du har tidlyst til å ta prosjektet til neste nivå - har du full støtte!

Vi håper du likte å lese (og forhåpentligvis bygge!) Dette prosjektet:)

Anbefalt: