Obsah:
- Zásoby
- Krok 1: Prehľad dizajnu
- Krok 2: Prehľad kódu
- Krok 3: Pripojenie Nema 17 k základnej doske a šneku
- Krok 4: Zapojenie L298N a RTC
- Krok 5: Kódovanie pomocou komentárov
- Krok 6: Problémy a ako som ich opravil
Video: Automatický podávač psov: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Toto je môj projekt automatického podávača domácich zvierat. Moje meno je Parker, som v 11. ročníku a tento projekt som uskutočnil 11. novembra 2020 ako CCA (aktivita kulminujúca kurz). V tomto projekte vám ukážem, ako sa robí automatický podávač zvierat s Arduino UNO. Môžete si vybrať čas, ktorý môžete zmeniť. Jedlo bude dávkovať pomocou šneku a kŕmiť vašich domácich miláčikov!
Zásoby
Elektronika:
- Arduino UNO
- L298N - 10 $ - Ovláda Nema 17
- NEMA 17 - 10 $ - Otočí šnekom, aby sa jedlo dávkovalo
- RTC (DS1307) - 10 $ - Udáva čas
- Napájanie 12V - 5 $ - Napája všetko
- Mini Breadboard - Na zvýšenie priestoru pre zapojenie
- Prepojovacie vodiče - spája všetko
- Ženské a mužské vodiče - spája všetko
Hardvér:
- Vlákno pre 3D tlač - pre 3D tlačiareň
- 2 skrutky M4 - základnú dosku držte na mieste
- 4 skrutky Nema 17 - Podržte nema
- PVC T 48 mm vnútorný rozmer 66 mm vonkajší rozmer - 3 $
Náradie:
- 3D tlačiareň
- Vŕtačka
- Spájkovacia pištoľ
Krok 1: Prehľad dizajnu
Konštrukcia podávača pre domáce zvieratá je veľmi jednoduchá. Na vrchnú časť PVC T smeruje násypka. Potom na zadnú stranu PVC T (ako je znázornené na obrázku) prechádza kryt, na ktorý je pripevnený Nema 17. Potom bude Nema 17 zatlačená do zadnej časti šneku, ktorú je možné vidieť vyššie, a do strany pôjde skrutka, ktorá ju udrží na mieste, aby nedeformovala otvor, ktorý je možné vidieť vyššie!
Potom šnek jednoducho vytlačí jedlo z potrubia do misky!
Krok 2: Prehľad kódu
RTC a stepper majú knižnicu RTClib.h a Stepper.h, ktorá pridáva zjednodušený kód pre RTC & Stepper. Príkazy if sú veľmi jednoduché, hovorí sa, že ak sa hodina a minúta rovná uvedenému času, otočí nema, ktorý vydá jedlo. Zvyšok kódu je veľmi ľahko zrozumiteľný aj pre niekoho, kto má deň skúseností.
Krok 3: Pripojenie Nema 17 k základnej doske a šneku
Najprv musíte vziať svoju základnú dosku a pripevniť ju k svojmu Nema 17 pomocou vopred pripravených otvorov na základnej doske. Akonáhle to urobíte, chcete pripevniť šnek k Nemovi pomocou zadného otvoru. Potom spojte základnú dosku s pripevneným šnekom a Nemou a potom zaskrutkujte skrutky M2 na každú stranu.
Krok 4: Zapojenie L298N a RTC
Tento krok vám povie, ako prepojiť L298N & RTC
Začneme s kolíkmi 8, 9, 10, 11 až L298N
- Kolík 8 (biely) na IN1
- Kolík 9 (fialový) na IN2
- Kolík 10 (ružový) na IN3
- PIN 11 (žltý) na IN4
Ďalej budeme pripájať Nema 17 k L298N
- OUT1 až 1 na NEMA
- OUT2 až 2 na NEMA
- OUT3 až 3 na NEMA
- OUT4 až 4 na NEMA
Pripojenie 12 V a Arduina k L298N (Nepodarilo sa nájsť 12 V, takže si predstavte 9 V batériu ako napájanie)
- Volty až 12V
- Zem na GND
- 5V až 5V na doske
Pripojenie RTC k Arduinu
- GND až GND
- 5V až 5V na doske
- SDA až A5
- SCL na A4
Prepojovacie kolíky
Všetky kolíkové prepojky by mali byť na L298N
Krok 5: Kódovanie pomocou komentárov
Kód je jasnejší na obrázkoch vyššie
// Meno: Parker Frederick
// Názov projektu: Auto Pet Feeder // Dátum: utorok, 10. november 2020 // Učiteľ: M. Bonisteel // Popis: Nakŕmte svojich miláčikov v uvedenom čase!
// Knižnice pre veci, ktoré som použil #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Hovorí, čo RTC používam
// Tu nastavíte čas na jedlo
// Hodiny int mornFeedTime = 12; int nightFeedTime = 7; // Minúty int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekundy int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {„nedeľa“, „pondelok“, „utorok“, „streda“, „štvrtok“, „piatok“, „sobota“}; // Z bežných dní urobia dni v týždni
const int feed = 200; // Toto sú vaše kroky, koľkokrát chcete, aby sa točil
Stepper myStepper (krmivo, 8, 9, 10, 11); // Vaše kolíky pre Nema 17 a väčšinu ostatných stepperov
void setup () {Serial.begin (9600);
while (! Serial); // Ak RTC nefunguje, zobrazí sa na sériovej obrazovke, ak (! Rtc.begin ()) {Serial.println ("Nepodarilo sa nájsť RTC"); pričom (1); }
// To vám povie, či sú hodiny v reálnom čase spustené a či ich zobrazia na sériovej obrazovke, ak (! Rtc.isrunning ()) {Serial.println ("RTC beží!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Vášmu počítaču to zaberie čas a použije ho v RTC
// Ak chcete mať namiesto počítačového času nastavený čas, môžete to urobiť tu //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // rok/mesiac/deň/hodina/minúta/sekunda} myStepper.setSpeed (200); // Rýchlosť, ktorou sa má otáčať}
void loop () {DateTime now = rtc.now ();
// Vďaka tomu sa tieto premenné stanú hodinou, ktorá je práve teraz atď. Int hr = now.hour (); int mi = now.minute (); int se = now.second ();
// Kódujte tak, že v nastavenom čase vydá jedlo a točí sa 5 -krát, ak ide o ranné kŕmenie
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Raňajky!"); myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
}
// Kódujte tak, aby v nastavenom čase jedlo vydalo a otočilo sa 5 -krát, toto je pre nočné kŕmenie
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Večera!"); myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700);
myStepper.step (-feed); oneskorenie (700); }
// V seriáli sa zobrazí ROK, MESIAC, DEŇ, HODINA, MINUTA, SECOND
Serial.print (now.year (), 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 (); }
Webová stránka, ktorú som používal pre RTC Vymazal som väčšinu vecí okrem vyhlásení if, ktoré uvádzajú, či je alebo nie je RTC zapnuté alebo vypnuté. Tento web som používal hlavne na to, aby som sa naučil programovať RTC
Webová stránka, ktorú som použil pre krokový motor, mi pomohla pochopiť, ako naprogramovať spustenie steppera, v skutočnosti som z toho nič nezachoval. Pomohlo mi to pochopiť, ako to kódovať
Krok 6: Problémy a ako som ich opravil
Mal som niekoľko problémov
- Potreboval som napájanie 12 V, mal som iba 9 V batériu, našiel som jednu a rýchlo sa to vyriešilo.
- Pri pripájaní L298N k NEMA 17 som mal nesprávne zapojené vodiče na A a A-, čo spôsobilo, že to trochu chvilo. Jednoducho som to opravil zmenou vodičov iným spôsobom.
- Pokúsil sa zjednodušiť kód, pretože v príkaze if myStepper.step (-feed); znova a znova to vyzeralo chaoticky. Tak som to musel zmeniť späť.
- Mal som nesprávnu veľkosť základovej dosky, ako je vidieť na obrázku, takže som musel 3D tlačiť trochu novú a perfektne sedela!
- Problém, ktorý mám, je, že sa zasekáva, pretože šnek je malý, takže sa zasekáva jednoduchým spôsobom, ktorý môžem opraviť, je zväčšenie šneku v malom množstve!
Odporúča:
Automatický podávač psov !!: 4 kroky
Automatické krmítko pre psov !!: Jednoduché, užitočné a zdravé
WiFi automatický podávač rastlín s rezervoárom - nastavenie vnútornej/vonkajšej kultivácie - vodné rastliny automaticky s diaľkovým monitorovaním: 21 krokov
WiFi automatický podávač rastlín s rezervoárom - nastavenie vnútornej/vonkajšej kultivácie - vodné rastliny automaticky s diaľkovým monitorovaním: V tomto tutoriáli vám ukážeme, ako nastaviť vlastný vnútorný/vonkajší systém podávača rastlín, ktorý automaticky polieva rastliny a je možné ho diaľkovo monitorovať pomocou platformy Adosia
Podávač krmiva pre psov Alexa: 6 krokov (s obrázkami)
Alexa Controlled Dog Feeder: Toto je náš pes Bailey. Je súčasťou border kólie a austrálskeho honáckeho psa, takže niekedy je múdrejšia ako vlastné dobro, najmä pokiaľ ide o určovanie času a vedieť, kedy by mala jesť večeru. Obvykle sa pokúšame nakŕmiť ju okolo 18:00
Automatický podávač psov: 5 krokov
Automatický podávač psov: Toto je krok za krokom návod, ako vytvoriť automatický podávač psov pomocou Arduina. Je to perfektné, ak ste väčšinu dňa mimo domu. Toto zariadenie, namiesto toho, aby váš pes musel celý deň čakať na jedlo, alebo sa máte kačať kŕmiť domov, ho
Automatický podávač psov Raspberry Pi a živé video streamer: 3 kroky
Automatický podávač psov Raspberry Pi a živé video streamer: Toto je môj automatický podávač psov poháňaný Raspberry PI. Pracoval som od rána od 11:00 do 21:00. Môj pes sa zblázni, ak ho nekŕmim včas. Surfoval na Googli, aby si kúpil automatické podávače potravín, nie sú k dispozícii v Indii a drahý dovoz