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

Imagini:

  • Sesiune activă (vizibil prin LED-ul verde aprins al releu-ului, și prin status-ul LCD-ului):

  • Sesiune inactivă (analog):

  • Tote componentele asamblate:

Demo proiect: https://www.youtube.com/watch?v=i5Id8a-5NEM

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ă: gym_cooling_system.zip

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

pm/prj2022/avaduva/gym_cooling_system.txt · Last modified: 2022/05/27 23:54 by radu_stefan.minea
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