Documente Academic
Documente Profesional
Documente Cultură
PROIECT
Arhitectura și organizarea
calculatoarelor
Autor:
Gogu Andronache
Calculatoare anul IV
Grupa 4LF991
Gogu.andronache@student.unitbv.ro
BRAȘOV, 2021
Sistem inteligent de iluminare cu încuietoare
Conținut
1 Rezumat............................................................................................................................................3
1.1 Descrierea proiectului...............................................................................................................3
1.2 Descrierea implementării..........................................................................................................3
2 Introducere........................................................................................................................................3
2.1 Prezentarea temei......................................................................................................................3
2.2 Motivația practică pentru alegerea temei..................................................................................4
2.3 Sisteme actuale.........................................................................................................................4
2.3.1 Încuietoare inteligentă Yale Linus – 1400 Lei.................................................................4
2.3.2 Bandă cu leduri Wireless Light Strip LED RGB Sonoff – 173 Lei................................4
3 Prezentarea platformei hardware......................................................................................................5
3.1 Caracteristici tehnice ale procesorului......................................................................................5
3.2 Interfete disponibile..................................................................................................................6
3.2.1 UART...............................................................................................................................6
3.2.2 SPI....................................................................................................................................6
3.2.3 I2C...................................................................................................................................6
3.3 Modalitatea de alimentare a plăcii............................................................................................6
3.3.1 Caracteristicile sursei de alimentare................................................................................6
4 Schema bloc a implementării............................................................................................................7
5 Costurile realizării practice a proiectului..........................................................................................8
6 Prezentarea pachetelor software si a limbajelor de programare.......................................................9
7 Prezentarea firmware-ului dezvoltat...............................................................................................10
7.1 Schema logică.........................................................................................................................10
7.2 Fragmente de cod sursă relevante...........................................................................................11
7.3 Statistici legate de numărul de linii de cod si timpul necesar dezvoltării codului..................13
7.4 Interfața grafică a aplicației bluetooth....................................................................................13
8 Prezentarea montajului realizat.......................................................................................................14
8.1 Arduino uno R3......................................................................................................................15
8.2 Încuietoarea.............................................................................................................................16
8.3 Banda led RGB.......................................................................................................................17
8.4 Modul IRF520 Mosfet............................................................................................................17
8.5 Modul RFID RC522...............................................................................................................18
8.6 Modul bluetooth HC-05..........................................................................................................19
8.7 Buzzer activ............................................................................................................................20
8.8 Modul LED rgb.......................................................................................................................21
8.9 Alimentator 12v 2a.................................................................................................................21
1
Sistem inteligent de iluminare cu încuietoare
8.10 Buton.......................................................................................................................................22
9 Performanțe.....................................................................................................................................22
10 Concluzii.........................................................................................................................................25
11 Bibliografie.....................................................................................................................................26
12 Anexă – cod sursă...........................................................................................................................28
12.1 Arduino...................................................................................................................................28
12.2 AppInventor............................................................................................................................30
2
Sistem inteligent de iluminare cu încuietoare
0 REZUMAT
Aplicația Android ce are ca scop trimiterea de semnale către modulul Bluetooth este realizată
în App Inventor, un creator modern de aplicații ce folosește blocuri pentru a implementa
logica pe care se bazează aplicația. Motivația de a folosi această platformă a fost ușurința cu
care se pot crea aplicații simple, în cazul nostru o aplicație care se poate conecta și trimite
semnale către modulul Bluetooth.
Modulul Bluetooth este conectat la receptorul serial al microcontrolerului, folosind interfața
UART și programat pentru a avea o parolă de conectare adecvată.
Tag-urile și cartela au un ID unic care a fost stocat in memoria microcontrollerului, astfel
încât să fie recunoscute când încuietoarea trebuie deschisă.
Modulul RFID este conectat prin interfață SPI la microcontroler
În cazul în care este primit un semnal detectat că fiind autorizat, încuietoarea se va deschide,
led-ul RGB va deveni verde, iar buzerul va scoate un sunet specific acestui caz. În caz contrar
încuietoarea va rămâne închisă sau se va închide, iar led-ul va deveni roșu și buzerul va scoate
un sunet specific diferit de cel din cazul precedent.
Încuietoarea se închide prin intermediul apăsării unui buton.
Atunci când incuietoarea este deschisă, se poate porni aplicația Bluetooth pentru a controla
banda de led-uri RGB. Astfel, aceasta va lumina doar când încuietoarea este deschisă și se va
stinge atunci când butonul va fi acționat.
1 INTRODUCERE
3
Sistem inteligent de iluminare cu încuietoare
Încuietoarea inteligenta Linus® este o incuietoare sigură, care iți permite sa încui și să
descui ușa, de oriunde te-ai afla.
Ai acces fara chei, vezi cine cand soseste, ofera chei virtuale vizitatorilor, verifica daca
usa este inchisa sau deschisa. Toate acestea sunt posibile prin intermediul aplicatiei Yale Access.
Odata conectat la aplicatie, poti securiza, monitoriza si gestiona accesul in locuinta ta folosindu-
ti telefonul, de oriunde din lume.
Bucura-te de liniste sufleteasca, protejata de cea mai noua incuietoare inteligenta Yale,
care incorporeaza 180 de ani de experienta in domeniul securitatii.
1.3.2 Bandă cu leduri Wireless Light Strip LED RGB Sonoff – 173 Lei
4
Sistem inteligent de iluminare cu încuietoare
Banda LED RGB Sonoff L1 ofera un aspect decorativ, asigurand o lumina placuta ce iti va
transforma atmosfera casei tale in una adevarat originala.
Cu ajutorul benzii inteligente Sonoff L1 poti transforma orice melodie intr-o simfonie de
culori si lumini. Foloseste aplicatia mobila sau telecomanda inclusa in pachet pentru a pregati
luminile pentru petrecere, o cina romantica sau alte activitati alaturi de prietenii tai.
Caracteristici tehnice:
Microcontroller: ATmega328P
Tensiune de funcționare: 5 Volți
Tensiune de intrare: 7-20 Volți
Pini I/O digitali: 14 (din care 6 pot furniza ieșire PWM)
UART: 1
I2C: 1
SPI: 1
Pini de intrare analogici: 6
Curent continuu pentru un pin I/O: 20 mA
Curent continuu pentru pinul de 3,3 V: 50 mA
Memorie Flash: 32 KB din care 0,5 KB utilizată de bootloader
SRAM: 2 KB
EEPROM: 1 KB
Viteza ceasului: 16 MHz
Lungime: 68,6 mm
Lățime: 53,4 mm
Greutate: 25 g
5
Sistem inteligent de iluminare cu încuietoare
2.2.1 UART
Unul dintre cele mai de bază protocoale de comunicații din electronică este protocolul
serial Universal Asynchronous Receive Transmit (UART). Protocolul UART permite ca două
dispozitive să comunice între ele. Protocolul necesită două fire între dispozitivele care comunică;
una pentru fiecare direcție de comunicare. Fiecare dispozitiv are un modul de transmisie și
recepție independent. Când un dispozitiv transmite, acesta trimite date ca o serie de impulsuri.
Fiecare impuls reprezintă un bit de date, deci un octet (8 biți) de date este trimis ca opt impulsuri
pe fir. Aceste impulsuri sunt trimise cu o anumită sincronizare predefinită numită o rată de
transmisie(Baud Rate) care trebuie înțeleasă de ambele dispozitive.
2.2.2 SPI
Interfața seriala SPI (Serial Peripheral Interface) este o interfața sincronă standard de
mare viteză, ce operează în mod full duplex. Ea e folosită ca sistem de magistrală serială sincronă
pentru transmiterea de date, unde circuitele digitale pot să fie interconectate pe principiul master-
slave. Aici, modul master/slave înseamnă că dispozitivul (circuitul) digital master inițiază
cuvântul de date. Mai multe dispozitive (circuite) digitale slave sunt permise cu slave select
individual, adică cu selectare individuală.
2.2.3 I2C
Protocolul Inter Integrated Circuit (I2C) este un protocol creat pentru a permite mai
multor circuite integrate “slave” sa comunice cu unul sau mai mute cipuri “master”. Acest tip de
comunicare poate fi folosit doar pe distante mici de comunicare si asemenea protocolului UART
are nevoie doar de 2 fire de semnal pentru a trimite/primii informatii.
6
Sistem inteligent de iluminare cu încuietoare
După cum se poate observa în schema bloc, canalele de comunicație sunt prezentate pentru fiecare
componentă in parte.
7
Sistem inteligent de iluminare cu încuietoare
15 3 x IRF520 Mosfet 9
Total 260.26
Pentru a se construi programul sunt necesari mai mulți pași. Acțiuni de pre-procesare sunt utilizate
pentru a transforma schița într-un program C/C++. Apoi sunt localizate dependințele schiței, iar apoi
codul este pasat unui compilator avr-gcc/avr-g++. Următorul pas este că acest cod să fie combinat cu
librării standard Arduino care să asigure funcționalități de bază. Rezultatul este un fișier hex, care
conține byții specifici care trebuie scriși pe chip ul de memorie al plăcuței Arduino.
AVR-GCC este un compilator care preia cod scris în limbaj de nivel înalt C și creează o
sursă binară ce poate fi încărcată într-un microcontroler AVR
Mediul de dezvoltare Arduino se folosește de librari pentru a asigura funcționalități extra în
dezvoltarea schițelor. Acestea sunt încărcate pe plăcută împreună cu schița, astfel ocupând un spațiu
mai mare pe această.
Librăriile de Arduino IDE folosite în acest proiect sunt: SPI.h, MFRC522.h, Wire.h,
LiquidCrystal_I2C.h.
Librăria SPI(Interfață Serial Periferică)
SPI este un protocol serial sincron de date folosit de microcontrolere pentru comunicarea
rapidă pe distanțe mici cu unul sau mai multe dispozitive periferice. De obicei sunt trei linii
comune pentru toate dispozitivele:
MISO (Master In Slave Out) - linia slave pentru a trimite date către master
MOSI (Master Out Slave In) - linia master pentru a trimite date către periferice
SCK (Serial Clock) - pulsurile de ceas care sincronizează transmiterea datelor generate de
master
Și o linie specifică pentru fiecare dispozitiv:
SS (Slave Select) - pinul de pe fiecare dispozitiv pe care masterul îl poate folosi pentru a
activa și dezactiva anumite dispozitive
Librăria MFRC522
Această librărie este folosită pentru a citi și scrie diferite tipuri de carduri RFID folosind Arduino și
un dispozitiv RC522 conectat prin intermediul interfeței SPI.
App Inventor este un software care furnizează anumite module/servicii pentru a crea
aplicații Android fără a mai fi nevoie de scrierea directă a codului. Este o distribuție a MIT App
Inventor peste care adaugă funcționalități în plus și un control mai în detaliu asupra aplicației
create.
Avantajele dezvoltării în acest mediu față de scrierea directă a codului sursă este ușurință
creării unui proiect și a realizării produsului final(apk). Datorită folosirii blocurilor, codul nu
devine extrem de voluminos, astfel putând reține un overview asupra întregii aplicații cu
ușurință.
9
Sistem inteligent de iluminare cu încuietoare
10
Sistem inteligent de iluminare cu încuietoare
11
Sistem inteligent de iluminare cu încuietoare
Există în total 138 linii de cod în Arduino IDE și 7 blocuri în App Inventor.
12
Sistem inteligent de iluminare cu încuietoare
Numărul total de ore necesar pentru scrierea acestuia a fost în jur de 9-10 ore.
13
Sistem inteligent de iluminare cu încuietoare
14
Sistem inteligent de iluminare cu încuietoare
15
Sistem inteligent de iluminare cu încuietoare
7.2 ÎNCUIETOAREA
Figura 13 Încuietoarea
16
Sistem inteligent de iluminare cu încuietoare
Banda LED aduce o economie considerabilă de energie electrică și de bani in orice locuință.
Datorita designului modern aceste becuri permit o iluminare de 360 grade. Aceste becuri cu LED
dau o lumina de calitate ridicată și au o durata de functionare de pana la 50 000 de ore; inlocuind
becurile clasice cu acestea moderne, economia energiei electricce creste cu circa 90%, ceea ce va
aduce si o economie considerabila de bani. Banda de led se conectează la cele trei module
IRF520.
Caracteristici tehnice:
Acesta este un modul trazistor de putere, are o Conectare ușoară la arduino sau la alt
microcontroler de 3-5v. Ofera un impuls de curent printr-un pin PWM pentru a controla o pompă
sau un LED sau alt dispozitiv DC la o frecvență de până la 24V și ~ 5A. Acest modul este foarte
ușor de folosit, cea mai simplă modalitate de a explica modul în care funcționează această placă
mică este conectarea la dispozitivul pe care doriți să-l controlați pe Vin și GND.
Acest mic modul are utilitatea de a controla culorile benzii de led individual, deoarece
banda lucrează cu 12V iar tensiunea de operare pentru microcontrollerul folosit este de 5V.
17
Sistem inteligent de iluminare cu încuietoare
Caracteristici tehnice:
Tensiune: 3.3V, 5V
Tensiunea de ieșire: 0-24V
Curentul de ieșire: <5A (necesită un radiator peste 1A)
Platformă: Arduino, MCU, ARM, Raspberry PI.
Acționarea până la 24V permite încărcarea, cum ar fi luminile cu LED-uri, motoarele de
curent continuu, pompele miniaturale, supapele solenoidale.
Greutate: 10g
Dimensiune: 33.5 x 25.5mm
Tensiune de comutare la intrare: Potrivit pentru microcontrolere de 5V.
Figura 16 Modul RFID RC522 Figura 17 Cartele de acces pentru RFID 13.56Mhz
Modulul RFID cu chip RC522 este un cititor de carduri, ușor de utilizat, cu costuri
reduse și se aplică dezvoltării de echipamente și de aplicații avansate. Acest modul poate fi
încărcat direct în diferite forme de cititoare. Utilizează o tensiune de 3.3V, iar comunicarea se
poate face prin intermediul interfeței SPI.
Caracteristici tehnice:
18
Sistem inteligent de iluminare cu încuietoare
Figura 18 Modul Bluetooth HC-05 – poză din față Figura 19 Modul Bluetooth HC-05 – poză din
spate
HC-05 este un modul care poate adăuga funcții Wireless în două direcții (full-duplex)
pentru o varietate de proiecte. Acest dispozitiv se poate folosi pentru a comunica intre 2
microcontrolere ca de exemplu Arduino, sau cu orice dispozitiv ce folosește Bluetooth precum
un telefon sau laptop. Acest modul comunică prin intermediul interfeței USART la o rată baud de
9600. De asemenea se pot configura valorile predefinite, folosind comenzi specifice.
Caracteristici tehnice:
19
Sistem inteligent de iluminare cu încuietoare
Consum: 30mA
Rază acoperire: max. 100m
Folosește protocolul IEEE 802.15.1 standardizat
Poate fi opera atât ca Master cât și Slave
Baud Rate: 9600, 19200, 38400, 57600, 115200, 230400, 460800
Acest modul este constituit dintr-un buzzer piezoelectric activ, ce generează un sunet
atunci când se depășește o valoare predefinită. Produce un sunet de aproximativ 2,5KHz.
Buzzer-ul este conectat pe pinul său de „+” la pin-ul 8 de pe Arduino. Pinul „-” este conectat la
masa (GND).
Caracteristici tehnice:
20
Sistem inteligent de iluminare cu încuietoare
Acest modul LED ofertă posibilitatea de a crea o variată gamă de culori folosindu-vă de
abilitatea sa de a trimite semnal separat pe fiecare dintre culorile roșu (R), verde (G), albastru
(B). Conexiunile RGB prezintă limitare de curent pentru a preveni arderea.
Caracteristici tehnice:
Tensiune 5V
Catod comun
Neconectat
GND
Tabel 5 Denumirea pinilor conectați între modulul LED RGB si Arduino
Acest alimentator este compatibil cu placa Arduino Uno R3 și absolut necesar pentru alimentarea
încuietorii. Tensiunea de ieșire generată de alimentator este furnizata pe pin-ul VIN de pe controller.
Caracteristici tehnice:
21
Sistem inteligent de iluminare cu încuietoare
7.10 BUTON
Figura 23 Buton
Acesta este un buton simplu, folosit pentru acționarea inchiderii încuietorii. Acest dispozitiv
este conectat pe pin-ul 7 de pe placa Arduino si deschide un circuit de 5V atunci c ând este
apăsat, declanșând un 1 logic in cod.
8 PERFORMANȚE
Sistemul funcționează foarte bine, însă ca orice alt proiect, se mai pot aduce îmbunătățiri
ulterioare, atât aplicației de pe telefon, cât și montajului. Planurile pe viitor pentru dezvoltarea și
îmbunătățirea acestui proiect sunt prezentate in următoarea listă, in ordinea prioritaților:
1. Modificare aplicație pentru a adauga modificarea intensității luminoase.
2. Proiectare si creare PCB pentru minimizarea dimensiunii proiectului.
3. Proiectarea unei carcase din plastic printată la o imprimantă 3D.
4. Adăugarea posibilitații de a deschide încuietoarea din telefon.
In următoarele poze, sunt prezentate câteva din rezultatele testării. Totodată, puteți
urmări videoclipul “DEMO_PROIECT_AOC.mp4” pentru un demo mai detaliat.
22
Sistem inteligent de iluminare cu încuietoare
23
Sistem inteligent de iluminare cu încuietoare
24
Sistem inteligent de iluminare cu încuietoare
9 CONCLUZII
Din punctul meu de vedere, acest proiect este unul reușit și dus la bun sfârșit. Este o
aplicație foarte bună pentru a aduce un plus de culoare intr-o locuință. Costul dezvoltării acestui
proiect a fost prezentat mai detaliat intr-un capitol anterior (260.26 Lei).
Dificultățile pe care le-am întâmpinat in dezvoltarea acestui proiect a fost conectarea
modulului de RFID și citirea codului unic de pe cartele, insă am trecut cu brio peste această
provocare. Un alt impas de care m-am lovit a fost comandarea benzii de led-uri și a încuietorii
prin intermediul semnalelor de 5V. Știind ca cele două componente lucreaza cu 12V, a trebuit o
sursă de alimentare auxiliară si folosirea tranzistoarelor MOSFET N-CHANNEL.
În comparație cu alte sisteme prezentate in capitolele anterioare, acesta este la stadiul de
concept, însă se poate pune in practica cu un efort suplimentar. Trebuie proiect PCB-ul si carcasa
de plastic pentru a putea fi pus in funcțiune intr-un dulap sau noptieră.
25
Sistem inteligent de iluminare cu încuietoare
10 BIBLIOGRAFIE
[1] An Introduction To Arduino Uno Pinout
https://www.circuito.io/blog/arduino-uno-pinout/
[2] Arduino Uno R3 ATMEGA328P
https://cleste.ro/arduino-uno-r3-atmega328p.html?
gclid=Cj0KCQiAuJb_BRDJARIsAKkycUm1yTonGYzQSAPtB8zaj69IX617y1svT9JMqqSLlw5DTg
E1py2t8lEaAvW8EALw_wcB
[3] Modul RFID cu card si tag
https://cleste.ro/modul-rfid-cu-card-si-tag.html?
gclid=Cj0KCQiAuJb_BRDJARIsAKkycUkfdQ9ikTUlK8q76Pxk2lCsVzeCqrNaxttiBkzAdro52z6TY
pGTlXMaAo2zEALw_wcB
[4] Modul Bluetooth HC-05
https://cleste.ro/modul-bluetooth-hc-05.html
[5] Modul buzzer activ
https://cleste.ro/modul-buzzer-activ.html?
gclid=Cj0KCQiAuJb_BRDJARIsAKkycUkqxZC5OQ4s_0uhyBahDRVyAq1gbl9g8gKBJ6BhS5PrCr
tJFK4iOmsaAlBQEALw_wcB
[6] Modul LED rgb
https://cleste.ro/modul-led-rgb.html?
gclid=Cj0KCQiAuJb_BRDJARIsAKkycUluap5feyu1IVJOt_2banzC_Wl3aFqLm8_U10QxDFpAQG
sYu5-zAH8aAtouEALw_wcB
[7] Alimentator 12V 2A
https://cleste.ro/alimentator-12v-2a.html
[8] Arduino Uno
https://en.wikipedia.org/wiki/Arduino_Uno
[9] Intro to Arduino: UART Serial Communication
https://ns-electric.com/knowledge-base/intro-to-arduino-uart-serial-communication/
[10] Interfața serială SPI
https://ro.wikipedia.org/wiki/Interfa%C8%9Ba_serial%C4%83_SPI
[11] Arduino IDE
https://arduino.github.io/arduino-cli/latest/sketch-build-process/
https://www.arduino.cc/en/guide/environment
[12] AVR-GCC
https://ccrma.stanford.edu/~juanig/articles/wiriavrlib/AVR_GCC.html
[13] MFRC522.h
https://github.com/miguelbalboa/rfid
26
Sistem inteligent de iluminare cu încuietoare
11.1 ARDUINO
#include <SPI.h>
#include <MFRC522.h>
27
Sistem inteligent de iluminare cu încuietoare
#include <Wire.h>
String serialResponse = "";
bool isLocked = true;
int red_val = 0;
int green_val = 0;
int blue_val = 0;
#define red_ledbar 3
#define green_ledbar 5
#define blue_ledbar 6
#define button 7
#define led_green 2
#define led_red 4
#define SS_PIN 10
#define RST_PIN 9
#define BUZZER 8
void Unlock() {
digitalWrite(led_green, HIGH);
digitalWrite(led_red, LOW);
digitalWrite(BUZZER, HIGH);
delay(300);
digitalWrite(BUZZER, LOW);
}
void Lock() {
WriteRGB(0, 0, 0);
int delay_time = 100;
digitalWrite(led_green, LOW);
void ToggleLockWithRFID() {
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
String content = "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
content.toUpperCase();
if (content.substring(1) == "03 EC 9A 03" || content.substring(1) == "89 6F 04 C2" ||
content.substring(1) == "B3 56 2B 83")
{
if (isLocked) {
Unlock();
isLocked = false;
}
}
else
{
if (!isLocked) {
isLocked = true;
Lock();
}
28
Sistem inteligent de iluminare cu încuietoare
}
}
void setup()
{
Serial.begin(9600);
pinMode(led_green, OUTPUT); // led pin + lock pin
pinMode(led_red, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(red_ledbar, OUTPUT);
pinMode(green_ledbar, OUTPUT);
pinMode(blue_ledbar, OUTPUT);
digitalWrite(led_green, LOW);
digitalWrite(led_red, HIGH);
void loop()
{
if (Serial.available() > 0) {
serialResponse = Serial.readString();
if(!isLocked){
WriteRGB(red_val, green_val, blue_val);
}
29
Sistem inteligent de iluminare cu încuietoare
11.2 APPINVENTOR
30