Tartalomjegyzék:

IoT kezelő adagoló háziállatokhoz: 7 lépés (képekkel)
IoT kezelő adagoló háziállatokhoz: 7 lépés (képekkel)

Videó: IoT kezelő adagoló háziállatokhoz: 7 lépés (képekkel)

Videó: IoT kezelő adagoló háziállatokhoz: 7 lépés (képekkel)
Videó: MEGÉPÍTETTEM ÁLMAIM PISZTOLYÁT! *SZUPER ERŐS* 2024, November
Anonim
Image
Image
IoT kezelő adagoló háziállatok számára
IoT kezelő adagoló háziállatok számára

Két macskám van, és napi 3 -szor csemegét kellett adnom nekik. Aranyos arcukkal és intenzív tekintetükkel felnéznének rám, aztán egy macska zölddel teli dobozhoz futnának, nyávognak és könyörögnek értük. Úgy döntöttem, hogy elég lesz. Nincs többé felkelés, csak hogy adjon egy macskának pár csemegét. Most volt itt az ideje egy csemegeadagoló gépnek, mert ahogy a mondás tartja: "A programozók azért vannak, hogy bonyolult dolgokat készítsenek, hogy kevesebbet csináljanak."

A DFRobot támogatta ezt a projektet.

Alkatrész lista:

  • DFRobot Raspberry Pi 3
  • DFRobot Raspberry Pi kamera modul
  • DFRobot léptetőmotor bolygóművel
  • I2C LCD 16x2
  • Barrel Jack a terminálhoz
  • DRV8825 léptetőmotor -meghajtó
  • Kondenzátor 100 µF
  • Arduino UNO és Genuino UNO
  • Jumper vezetékek (általános)

1. lépés: Tervezés létrehozása

Tervezés létrehozása
Tervezés létrehozása

Először az volt a választás, hogy hogyan irányítsam az újonnan gondolt gépemet. A Bluetooth hatótávolsága túl rövid lett volna, mindössze 30 láb, akadályok nélkül. Ezekkel az információkkal a WiFi mellett döntöttem. De most hogyan használhatom a WiFi -t a gép vezérléséhez? A Raspberry Pi 3 beépített WiFi képességekkel rendelkezik, lehetővé téve, hogy a Flask segítségével weboldalakat tároljak. Következett a szekrény témája és a finomságok adagolása. Elhatároztam egy forgó kerék kialakítását, ahol a csemegéket apró részekre osztják, körbeforgatják, majd a csemegéket lehajtják a rámpára, és a gép elejére utaznak.

2. lépés: A Fusion 360 modell elkészítése

A Fusion 360 modell elkészítése
A Fusion 360 modell elkészítése
A Fusion 360 modell elkészítése
A Fusion 360 modell elkészítése
A Fusion 360 modell elkészítése
A Fusion 360 modell elkészítése

Azzal kezdtem, hogy létrehoztam egy alapmodellt a csemegetartályhoz. A finomságok egy mini tartályba esnek, ahol egy forgó kerékbe kerülnek.

Ezután hozzáadtam a Raspberry Pi 3 -at a Fusion designhoz, a többi elektronikával együtt, beleértve az LCD -t és a Raspberry Pi kamera modult. Készítettem egy garatot is, amely további csemegéket tárolhat.

A csemegeadagoló falait egy 1/4 hüvelykes rétegelt lemezből kell kivágni egy CNC útválasztón. 7 darab van benne, 4 fal, egy padló, valamint egy fedél és fedél, amely kinyitható és zárható, hogy felfedje a csemegéket.

Végül létrehoztam egy "díszes" fogantyút a fedél kinyitására.

3. lépés: A Pi beállítása

A DFRobot felém fordult, és elküldte a Raspberry Pi 3 és a Raspberry Pi Camera Module -t. Így miután kinyitottam a dobozokat, rögtön elkezdtem dolgozni az SD -kártya beállításával. Először a Raspberry Pi Letöltések oldalára mentem, és letöltöttem a Raspbian legújabb verzióját. Ezután kibontottam a fájlt, és betettem egy kényelmes könyvtárba. Egy.img fájlt nem lehet csak SD -kártyára másolni/beilleszteni, hanem "fel kell égetni" a kártyára. Letölthet egy égő segédprogramot, mint például az Etcher.io, hogy könnyen átvihesse az operációs rendszer képét. Miután az.img fájl az SD -kártyán volt, behelyeztem a Raspberry Pi -be, és áramot adtam neki. Körülbelül 50 másodperc múlva kihúztam a kábelt és kivettem az SD kártyát. Ezután visszatettem az SD -kártyát a számítógépembe, és a "boot" könyvtárba mentem. Megnyitottam a Jegyzettömböt, és elmentettem üres fájlként, "ssh" néven, NO kiterjesztéssel. Volt egy fájl is, amelyet hozzáadtam, "wpa_supplicant.conf" néven, és ezt a szöveget tettem bele: network = {ssid = psk =} Ezután elmentettem és kiadtam a kártyát, és visszatettem a Raspberry Pi 3 -ba. az SSH használata és a WiFi -hez való csatlakozás.

4. lépés: Szoftver telepítése

Számos különböző szoftver képes videót streamelni, például VLC és motion, de úgy döntöttem, hogy az mjpeg-streamer-t használom alacsony késleltetése és egyszerű telepítése miatt. Az oldalon található utasítások szerint hajtsa végre a következőt: git clone https://github.com/jacksonliam/mjpg-streamer.git Egy mappába, majd írja be: sudo apt-get install cmake libjpeg8-dev A szükséges könyvtárak telepítéséhez. Változtassa meg a könyvtárat a letöltött mappába, majd írja be: make Ezt követi: sudo make install A szoftver fordításához. Végül írja be: export LD_LIBRARY_PATH =. A futtatásához írja be:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" A patakhoz a következő címen férhet hozzá: https:// A pi helyi ip: 8080/stream. html A stream megtekintése.

5. lépés: Webszerver beállítása

Ahhoz, hogy a gépet külsőleg WiFi -vel vezérelhessem, szükségem volt egy webszerverre. Egy webszerver alapvetően kiszolgálja a weboldalakat, amikor kérik őket, általában egy böngésző. Szerettem volna valamit gyorsan és egyszerűen beállítani és használni, levéve az Apache -t az asztalról. Szerettem volna a Python -nal összekapcsolni a webszervert, hogy a PySerial segítségével irányíthassam az Arduino Uno -t. Ez a küldetés végül a Flaskhoz vezetett, egy szép Python könyvtárhoz, amely lehetővé teszi a felhasználók számára, hogy gyorsan hozzanak létre webszervert. A teljes kód a projekt oldalához csatolt. A python szkript alapvetően két weboldalt állít fel, az egyik a gyökérkönyvtárban található, a/, a másik pedig a//dispense. Az indexoldal rendelkezik egy HTML -űrlappal, amely beküldéskor postakérést küld az adagoló oldalra. Az adagoló oldal ezután ellenőrzi, hogy a bejegyzés értéke helyes -e, és ha ez az üzenet, akkor a "D / n" üzenet soros úton kerül elküldésre az Arduino Uno -hoz.

6. lépés: Az IO szabályozása

Az IO vezérlése
Az IO vezérlése
Az IO vezérlése
Az IO vezérlése
Az IO vezérlése
Az IO vezérlése
Az IO vezérlése
Az IO vezérlése

Úgy döntöttem, hogy a DRV8825 -öt használom a léptetőmotorom meghajtásához, főleg amiatt, hogy csak 2 IO csap szükséges hozzá, valamint az állítható áramkorlátozás. Próbáltam L293D -t használni, de nem tudta kezelni a léptetőmotor terhelését. A DRV8825 vezérlése a STEP csap PWM -en keresztül történő pulzálásával történik, az irány pedig a DIR csap magas vagy alacsony húzásával. Az általam használt léptetőmotor 1,2 amperes húzással rendelkezik, ezért a VREF feszültséget 0,6 V -ra állítottam. A következő az LCD volt. Az I2C -t akartam használni a szükséges IO mennyiségének csökkentésére és a kód egyszerűsítésére. A könyvtár telepítéséhez egyszerűen keressen rá a "LiquidCrystal_I2C" kifejezésre, és telepítse azt. Végül az Arduino Uno ellenőrzi, hogy nem található -e új információ a soros pufferben, és megfelel -e a „D” -nek. Ha igen, akkor az Uno a léptetőmotort 180, majd -72 fokban elmozdítja, hogy megakadályozza a finomságok beragadását.

Ajánlott: