Proiectul a inceput ca un ceas obisnuit pe Arduino cu functionalitati de alarma si data, la care am adaugat un senzor cu infrarosu pentru detectarea miscarii, un buzzer si un senzor ultrasonic care va avea functionalitatea de a afisa temperatura si umiditatea din camera.
Scopul proiectului este acela de a avea un ceas usor de folosit cu functionalitatea de temperatura si umiditate fara atingerea dispozitivului, si senzorul de miscare are scopul de a detecta miscarea dintr-o camera si a afisa un mesaj pe ecranul LCD.
Am pornit de la nevoia de un ceas digital care sa fie usor de folosit, dar care sa aiba si alte functionalitati care pot sa ajute o casa smart.
Proiectul este destul de mic ca dimensiuni, simplu de inteles si poate deschide calea catre o casa smart ( de la un simplu ceas cu un senzor infrarosu).
Proiectul afiseaza ora in format digital pe o matrice de led-uri 8×32. Acesta are control de setare data si ora si optiune de alarma. In momentul in care senzorul PIR detecteaza miscare, se afiseaza un mesaj pe LCD. Daca se apropie un obiect ( ex. mana) de senzorul ultrasonic, acesta afiseaza temperatura si umiditatea.
Modulul RTC are rolul de a pastra timpul si in cazul in care se opreste alimentarea microcontrolerului prin utilizarea unei baterii CR2032. Are posibilitatea de a pastra ora, minutul, secunda, ziua, luna si anul si tine evidenta lunilor pare si impare si a anilor bisecti. Interfatarea se face prin I2C si se foloseste biblioteca ds3231.
Interfatarea cu displayul LCD se face printr-un modul I2C care simplifica problema traseelor electrice. Pe display este afisata data in mod normal, iar la interactiunea cu senzorul ultrasonic, se afiseaza temperatura si umiditatea din incapere.
Matricea LED este compusa din 4 dispozitive cu 8×8 LED-uri. Interfatarea este prin SPI, iar controlul in arduino se face cu ajutorul celor 2 biblioteci mentionate mai sus (MD_Parola, MD_MAX72xx).
Senzorul trimite informatia codificata la Arduino, unde pe baza bibliotecii dht11 se face conversia in temperatura si umiditate.
Sunt folosite 3 butoane (in fata, in spate si buton de meniu). Exista urmatoarele optiuni in meniu:
Pentru a finaliza setarile se mai apasa inca o data pe butonul de meniu. De asemenea, in afara meniului, butoanele au urmatoarele functionalitati:
Senzorul PIR detecteaza miscarea pe baza senzorului cu infrarosu. Are 2 rotite fizice pentru setare. Delayul pana cand sa se reseteze si sensibilitatea ( distanta la care detecteaza ). Senzorul activeaza intreruperea in Arduino care seteaza o variabila de stare.
Senzorul ultrasonic foloseste un transmitator si receptor pentru a determina distanta baza pe timpul de drum impartit la viteza sunetului.