Innholdsfortegnelse:

IoT Treat Dispenser for Pets: 7 trinn (med bilder)
IoT Treat Dispenser for Pets: 7 trinn (med bilder)

Video: IoT Treat Dispenser for Pets: 7 trinn (med bilder)

Video: IoT Treat Dispenser for Pets: 7 trinn (med bilder)
Video: The Complete Redux Toolkit + RTK Query Course for Beginners | Redux in 2 hours! 2024, November
Anonim
Image
Image
IoT Treat Dispenser for Pets
IoT Treat Dispenser for Pets

Jeg har to katter, og å måtte gi dem godbiter omtrent 3 ganger om dagen ble ganske plagsomt. De ville se opp på meg med sine søte ansikter og intense blikk, for deretter å løpe til en boks full av kattegrønne, mjae og tigge etter dem. Jeg hadde bestemt meg for at nok var nok. Ikke mer stå opp bare for å gi en katt et par godbiter. Nå var tiden inne for en godbitutleveringsmaskin, for som det heter: "Programmerere eksisterer for å lage kompliserte ting for å gjøre enkle ting mindre."

DFRobot sponset dette prosjektet.

Deleliste:

  • DFRobot Raspberry Pi 3
  • DFRobot Raspberry Pi kameramodul
  • DFRobot trinnmotor med planetgir
  • I2C LCD 16x2
  • Barrel Jack til Terminal
  • DRV8825 trinnmotor driver
  • Kondensator 100 µF
  • Arduino UNO & Genuino UNO
  • Stikkledere (generisk)

Trinn 1: Lage et design

Å lage et design
Å lage et design

Først var valget av hvordan jeg skulle styre min nytenkte maskin. Bluetooth ville ha hatt for kort rekkevidde, bare 30 fot uten hindringer. Med denne informasjonen valgte jeg å bruke WiFi. Men nå, hvordan bruker jeg WiFi til å kontrollere maskinen? En Raspberry Pi 3 har innebygde WiFi -muligheter, slik at jeg kan bruke Flask til å være vert for en webside. Neste var temaet for kabinettet og hvordan du skal dele ut godbiter. Jeg bestemte meg for et roterende hjuldesign, der godbiter skulle falle i små seksjoner, roteres rundt, og deretter ville godbitene falle ned på en rampe og reise til forsiden av maskinen.

Trinn 2: Lag Fusion 360 -modellen

Å lage Fusion 360 -modellen
Å lage Fusion 360 -modellen
Å lage Fusion 360 -modellen
Å lage Fusion 360 -modellen
Å lage Fusion 360 -modellen
Å lage Fusion 360 -modellen

Jeg begynte med å lage en basismodell for godbitbeholderen. Godbiter faller ned i en minihopper hvor de deretter tas inn i et roterende hjul.

Deretter la jeg Raspberry Pi 3 til Fusion -designen, sammen med den andre elektronikken, inkludert en LCD- og Raspberry Pi -kameramodul. Jeg lagde også en beholder som kunne lagre flere godbiter.

Veggene til godbidispenseren skal kuttes ut av 1/4 tommers kryssfiner på en CNC -ruter. Det er 7 stykker i det, 4 vegger, et gulv og et topp- og lokkstykke som kan åpnes og lukkes for å avsløre godbitene.

Til slutt skapte jeg et "fancy" håndtak for å åpne lokket.

Trinn 3: Sette opp Pi

DFRobot nådde ut til meg og sendte deres Raspberry Pi 3 og Raspberry Pi kameramodul. Så etter at jeg åpnet boksene, fikk jeg rett til å jobbe ved å sette opp SD -kortet. Først gikk jeg til Raspberry Pi Downloads -siden og lastet ned den nyeste versjonen av Raspbian. Jeg hentet deretter ut filen og la den i en praktisk katalog. Du kan ikke bare kopiere/lime inn en.img -fil til et SD -kort, du må "brenne den" på kortet. Du kan laste ned et brennende verktøy som Etcher.io for enkelt å overføre OS -bildet. Etter at.img -filen var på SD -kortet mitt, satte jeg den inn i Raspberry Pi og ga den strøm. Etter omtrent 50 sekunder koblet jeg ut ledningen og fjernet SD -kortet. Deretter satte jeg SD -kortet tilbake i PC -en og gikk til "boot" -katalogen. Jeg åpnet Notisblokk og lagret den som en tom fil som heter "ssh" uten utvidelse. Det var også en fil jeg la til som heter "wpa_supplicant.conf" og la denne teksten inn i den: network = {ssid = psk =} Så lagret og kastet jeg ut kortet og satte det tilbake i Raspberry Pi 3. Dette skulle nå tillate bruk av SSH og tilkobling til WiFi.

Trinn 4: Installere programvare

Det er flere forskjellige programvarer som kan streame video, for eksempel VLC og motion, men jeg bestemte meg for å bruke mjpeg-streameren på grunn av den lave ventetiden og enkel installasjon. I henhold til instruksjonene på nettstedet, gjør du: git clone https://github.com/jacksonliam/mjpg-streamer.git I en mappe, skriver du inn: sudo apt-get install cmake libjpeg8-dev For å installere de nødvendige bibliotekene. Endre katalogen til mappen du lastet ned, og skriv deretter: make Etterfulgt av: sudo make install For å kompilere programvaren. Til slutt skriver du inn: eksport LD_LIBRARY_PATH =. Og for å kjøre den skriver du:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Du får tilgang til strømmen ved å gå til: https:// Pi's lokale ip: 8080/stream. html For å se strømmen.

Trinn 5: Sette opp en webserver

For å få maskinen til å bli eksternt styrt av WiFi trengte jeg en webserver. En webserver serverer i utgangspunktet nettsider når det blir forespurt, vanligvis av en nettleser. Jeg ønsket noe raskt og enkelt å sette opp og bruke, og tok Apache fra bordet. Jeg ønsket også å koble webserveren til Python, slik at jeg kunne kontrollere Arduino Uno med PySerial. Denne søken førte meg til slutt til Flask, et fint Python -bibliotek som lar brukerne raskt lage en webserver. Hele koden er vedlagt denne prosjektsiden. Python -skriptet setter i utgangspunktet opp to websider, en som er plassert i rotkatalogen '/', og en annen som er hostet på '/dispense'. Indekssiden har et HTML -skjema som, når den sendes, sender en forespørsel om utlegg til utleveringssiden. Utleveringssiden sjekker deretter om innleggsverdien er korrekt, og om det er meldingen 'D / n' blir sendt via serienummer til Arduino Uno.

Trinn 6: Kontrollere IO

Kontrollerer IO
Kontrollerer IO
Kontrollerer IO
Kontrollerer IO
Kontrollerer IO
Kontrollerer IO
Kontrollerer IO
Kontrollerer IO

Jeg bestemte meg for å bruke DRV8825 til å drive steppermotoren min, hovedsakelig på grunn av at den bare trengte 2 IO -pinner sammen med å ha justerbar strømbegrensning. Jeg prøvde å bruke en L293D, men den klarte ikke å håndtere belastningen på trinnmotoren. DRV8825 styres ved å pulsere STEP -pinnen via PWM, og retningen styres ved å trekke DIR -pinnen høyt eller lavt. Stepper motoren jeg bruker har en 1,2 amp trekk, så jeg justerte VREF spenningen til.6V. Neste var LCD -skjermen. Jeg ønsket å bruke I2C for å redusere mengden IO som trengs og for å forenkle koden. For å installere biblioteket, bare søk etter "LiquidCrystal_I2C" og installer det. Til slutt ser Arduino Uno etter ny informasjon i seriebufferen og om den samsvarer med 'D'. Hvis den gjør det, får Uno trinnmotoren til å bevege seg 180 grader og deretter -72 grader for å forhindre at godbiter blir liggende.

Anbefalt: