Sadržaj:
- Supplies
- Korak 1: Pregled dizajna
- Korak 2: Pregled koda
- Korak 3: Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo
- Korak 4: Ožičenje L298N & RTC
- Korak 5: Kodiranje s komentarima
- Korak 6: Problemi i kako sam ih riješio
Video: Automatska hranilica za pse: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Ovo je moj projekt automatske hranilice za kućne ljubimce. Moje ime je Parker, ja sam u razredu 11 i napravio sam ovaj projekt 11. studenog 2020. godine kao CCA (aktivnost koja završava tečaj) u ovom projektu pokazat ću vam kako napraviti automatsku hranilicu za kućne ljubimce s Arduino UNO. Možete izabrati vrijeme koje možete promijeniti. Hrana će se izdavati kroz puž i hraniti vaše ljubimce!
Supplies
Elektronika:
- Arduino UNO
- L298N - 10 USD - Upravlja Nema 17
- NEMA 17 - 10 $ - Okreće puž tako da se hrana razbacuje
- RTC (DS1307) - 10 $ - Daje vrijeme
- Napajanje od 12V - 5 USD - Omogućava sve
- Mini Breadboard - Za dodatni prostor ožičenja
- Žice za spajanje - sve povezuje
- Ženski na muški kabel - sve povezuje
Hardver:
- 3D tiskana nit - za 3D štampač
- 2 vijka M4 - Držite osnovnu ploču na mjestu
- 4 Nema 17 vijaka - držite nema pritisnutim
- PVC T 48 mm unutrašnja dimenzija 66 mm vanjska dimenzija - 3 USD
Alati:
- 3D štampač
- Drill
- Pištolj za lemljenje
Korak 1: Pregled dizajna
Dizajn hranilice za kućne ljubimce je vrlo jednostavan. Na vrh PVC T. ide lijevak, a zatim na stražnju stranu PVC T (kao što je prikazano na slici) ide poklopac sa pričvršćenim Nema 17. Tada će se Nema 17 gurnuti u stražnji dio svrdla koji se vidi gore, a vijak će otići sa strane da ga drži na mjestu kako ne bi deformirao rupu koja se vidi iznad!
Tada će svrdlo jednostavno gurnuti hranu iz cijevi u zdjelu!
Korak 2: Pregled koda
RTC & Steper ima biblioteku pod nazivom RTClib.h i Stepper.h koja dodaje pojednostavljeni kod za RTC & Stepper. Ako su naredbe if vrlo jednostavne, kaže se ako su sat i minute jednaki navedenom vremenu, rotirat će se nema koja će izdati hranu. Ostatak koda je vrlo lako razumljiv čak i za nekoga sa višednevnim iskustvom.
Korak 3: Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo
Prvo želite uzeti osnovnu ploču i pričvrstiti je na Nema 17 pomoću prethodno izrađenih rupa na osnovnoj ploči. Kada to učinite, želite da pričvrstite puž na Nema koristeći zadnju rupu na njemu. Zatim spojite osnovnu ploču sa svrdlom i pričvršćenim Nema, a zatim uvijte vijke M2 na svaku stranu.
Korak 4: Ožičenje L298N & RTC
Ovaj korak će vam reći kako spojiti L298N & RTC
Počet ćemo s pinovima 8, 9, 10, 11 do L298N
- Pin 8 (bijeli) na IN1
- Pin 9 (ljubičasta) na IN2
- Pin 10 (ružičasti) na IN3
- PIN 11 (žuti) do IN4
Zatim ćemo povezati Nema 17 sa L298N
- OUT1 do 1 na NEMA -i
- OUT2 do 2 na NEMA -i
- OUT3 do 3 na NEMA -i
- OUT4 do 4 na NEMA -i
Spajanje 12v i Arduina na L298N (Nisam mogao pronaći 12V pa zamislite 9V bateriju kao napajanje)
- Volti do 12V
- Teren prema GND
- 5V do 5V na Breadboard -u
Povezivanje RTC -a s Arduinom
- GND u GND
- 5V do 5V na Breadboard -u
- SDA do A5
- SCL do A4
Igle za kratkospojnike
Svi kratkospojnički zatiči trebali bi biti na L298N
Korak 5: Kodiranje s komentarima
Kod jasniji na gornjim slikama
// Ime: Parker Frederick
// Naziv projekta: Automatsko hranjenje kućnih ljubimaca // Datum: utorak, 10. novembar 2020. godine // Učitelj: M. Bonisteel // Desc: Nahranite svoje ljubimce u određeno vrijeme!
// Biblioteke za stvari koje sam koristio #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Kaže šta RTC koristi
// Ovdje postavljate vrijeme za hranu
// Sati int mornFeedTime = 12; int nightFeedTime = 7; // minute int mornFeedTimeM = 29; int nightFeedTimeM = 00; // sekunde int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"}; // Pretvara normalne dane u dane u sedmici
const int feed = 200; // Ovo su vaši koraci, pa koliko puta želite da se zavrti
Stepper myStepper (feed, 8, 9, 10, 11); // Vaše iglice za Nema 17 i većinu drugih stepera
void setup () {Serial.begin (9600);
while (! Serijski); // Ako RTC ne radi, prikazat će se na serijskom ekranu ako (! Rtc.begin ()) {Serial.println ("Nije moguće pronaći RTC"); while (1); }
// Ovo će vam reći radi li Sat za realno vrijeme ili ne i prikazati će ga na serijskom ekranu ako (! Rtc.isrunning ()) {Serial.println ("RTC radi!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Ovo će vašem računaru oduzeti vrijeme i koristiti ga na RTC -u
// Ako želite imati namješteno vrijeme umjesto računarskog, to možete učiniti ovdje //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Godina/mjesec/dan/sat/minut/sekunda} myStepper.setSpeed (200); // Brzina na kojoj želite da se okrene}
void loop () {DateTime now = rtc.now ();
// Ovo će ove varijable učiniti trenutnim trenutkom itd. Int hr = now.hour (); int mi = now.minute (); int se = now.second ();
// Kodirajte tako da će u zadano vrijeme izdati hranu i okretati se 5 puta, to je za jutarnju hranu
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Doručak!"); myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
}
// Kodirajte tako da će u zadano vrijeme izdati hranu i okretati se 5 puta, to je za noćno hranjenje
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Večera!"); myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700); }
// Ovo će prikazati GODINU, MJESEC, DAN, SAT, MINUTU, SEKUNDU u seriji
Serial.print (sada.godina (), DEC); Serial.print ('/'); Serial.print (now.month (), DEC); Serial.print ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (now.hour (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }
Web stranica koju sam koristio za RTC Izbrisao sam većinu stvari osim if naredbi koje govore je li RTC uključen ili isključen. Uglavnom sam koristio ovu web stranicu kako bih naučio programirati RTC
Web stranica koju sam koristio za Stepper motor mi je pomogla da shvatim kako programirati stepper za rad. Nisam ništa skrivao od toga. Samo mi je pomoglo da shvatim kako to kodirati
Korak 6: Problemi i kako sam ih riješio
Imao sam nekoliko problema
- Trebalo mi je 12v napajanje, imao sam samo 9v bateriju, našao sam jednu i brzo je riješen.
- Prilikom povezivanja L298N s NEMA 17 imao sam pogrešne žice na A i A- zbog čega je malo treperilo. Jednostavno sam to popravio promjenom žica na drugi način.
- Pokušao je učiniti kod jednostavnijim jer u if naredbi myStepper.step (-feed); uvijek iznova izgledao neuredno. Pa sam morao da ga vratim.
- Imao sam osnovnu ploču pogrešne veličine kao što se vidi na slici pa sam morao malo 3D ispisati novu i savršeno mi pristaje!
- Problem koji imam je da se zaglavi jer je svrdlo premalo pa se zaglavljuje jednostavan način na koji to mogu popraviti je povećavanjem puža za malu količinu!
Preporučuje se:
Automatska hranilica za pse: 4 koraka
Automatska hranilica za pse !!: Lako, korisno i zdravo
Automatska hranilica za kućne ljubimce pomoću AtTiny85: 6 koraka
Automatsko uvlačenje kućnih ljubimaca pomoću AtTiny85: O trabalho Automatsko uvlačenje kućnih ljubimaca pomoću AtTiny85 iz PET -a
Izuzetno elegantna automatska hranilica za mačke: 3 koraka (sa slikama)
Izuzetno elegantna automatska hranilica za mačke: Jojo je super zgodna mačka. Volim ga u svakom pogledu, osim što me stalno budi u 4 sata ujutro radi hrane, pa je vrijeme da nabavim automatsku hranilicu za mačke da mi spasi san. Međutim, on je tako zgodan da kad želim pronaći pravo
Alexa hranilica za pse: 6 koraka (sa slikama)
Upravljač za pse sa Alexa kontrolom: Ovo je naš pas Bailey. Dijelom je graničarski ovčar i australijski govedar, pa je ponekad pametnija od svog dobra, posebno kada je u pitanju isticanje vremena i saznanje kada bi trebala večerati. Obično je pokušavamo nahraniti oko 18 sati
Automatska hranilica za pse: 5 koraka
Automatska hranilica za pse: Ovo je korak po korak vodič o tome kako napraviti automatsku hranilicu za pse pomoću Arduina. Ovo je savršeno ako ste veći dio dana izvan kuće. Umjesto da vaš pas mora cijeli dan čekati na hranu, ili da se natjerate da ga nahranite, ovaj uređaj