This shows you the differences between two versions of the page.
pm:prj2022:cristip:automaticfeederforpets [2022/05/16 11:57] ana_daria.corpaci |
pm:prj2022:cristip:automaticfeederforpets [2022/05/31 18:47] (current) ana_daria.corpaci |
||
---|---|---|---|
Line 8: | Line 8: | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | * **Schema Bloc** | + | == Modul de funcționare == |
- | {{ :pm:prj2022:cristip:block_diagram.jpg?600 |}} | + | Vor exista 3 modalități prin care va fi acționat automatul: |
+ | * Stăpânul va putea folosi propriul său telefon mobil prin intermediul modulului Bluetooth conectat la Arduino | ||
+ | * Va exista un buton care, odată apăsat, va acționa servomotorul. | ||
+ | * Prin modulul RTC se va putea ține evidența timpului. Arduino va verifica daca ora actuală corespunde cu ora setată în prealabil de stăpân, caz în care va fi acționat servomotorul. Va fi conectat, de asemenea, un modul LCD prin care se va afișa constant ultima oră la care animalul a fost hrănit, respectiv timpul rămăs până la următoarea masă. | ||
+ | == Schema Bloc == | ||
+ | {{ :pm:prj2022:cristip:block_diagram_bun.jpg?600 |}} | ||
+ | ===== Hardware Design ===== | ||
+ | |||
+ | == Listă de piese == | ||
+ | * Arduino UNO | ||
+ | * Servomotor SG90 9g | ||
+ | * Modul RTC DS3231 | ||
+ | * Modul Bluetooh HC-02 | ||
+ | * Modul LCD 16x2 I2C | ||
+ | * Buton | ||
+ | * Fire de legătură | ||
+ | * Rezistență | ||
+ | |||
+ | == Schema electrică == | ||
+ | {{ :pm:prj2022:cristip:schema_electrica_proiect.png?600 |}} | ||
+ | |||
+ | Din punct de vedere al implementării hardware, în primă fază am simulat circuitul in Tinkercad, însă fără modulele de Bluetooth și RTC, deoarece nu sunt disponibile în simulator.{{ :pm:prj2022:cristip:tinkercad.jpg?600 |}} | ||
+ | |||
+ | Am realizat circuitul și în format fizic și am integrat ultimele 2 module pe plăcuță. | ||
+ | |||
+ | ===== Software Design ===== | ||
+ | Proiectul este realizat exclusiv în Arduino IDE. | ||
+ | |||
+ | Am folosit 3 biblioteci auxiliare, pentru modulele de LCD și RTC, precum și pentru servomotor: | ||
+ | * LiquidCrystal_I2C.h | ||
+ | * DS3231.h | ||
+ | * Servo.h | ||
+ | |||
+ | Programul este integral structurat în cele 2 funcții, void setup() și void loop(). În setup, am setat pinii corespunzători butonului(2) și servomotorului(9), respectiv am inițializat modulele de LCD și RTC, iar pentru cel din urmă am setat data și ora curente. | ||
+ | |||
+ | În void loop() verific ceea ce primesc prin Bluetooth de la aplicație, iar în cazul în care inputul este F(**F**eed) setez o varibilă globală pe 1 și afișez în aplicație mesajul "Meal time". Pentru transmiterea datelor către modulul de Bluetooth, am folosit aplicația Arduino BlueControl, care se poate găsi și instala de pe Magazin Play. | ||
+ | |||
+ | Verific într-un if valoarea variabilei, ora curentă dacă este 12:00 sau 18:00 sau dacă butonul este apăsat. În caz afirmativ, afișez ora și data curente, semnificând ultima masă primită, alături de mesajul "Last meal", și acționez servomotorul care se rotește, cu un delay de 5ms, de la 110 la 0 grade, pentru a deplasa capacul ce ține mâncarea, respectiv de la 0 la 110 pentru a îl aduce în poziția inițială. | ||
+ | |||
+ | == Diagrama de activități == | ||
+ | {{ :pm:prj2022:cristip:diagrama_de_activitati_pr.png?600 |}} | ||
+ | |||
+ | ===== Design suport din lemn ===== | ||
+ | Din punct de vedere al realizării suportului, în primă fază am luat măsuratori astfel încât să am suficient spațiu pentru bolul pisicii, să pot ascunde circuitul în spatele suportului și să am un spațiu unde să se poată depozita hrana animalului. | ||
+ | {{ :pm:prj2022:cristip:aparat.png?400 |}} | ||
+ | == Suport - vedere din față == | ||
+ | |||
+ | {{ :pm:prj2022:cristip:fata.jpeg?200 |}} | ||
+ | |||
+ | == Suport - vedere din lateral == | ||
+ | |||
+ | Pentru a susține servomotorul, am mai adăugat o bucată din lemn sub suportul pentru mâncare, lăsând un spațiu suficient pentru a putea trece capacul. Pe cel din urmă l-am făcut din mousse. | ||
+ | {{ :pm:prj2022:cristip:lateral.jpeg?200 |}} | ||
+ | |||
+ | == Suport - vedere de sus == | ||
+ | |||
+ | În centrul suportului pentru mâncare am gandit o pâlnie dintr-un gât de sticlă de plastic, pentru a mă asigura ca nu este posibil ca mâncarea să cadă pe lateral atunci cand servomotorul nu este acționat, având în vedere ca mousse-ul se poate lăsa destul de ușor. | ||
+ | |||
+ | {{ :pm:prj2022:cristip:sus.jpeg?250 |}} | ||
+ | |||
+ | == Suport - vedere din spate == | ||
+ | |||
+ | Pe spatele suportului am lipit cu banda dublu adezivă circuitul. | ||
+ | {{ :pm:prj2022:cristip:spate_-_circuit.jpeg?250 |}} | ||
+ | |||
+ | ===== Rezultate obţinute ===== | ||
+ | |||
+ | {{ :pm:prj2022:cristip:afisare_lcd.jpeg?300 |}} | ||
+ | |||
+ | Happy cat means happy owner =) | ||
+ | {{ :pm:prj2022:cristip:happy_cat.jpeg?300 |}} | ||
+ | |||
+ | ===== Concluzii ===== | ||
+ | Sunt foarte mulțumită de rezultat, mi-a plăcut să lucrez pentru proiect, mai ales pentru că mi-am ales o idee care are o însemnătate și, de ce nu, o utilitate pentru mine. | ||
+ | În primă fază am fost sceptică cu privire la întreg procesul, de la ideea suportului și alegerea componentelor hardware necesare, până la concretizarea pas cu pas a întregului proiect, însă totul a ieșit cum speram. | ||
+ | |||
+ | |||
+ | ===== Download ===== | ||
+ | |||
+ | {{:pm:prj2022:cristip:corpaci_daria_332cb.zip|}} | ||
+ | |||
+ | ===== Bibliografie/Resurse ===== | ||
+ | |||
+ | - http://www.rinkydinkelectronics.com/resource/DS3231/DS3231.pdf | ||
+ | - https://www.arduino.cc/reference/en/libraries/liquidcrystal-i2c/ | ||
+ | - https://howtomechatronics.com/tutorials/arduino/arduino-and-hc-05-bluetooth-module-tutorial/ | ||
+ | |||
+ | |||
+ | |||
+ | |||