Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:gpatru:wirelesscatfeeder [2023/05/29 19:38]
andreea.prigoreanu Add hardware design
pm:prj2023:gpatru:wirelesscatfeeder [2023/05/29 23:34] (current)
andreea.prigoreanu Add video
Line 37: Line 37:
 Schema electrica (realizata in Eagle): Schema electrica (realizata in Eagle):
  
-{{:​pm:​prj2023:​gpatru:​ap_schema.png?​600|}}+{{:​pm:​prj2023:​gpatru:​ap_schema.png?​700|}}
  
  
 ===== Software Design ===== ===== Software Design =====
  
 +Mediul de dezvoltare: Arduino IDE
  
-<note tip>+Bibliotecile Arduino utilizate in dezvoltarea proiectului:​ 
 +  * Servo ([[https://​github.com/​arduino-libraries/​Servo]]) pentru a controla servo motorul MG90S 
 +  * SoftwareSerial ([[https://​github.com/​arduino/​ArduinoCore-avr/​blob/​master/​libraries/​SoftwareSerial/​src/​SoftwareSerial.h]]) pentru a realiza comunicarea seriala Bluetooth 
 +  * RTClib ([[https://​github.com/​NorthernWidget/​DS3231]]) pentru a utiliza functionalitatile modulului RTC 
 +  * hd44780 ([[https://​github.com/​duinoWitchery/​hd44780]]) pentru a utiliza ecranul LCD I2C 
 +  * HX711 ([[https://​github.com/​RobTillaart/​HX711]]) pentru a calibra si prelua greutatea de la cititorul de greutate
  
-</note>+Pentru a trimite comenzi prin Bluetooth de pe telefon catre Arduino am utilizat ​//Serial Bluetooth Terminal// disponibila in Play Store pe Android. Comenzile implementate sunt: 
 +  * prin trimiterea caracterului '​T'​ se semnaleaza setarea unei ore de hranire. Daca exista deja o ora de hranire setata, aceasta se va inlocui. Dupa primirea caracterului '​T'​ se asteapta primirea orei dupa formatul '​hour:​minutes'​ 
 +  * prin trimiterea caracterului '​F'​ se declanseaza eliberarea mancarii. Daca exista o ora de hranire setata, aceasta va fi stearsa. 
 +  * prin trimiterea caracterului '​W',​ se calculeaza cantitatea de mancare existenta in bol cu ajutorul senzorului de greutate si se trimite utilizatorului intr-un mesaj Bluetooth. 
 + 
 +Modulul de ceas este utlizat pentru a afla ora exacta. Odata ce se seteaza o ora de hranire printr-o comanda Bluetooth, se configureaza o alarma la ora selectata ce va genera o intrerupere pe pinul SQW a modulului RTC prin care se intra in starea de hranire. 
 + 
 +Pentru aflarea cantitatii din bolul animalutului se utilizeaza o celula de greutate de 1kg si un cititor de greutate. Pentru a obtine greutatea, functiile din biblioteca HX711 utilizeaza convertorul ADC.  
 + 
 +Dispozitivul functioneaza pe sistemul unui automat cu stari: 
 +  - Starea NO_FEED_SET:​ in aceasta stare, dispozitivul nu are setata o ora de hranire. Se asteapta comenzi Bluetooth. 
 +  - Starea SET_FEEDING_TIME:​ daca se primeste comanda Bluetooth '​T',​ se intra in modul de setare a orei de hranire. Odata primita ora, cu ajutorul modulului RTC se genereaza o alarma la ora respectiva si dispozitivul intra in starea IDLE. 
 +  - Starea IDLE: dispozitivul afiseaza pe ecran timpul ramas pana la hranire. Intre timp, se pot primi comenzi Bluetooth. Cand se ajunge la ora setata, alarma modulului RTC genereaza o intrerupere pe pinul PQW si starea se modifica in FEED_TIME. 
 +  - Starea FEED_TIME: se roteste servo motorul pentru a elibera mancarea. Se trimite utilizatorului un mesaj Bluetooth cu cantitatea de mancare din bol. La final se intra in starea NO_FEED_SET. 
 + 
 +La pornire dispozitivului se afla in starea NO_FEED_SET. 
 + 
 +Laboratoarele urilizate sunt: laboratul 1 UART, laboratorul 2 Intreruperi,​ laboratorul 4 ADC si laboratorul 6 I2C.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip>+Dsipozitivul final implementeaza toate functionalitatile mentionate in descrierea proiectului. 
 + 
 +{{:​pm:​prj2023:​gpatru:​cat_feeder1.jpeg?​300|}} {{:​pm:​prj2023:​gpatru:​cat_feeder2.jpeg?​300|}} 
 + 
 +{{:​pm:​prj2023:​gpatru:​cat_feeder3.jpeg?​300|}}
  
-</​note>​+{{:​pm:​prj2023:​gpatru:​cat_feeder_gif.gif?​300|}}
  
 ===== Concluzii ===== ===== Concluzii =====
 +A fost interesant sa lucrez la un proiect care implica si parte de hardware. Principalele dificultati intampinate au fost la aranjarea finala a componentelor astfel incat sa arate ca un dispozitiv compact. ​
  
 ===== Download ===== ===== Download =====
  
-<note warning>+Arhiva cu codul: {{:​pm:​prj2023:​gpatru:​cat_feeder_main.zip|}}
  
-</​note>​+Demo video: {{:​pm:​prj2023:​gpatru:​cat_feeder_video.zip|}}
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip>+  * 04.05.2023: scrierea documentatiei 
 +  * 13-14.05.2023:​ montaj hardware + incepere testare software 
 +  * 20-21.05.2023:​ lucru la software + testare 
 +  * 27-28.05.2023:​ finalizarea functionalitatilor software + testare
  
-</note>+===== Resurse ===== 
 +  * [[https://​arduinogetstarted.com/​tutorials/​arduino-lcd-i2c]] 
 +  * [[https://​randomnerdtutorials.com/​arduino-load-cell-hx711/​]] 
 +  * [[https://​randomnerdtutorials.com/​arduino-load-cell-hx711/​]] 
 +  * [[https://​github.com/​garrysblog/​DS3231-Alarm-With-Adafruit-RTClib-Library]] 
 +  * [[https://​docs.arduino.cc/​learn/​built-in-libraries/​software-serial]]
  
-===== Bibliografie/​Resurse ===== 
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/gpatru/wirelesscatfeeder.1685378327.txt.gz · Last modified: 2023/05/29 19:38 by andreea.prigoreanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0