Мазмуну:
- Жабдуулар
- 1 -кадам: Дизайнды карап чыгуу
- 2 -кадам: Кодду карап чыгуу
- 3 -кадам: Nema 17'ди Base Plate & Augerге тиркөө
- 4 -кадам: W2 L298N & RTC
- 5 -кадам: Комментарийлер менен коддоо
- 6 -кадам: Көйгөйлөр жана аларды кантип чечтим
Video: Auto Dog Feeder: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Бул менин Auto Pet Feeder долбоорум. Менин атым Паркер, мен 11 -класста окуйм жана бул долбоорду 2020 -жылдын 11 -ноябрында CCA (Course Culminating Activity) катары түздүм, бул долбоордо мен сизге Arduino UNO менен үй жаныбарларын автоматтык түрдө кантип азыктандырууну көрсөтөм. Сиз өзгөртө турган убакытты тандай аласыз. Тамак шнек аркылуу берилип, үй жаныбарларыңызды азыктандырат!
Жабдуулар
Электроника:
- Arduino UNO
- L298N - 10 $ - Nema 17ди башкарат
- NEMA 17 - 10 $ - Шнек бурулат, ошондо тамак -аш тарайт
- RTC (DS1307) - 10 $ - Убакыт берет
- 12V Электр энергиясы менен камсыздоо - 5 $ - Баарын кубаттайт
- Mini Breadboard - кошумча зымдар үчүн
- Jumper Wires - Баарын бириктирет
- Аялдан Эркекке зым - Баарын туташтырат
Аппараттык:
- 3D принтер жип - 3d принтер үчүн
- 2 M4 болт - Негизги плитаны кармаңыз
- 4 Nema 17 болт - Неманы кармап туруңуз
- ПВХ Т 48мм ички өлчөм 66мм сырткы өлчөм - 3 $
Куралдар:
- 3D принтер
- Бургулоо
- Пистолет
1 -кадам: Дизайнды карап чыгуу
Үй жаныбарларын багуунун дизайны абдан жөнөкөй. Поливинилхлорид Т -нын үстүнө бункер барат. Андан кийин ПВХ Тнын арт жагында (сүрөттө көрсөтүлгөндөй) Nema 17 тиркелет. Андан кийин Nema 17 жогоруда көрүнүшү мүмкүн болгон бургучтун арткы жагына түртүлөт жана болт капталга кирип кетет, ошондуктан ал тешикти бузбайт!
Ошондо шнек тамакты түтүктөн чыгарып, идишке салып коёт!
2 -кадам: Кодду карап чыгуу
RTC & Stepperде RTClib.h жана Stepper.h деп аталган китепкана бар, ал RTC & Stepper үчүн жөнөкөйлөтүлгөн кодду кошот. If билдирүүлөрү өтө жөнөкөй, эгерде саат жана мүнөт айтылган убакытка барабар болсо, анда ал тамакты таратуучу неманы айлантат. Коддун калганын бир күндүк тажрыйбасы бар адам үчүн да түшүнүү абдан оңой.
3 -кадам: Nema 17'ди Base Plate & Augerге тиркөө
Биринчиден, сиз өзүңүздүн базалык табакчаңызды алып, Nema 17ге базалык плитанын алдын ала даярдалган тешиктерин колдонуп бекиңиз. Муну жасагандан кийин, шнекти арткы тешикти колдонуп, Немага бекиткиңиз келет. Андан кийин базалык плитаны шнек менен туташтырыңыз жана Нема тиркелди, андан кийин M2 болтторун ар бир тарапка бурап коюңуз.
4 -кадам: W2 L298N & RTC
Бул кадам L298N & RTCге кантип зым салуу керектигин айтып берет
Биз L298Nге 8, 9, 10, 11 төөнөгүчтөрдөн баштайбыз
- PIN 8 (Ак) IN1ге
- Pin 2 (Purple) IN2ге
- PIN 10 (кызгылт) IN3кө
- PIN 11 (Сары) IN4ке
Андан кийин биз Nema 17ди L298N менен туташтырабыз
- NEMAда OUT1ден 1ге чейин
- NEMAда OUT2ден 2ге чейин
- NEMAда OUT3төн 3кө чейин
- NEMAда OUT4төн 4кө чейин
12v менен Arduino'ду L298N менен туташтыруу (12В табылган жок, андыктан 9В батареяны кубат катары элестетип көрүңүз)
- Вольт 12 В чейин
- GND үчүн негиз
- Нан тактасында 5Втан 5Вга чейин
RTC Arduino менен туташууда
- GNDден GNDге
- Нан тактасында 5Втан 5Вга чейин
- SDAдан A5ке чейин
- SCLден A4кө чейин
Jumper Pins
Бардык секирүүчү казыктар L298Nде болушу керек
5 -кадам: Комментарийлер менен коддоо
Жогорудагы сүрөттөрдөгү код ачык
// Аты -жөнү: Паркер Фредерик
// Долбоордун аталышы: Үй жаныбарларын багуучу // Дата: Шейшемби, 10 -ноябрь, 2020 -жыл // Мугалим: M. Bonisteel // Desc: Үй жаныбарларыңызды белгиленген убакта азыктандырыңыз!
// Мен колдонгон нерселер үчүн китепканачылар #include #include #include "RTClib.h"
RTC_DS1307 rtc; // RTC эмнени колдонуп жатканын айтат
// Бул жерде тамак үчүн убакытты белгилейсиз
// Сааттар int mornFeedTime = 12; int nightFeedTime = 7; // мүнөттөр mornFeedTimeM = 29; int nightFeedTimeM = 00; // mornFeedTimeS = 20 секунд; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"Жекшемби", "Дүйшөмбү", "Шейшемби", "Шаршемби", "Бейшемби", "Жума", "Ишемби"}; // Кадимки күндөрдү жуманын күндөрүнө айландырат
const int feed = 200; // Бул сиздин кадамыңыз, ошондуктан аны канча жолу айландыргыңыз келет
StepStepper (тоют, 8, 9, 10, 11); // Сиздин Nema 17 үчүн казыктарыңыз жана башка көптөгөн кадамдар
void setup () {Serial.begin (9600);
while (! Сериялык); // Эгерде RTC иштебесе, ал аны сериялык экранда көрсөтөт, эгерде (! Rtc.begin ()) {Serial.println ("RTC табылган жок"); while (1); }
// Бул реалдуу убакыт сааты иштеп жатабы же жокпу, айтып берет жана аны сериялык экранда көрсөтөт, эгерде (! Rtc.isrunning ()) {Serial.println ("RTC иштеп жатат!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Бул сиздин компьютериңиздин убактысын алат жана аны RTCде колдонот
// Эгерде сиз компьютер убактысынын ордуна белгиленген убакытка ээ болгуңуз келсе, анда бул жерде кыла аласыз //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Жыл/Ай/Күн/Саат/Мүнөт/Секунд} myStepper.setSpeed (200); // Каалаган ылдамдык}
void loop () {DateTime now = rtc.now ();
// Бул өзгөрмөлөрдү учурда турган убакка айландырат ж.б. int hr = now.hour (); int mi = now.minute (); int se = now.second ();
// Ошентип кодду белгиленген убакта ал тамак -ашты таратат жана ал 5 жолу айланат, эгер бул эртең мененки тамак үчүн болсо
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Breakfast!"); myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
}
// Кодду белгиленген убакта ал тамакты таратат жана 5 жолу айланат, бул түнкү тамак үчүн
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Кечки тамак!"); myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700);
myStepper.step (-feed); кечигүү (700); }
// Бул серияда ЖЫЛ, АЙ, КҮН, СААТ, МИНУТ, ЭКИНЧИНИ көрсөтөт
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 (); }
Мен РТК үчүн колдонгон веб -сайт, эгерде РТКнын күйүк же өчүк экенин билдирүүчү билдирүүлөрдөн башка нерселердин көбүн өчүрдүм. Мен негизинен бул веб -сайтты RTC программасын үйрөнүү үчүн колдондум
Мен Stepper мотору үчүн колдонгон веб -сайт бул кадамды кантип иштетүүнү түшүнүүгө жардам берди, мен андан эч нерсе кармаган жокмун. Бул жөн эле мага аны кантип коддоо керектигин түшүнүүгө жардам берди
6 -кадам: Көйгөйлөр жана аларды кантип чечтим
Менде болгон бир нече көйгөйлөр
- Мага 12в электр энергиясы керек болчу, менде 9в батарейка бар болчу, мен аны таптым жана ал тез чечилди.
- L298Nди NEMA 17 менен туташтырууда менде зымдар А жана Ада туура эмес болчу, бул аны бир аз чайпалткан. Мен жөн эле зымдарды башка жакка алмаштырып оңдоп койдум.
- Кодду жөнөкөй кылууга аракет кылдым, анткени if операторунда myStepper.step (-feed); кайра -кайра башаламан көрүндү. Ошентип, мен аны кайра өзгөртүүгө туура келди.
- Менде сүрөттө көрүнгөндөй туура эмес өлчөмдөгү базалык табак бар болчу, андыктан жаңысын бир аз 3D басып чыгарууга туура келди жана ал эң сонун дал келди!
- Мендеги көйгөй - бул бургу кичинекей болгондуктан, тыгылып калат, ошондуктан аны оңдоонун жөнөкөй жолу - бургу кичинекей өлчөмдө чоңойтуу!
Сунушталууда:
Bird Feeder V2.0 Monitor: 12 кадам (Сүрөттөр менен)
Bird Feeder Monitor V2.0: Бул биздин канаттууларга келген канаттуулардын санын жана убактысын көзөмөлдөө, сүрөткө тартуу жана жазуу долбоору. Бул долбоор үчүн бир нече Raspberry Pi (RPi) колдонулган. Алардын бири Adafruit CAP1188 сыйымдуу сенсор катары табылган, жазылган
Dog Dog Trainer: 5 кадам
Dog Dog Trainer: AKC маалыматы боюнча, (https://www.akc.org/expert-advice/nutrition/how-many-times-a-day-should-a-dog-eat/) тоют иттер үчүн абдан маанилүү, жана кутунун өлчөмү дагы ит күнүнө жей турган жемдердин санын чектейт, "Ветеринардык
Alexa Controlled Dog Feeder: 6 Steps (Сүрөттөр менен)
Alexa Controlled Dog Feeder: Бул биздин ит Бэйли. Ал чек ара Колли менен австралиялык уй итинин бир бөлүгү, ошондуктан кээде ал өзүнүн пайдасынан акылдуураак, айрыкча убакытты айтуу жана кечки тамакты качан жеш керек экенин билүү. Адатта, биз аны саат 18:00 чамасында тамактандырууга аракет кылабыз
Адамдын Auto Feeder 0.5: 9 кадамдары
Human Auto Feeder 0.5: (sh*tty) фидер бот жасоо боюнча эң биринчи көрсөтмөмө кош келиңиз! Мазмуну: материалдар & Т
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: 3 кадам
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: Бул менин Raspberry PI менен иштөөчү автоматтык ит багуучу. Мен эртең мененки саат 11ден кечки 9га чейин иштечүмүн. Мен аны убагында тамактандырбасам, менин итим жинди болуп калат. Автоматтык түрдө азыктандыргычтарды сатып алуу үчүн google менен таанышыңыз, алар Индияда жок жана импорттоо кымбат