This is an old revision of the document!
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.
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)
Lista piese:
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.
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:
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.
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.