Surveillance System

Introducere

Acest proiect va incerca sa simuleze un sistem de securitate minimalist format dintr-un senzor de miscare si o camera, care sa surprinda cat mai aproape de “real-time” si cat mai clar un obiect in miscare.

Proiectul este unul care m-a atras in mod deosebit deoarece graviteaza in proximitatea ariei “Home Automation”, care este o zona in plina dezvoltare ce ma pasioneaza.

Descriere generala

Un senzor infrarosu recepteaza miscarea si actioneaza o camera ce fotografiaza “intrusul”, imagine care se poate salva local pe calculator sau poate fi trimisa mai departe. Multumita formatului imaginii (bitmap) care este o matrice de biti, informatia poate fi trimisa foarte rapid catre un server, de exemplu, cu care sa poata comunica utilizatorii. Sistemul este prevazut cu un switch on/ off si cu un “flag: de detectie a prezentei care se aprinde atunci cand senzorul detecteaza miscare, pentru atentionare.

Diagrama Bloc

Hardware Design

  • Arduino UNO
  • BreadBoard
  • Senzor PIR
  • Modul camera OV7670
  • Fire tata-mama si tata-tata
  • LEDuri RGB
  • Buton
  • Rezistente

Schema Electrica

Software Design

In dezvoltarea proiectului am folosit:

  • Arduino IDE pentru a scrie codul si a comunica cu Arduino pe seriala
  • Un program pentru a putea afisa bitmap-ul intors de camera in timp real si unul pentru a putea stoca imaginile pe calculator, fara a le afisa.

Programul este unul destul de usor de inteles : am transformat push button-ul intr-un switch, retinand starea anterioara (asa cum am procedat si la un laborator) pentru a putea porni/ opri camera si senzorul. Daca butonul este pornit, in loop se face citirea valorii pin ului de output al senzorului PIR. Cand se simte un impuls inseamna ca senzorul a detectat miscare, astfel camera face o poza, prin functia captureImg. Aceasta functie este putin mai complexa, deoarece primeste “rezolutie” impulsuri pentru a colora sau nu bitii imaginii (care este alb-negru). Un led RGB este pornit inainte de captureImg si este stins la final, pentru a sti cand incepe si cand se termina procesul (spre a nu fi oprita camera in acel moment, deoarece apare o imagine incompleta).

Rezultate

In cele 2 imagini anterioare se pot observa componentele utilizate si modul in care aceasta sunt conectate la breadboard, respectiv placuta Arduino.

Acesta este unul dintre modurile de afisare al rezultatelor: un applet care porneste un listener pe COM4 si transforma bitmap ul primit pe seriala intr-o imagine.

Pe drive (Drive) se pot gasi 3 video-uri care arata functionalitatea proiectului :

  • On/Off - cand switch-ul este in pozitia on, senzorul PIR inregistreaza miscari si actioneaza sau nu camera Ov7670, pe cand in off comunicatia pe seriala este oprita (asa cum se vede, imaginea nu se schimba pe ecran).
  • Functionalitate - acest video arata diferite imagini care sunt capturate de camera atuni cand senzorul sesizeaza o miscare.
  • DB - prezinta modul alternativ de functionare, acela in care imaginile nu sunt afisate secvential, ci sunt stocate intr-ul fisier (in cazul de fata local, dar care ar putea fi trimis si pe un server).

Concluzii

  • Acest proiect s-a complicat foarte tare de la modelul initial care urmarea un serviciu de securitate de tip client server. Din cauza shieldului de ethernet de proasta calitate s-au ars atat el cat si placuta. Nu am reusit sa gasesc un modul ethernet asemanator asa ca am schimbat directia proiectului spre ceva Wi-Fi, insa apareau niste conflicte la pinii folositi de OV7670 si modulul Wi-Fi. Am incercat apoi sa comand tot sistemul printr-un modul infrarosu cu telecomanda. Din nou probleme : pentru start-up ul moduluilui infrarosu se produceau niste intreruperi la nivelul Timer0, care bloca programul (camera avea se conecta la pin11, care este direct afectat de Timer0). Intr-un final am renuntat la a mai complica proiectul suplimentar si am ajuns la varianta finala, prezentata mai sus.
  • Cu toate piedicile si ghinionul avut, a fost un proiect foarte simpatic, am invatat extrem de mult (cel mai mult din esec) si m-a facut sa mi doresc sa dezvolt in continuare proiecte de acest tip.

Download

Sursa : surveillance_system.zip

Pagina în format PDF : surveillance_system.pdf

Jurnal

  • 12 Martie - au venit toate piesele si am reusit sa calibrez senzorul PIR sa recepteze miscarile si sa aprind un led.
  • 20 Martie - am terminat aplicatia server in C# care porneste un server de tip TCP si asculta
  • 25 Martie - am reusit sa comunic intre server si arduino prin seriala
  • 26 Martie - trimit in caz de detectie mesaj la server
  • 27 Martie - “pornesc si opresc” senzorul PIR din server (in sensul in care nu mai trimit mesaje pe seriala in cazul unei detectii)
  • 12 Aprilie - am conectat camera OV7670
  • 13 Aprilie - am gasit un mod de vizualizare a bitmap-urilor facute de camera
  • 24 Aprilie - am finalizat proiectul, trimitand mesaje catre server in cazul detectiei si salvand local imaginile.
  • 17 Mai - am incercat sa testez din nou proiectul dar cumva am ars si placuta si shieldul de ethernet
  • 18 Mai - mi am cumparat alte piese si am luat de la capat proiectul
  • 19 Mai - am descoperit probleme cu modulul Wi-Fi
  • 22 Mai - conflict intre modulul IR si Timer0
  • 24 Mai - conflict intre tune() si Timer0 (am incercat sa emulez o sirena de politie printr-un buzzer).
  • 27 Mai - ultimele retusuri

Bibliografie/Resurse

pm/prj2021/avaduva/surveillancesystem.txt · Last modified: 2021/05/31 00:20 by victor.bivolaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0