Satura rādītājs:
- Piegādes
- 1. darbība: dizaina pārskats
- 2. darbība. Koda pārskats
- 3. darbība: Nema 17 piestiprināšana pie pamatplāksnes un gliemeža
- 4. darbība: L298N un RTC vadu savienošana
- 5. darbība. Kodēšana ar komentāriem
- 6. darbība. Problēmas un to novēršana
Video: Auto suņu padevējs: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Šis ir mans Auto Pet Feeder projekts. Mani sauc Pārkers, es esmu 11. klasē, un es izveidoju šo projektu 2020. gada 11. novembrī kā CCA (Course Culminating Activity) šajā projektā, un es jums parādīšu, kā izveidot automātisku mājdzīvnieku barotavu ar Arduino UNO. Jūs varat izvēlēties laiku, kuru varat mainīt. Ēdiens tiks izsniegts caur gliemezi un pabaros jūsu mājdzīvniekus!
Piegādes
Elektronika:
- Arduino UNO
- L298N - 10 $ - kontrolē Nema 17
- NEMA 17 - 10 $ - pagriež gliemežvāku, lai ēdiens izdalītos
- RTC (DS1307) - 10 $ - dod laiku
- 12 V barošanas avots - 5 $ - nodrošina visu
- Mini maizes dēlis - papildu elektroinstalācijas vietai
- Džemperu vadi - savieno visu
- Vadi no sievietes līdz vīrietim - savieno visu
Aparatūra:
- 3D drukas pavediens - 3D printerim
- 2 M4 skrūves - turiet pamatplāksni vietā
- 4 Nema 17 skrūves - turiet nema uz leju
- PVC T 48mm iekšējais izmērs 66mm ārējais izmērs - 3 $
Rīki:
- 3D printeris
- Urbis
- Lodēšanas lielgabals
1. darbība: dizaina pārskats
Mājdzīvnieku barotavas dizains ir ļoti vienkāršs. Uzpildes tvertne iet uz PVC T augšdaļas. Tad PVC T aizmugurē iet vāks (kā parādīts attēlā) ar Nema 17. Pēc tam Nema 17 tiks iebīdīts gliemeža aizmugurē, ko var redzēt augšā, un skrūve ieslēgsies sānos, lai to noturētu vietā, lai tas nedeformētu caurumu, kas redzams iepriekš!
Tad gliemežvāks vienkārši izspiedīs ēdienu no caurules un bļodā!
2. darbība. Koda pārskats
RTC & Stepper ir bibliotēka ar nosaukumu RTClib.h un Stepper.h, kas pievieno vienkāršotu kodu RTC & Stepper. Ja apgalvojumi ir ļoti vienkārši, tiek teikts, ja stunda un minūtes ir vienādas ar minēto laiku, tas pagriezīs nema, kas izdalīs ēdienu. Pārējais kods ir ļoti viegli saprotams pat kādam, kam ir dienas pieredze.
3. darbība: Nema 17 piestiprināšana pie pamatplāksnes un gliemeža
Vispirms vēlaties paņemt pamatplāksni un piestiprināt to pie Nema 17, izmantojot iepriekš izgatavotos caurumus uz pamatnes. Kad tas ir izdarīts, vēlaties pievienot gliemežvāku Nema, izmantojot aizmugurējo caurumu. Pēc tam savienojiet pamatplāksni ar pievienoto gliemežvāku un Nema, pēc tam ieskrūvējiet M2 skrūves katrā pusē.
4. darbība: L298N un RTC vadu savienošana
Šis solis jums pateiks, kā pieslēgt L298N un RTC
Mēs sāksim ar L298N tapām 8, 9, 10, 11
- 8. tapa (balta) līdz IN1
- Piespraude 9 (violeta) līdz IN2
- Piespraude 10 (rozā) līdz IN3
- PIN 11 (dzeltens) līdz IN4
Tālāk mēs savienosim Nema 17 ar L298N
- OUT1 līdz 1 uz NEMA
- OUT2 līdz 2 uz NEMA
- OUT3 līdz 3 uz NEMA
- OUT4 līdz 4 uz NEMA
12v un Arduino savienošana ar L298N (nevarēja atrast 12V, tāpēc iedomājieties 9V akumulatoru kā strāvu)
- Volti līdz 12 V.
- Zeme līdz GND
- 5V līdz 5V uz maizes dēļa
RTC savienošana ar Arduino
- GND līdz GND
- 5V līdz 5V uz maizes dēļa
- SDA līdz A5
- SCL līdz A4
Jumper Pins
Visām džemperu tapām vajadzētu būt uz L298N
5. darbība. Kodēšana ar komentāriem
Iepriekš attēlos kods ir skaidrāks
// Vārds: Pārkers Frederiks
// Projekta nosaukums: Auto Pet Feeder // Datums: Otrdiena, 2020. gada 10. novembris // Skolotājs: M. Bonisteel // Apraksts: Barojiet savus mājdzīvniekus norādītajā laikā!
// Libāri par lietām, kuras es izmantoju #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Saka, ko izmanto RTC
// Šeit jūs iestatāt ēdienu laiku
// Stundas int mornFeedTime = 12; int nightFeedTime = 7; // Minūtes int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekundes int mornFeedTimeS = 20; int nightFeedTimeS = 00;
ogļu dienasOfTheWeek [7] [12] = {"svētdiena", "pirmdiena", "otrdiena", "trešdiena", "ceturtdiena", "piektdiena", "sestdiena"}; // Liek parastajām dienām pārvērsties par nedēļas dienām
const int barība = 200; // Šīs ir jūsu darbības, tāpēc cik reizes vēlaties, lai tā griežas
Stepper myStepper (plūsma, 8, 9, 10, 11); // Jūsu tapas Nema 17 un vairumam citu steperu
void setup () {Serial.begin (9600);
kamēr (! Seriāls); // Ja RTC nedarbojas, tas to parādīs sērijas ekrānā, ja (! Rtc.begin ()) {Serial.println ("Nevarēja atrast RTC"); kamēr (1); }
// Tas jums pateiks, vai reāllaika pulkstenis darbojas vai nē, un tas to parādīs sērijas ekrānā, ja (! Rtc.isrunning ()) {Serial.println ("RTC darbojas!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Tas aizņems jūsu datora laiku un izmantos to RTC
// Ja vēlaties, lai datora laika vietā būtu noteikts laiks, to varat izdarīt šeit //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Gads/Mēnesis/Diena/Stunda/Minūte/Sekunde} myStepper.setSpeed (200); // Ātrums, kādā vēlaties pagriezties}
void loop () {DateTime now = rtc.now ();
// Tas padarīs šos mainīgos par pašreizējo stundu utt. Int hr = now.hour (); int mi = tagad.minūte (); int se = tagad.second ();
// Kodējiet, lai noteiktā laikā tas izdalītu ēdienu, un tas grieztos 5 reizes, ja tas ir paredzēts rīta barošanai
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Brokastis!"); myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
}
// Kodējiet, lai noteiktā laikā tas izdalītu ēdienu un tas grieztos 5 reizes, tas ir paredzēts nakts barošanai
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Vakariņas!"); myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700);
myStepper.step (-padeve); kavēšanās (700); }
// Sērijā tiks parādīts YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
Sērijas nospiedums (tagad.gads (), DEC); Serial.print ('/'); Serial.print (tagad.mēnesis (), DEC); Serial.print ('/'); Sērijas nospiedums (tagad.diena (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Sērijas nospiedums (tagad.stunda (), DEC); Serial.print (':'); Sērijas nospiedums (tagad.minūte (), DEC); Serial.print (':'); Sērijas nospiedums (tagad.second (), DEC); Sērijas.println (); }
Vietne, kuru izmantoju RTC, es izdzēsu lielāko daļu citu lietu, izņemot paziņojumus, kuros teikts, vai RTC ir ieslēgts vai izslēgts. Es galvenokārt izmantoju šo vietni, lai uzzinātu, kā programmēt RTC
Tīmekļa vietne, ko izmantoju Stepper motoram, palīdzēja man saprast, kā programmēt stepperu, lai es to palaistu. Tas tikai palīdzēja man saprast, kā to kodēt
6. darbība. Problēmas un to novēršana
Man bija dažas problēmas
- Man vajadzēja 12 V barošanas avotu, man bija tikai 9 V akumulators, kuru es atradu, un tas tika ātri atrisināts.
- Pieslēdzot L298N ar NEMA 17, man bija nepareizi vadi uz A un A-, kas padarīja to mazliet nervozu. Es to vienkārši novērsu, nomainot vadus citā veidā.
- Mēģināja padarīt kodu vienkāršāku, jo if paziņojumā myStepper.step (-feed); atkal un atkal izskatījās nekārtīgi. Tāpēc man tas bija jāmaina atpakaļ.
- Man bija nepareiza izmēra pamatplāksne, kā redzams attēlā, tāpēc man nācās nedaudz izdrukāt jaunu, un tas derēja perfekti!
- Man ir tāda problēma, ka tas ir iestrēdzis, jo gliemežvāks ir pārāk mazs, tāpēc tas var iestrēgt vienkāršā veidā, kā es varu to novērst, palielinot gliemežvāku.
Ieteicams:
Automātiskais padevējs: 3 soļi
Automātiskā barotava: par ko ir mūsu projekts? Mūsu projekts ir automātiska barotava suņiem. Tas ir vienkāršs suņa barošanas veids. Piemēram, ja jūs dodaties ceļojumā un nepazīstat nevienu, kas varētu pabarot jūsu suni jūsu vietā. Automātiskais padevējs būs atbildīgs
Projekta padevējs: 14 soļi
Projekta padevējs: Vai kādreiz esat vēlējies pabarot savus mājdzīvniekus, atrodoties prom no mājām vai vienkārši no dīvāna? Ja tā, tad šis projekts ir domāts jums! Project Feeder ir atvērtā koda projekts, kas ļauj barot savus mājdzīvniekus automātiski vai manuāli no tālruņa vai datora. Y
Suņu suņu treneris: 5 soļi
Suņu suņu treneris: Saskaņā ar AKC, (https://www.akc.org/expert-advice/nutrition/how-many-times-a-day-should-a-dog-eat/) maltītes porcijas lielums barība suņiem ir būtiska, un kastītes izmērs ierobežoja arī barības skaitu, ko suns varētu apēst dienā: “Vet
Alexa kontrolētais suņu padevējs: 6 soļi (ar attēliem)
Alexa kontrolētā suņu barotava: Šis ir mūsu suns Beilija. Viņa ir daļa no Borderkollija un Austrālijas liellopu suņa, tāpēc dažreiz viņa ir gudrāka par savu labumu, it īpaši, ja runa ir par laika noteikšanu un zināšanu, kad viņai vajadzētu ēst vakariņas. Parasti mēs cenšamies viņu pabarot ap 18.00
Raspberry Pi automātiskais suņu padevējs un tiešraides video straumētājs: 3 soļi
Raspberry Pi automātiskais suņu padevējs un tiešraides video straumētājs: Šī ir mana Raspberry PI automātiskā suņu barotava. Es strādāju no rīta no 11:00 līdz 21:00. Mans suns kļūst traks, ja es viņu nebarošu laikā. Sērfojis Google, lai iegādātos automātiskās pārtikas padeves ierīces, tās nav pieejamas Indijā un dārgas importa iespējas