Inhoudsopgave:

IoT Treat Dispenser voor huisdieren - Ajarnpa
IoT Treat Dispenser voor huisdieren - Ajarnpa

Video: IoT Treat Dispenser voor huisdieren - Ajarnpa

Video: IoT Treat Dispenser voor huisdieren - Ajarnpa
Video: DIY Puppy Hondenvoer Dispenser van Karton thuis 2024, November
Anonim
Image
Image
IoT Treat Dispenser voor huisdieren
IoT Treat Dispenser voor huisdieren

Ik heb twee katten en het werd behoorlijk vervelend om ze ongeveer 3 keer per dag iets lekkers te geven. Ze keken me aan met hun schattige gezichten en intense blikken, en renden dan naar een doos vol kattengroen, miauwend en smekend om hen. Ik had besloten dat het genoeg was. Niet meer opstaan om een kat wat lekkers te geven. Nu was het tijd voor een snoepautomaat, want zoals het spreekwoord zegt: "Er zijn programmeurs om ingewikkelde dingen te maken om simpele dingen minder te doen."

DFRobot heeft dit project gesponsord.

Onderdelen lijst:

  • DFRobot Raspberry Pi 3"
  • DFRobot Raspberry Pi-cameramodule
  • DFRobot stappenmotor met planetaire versnelling
  • I2C-lcd 16x2
  • Barrel Jack naar Terminal
  • DRV8825 Stappenmotorstuurprogramma
  • Condensator 100 µF
  • Arduino UNO en echte UNO
  • Overbruggingsdraden (generiek)

Stap 1: Een ontwerp maken

Een ontwerp maken
Een ontwerp maken

De eerste was de keuze hoe ik mijn nieuwe denkmachine moest besturen. Bluetooth zou een te klein bereik hebben gehad, op slechts 30 voet zonder obstakels. Met deze informatie heb ik ervoor gekozen om wifi te gebruiken. Maar hoe gebruik ik nu wifi om de machine te bedienen? Een Raspberry Pi 3 heeft ingebouwde wifi-mogelijkheden, waardoor ik Flask kan gebruiken om een webpagina te hosten. Het volgende was het onderwerp van de behuizing en hoe traktaties uit te delen. Ik koos voor een ontwerp met een draaiend wiel, waarbij de lekkernijen in kleine secties zouden vallen, rondgedraaid zouden worden, en dan zouden de lekkernijen op een helling naar beneden vallen en naar de voorkant van de machine gaan.

Stap 2: Het Fusion 360-model maken

Het Fusion 360-model maken
Het Fusion 360-model maken
Het Fusion 360-model maken
Het Fusion 360-model maken
Het Fusion 360-model maken
Het Fusion 360-model maken

Ik begon met het maken van een basismodel voor de snoepbak. Snoepjes vallen in een mini-trechter waar ze vervolgens in een draaiend wiel worden gebracht.

Vervolgens heb ik de Raspberry Pi 3 aan het Fusion-ontwerp toegevoegd, samen met de andere elektronica, waaronder een LCD- en Raspberry Pi-cameramodule. Ik heb ook een trechter gemaakt waarin extra lekkernijen kunnen worden bewaard.

De wanden voor de traktatiedispenser moeten op een CNC-router uit 1/4 inch multiplex worden gesneden. Er zijn 7 stukken, 4 muren, een vloer en een boven- en dekselstuk dat kan worden geopend en gesloten om de lekkernijen bloot te leggen.

Ten slotte heb ik een "fancy" handvat gemaakt om het deksel te openen.

Stap 3: De Pi. instellen

DFRobot nam contact met me op en stuurde hun Raspberry Pi 3 en Raspberry Pi Camera Module. Dus nadat ik de dozen had geopend, ging ik meteen aan de slag door de SD-kaart in te stellen. Eerst ging ik naar de Raspberry Pi Downloads-pagina en downloadde de meest recente versie van Raspbian. Vervolgens heb ik het bestand uitgepakt en in een handige map geplaatst. Je kunt een.img-bestand niet zomaar naar een SD-kaart kopiëren/plakken, je moet het op de kaart "branden". U kunt een brandprogramma zoals Etcher.io downloaden om de OS-image eenvoudig over te zetten. Nadat het.img-bestand op mijn SD-kaart stond, stopte ik het in de Raspberry Pi en gaf het stroom. Na ongeveer 50 seconden heb ik het snoer losgekoppeld en de SD-kaart verwijderd. Vervolgens plaatste ik de SD-kaart terug in mijn pc en ging naar de "boot" -map. Ik opende Kladblok en bewaarde het als een leeg bestand met de naam "ssh" zonder extensie. Er was ook een bestand dat ik heb toegevoegd met de naam "wpa_supplicant.conf" en deze tekst erin plaatste: network={ ssid= psk=} Daarna heb ik de kaart opgeslagen en uitgeworpen en terug in de Raspberry Pi 3 gestopt. Dit zou nu moeten toestaan het gebruik van SSH en verbinding maken met wifi.

Stap 4: Software installeren

Er zijn verschillende software die video kan streamen, zoals VLC en motion, maar ik besloot de mjpeg-streamer te gebruiken vanwege de lage latentie en eenvoudige installatie. Volgens de instructies op de site, doe a:git clone https://github.com/jacksonliam/mjpg-streamer.git In een map, typ dan: sudo apt-get install cmake libjpeg8-dev Om de benodigde bibliotheken te installeren. Verander je directory in de map die je hebt gedownload en typ dan: make Gevolgd door: sudo make install Om de software te compileren. Voer ten slotte in: export LD_LIBRARY_PATH=. En om het uit te voeren typt u:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" U kunt toegang krijgen tot de stream door naar: https:// De lokale ip van de pi:8080/stream te gaan. html Om de stream te bekijken.

Stap 5: Een webserver instellen

Om de machine extern via wifi te laten besturen had ik een webserver nodig. Een webserver serveert in principe webpagina's wanneer daarom wordt gevraagd, meestal door een browser. Ik wilde iets dat snel en eenvoudig kon worden ingesteld en gebruikt, waardoor Apache van tafel was. Ik wilde ook de webserver met Python koppelen, zodat ik de Arduino Uno met PySerial kon besturen. Deze zoektocht leidde me uiteindelijk naar Flask, een mooie Python-bibliotheek waarmee gebruikers snel een webserver kunnen maken. De volledige code is bijgevoegd op deze projectpagina. Het python-script stelt in feite 2 webpagina's in, een die wordt gehost in de hoofdmap, '/', en een andere die wordt gehost in '/dispense'. De indexpagina heeft een HTML-formulier dat bij verzending een postverzoek naar de uitgiftepagina stuurt. De dispense-pagina controleert vervolgens of de postwaarde correct is en of het bericht 'D\n' via serieel naar de Arduino Uno wordt verzonden.

Stap 6: IO besturen

IO besturen
IO besturen
IO besturen
IO besturen
IO besturen
IO besturen
IO besturen
IO besturen

Ik besloot de DRV8825 te gebruiken om mijn stappenmotor aan te drijven, voornamelijk omdat deze slechts 2 IO-pinnen nodig heeft en een instelbare stroombegrenzing. Ik heb geprobeerd een L293D te gebruiken, maar deze kon de belasting van de stappenmotor niet aan. De DRV8825 wordt bestuurd door de STEP-pin via PWM te pulseren en de richting wordt bestuurd door de DIR-pin hoog of laag te trekken. De stappenmotor die ik gebruik, heeft een stroomverbruik van 1,2 ampère, dus ik heb de VREF-spanning ingesteld op 0,6 V. Het volgende was het LCD-scherm. Ik wilde I2C gebruiken om de benodigde hoeveelheid IO te verminderen en de code te vereenvoudigen. Om de bibliotheek te installeren, zoekt u eenvoudig naar "LiquidCrystal_I2C" en installeert u deze. Ten slotte controleert de Arduino Uno op nieuwe informatie in de seriële buffer en of deze overeenkomt met 'D'. Als dit het geval is, zorgt de Uno ervoor dat de stappenmotor 180 graden en vervolgens -72 graden beweegt om te voorkomen dat lekkernijen vast komen te zitten.

Aanbevolen: