This is an old revision of the document!


Sistem de alarma

Nume: Soare Mihai-Daniel
Grupa: 331CA

Introducere

Proiectul consta in realizarea unui sistem de alarma pentru o locuinta. Scopul acestei alarme este de a instiinta clientul daca o persoana neautorizata patrunde in locuinta clientului si il informeaza instant.

Clientului ii este disponibil sa isi securizeze locuinta cu o anumita parola care trebuie introdusa de fiecare data cand doreste sa intre in locuinta sau sa aiba cardul rfid corespunzator alarmei la indemana.

Se doreste a fi o alarma cat mai veritabila, deci se va folosi un modul de comunicatie pentru a-l instiinta pe client.

De asemenea, o alarma sonora va porni cand persoana neautorizata intra in locuinta.

Descriere generală

In primul rand, clientul va interactiona cu o tastatura si cu un display lcd pentru setarea parolei pe care orice persoana care trece de pragul unui senzor trebuie sa o introduca. Pe langa introducerea parolei, clientul poate sa foloseasca un card rfid pentru dezactivarea alarmei.

Introducerea parolei sau folosirea cardului va duce la dezactivarea alarmei pentru o anumita perioada de timp, cat clientul intra in locuinta.

Daca o persoana neautorizata incearca sa treaca de prag, va porni un sunet de alarma, se vor aprinde niste becuri si un e-mail se va trimite catre client.

Sistemul va fi conectat la wi-fi printr-un modul precum ESP8266, iar toate setarile legate de internet vor fi realizate de persoana care are acces la sistemul de alarma (in cazul de fata detinatorul proiectului).

Pentru a se trimite informatia catre client prin e-mail, acesta isi poate seta un e-mail, altfel informatia va fi trimisa catre compania care a realizat sistemul de alarma. (in cazul de fata detinatorul proiectului)

Schema bloc

Hardware Design

Lista piese:

  • Placa Arduino
  • Breadboard
  • Ultrasonic Sensor
  • Display LCD
  • LED-uri
  • Tastatura
  • Modul wi-fi
  • Modul rfid
  • Fire de legatura
  • Buzzer

In urma realizarii schemei electrice, am descoperit ca era imposibil sa realizez proiectul daca adaugam si tastatura, astfel am ramas la toate celelalte mai putin tastatura.

Schemă electrică

Schemă fizică

Software Design

Inca de la etapa de hardware, am facut un research mai amanuntit asupra a ce vreau sa ajunga in software design, asadar am cautat biblioteci utile pentru fiecare componenta aleasa, cat si m-am gandit cum ar trebui implementat sistemul de trimitere a email-urilor.

Bibliotecile folosite sunt:

  • NewPing → folosita la senzorul de miscare
  • SPI si MFRC522 → folosite la cititorul de carduri RFID
  • LiquidCrystal_I2C → folosita la ecranul LCD
  • SoftwareSerial → folosita la modulul wi-fi esp8266

Pe partea de setup avem urmatoarea functie:

void setup()
{
  // buzzer setup
  pinMode(BUZZER_PIN, OUTPUT);
  analogWrite(BUZZER_PIN, 255);

  Serial.begin(9600);
  delay(100);

  wifi_setup();

  // rfid setup
  SPI.begin();
  mfrc522.PCD_Init();
  mfrc522.PCD_DumpVersionToSerial();

  delay(100);

  // initialize the LCD
  lcd.begin();

  // turn on the blacklight and print a message.
  lcd.backlight();
  lcd.print("Home security");
}

Pentru setup-ul modulului wi-fi am realizat functia:

// helper function used to send an AT command to esp module
// and run it there
void sendATCommand(const char* command, int timeout = 1000) {
  esp8266.println(command);
  delay(timeout);
  while (esp8266.available()) {
    char c = esp8266.read();
    Serial.write(c);
  }
  delay(10); // Delay between commands
}

void wifi_setup()
{
  esp8266.begin(9600);
  delay(2000);
  sendATCommand("AT");
  delay(5000);
  sendATCommand("AT+CWMODE=3");
  delay(5000);
  // change SSID and PASSWORD
  sendATCommand("AT+CWJAP=\"SSID\",\"PASS\"");
  delay(9000); // Longer delay after connecting to WiFi
  sendATCommand("AT+CIFSR");
  delay(100);
}

Aceasta componenta a proiectului este una destul de complex, petrecand o mare parte a timpului intelegand sintaxa esp8266 AT care realizeaza diferite actiuni pe modulul wi-fi.

Codul anterior face ca placuta Arduino sa se conecteze la o retea wi-fi prin intermediul modulului ESP8266.

Logica principala a codului rulat pe Arduino este destul de simpla:

  • se calculeaza distanta pe raza senzorului de miscare
  • se verifica daca cumva a fost introdus cardul
  • se verifica daca exista o persoana care a trecut prin fata senzorului de miscare si nu a folosit cardul.
  • daca da, suna o alarma, se modifica ecranul si se trimite o cerere catre serverul deschis care se ocupa de trimiterea mail-urilor
  • altfel se verifica daca nu cumva cartela a fost introdusa si se reseteaza tot sistemul.

Rezultate Obţinute

TBA

Concluzii

TBA

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

TBA

Bibliografie/Resurse

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

Export to PDF

pm/prj2023/apredescu/sistem-alarma.1685436434.txt.gz · Last modified: 2023/05/30 11:47 by mihai_daniel.soare
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