This is an old revision of the document!


Sistem Usa Smart

Introducere

Un sistem pentru o usa inteligenta ce va avea următorul comportament:

  • Senzorul de miscare va detecta prezenta unei persoane, iar camera va incepe se capteze imagini
  • Imaginea persoanei din fata ușii va fi transmisa catre server
  • Backend-ul va decide dacă persoana este autorizată iar în caz afirmativ se va deschide usa
  • În caz contrar, proprietarii vor primi notificare pe aplicația mobila care va afișa fata persoanei ce așteaptă în fata ușii
  • Moment în care se poate aproba deschiderea ușii sau nu
  • Dacă usa se deschide cu forța(fără aprobare sau recunoaștere), în spatele acesteia vor exista 3 senzori de miscare ce vor detecta intrarea prin efracție și vor atenționa proprietarii cu o notificare pe mobil și se va porni o alarma

Prezentare

Proiectul consta intr-un sistem de securitate pentru usi bazat pe recunoastere faciala si control remote asupra usii.

Ideea

Sunt o persoana foarte dezordonata care uita/pierde cheile tot timpul. Asa ca m-am gandit sa-mi usurez viata folosind acest sistem.

Descriere generală

Placuta de Arduino este alimentata la o sursa obisnuita introdusa in priza. Senzorii (de proximitate) sunt conectati la placuta si vor citi mereu datele din mediul inconjurator. Modulul de camera este conectat la placuta si asteapta ca senzorii sa detecteze miscare pentru a transmite imaginile catre server. Un releu conectat la placuta si o sursa pentru alimentarea yalei electromagnetice.

Schema Bloc

Hardware Design

  • Arduino Uno
  • Senzori de mișcare PIR
  • Modul de cameră OV7670
  • Modul de comunicație wireless ESP8266
  • Modul Releu canal 5V
  • Baterie de 12V + conector baterie
  • Buzzer
  • LED-uri
  • Yala electromagnetica
  • Alimentator
  • Fire mama-mama, mama-tata, tata-tata

Schema Circuit

Aici puneţi tot ce ţine de hardware design:

Software Design

Mediu De Dezvoltare

  • Arduino IDE - pentru programarea placutei
  • IntelliJ - pentru programarea comunicatiei seriale
  • VSCode - programarea serverului(Python - Flask) si programarea aplicatiei mobile(Flutter)

Biblioteci

  • Adafruit_ST7735
  • Am preluat un cod scris sub forma de biblioteca pentru interactiunea cu modulul de camera OV7670

Organizarea Codului

Arduino

#include "setup.h"
 
// defines pins numbers
const int trigPin = 9;
const int echoPin = 10;
const int outPin = 11;
// defines variables
long duration;
int distance;
 
void setup() {
  CLKPR = 0x80; // enter clock rate change mode
  CLKPR = 0; // set prescaler to 0. WAVGAT MCU has it 3 by default.
 
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  pinMode(outPin, OUTPUT);
  Serial.begin(9600); // Starts the serial communication
 
  initializeScreenAndCamera();
}
 
void loop() {
 
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);
  // Calculating the distance
  distance = duration * 0.034 / 2;
 
  if(distance < 20){
    for(int i = 0; i < 10; i++){
      char serverResponse = processFrame();
      if(serverResponse == 1){
        digitalWrite(outPin, HIGH);
        delay(25000);
        digitalWrite(outPin, LOW);
        break;
      }
    }
  }
}

In cadrul acestui cod, functia “initializeScreenAndCamera()” a fost lasata intacta, in schimb ceea ce am modificat din cadrul “bibliotecii” pe care am gasit-o, a fost functia “processFrame()”

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea *Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul *:pm:prj20??:c?* sau *:pm:prj20??:c?:nume_student** (dacă este cazul). *Exemplu:* Dumitru Alin, 331CC → *:pm:prj2009:cc:dumitru_alin*.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe *Resurse Software* şi *Resurse Hardware*.

Export to PDF

pm/prj2023/apredescu/barbuta.cristian.1685317387.txt.gz · Last modified: 2023/05/29 02:43 by cristian.barbuta
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