Tartalomjegyzék:
- Kellékek
- 1. lépés: A tervezés áttekintése
- 2. lépés: A kód áttekintése
- 3. lépés: A Nema 17 csatlakoztatása az alaplemezhez és a csigacsigához
- 4. lépés: Az L298N és RTC bekötése
- 5. lépés: Kódolás megjegyzésekkel
- 6. lépés: Problémák és hogyan javítottam ki őket
Videó: Automatikus kutyaadagoló: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Ez a projektem egy Auto Pet Feederről. A nevem Parker, a 11. osztályban vagyok, és ezt a projektet 2020. november 11 -én készítettem CCA (tanfolyam -csúcstevékenység) formájában ebben a projektben, megmutatom, hogyan készítsünk automatikus házi etetőt Arduino UNO -val. Kiválaszthat egy időpontot, amelyen változtathat. Az étel egy csiga segítségével adagolódik, és megeteti kedvenceit!
Kellékek
Elektronika:
- Arduino UNO
- L298N - 10 $ - A Nema 17 vezérlése
- NEMA 17 - 10 $ - Elforgatja a csigat, hogy az étel kifolyjon
- RTC (DS1307) - 10 $ - Megadja az időt
- 12 V -os tápegység - 5 dollár - mindenre képes
- Mini kenyértábla - extra huzalozási helyhez
- Jumper vezetékek - mindent összeköt
- Nő -férfi vezetékek - mindent összeköt
Hardver:
- 3D nyomtatási szál - 3D nyomtatóhoz
- 2 M4 csavar - Tartsa a helyén az alaplemezt
- 4 Nema 17 csavar - Tartsa lenyomva a nemát
- PVC T 48 mm belső méret 66 mm külső méret - 3 $
Eszközök:
- 3d nyomtató
- Fúró
- Forrasztópisztoly
1. lépés: A tervezés áttekintése
Az állateledel kialakítása nagyon egyszerű. Egy garat felmegy a PVC T tetejére. Ezután fedél kerül a PVC T hátoldalára (amint az a képen is látható), és a Nema 17 van hozzáerősítve. Ezután a Nema 17 -et a csiga hátuljába tolják, ami fent látható, és egy csavar kerül az oldalába, hogy a helyén tartsa, hogy ne deformálja a fent látható lyukat!
Ezután a csiga egyszerűen kinyomja az ételt a csőből és egy tálba!
2. lépés: A kód áttekintése
Az RTC & The stepper rendelkezik egy RTClib.h és Stepper.h nevű könyvtárral, amely egyszerűsített kódot ad hozzá az RTC & Stepperhez. Ha az állítások nagyon egyszerűek, akkor azt mondja, hogy ha az óra és a perc megegyezik az említett idővel, akkor elforgatja a nemát, amely kiadja az ételt. A kód többi része nagyon könnyen érthető még azok számára is, akik egynapos tapasztalattal rendelkeznek.
3. lépés: A Nema 17 csatlakoztatása az alaplemezhez és a csigacsigához
Először el kell vennie az alaplemezt, és rögzítenie kell a Nema 17 készülékhez az alaplapon lévő előre elkészített lyukak segítségével. Ha elkészült, a hátsó lyuk segítségével a csigat a Nema -hoz kívánja rögzíteni. Ezután csatlakoztassa az alaplemezt a csigával és a rögzített Nema -val, majd csavarja be mindkét oldalra az M2 csavarokat.
4. lépés: Az L298N és RTC bekötése
Ez a lépés megmutatja, hogyan kell bekötni az L298N & RTC -t
Kezdjük az L298N 8, 9, 10, 11 csapjaival
- 8. tű (fehér) - IN1
- 9. tű (lila) - IN2
- 10. tű (rózsaszín) - IN3
- PIN 11 (sárga) - IN4
Ezután a Nema 17 -et csatlakoztatjuk az L298N -hez
- OUT1 - 1 a NEMA -n
- OUT2 - 2 a NEMA -n
- OUT3 - 3 a NEMA -n
- OUT4 - 4 a NEMA -n
12V és Arduino csatlakoztatása az L298N -hez (12V -ot nem sikerült találni, ezért képzelje el a 9V -os akkumulátort tápellátásként)
- Volt 12V -ig
- Földelés a GND -hez
- 5–5 V a kenyértáblán
RTC csatlakoztatása Arduino -hoz
- GND - GND
- 5V -5V a kenyértáblán
- SDA - A5
- SCL - A4
Jumper Pins
Az összes jumper csapnak állítólag az L298N -en kell lennie
5. lépés: Kódolás megjegyzésekkel
A fenti képeken világosabb a kód
// Név: Parker Frederick
// A projekt neve: Auto Pet Feeder // Dátum: 2020. november 10., kedd // Tanár: M. Bonisteel // Leírás: Etesd kedvenceidet egy megadott időpontban!
// Libáriusok az általam használt dolgokhoz #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Azt mondja, hogy mit használ az RTC
// Itt állíthatja be az étel idejét
// Óra int mornFeedTime = 12; int nightFeedTime = 7; // Percek int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Másodpercek int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"}; // A hétköznapokká változtatja a normál napokat
const int feed = 200; // Ez az Ön lépése, tehát hányszor szeretné megpörgetni
Stepper myStepper (feed, 8, 9, 10, 11); // A csapok a Nema 17 -hez és a legtöbb más léptetőhöz
void setup () {Serial.begin (9600);
while (! Sorozat); // Ha az RTC nem működik, akkor megjeleníti a soros képernyőn, ha (! Rtc.begin ()) {Serial.println ("Nem sikerült megtalálni az RTC -t"); míg (1); }
// Ez megmondja, hogy a Valós idejű óra fut -e vagy sem, és megjeleníti a soros képernyőn, ha (! Rtc.isrunning ()) {Serial.println ("RTC fut!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Ez időt vesz igénybe a számítógépen, és használja az RTC -n
// Ha egy meghatározott időt szeretne beállítani a számítógép ideje helyett, akkor itt megteheti //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Év/Hónap/Nap/Óra/perc/másodperc} myStepper.setSpeed (200); // A kívánt sebesség
void loop () {DateTime now = rtc.now ();
// Ettől a változótól az aktuális órát választjuk stb int hr = now.hour (); int mi = most.perc (); int se = most.second ();
// Kódolja, így a beállított időpontban kiadja az ételt, és ötször forog, ezt a reggeli etetéshez
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Reggeli!"); myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
}
// Kódolja, így a beállított időben kiadja az ételt, és ötször forog, ez az éjszakai takarmány
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Vacsora!"); myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700);
myStepper.step (-feed); késleltetés (700); }
// Ez megjeleníti az YEAR, MONTH, DAY, HOUR, MINUTE, SECOND sorozatokat
Sorozatnyomat (most.év (), DEC); Serial.print ('/'); Serial.print (most.hónap (), DEC); Serial.print ('/'); Sorozatnyomat (most.nap (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Soros.nyomtatás (now.hour (), DEC); Serial.print (':'); Soros.nyomtatás (most.perc (), DEC); Serial.print (':'); Serial.print (most.second (), DEC); Sorozat.println (); }
Az RTC -hez használt webhely A legtöbb dolgot töröltem, kivéve az if utasításokat, amelyek azt mondják, hogy az RTC be vagy ki van -e kapcsolva. Főleg ezt a weboldalt használtam az RTC programozásának megtanulására
A Stepper motorhoz használt webhely ez segített megérteni, hogyan kell programozni a léptetőt futásra, igazából semmit sem tartottam tőle. Csak segített megérteni, hogyan kell kódolni
6. lépés: Problémák és hogyan javítottam ki őket
Néhány problémám volt
- Szükségem volt 12V -os tápegységre, csak 9V -os elem volt, egyet találtam, és gyorsan megoldódott.
- Amikor csatlakoztatom az L298N-t a NEMA 17-hez, rosszul voltak a vezetékek az A-n és az A-n, ami kissé remegni kezdett. Egyszerűen kijavítottam a vezetékek másik irányú cseréjével.
- Megpróbálta egyszerűbbé tenni a kódot, mert az if utasításban a myStepper.step (-feed); újra és újra rendetlennek tűnt. Tehát vissza kellett cserélnem.
- A képen látható rossz méretű alaplemezem volt, így egy kicsit 3D -t kellett nyomtatnom, és tökéletesen illeszkedik!
- A problémám az, hogy elakad, mivel a csiga túl kicsi, így elakad. A javítás egyszerű módja a csigának egy kis megnövelése!
Ajánlott:
Automatikus kutyaadagoló !!: 4 lépés
Automatikus kutyaadagoló !!: Könnyű, segítőkész és egészséges
Automatikus kutyaadagoló: 10 lépés
Automatikus kutyaadagoló: A projektemmel biztosítom, hogy amikor egyedül hagyja a kutyáját otthon, soha nem marad étel nélkül. Az automatikus adagoló " feltört " kukoricapehely -adagolóból. Az adagoló a kutyaeledel tartálya, a kerék az alján
WiFi automatikus növényadagoló tározóval - beltéri/kültéri művelési beállítás - automatikus vízi növények távoli megfigyeléssel: 21 lépés
WiFi automatikus növényadagoló tározóval - beltéri/kültéri művelési beállítások - Automatikus vízi növények távoli felügyelettel: Ebben az oktatóanyagban bemutatjuk, hogyan kell beállítani egy egyéni beltéri/kültéri növényadagoló rendszert, amely automatikusan öntözi a növényeket, és távolról felügyelhető az Adosia platform használatával
Automatikus kutyaadagoló: 5 lépés
Automatikus kutyaadagoló: Ez egy lépésről lépésre bemutató útmutató arról, hogyan lehet automatikus kutyatáplálót készíteni az Arduino használatával. Ez tökéletes, ha a nap nagy részében nincs otthon. Ahelyett, hogy kutyájának egész nap várakoznia kellene az ételre, vagy haza kell kacsáznia, hogy etesse, ez az eszköz
Raspberry Pi automatikus kutyaadagoló és élő videó streamer: 3 lépés
Raspberry Pi automatikus kutyaadagoló és élő videófolyam: Ez az én Raspberry PI hajtású automatikus kutyatápolóm. Délelőtt 11 -től este 9 -ig dolgoztam. A kutyám megőrül, ha nem etetem időben. Szörfözött a Google -nál automatikus ételadagolók vásárlásához, nem állnak rendelkezésre Indiában, és drága importáló