Introducere
Temă
Proiectul reprezintă un tool de managing al gadget-urilor dintr-o casă.
Descriere generală
Principalele funcționalități sunt:
Cu ajutorul a două butoane se poate regla intensitatea luminii din cameră (se crește sau se scade intensitatea unui LED).
Ușile se deschid automat când o personă se apropie.
Display LCD cu 3 moduri:
primul: date despre cameră: temperatură, umiditate, lumină.
al doilea: mini-hartă cu fiecare cameră și locul unde se află o persoană in cameră (dau display la un dreptunghi cu dimensiunile camerei scalate și un punct roșu unde e o persoană). La inceput, cand se pornește aplicația, acest senzor o să se rotească pentru a măsura lungimea și lățimea camerei.
al treilea: se poate seta o alarma care sună la ora respectivă (tot prin butoane se si selecteaza ora, ziua când se pune alarma).
Piese
Schema Bloc
Hardware Design
Am folosit uo serie de senzori: DHT11 - pemtru temperatura si umiditate, HRC-SR04 si VL53LOX.
Am comunicat datele catre PC pentu a fi reprezentate prin interfata saeriala, mentionez ca acest lucru nu apare pe schema electrica.
Software Design
Mediu dezvoltare:
Biblioteci:
Arduino: Wire, LiquidCrystal_I2C, PWMServo, DHT
Python: serial, time, turtle (pentru desenat)
FUnctii:
Python: calculate(d, alfa, s) → calculeaza unde trebuie reprezentat punctul in functie de distanta data de senzor si unghiul curent al motorului; write_read(msg) → scire un mesaj din python catre arduino si asteapta apoi sa primeasca date/raspuns de la arduino; restul sunt pentru reprezentare grafica → draw_rect(L), draw_point(t, x, y).
Arduino: setAlaram() → seteaza o alarma, face initializarile necesare; increaseLightOrTimer() → functionalitatea/intreruperea butonului 1, in functie de modul curent; decreaseLightOrSetTimer() → functionalitatea butonului 2 in functie de modul curent; ISR(PCINT2_vect) → seteaza modul cu ajutorul butonului 0; base_setup() → face setup-ul initial, necesar tuturor modurilor; mode_0() → primul mod de functionare, display date, control lumina LED, transnitere date catre python pentru reprezentare obiecte; mode_1() → al doilea mod de functionare, reprezentare ora curenta, plus setare alarma.
Concluzii
Aplicatia realizeaza functiile prezentate cu succes, se pot observa informatiile casei, cat si 'harta' camerei. Se pot seta alarmele.
Am observat delay-uri in cadrul afisarilor si ca senzorul cu laser, realizeaza o harta mult mai precisa decat cel ultrasonic, desi range-ul este mai mic.
Download
Bibliografie/Resurse