LensCare – Reminder inteligent pentru schimbarea lentilelor de contact

Introducere

LensCare este un sistem portabil ce ajută purtătorii de lentile de contact să își monitorizeze timpul de purtare zilnic și să primească alerte vizuale și sonore când este timpul să le schimbe. Monitorizează și calitatea aerului din cameră (importantă pentru sănătatea oculară), afișând toate informațiile relevante pe un ecran LCD.

Scopul proiectului este de a oferi un dispozitiv de asistență personală accesibil și intuitiv care încurajează igiena corectă în utilizarea lentilelor și protejarea sănătății ochilor.

Ideea a pornit din nevoia personală și generală a utilizatorilor de lentile de a urmări durata purtării acestora și de a preveni uzura excesivă.

Este util atât pentru utilizatorii de lentile cât și pentru dezvoltatori interesați de aplicații embedded legate de sănătate personală.

Descriere generală

Modul principal: Arduino Uno (ATmega328P)

Module hardware:

  • Senzor MQ135 – măsurare calitate aer
  • LCD 16×2 cu I2C – afișare stare sistem
  • LED RGB – feedback vizual privind statusul
  • Buzzer pasiv – notificare sonoră
  • Buton tactil – control start/stop cronometrul

Interacțiune:

  • Utilizatorul pornește cronometrul zilnic printr-un buton.
  • Sistemul contorizează timpul de purtare și afișează progresul.
  • După 14 zile, sistemul emite alertă vizuală (LED roșu) și sonoră (buzzer).
  • MQ135 oferă evaluare suplimentară a calității aerului din cameră.

Schema Bloc:

Schema Electrica:

Hardware Design

Componente:

  • Arduino Uno R3 (ATmega328P)
  • Senzor MQ135
  • LCD 1602 cu Interfata I2C si Backlight Albastru
  • Buzzer pasiv
  • LED RGB
  • Buton 6x6x6
  • Rezistențe: 3x 220Ω (pentru LED)
  • Condensator 100nF (pentru debounce)
  • Breadboard 400 puncte
  • Fire pentru Breadboard
Componenta Rol in proiect
ATmega328P (Arduino Uno) Microcontrollerul principal. Gestioneaza senzorul, logica, LED-ul RGB, LCD, buzzerul si butonul.
Senzor MQ135 Masoara calitatea aerului si trimite o valoare analogica.
LCD 16×2 cu interfata I2C Afiseaza zilele ramase pana la schimbarea lentilelor, timpul purtat si calitatea aerului.
LED RGB Ofera feedback vizual: verde = OK, galben = aproape de termen, rosu = trebuie schimbate lentilele.
Buzzer pasiv Ofera alerte sonore cand expira perioada de utilizare a lentilelor.
Buton tactil Permite utilizatorului sa pornească sau sa oprească cronometrul zilnic.
Rezistente Limitare curent pentru LED-uri.
Condensator 100nF Reduce bouncing-ul mecanic al butonului.
Breadboard + fire Conectare fizica a componentelor.
Componenta Pin ATmega328P Modul folosit
MQ135 (AOUT) PA0 / ADC0 ADC
LCD 16×2 I2C PC4 (SDA), PC5 (SCL) TWI/I2C
LED R PD5 (OC0B) Timer0 - PWM
LED G PD6 (OC0A) Timer0 - PWM
LED B PB1 (OC1A) Timer1 - PWM
Buzzer PD3 (OC2B) Timer2 - PWM
Buton PD2 (INT0) GPIO + Interrupt
VCC / GND Alimentare

Interactiunea componentelor

LCD 16×2 I2C:

  • SDA → A4 (PC4)
  • SCL → A5 (PC5)
  • GND → GND ARDUINO
  • VCC → 5V ARDUINO

Senzor MQ135:

  • AOUT → A0 (ADC0)
  • VCC → 5V
  • GND → GND

Buton + debounce:

  • Un pin → GND
  • Celalalt → D2 (PD2/INT0) prin rezistenta pull-up
  • Condensator 100nF → debounce intre pin si GND

LED RGB:

  • Pini R, G, B conectati prin rezistente de 220Ω la pinii D5, D6, D9
  • Anod comun → +5V

Buzzer pasiv:

  • Plus → D3 (OC2B, PWM)
  • Minus → GND

Software Design

Codul a fost dezvoltat în mediul Arduino IDE. Biblioteca externă folosită este LiquidCrystal_I2C.h pentru afișarea pe LCD, în rest fiind folosite funcții standard precum pinMode, analogRead, digitalWrite, tone, noTone, analogWrite, delay.

Structura software:

  • Inițializare componente
  • Detectarea apăsării butonului pentru incrementarea zilelor
  • Iluminare LED RGB în funcție de zile
  • Activare buzzer la depășirea limitei de 14 zile
  • Citirea calității aerului de la senzorul MQ135
  • Afișare date pe LCD și Serial Monitor

Funcții implementate:

  • setColor() – setează nivelul PWM pentru LED-ul RGB
  • loop() – gestionare buton, incrementare zile, afișare valori, control LED/Buzzer

Rezultate Obținute

Afișaj corect al zilelor purtate și al valorii senzorului MQ135

LED RGB oferă feedback vizual în 3 stări: verde (OK), portocaliu (aproape de termen), roșu (alertă)

Buzzer activat automat încă de la ziua 14

Sistemul se resetează automat la ziua 0 după 15 apăsări

Concluzii

Proiectul este funcțional și a reușit să integreze senzori, semnale PWM, afișaj LCD și interacțiune cu utilizatorul prin buton. Este un exemplu practic de aplicație embedded pentru sănătate personală, iar implementarea lui a fost o experiență valoroasă de integrare software-hardware.

Download

Jurnal

Etapa 1: Idee, documentare lentile + senzor MQ135

Etapa 2: Alegerea componentelor și testare individuală

Etapa 3: Construirea pe breadboard

Etapa 4: Scriere cod incremental (buton, LED, LCD)

Etapa 5: Integrare senzor calitate aer + buzzer

Etapa 6: Documentație, README, schemă bloc + electrică

Dovada circuitului

pm/prj2025/iotelea/stefania.ivana.txt · Last modified: 2025/05/28 11:39 by stefania.ivana
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