Table of Contents

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:

Interacțiune:

Schema Bloc:

Schema Electrica:

Hardware Design

Componente:

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:

Senzor MQ135:

Buton + debounce:

LED RGB:

Buzzer pasiv:

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:

Funcții implementate:

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

GitHub - LensCare

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

LensCare