Proiectul reprezinta un sistem inovator de securitate pentru protejarea obiectelor de valoare, precum bijuteriile. Acesta utilizează tehnologia avansată de detectare a mișcării pentru a monitoriza în timp real orice mișcare suspectă în apropierea obiectului protejat.
Scopul acestui proiect este de a preveni furtul și de a oferi utilizatorilor un sentiment sporit de siguranță în ceea ce privește protejarea obiectelor lor de valoare.
Am pornit de la ideea că in camin la o petrecere organizata la mine in camera cineva a furat una din bijuteriile mele. Soluțiile tradiționale de securitate nu sunt tocmai accesibile, asa ca un astfel de mecanism simplu ar fi fost util pentru a ma atentiona si a afla cine a comis fapta.
Proiectul este util si pentru altii deoarece poate fi adaptat pentru a proteja o varietate de obiecte valoroase sau importante, nu numai bijuterii. Acesta combină tehnologia de detectare a mișcării cu funcții avansate precum alertele în cascada, mecanismul de panică si camera de supraveghere pentru a asigura o protecție robustă și eficientă.
În cadrul sistemului, Arduino Uno controlează majoritatea componentelor, inclusiv ecranul LCD, buzzerul, senzorul de distanță. Senzorul de distanță monitorizează în mod constant mediul înconjurător, iar în cazul detectării unei mișcări suspecte, buzzerul și LED-ul RGB sunt activate pentru a emite alerte. În același timp, ESP32 Cam face o fotografie a potențialului intrus și o trimite împreună cu un mesaj prin intermediul aplicatiei Telegram către telefonul mobil al proprietarului. Acesta se face utilizând API-ul oferit de aplicatie pentru a permite comunicația cu telefonul utilizatorului.
La activare, ecranul LCD va afișa un mesaj care indică faptul că sistemul a fost pornit și senzorul va începe să detecteze mișcările din împrejurimi. Nivelul de avertizare detectat de senzor va fi afișat atât pe ecranul LCD, cât și pe LED-ul RGB. In cazul in care suspectul este prea aproape de obiect si probabil va incerca sa il fure, sistemul va trimite o poza si un mesaj proprietarului.
Pentru dezvoltarea proiectului am folosit Arduino IDE si librariile:
În cadrul funcției loop(), codul verifică mai întâi starea comutatorului conectat la switchPin. Dacă acesta se află în starea LOW, înseamnă că sistemul este oprit. În acest caz, ecranul LCD afișează un mesaj care indică faptul că sistemul este oprit.
Dacă comutatorul se află în starea HIGH, ceea ce indică faptul că sistemul este pornit, codul continuă cu logica de măsurare a distanței și de afișare.
În primul rând, banda de LED-uri este pornită secvențial pentru fiecare LED, creând un efect de defilare.
int sine[] = {0, 1, 2, 3, 4, 5, 6, 7}; for(int i = 0; i < 8; i++) { strip.setPixelColor(sine[i], 0); strip.setPixelColor(sine[(i + 7) % 8], color); strip.show(); delay(150); }
Aceasta stabilește culoarea a doi pixeli adiacenți la un moment dat. Funcția setPixelColor() este apelată cu sine[i] pentru a dezactiva un pixel și cu sine[(i + 7) % 8] pentru a seta culoarea pe următorul pixel din secvență. Acest lucru creează efectul de defilare a culorii prin banda de LED-uri. Funcția strip.show() este apelată pentru a actualiza banda de LED-uri cu noua configurație de culoare, iar apoi există o întârziere de 150 de milisecunde înainte de a trece la următoarea iterație.
Apoi, senzorul cu ultrasunete este declanșat prin setarea trigPin-ului la LOW, întârzierea pentru o perioadă scurtă de timp și apoi setarea acestuia la HIGH timp de 10 microsecunde înainte de a-l seta din nou la LOW.
Durata impulsului de ecou se măsoară cu ajutorul funcției pulseIn() și se stochează în variabila duration. Distanța se calculează folosind durata și viteza sunetului în aer și se stochează în variabila distance.
Ecranul LCD este apoi actualizat cu măsurarea distanței prin imprimarea valorii distanței și a unității de măsură.
În continuare, codul verifică valoarea distanței pentru a determina culoarea corespunzătoare pentru banda LED și mesajul corespunzător care trebuie afișat pe LCD. Dacă distanța este mai mică de 50 cm, culoarea LED-ului devine roșie, iar pe LCD se afișează “DANGER”. Buzzer-ul este pornit mai galagios pentru a oferi o alertă. Dacă distanța este cuprinsă între 50 cm și 100 cm, culoarea LED devine galbenă, iar pe ecranul LCD se afișează “SOMEONE”. De asemenea, se activeaza ceva mai incet buzzer-ul. Dacă distanța este mai mare de 100 cm, culoarea LED-ului devine verde, iar pe ecranul LCD se afișează “NOBODY”.
Bucla se repetă apoi, măsurând continuu distanța și actualizând afișajul pe baza valorii măsurate până când sistemul este oprit prin setarea comutatorului în starea LOW.
Pentru partea de configurare a placutei ESP32Cam am urmat pasii urmatori:
Un proiect interesant care m-a scos din zona de comfort. Chiar daca nu am reusit sa implementez modulul GSM si GPS, am acumulat multe informatii noi despre cum functioneaza majoritatea lucrurilor din jurul meu la nivel de hardware. Am invatat sa lipesc piese, sa lucrez cu diverse biblioteci din arduino si cum sa fac debug pe placute Arduino.
Ion Dragos-Cosmin, 336CC → proiect_pm_ion_dragos.zip