This is an old revision of the document!
WFH Employee Monitoring system
Nume: Cheresdi Doru
Grupa: 331CA
Introducere
Proiectul este un sistem de monitorizare a angajatilor WFH si de asigurare a ergonomiei la birou. Sistemul asigura faptul ca angajatul se afla la birou in timpul programului, ca isi ia pauzele de la lucru si ca isi ajusteaza modul de lucru pentru si asigura ergonomia la birou.
Munca WFH a devenit din ce in ce mai raspandita in ultimii ani si un astfel de sistem ar fi de folos companiilor care opereaza in acest mod, cat si angajatiilor.
Descriere generală
System de monitorizare a angajatilor WFH si asigurare a ergonomiei muncii la birou. Sistemul suporta setarea programului de lucru care este verificat cu un senzor RTC, iar verificarea ca angajatul se afla la birou se face cu un senzor de distanta cu ultrasunete la un anumit interval de timp. Setarea programului se poate face numai dupa introducerea parolei de la PC, microcontrollerul va comunica cu acesta prin interfata seriala.
Setarea programului de lucru se face prin 2 moduri de configurare:
prin potentionmetru, tensiunea fiind tradusa intr-o ora intre 8-20
prin senzorul de distanta si pozitionarea mainii la o distanta care se traduce in ora dorita
Alegerea modului de configurare a programului (potentiometru sau senzor de distanta) se va face in modul urmator: se porneste un timer si daca butonul este apasat pana sa se termine timerul, modul de configurare va fi cel bazat pe potentiometru, altfel se va folosi cel cu senzorul de distanta.
Se asigura ergonomia la birou prin verificarea ca angajatul ia pauze la un anumit inteval de timp, iar un senzor de lumina este folosit pentru a atentiona angajatul sa porneasca dark mode pe PC. Se verifica de asemenea si distanta fata de birou la care sta angajatul astfel incat sa se respecte cei minim 60cm fata de ecran fata de care trebuie sa se afle angajatul. Daca angajatul nu se ridica de la birou pentru pauza, sistemul va porni un buzzer care poate fi oprit printr-un buton.
Datele sunt prelucrate si un raport este trimis la PC pentru a fi afisat.
Sistemul va avea 2 moduri: DEV si PROD, diferenta fiind intervalele de timp. In modul DEV aceasta sunt mult mai scurte pentru a se putea testa mai usor proiectul, iar in modul PROD intervalele de timp vor fi cele corespunzatoare unui program de lucru normal.
Hardware Design
Componentele folosite sunt urmatoarele
Schema electrica:
Software Design
Mediu de dezvoltare: Arduino IDE
Programul va functiona folosind o masina de stari cu urmatoarele stari:
RUNNING_NORMAL - programul ruleaza in modul normal, se esantioneaza date la fiecare 10 min (distanta fata de monitor, daca se afla la pc, senzorul de lumina) si se verifica daca userul intra in modul de configurare
GET_PASSWORD - microcontroller asteapta primirea parolei pe interfata seriala pentru a incepe configurarea programului de lucru
CONFIG_PROG_CHOOSE_1 - se asteapta apasarea butonului pentru a verifica care mod de configurare este ales pentru ora de inceput
CONFIG_PROG_CHOOSE_2 - se asteapta apasarea butonului pentru a verifica care mod de configurare este ales pentru ora de sfarsit
CONFIG_PROG_POT - se accepta input pentru o ora de program folosind potentiometrul
CONFIG_PROG_DIST - se accepta input pentru o ora de program folosind senzorul de distanta
CONFIG_MODE - se accepta input la butoanele 1 sau 2 pentru modul de functionare (DEV sau PROD)
WARNING_ERGO- userul va fi atentionat ca nu respecta o regula de ergonomie (distanta fata de monitor, lumina si darkmode, daca a luat pauze de 10 min la 60 min de lucru etc) prin pornirea unui buzzer. Userul poate forta microcontroller sa treaca inapoi in starea RUNNING_NORMAL prin apasarea butonului de snooze
WARNING_NOT_HERE - userul a lipsit prea mult timp din program(mai mult de 1/2 din program)
GENERATE_REPORT- microcontroller a primit de la PC un semnal de incepere a crearii raportului activitatii, se vor trimite date pe interfata seriala despre variabilele esantionate (timpul petrecut la birou, de cate ori a dat snooze, distanta medie fata de birou)
Displayul afiseaza mesaje in functie de starea in care se afla, ora sau eroarea aparuta
Biblioteci:
Wire pentru a conecta LCD-ul si modulul RTC pe aceeasi magistrala I2C
LiquidCrystal_I2C pentru LCD
RTClib sau DS3231 (pentru RTC).
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
librării şi surse 3rd-party (e.g. Procyon AVRlib)
algoritmi şi structuri pe care plănuiţi să le implementaţi
(etapa 3) surse şi funcţii implementate
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF