Innehållsförteckning:

IoT Treat Dispenser för husdjur: 7 steg (med bilder)
IoT Treat Dispenser för husdjur: 7 steg (med bilder)

Video: IoT Treat Dispenser för husdjur: 7 steg (med bilder)

Video: IoT Treat Dispenser för husdjur: 7 steg (med bilder)
Video: Pippi köper godis av Albin 2024, December
Anonim
Image
Image
IoT Treat Dispenser för husdjur
IoT Treat Dispenser för husdjur

Jag har två katter, och att behöva ge dem godis cirka 3 gånger om dagen blev ganska obehagligt. De tittade upp på mig med sina söta ansikten och intensiva blickar och sprang sedan till en låda full av kattgrönsaker, miajade och tiggde efter dem. Jag hade bestämt att det var nog. Inte mer att gå upp bara för att ge en katt ett par godbitar. Nu var det dags för en dispenseringsmaskin, för som man säger: "Det finns programmerare för att göra komplicerade saker för att göra enkla saker mindre."

DFRobot sponsrade detta projekt.

Reservdelar:

  • DFRobot Raspberry Pi 3
  • DFRobot Raspberry Pi kameramodul
  • Stegmotor DFRobot med planetväxel
  • I2C LCD 16x2
  • Fat Jack till Terminal
  • DRV8825 Stegmotordrivrutin
  • Kondensator 100 µF
  • Arduino UNO & Genuino UNO
  • Bygelkablar (generiska)

Steg 1: Skapa en design

Skapa en design
Skapa en design

Först var valet av hur jag skulle styra min nytänkta maskin. Bluetooth skulle ha haft för kort räckvidd, bara 30 fot utan hinder. Med denna information valde jag att använda WiFi. Men nu, hur använder jag WiFi för att styra maskinen? En Raspberry Pi 3 har inbyggda WiFi -funktioner, så att jag kan använda Flask för att vara värd för en webbsida. Nästa var ämnet för höljet och hur man dispenserar godis. Jag bestämde mig för en roterande hjuldesign, där godis skulle falla i små sektioner, roteras runt och sedan skulle godisarna falla ner på en ramp och resa till maskinens framsida.

Steg 2: Gör Fusion 360 -modellen

Gör Fusion 360 -modellen
Gör Fusion 360 -modellen
Gör Fusion 360 -modellen
Gör Fusion 360 -modellen
Gör Fusion 360 -modellen
Gör Fusion 360 -modellen

Jag började med att skapa en basmodell för godisbehållaren. Godisarna faller ner i en mini-behållare där de sedan tas in i ett roterande hjul.

Därefter lade jag till Raspberry Pi 3 till Fusion -designen, tillsammans med den andra elektroniken, inklusive en LCD- och Raspberry Pi -kameramodul. Jag gjorde också en behållare som kunde lagra ytterligare godis.

Väggarna till godisdispensern ska skäras ur 1/4 tum plywood på en CNC -router. Det finns 7 bitar i den, 4 väggar, ett golv och en topp och lockbit som kan öppnas och stängas för att avslöja godisarna.

Slutligen skapade jag ett "snyggt" handtag för att öppna locket.

Steg 3: Konfigurera Pi

DFRobot nådde ut till mig och skickade deras Raspberry Pi 3 och Raspberry Pi kameramodul. Så efter att jag öppnat lådorna fick jag rätt att arbeta genom att sätta upp SD -kortet. Först gick jag till sidan Raspberry Pi Downloads och laddade ner den senaste versionen av Raspbian. Jag extraherade sedan filen och lade den i en bekväm katalog. Du kan inte bara kopiera/klistra in en.img -fil till ett SD -kort, du måste "bränna den" på kortet. Du kan ladda ner ett brinnande verktyg som Etcher.io för att enkelt överföra OS -bilden. Efter att.img -filen fanns på mitt SD -kort satte jag in den i Raspberry Pi och gav den ström. Efter cirka 50 sekunder kopplade jag ur sladden och tog bort SD -kortet. Därefter satte jag tillbaka SD -kortet i min dator och gick till "boot" -katalogen. Jag öppnade Notepad och sparade den som en tom fil med namnet "ssh" utan tillägg. Det fanns också en fil jag lade till som heter "wpa_supplicant.conf" och lägger in den här texten i den: network = {ssid = psk =} Sedan sparade jag och matade ut kortet och satte tillbaka det i Raspberry Pi 3. Detta borde nu möjliggöra för användningen av SSH och anslutning till WiFi.

Steg 4: Installera programvara

Det finns flera olika program som kan strömma video, till exempel VLC och rörelse, men jag bestämde mig för att använda mjpeg-streameren på grund av dess låga latens och enkel installation. Enligt instruktionerna på webbplatsen gör du en: git-klon https://github.com/jacksonliam/mjpg-streamer.git I en mapp skriver du: sudo apt-get install cmake libjpeg8-dev För att installera de bibliotek som behövs. Ändra din katalog till den mapp du laddade ner och skriv sedan: make Följt av: sudo make install För att kompilera programvaran. Slutligen ange: export LD_LIBRARY_PATH =. Och för att köra den skriver du:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Du kommer åt strömmen genom att gå till: https:// Pi: s lokala ip: 8080/stream. html För att se strömmen.

Steg 5: Konfigurera en webbserver

För att få maskinen att styras externt av WiFi behövde jag en webbserver. En webserver serverar i princip webbsidor på begäran, vanligtvis av en webbläsare. Jag ville ha något snabbt och enkelt att installera och använda, ta Apache från bordet. Jag ville också ansluta webbservern till Python så att jag kunde styra Arduino Uno med PySerial. Denna strävan ledde mig till slut till Flask, ett trevligt Python -bibliotek som låter användare snabbt skapa en webbserver. Hela koden bifogas denna projektsida. Python -skriptet skapar i princip två webbsidor, en som finns i rotkatalogen '/' och en annan som är värd för '/dispens'. Indekssidan har ett HTML -formulär som vid inlämning skickar en postförfrågan till utmatningssidan. Utmatningssidan kontrollerar sedan om postvärdet är korrekt, och om det är meddelandet "D / n" skickas via serie till Arduino Uno.

Steg 6: Kontrollera IO

Kontrollera IO
Kontrollera IO
Kontrollera IO
Kontrollera IO
Kontrollera IO
Kontrollera IO
Kontrollera IO
Kontrollera IO

Jag bestämde mig för att använda DRV8825 för att driva min stegmotor, främst på grund av att den bara behövde 2 IO -stift tillsammans med justerbar strömbegränsning. Jag försökte använda en L293D men den klarade inte belastningen på stegmotorn. DRV8825 styrs genom att pulsa STEP -stiftet via PWM, och riktningen styrs genom att dra DIR -stiftet högt eller lågt. Stegmotorn jag använder har en dragkraft på 1,2 ampere, så jag justerade VREF -spänningen till.6V. Nästa var LCD -skärmen. Jag ville använda I2C för att minska mängden IO som behövs och för att förenkla koden. För att installera biblioteket, sök bara efter "LiquidCrystal_I2C" och installera det. Slutligen letar Arduino Uno efter ny information i seriebufferten och om den matchar 'D'. Om det gör det får Uno stegmotorn att röra sig 180 grader och sedan -72 grader för att förhindra att godis fastnar.

Rekommenderad: