This is an old revision of the document!


Cameră de securitate controlată prin aplicație mobilă

Introducere

Prezentarea pe scurt a proiectului:

Acest proiect constă într-un sistem de supraveghere portabil, autonom, bazat pe modulul ESP32-CAM. Dispozitivul este alimentat de la o baterie Li-Ion și poate stoca imagini pe un card SD, dar și transmite date către o aplicație mobilă personalizată prin WiFi.

Ce face:

- Captează imagini la intervale regulate sau la detecția mișcării. - Salvează imaginile pe un card microSD. - Trimite notificări și imagini către o aplicație mobilă. - Poate fi controlat de la distanță printr-o interfață mobilă.

Scopul:

Scopul este realizarea unui sistem de supraveghere autonom, ușor de amplasat în diverse locații, fără a necesita infrastructură complicată sau alimentare permanentă.

Ideea de la care am pornit:

Am dorit un dispozitiv simplu, accesibil, portabil și wireless, care să poată monitoriza un spațiu și să alerteze utilizatorul în timp real.

Utilitate:

Este util pentru monitorizarea locuințelor, birourilor, grădinilor, spațiilor de parcare sau în proiecte educaționale și hobby-uri DIY. Poate fi un bun punct de plecare pentru aplicații IoT mai complexe.

Descriere generală

Schema bloc:

Descrierea modulelor:

  • ESP32-CAM – modulul principal care controlează tot sistemul. Capturează imagini, gestionează conexiunea WiFi și salvează pe SD card.
  • Baterie Li-Ion + Modul de alimentare (TP4056) + Convertor MT3608 – sursa de alimentare a sistemului.
  • Card microSD – folosit pentru stocarea imaginilor local.
  • Aplicație mobilă – oferă interfață pentru vizualizarea imaginilor și trimiterea comenzilor către ESP32.
  • Modul WiFi (integrat în ESP32) – pentru comunicarea cu telefonul.

Hardware Design

Componente utilizate:

  • ESP32-CAM
  • Card microSD
  • Baterie Li-Ion 3.7V
  • Modul de încărcare TP4056
  • Convertor MT3608
  • Modul FTDI pentru upload firmware

Schema electrica:

Software Design

Mediu de dezvoltare:

Biblioteci utilizate:

  • `FS.h` – pentru interactiunea cu fisiere
  • `SD_MMC.h` – pentru interacțiunea cu cardul microSD
  • `WiFi.h` – conexiune wireless
  • `esp_camera.h` – controlul camerei

Functii adaugate:

  • *ESP32-CAM * onTimer() (ISR marcat cu IRAM_ATTR): * Funcție de tip întrerupere (ISR) apelată de timer la un interval configurat (în exemplu, la 500 ms). Setează flag‑ul (motionCheckFlag) care indică faptul că trebuie verificată prezența mișcării. * startRecording(): * Creează un fișier nou pe cardul SD (nume incrementat automat) cu extensia .mjpeg. Pornește înregistrarea, reținând momentul de start, pentru a ști ulterior când să se oprească după un anumit interval (ex. 5 secunde). * stopRecording(): * Închide fișierul de înregistrare și setează indicatorul de înregistrare (isRecording) pe false. Resetează flag‑urile și memoria dedicată primei capturi, pentru a pregăti sistemul pentru o nouă înregistrare. * downscaleGrayscale(const camera_fb_t *fb, uint8_t *output): * Converteste cadrul JPEG (fb→buf) în format RGB și apoi îl reduce la o imagine 64×64 în tonuri de gri (8 biți/pixel). Folosește sampling 3×3 pentru a face o mică anti-aliasing și calculează media valorilor de gri. Returnează true/false în funcție de reușita procesării. * detectMotion(const camera_fb_t *fb): * Preia cadrul de la cameră, apoi îl trimite către downscaleGrayscale(). Compară rezultatul cu cadrul anterior (prevFrame) și calculează media diferențelor pixel cu pixel. Dacă media diferențelor depășește MOTION_THRESHOLD, consideră că s-a detectat mișcare și întoarce true. * getLastFileNumber(): * Scanează directorul rădăcină de pe cardul SD pentru a găsi fișiere de tipul motion_x.mjpeg. Caută cel mai mare număr x deja folosit în denumirea fișierelor și returnează următorul index disponibil. * checkMotion(): * Se apelează atunci când motionCheckFlag este setat de întrerupere (onTimer()). Obține un nou cadru de la cameră, apelează detectMotion() și dacă este detectată mișcare, pornește înregistrarea (startRecording()). ===== Rezultate Obţinute ===== ===== Concluzii ===== ===== Cod sursă ===== * [Repo GitHub](https://github.com/arthurpeter/Pm-Project) – toate fișierele sursă. Structura repo: * CameraWebServer - Cod pentru placuta. * CameraApp - Cod aplicatie mobila. ===== Jurnal ===== * Etapa 1: Alegerea componentelor și testarea ESP32-CAM * Etapa 2: Algoritm de detectare a miscarii * Etapa 3: Captura video și salvarea pe SD * Etapa 4: Interfață mobilă + transmisie WiFi * Etapa 5: Integrare finală și testare pe baterie ===== Bibliografie / Resurse ===== Hardware: * [ESP32-CAM datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-cam_datasheet_en.pdf) * [TP4056 datasheet](https://www.electronicsdatasheets.com/download/90c913a424f8e6d5f3e164c81bfc9c5c) Software:**
pm/prj2025/ajipa/arthur.peter.1747831224.txt.gz · Last modified: 2025/05/21 15:40 by arthur.peter
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