Indholdsfortegnelse:

IoT Treat Dispenser til kæledyr: 7 trin (med billeder)
IoT Treat Dispenser til kæledyr: 7 trin (med billeder)

Video: IoT Treat Dispenser til kæledyr: 7 trin (med billeder)

Video: IoT Treat Dispenser til kæledyr: 7 trin (med billeder)
Video: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Juli
Anonim
Image
Image
IoT Treat Dispenser til kæledyr
IoT Treat Dispenser til kæledyr

Jeg har to katte, og at skulle give dem godbidder cirka 3 gange om dagen blev en ret gener. De ville kigge op på mig med deres søde ansigter og intense blikke, for derefter at løbe hen til en kasse fuld af kattegrønne, mjave og tigge efter dem. Jeg havde besluttet, at nok var nok. Ikke mere stå op bare for at give en kat et par godbidder. Nu var det tid til en godbordsdispenseringsmaskine, for som man siger: "Programmører eksisterer til at lave komplicerede ting til at gøre simple ting mindre."

DFRobot sponsorerede dette projekt.

Liste over dele:

  • DFRobot Raspberry Pi 3
  • DFRobot Raspberry Pi kameramodul
  • DFRobot -trinmotor med planetgear
  • I2C LCD 16x2
  • Barrel Jack til Terminal
  • DRV8825 Stepper Motor Driver
  • Kondensator 100 µF
  • Arduino UNO & Genuino UNO
  • Jumperwires (generisk)

Trin 1: Oprettelse af et design

Oprettelse af et design
Oprettelse af et design

Først var valget af, hvordan jeg skulle styre min nytænkte maskine. Bluetooth ville have haft en for kort rækkevidde på kun 30 fod uden forhindringer. Med disse oplysninger valgte jeg at bruge WiFi. Men nu, hvordan bruger jeg WiFi til at styre maskinen? En Raspberry Pi 3 har indbyggede WiFi -funktioner, så jeg kan bruge Flask til at være vært for en webside. Næste var emnet for kabinettet og hvordan man udleverer godbidder. Jeg besluttede mig for et roterende hjuldesign, hvor godbidder ville falde i små sektioner, blive roteret rundt, og derefter ville godbidderne falde ned på en rampe og rejse til forsiden af maskinen.

Trin 2: Fremstilling af Fusion 360 -modellen

Fremstilling af Fusion 360 -modellen
Fremstilling af Fusion 360 -modellen
Fremstilling af Fusion 360 -modellen
Fremstilling af Fusion 360 -modellen
Fremstilling af Fusion 360 -modellen
Fremstilling af Fusion 360 -modellen

Jeg begyndte med at oprette en basismodel til beholderen til godbidder. Godbidder falder i en mini-tragt, hvor de derefter tages i et roterende hjul.

Dernæst tilføjede jeg Raspberry Pi 3 til Fusion -designet sammen med den anden elektronik, herunder et LCD- og Raspberry Pi -kameramodul. Jeg lavede også en beholder, der kunne gemme yderligere godbidder.

Væggene til godbidispenseren skal skæres ud af 1/4 tommer krydsfiner på en CNC -router. Der er 7 stykker til det, 4 vægge, et gulv og et top- og lågstykke, der kan åbnes og lukkes for at afsløre godbidder.

Til sidst skabte jeg et "fancy" håndtag for at åbne låget.

Trin 3: Opsætning af Pi

DFRobot nåede ud til mig og sendte deres Raspberry Pi 3 og Raspberry Pi kameramodul. Så efter at jeg havde åbnet æskerne, fik jeg ret til at arbejde ved at oprette SD -kortet. Først gik jeg til Raspberry Pi Downloads -siden og downloadede den seneste version af Raspbian. Jeg hentede derefter filen og lagde den i et praktisk bibliotek. Du kan ikke bare kopiere/indsætte en.img -fil til et SD -kort, du skal "brænde den" på kortet. Du kan downloade et brændende værktøj som Etcher.io for nemt at overføre OS -billedet. Efter at.img -filen var på mit SD -kort, indsatte jeg den i Raspberry Pi og gav den strøm. Efter cirka 50 sekunder tog jeg stikket ud og fjernede SD -kortet. Derefter satte jeg SD -kortet tilbage i min pc og gik til mappen "boot". Jeg åbnede Notesblok og gemte den som en tom fil med navnet "ssh" uden INGEN udvidelse. Der var også en fil, jeg tilføjede, kaldet "wpa_supplicant.conf" og satte denne tekst i den: network = {ssid = psk =} Så gemte og skubbede jeg kortet ud og lagde det tilbage i Raspberry Pi 3. Dette skulle nu give mulighed for brugen af SSH og forbindelse til WiFi.

Trin 4: Installation af software

Der er flere forskellige software, der kan streame video, såsom VLC og motion, men jeg besluttede at bruge mjpeg-streameren på grund af dens lave latenstid og nem installation. I henhold til instruktionerne på webstedet skal du gøre en: git-klon https://github.com/jacksonliam/mjpg-streamer.git I en mappe, indtast derefter: sudo apt-get install cmake libjpeg8-dev For at installere de nødvendige biblioteker. Skift dit bibliotek til den mappe, du downloadede, og skriv derefter: make Efterfulgt af: sudo make install For at kompilere softwaren. Endelig indtast: eksport LD_LIBRARY_PATH =. Og for at køre det, skriv:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Du kan få adgang til strømmen ved at gå til: https:// Pi's lokale ip: 8080/stream. html For at se strømmen.

Trin 5: Opsætning af en webserver

For at få maskinen til at blive eksternt styret af WiFi havde jeg brug for en webserver. En webserver serverer dybest set websider, når det anmodes om, normalt af en browser. Jeg ville have noget hurtigt og enkelt at installere og bruge, og tog Apache fra bordet. Jeg ville også grænseflade webserveren med Python, så jeg kunne styre Arduino Uno med PySerial. Denne søgen førte mig i sidste ende til Flask, et dejligt Python -bibliotek, der lader brugerne hurtigt oprette en webserver. Den fulde kode er vedhæftet denne projektside. Python -scriptet opretter dybest set 2 websider, en, der er hostet i rodmappen, '/', og en anden, der er hostet på '/dispense'. Indekssiden har en HTML -formular, der, når den sendes, sender en postanmodning til udleveringssiden. Dispensesiden kontrollerer derefter, om postværdien er korrekt, og om det er meddelelsen 'D / n' bliver sendt via serie til Arduino Uno.

Trin 6: Kontrol af IO

Kontrol af IO
Kontrol af IO
Kontrol af IO
Kontrol af IO
Kontrol af IO
Kontrol af IO
Kontrol af IO
Kontrol af IO

Jeg besluttede mig for at bruge DRV8825 til at drive min stepper motor, hovedsagelig på grund af at den kun behøvede 2 IO ben sammen med at have justerbar strømbegrænsning. Jeg prøvede at bruge en L293D, men den kunne ikke klare belastningen af trinmotoren. DRV8825 styres ved at pulsere STEP -stiften via PWM, og retningen styres ved at trække DIR -stiften højt eller lavt. Stepper motoren jeg bruger har en 1,2 amp draw, så jeg justerede VREF spændingen til.6V. Næste var LCD. Jeg ville bruge I2C til at reducere den nødvendige mængde IO og forenkle koden. For at installere biblioteket skal du blot søge efter "LiquidCrystal_I2C" og installere det. Endelig søger Arduino Uno efter nye oplysninger i den serielle buffer, og om den matcher 'D'. Hvis det gør det, får Uno trinmotoren til at bevæge sig 180 grader og derefter -72 grader for at forhindre godbidder i at blive fastlagt.

Anbefalede: