This is an old revision of the document!
Gym Cooling System
Nume: Radu-Stefan Minea
Grupa: 334CA
Email: radu_stefan.minea@stud.acs.upb.ro
Introducere
Proiectul reprezintă un aparat destinat sălilor de fitness, ce menține o temperatura plăcuta în cadrul sesiunilor de antrenament, prin acționarea unui ventilator, câtă vreme este detectată prezența continuă a sportivilor în sala de fitness.
Ideea a provenit de pe vremea pandemiei, când efectuam sesiuni de fitness în casă, context în care era dificil de păstrat o temperatură potrivită pentru sesiunile de antrenament.
Descriere generală
Schemă bloc:
Figura de mai sus surprinde, în mod sumar, interacțiunea modulelor utilizate.
Interacțiune componente:
Arudino-ul este alimentat fie de la PC, fie printr-o baterie de 9V
Senzorul ultrasonic de distanță este conectat la Arduino și citește constant distanța față de cel mai apropiat obiect
Ventilatorul este alimentat de către o baterie de 9V
Alimentarea ventilatorului este controlată printr-un releu (setată ON sau OFF)
Releul este conectat la Arduino, de unde primește comanda de a permite sau nu alimentarea ventilatorului
Ecranul LCD, având un modul I2C integrat, este conectat la Arduino și primește de la acesta status-ul curent al dispozitivului, status pe care îl va afișa
Mod de funcționare:
Când detectează mișcare, ventilatorul va fi pornit pentru un timp anume (spre exemplu: 30 minute, cât durează o rutină de workout, în general)
Dacă pe parcurs, dispozitivul nu mai detectează obiecte în preajma sa (adică sportivi prezenți in sala de fitness) pentru un anumit număr de citri consecutive ale senzorului (spre exemplu: 10K citiri, ceea ce ar fi aproximativ echivalent cu 1 minut de nedetectat sportivi în sala de fitness), venilatorul se va opri, întrucât astfel înseamnă că cei ce se antrenau fie au plecat acasă fie au finalizat mai repede rutina de exerciții.
Pe display se va afișa status-ul aparatului (status-ul sesiuniii curente de fitness și durata rămasă a acesteia)
Hardware Design
Piese Hardware:
Arduino UNO R3 ATmega328P
Cablu HDMI - micro-HDMI (pentru conectarea la PC)
Breadboard 830p
Senzor de proximitate ultrasonic HC-SR04
Ventilator 12V CY410/A
Modul Releu 1 canal 5V
Ecran LCD 1602 cu Modul I2C integra
Baterie 9V
Conector Baterie 9V
Fire mamă-mamă
Fire tată-tată
Fire tată-mamă
Urmează să sertizez cablurile conectorului de baterie 9V, întrucât pinii acestuia ies destul de puțin în evidență, de unde aceștia se desprind destul de repede din mufele mamă ale firelor (fapt observat în demo-ul video).
Urmează să fixez toate componentele (cel mai probabil, cu superglue ori cu bandă dublu adevziă) pe o plăcuță de carton, pentru a menține constantă forma dispozitivului, astfel încât să îmi fie ușor să introduc/extrag dispozitivul din cutia în care îl voi transporta.
Schemă electrică
Schema este aproximativă, întrucât am generat-o din Tinkercad, iar acolo nu am găsit toate componentele mele cu fidelitate (spre exemplu, modulul de releu). Încercasem și cu Eagle, însă nici acolo nu găsisem toate componentele și modulele mele.
Software Design
Mediu de dezvoltare: Arduino IDE 1.8.19
Librării 3rd-party: LiquidCrystal_I2C
Funcții principale:
ping_cm(): preia datele de la senzorul de distanță
update_clock(): actualizează ceasul intern al dispozitivului (timpii aferenți sesiunii curente de workout)
update_actvity(): actualizează contorul de inactivitate, în cazul în care senzorul nu mai detectează obiecte în preajmă
can_end/begin(): o sesiune nouă de fitness poate porni dacă s-a detectat un obiect în preajmă; și se poate opri dacă sesiunea de fitness a trecut de timpul de timeout ori s-a înregistrat inactivitate de prea multe ori
end/begin_session(): se inițializează/resetează timpii interni, se actualizează starea releului și cea generală a dispozitivului (is_running)
display_status(): se afișează status-ul sesiunii (ON/OFF) și timpul rămas al acesteia
Rezultate Obţinute
Concluzii
Aparatul, dacă ar fi scalat la dimensiuni reale, cred că ar fi un adevărat plus valoare pentru sălile de fitness ce adesea fie au un control dezorganizat al aerului și al temperaturii, fie folosesc sisteme de ventilație strict pentru a menține o temperatură anume.
Filosofic vorbind, sunt de părere că aerul din sălile de fitness trebuie controlat în funcție de activitatea curentă din sală. Cred că acest dispozitiv ar ajuta sportivii ce au nevoie de aer pentru a își execuțiile, să îl primească, neafectând în niciun fel activitatea celorlalți sportivi.
Tehnic vorbind, mi-a plăcut foarte mult să lucrez la acest proiect. Mai mult, pot spune că această temă a fost cea mai distractivă și interesantă dintre toate din anul acesta. Mulțumesc frumos pentru inspirație! Eu mai am un Raspberry Pi prin casă și mi-era tare frică să îl folosesc, acum simt că am căpătat mai mult curaj și, cine știe, cu siguranță voi aborda cu o mai mare deschidere următoarea ocazie.
Download
Arhiva conține:
Codul sursă (prezent în folder-ul gym_cooling_system)
Librăriile folosite (prezente în folder-ul libs)
Schema bloc
Schema electrică asociată
Link către schema Tinkercad asociată
Arhivă: TODO
Jurnal
06.05.: discuție cu asistenul de laborator despre ce componente aș putea comanda
17.05.: prima comandă de componente (eu aveam deja un Plusivo Pi Super Starter Kit, ceea ce m-a ajutat în a comanda mai puține componente inițiale)
23.05.: legarea senzorului de mișcare la Arduino, cu mari probleme de amator desăvârșit (uitasem că cele două jumătăți ale breadboard-ului nu sunt legate între ele)
24.05.: revelația: un student de anul 1, ce făcuse robotică în liceu, întâlnit întâmplător în disperarea mea că nu mergea senzorul, îmi explică scurt și la obiect cum breadboard-ul are două jumătăți, însă acestea nu sunt menite una pentru cealaltă. Tragic. ++ o nouă comandă de componente, întrucât întâmpinam dificultăți în a lega LCD-ul la Arduino de mână, așa că am comandat un LCD cu un modul I2C integrat
27.05.: remontada: legarea tuturor componentelor (ventilator, releu, LCD) și scrierea algoritmului de control al ventilatorului. Happy days, chiar mi-a plăcut cum a ieșit în final!
Bibliografie/Resurse