Table of Contents

Uscător de mâini inteligent

Autor: Harea Teodor-Adrian, 333CA
Contact: teodor_adrian.harea@stud.acs.upb.ro

Introducere

Ce face proiectul?

Proiectul este un sistem inteligent care utilizează trei senzori (de mișcare, distanță și infraroșu) pentru a detecta prezența și acțiunile utilizatorilor. Funcționalitățile principale includ:

Scopul proiectului

Scopul principal al proiectului este de a demonstra integrarea și utilizarea practică a mai multor senzori într-un sistem coordonat.

Ideea de pornire

Ideea proiectului a pornit de la dorința de a crea un sistem simplu, dar eficient, care să poată detecta și răspunde la acțiunile utilizatorilor. Inspirația a venit din:

Utilitatea proiectului

Descriere generală

Schema sistemului:

Schemă bloc a sistemului:

Listă Componente

Microcontroller

◉ ATmega328P (16MHz, 32KB Flash)

Senzori

◉ HC-SR501 - Senzor mișcare PIR ◉ HC-SR04P - Senzor ultrasonic ◉ VS1838 - Receptor infraroșu

Afișaje

◉ LCD 16×2 cu interfață I2C

Dispozitive de acțiune

◉ Motor DC 3-5V cu elice ◉ Buzzer activ 5V ◉ LED cu rezistență 220Ω

Alimentare

◉ Placa de dezvoltare cu regulator 5V ◉ Conexiune USB pentru alimentare

Biblioteci software

◉ LiquidCrystal_I2C (v1.1.2) ◉ IRremote (v3.6.1)

Hardware Design

Schemă electrică a sistemului:

Bill Of Materials (BOM)

Resurse oficiale și linkuri de cumpărat pentru componente

Componente

1. Microcontroller ATmega328P
2. Senzori
Componentă Datasheet Cumpărare
———————–———–
LCD 16×2 cu I2C Link OptimusDigital
Senzor PIR HC-SR501 Link OptimusDigital
Senzor ultrasonic HC-SR04P Link OptimusDigital
Receptor infraroșu Link OptimusDigital
3. Dispozitive de acțiune
Componentă Datasheet Cumpărare
———————–———–
Buzzer activ 5V Link OptimusDigital
Motor DC Link OptimusDigital
LED albastru 3mm Link OptimusDigital

Biblioteci Software

Bibliotecă Documentație
———-————–
LiquidCrystal_I2C GitHub
IRremote GitHub

Software Design

Motivația alegerii bibliotecilor folosite

Utilizarea funcționalităților din laborator în cadrul proiectului

Despre implementare

Structura software a proiectului este organizată în jurul unei mașini de stări (state machine), fiecare stare reprezentând o etapă distinctă din funcționarea uscătorului de mâini inteligent. Fiecare funcționalitate hardware este integrată și controlată prin cod, iar tranzițiile între stări sunt gestionate pe baza semnalelor primite de la senzori sau de la telecomandă.

Structura proiectului

Inițializarea componentelor hardware (senzori, LCD, motor, LED, buzzer, telecomandă IR) se face în funcția setup(). În funcția loop(), sistemul verifică în permanență starea curentă și reacționează la evenimente (mișcare detectată, distanță măsurată, comandă IR). Fiecare stare (ex: CALIBRATING, LISTENING, MOTION_DETECTED, MOTOR_RUNNING, PAUSED etc.) are un bloc dedicat de cod, cu acțiuni specifice și condiții de tranziție către alte stări. Temporizările sunt gestionate cu ajutorul funcției millis(), evitând blocarea execuției și permițând răspuns rapid la evenimente.

Interacțiunea dintre funcționalități

Senzorul PIR detectează mișcarea și declanșează trecerea în starea de detecție. Senzorul ultrasonic măsoară distanța față de utilizator și decide dacă motorul trebuie pornit sau dacă utilizatorul este prea departe. Telecomanda IR permite controlul manual al sistemului (pauză, pornire continuă, revenire la ascultare). LCD-ul afișează mesaje relevante pentru fiecare stare, oferind feedback utilizatorului. LED-ul, buzzer-ul și motorul sunt activate/dezactivate în funcție de starea sistemului și de valorile senzorilor.

Validarea funcționalităților

Fiecare funcționalitate a fost testată individual: s-a verificat răspunsul la mișcare, măsurarea corectă a distanței, afișarea mesajelor pe LCD, controlul cu telecomanda IR și funcționarea corectă a motorului, LED-ului și buzzer-ului. S-au folosit mesaje pe Serial Monitor pentru debugging și monitorizare în timp real. Sistemul a fost testat în ansamblu, simulând scenarii reale de utilizare (prezența unui obiect in raza de acțiune a senzorilor, distanță variabilă, comenzi telecomandă), pentru a confirma că toate componentele interacționează corect și că tranzițiile între stări se realizează conform cerințelor.

Optimizări realizate

Rezultate Obţinute

Concluzii

Proiectul demonstrează o implementare eficientă a unui sistem automatizat cu senzori și motor, controlat printr-o mașină de stări clar structurată. Codul este modular, ușor de extins și întreținut. Optimizările asigură răspuns rapid și feedback clar pentru utilizator. Sistemul poate fi adaptat cu ușurință pentru funcționalități suplimentare.

GitHub

Proiect PM pe GitHub