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.
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 dupa introducerea parolei de la PC, microcontrollerul va comunica cu acesta prin interfata seriala. Parola are rolul de a securiza sistemul astfel incat angajatul sa nu poata schimba programul de lucru fara aprobarea angajatorului. Daca comunicarea cu PC-ul nu este disponibila, in modul DEV se poate sari peste introducerea parolei apasand butonul 2. Setarea programului de lucru se face prin 2 moduri de configurare:
Alegerea modului de configurare a programului (potentiometru sau senzor de distanta) se va face in modul urmator: se contorizeaza timpul folosind modulul RTC si daca in 10 secunde se apasa butonul 2 modul de configurare va fi cel bazat pe potentiometru, altfel se va folosi cel cu senzorul de distanta.
Se asigura ergonomia la birou in modul urmator:
Toate avertismentele sunt inregistrate si afisate la sfarsitul programului in raportul de lucru. Datele sunt prelucrate si un raport este trimis la PC pentru a fi afisate.
Pentru demo, sistemul va avea modul: DEV. Pentru productie se va implementa modul 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.
Componentele folosite sunt urmatoarele
Mediu de dezvoltare: Arduino IDE
Programul va functiona folosind o masina de stari cu urmatoarele stari:
Functia manageState() se ocupa de gestionarea starilor si tranzitiilor pe baza inputurilor primite, fie de la butoane, RTC, senzor de lumina sau senzorul de distanta. Atunci cand programul de lucru se incheie, microcontroller va 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:
Codul se afla in repository-ul de github: https://github.com/DoruCheresdi/Proiect-PM/blob/main/Proiect-PM.ino
Am reusit sa realizez ce mi-am propus, un sistem de monitorizare al angajatului in regim WFH si de asigurare a ergonomiei la birou.
Proiectul a fost unul interesant de creat mai ales ca are si aplicabiliatate practica. Probleme intampinate au fost mai mult la nivel hardware, dar am gasit solutii software pentru a le mitiga.
https://github.com/DoruCheresdi/Proiect-PM/blob/main/Proiect-PM.ino
Arhiva cu codul: cheresdidoruproiectpm.zip
https://adafruit.github.io/RTClib/html/class_date_time.html
https://adafruit.github.io/RTClib/html/class_time_span.html
https://github.com/NorthernWidget/DS3231