______________________________________________________________________________________________________________________________________________________… [305874]
UNIVERSITATEA “AUREL VLAICU” DIN ARAD
FACULTATEA DE INGINERIE
DOMENIUL / PROGRAMUL DE STUDIU: AUTOMATICĂ ȘI INFORMATICĂ APLICATĂ
FORMA DE ÎNVĂȚĂMÂNT: CU FRECVENȚĂ
LUCRARE DE LICENȚĂ
ÎNDRUMĂTORȘTIINȚIFIC
Conf.dr.ing. Valentina E. Bălaș
ABSOLVENT: [anonimizat]
2014
UNIVERSITATEA “AUREL VLAICU” DIN ARAD
FACULTATEA DE INGINERIE
DOMENIUL / PROGRAMUL DE STUDIU: AUTOMATICĂ ȘI INFORMATICĂ APLICATĂ
FORMA DE ÎNVĂȚĂMÂNT: CU FRECVENȚĂ
SISTEM DE
CONTROL ACCES & SERVER GSM
ÎNDRUMĂTOR ȘTIINȚIFIC
Conf.dr.ing. Valentina E. Bălaș
ABSOLVENT: [anonimizat]
2014
UNIVERSITATEA “AUREL VLAICU” DIN ARAD APROBAT
FACULTATEA DE … DECAN
DOMENIUL / PROGRAMUL DE STUDIU
Nr. __________ din ___________
VIZAT
Îndrumător științific
DATE PERSONALE ALE CANDIDAT: [anonimizat]:__________________________________________________________
Numele anterior:_____________________________________________________
Prenumele: _________________________________________________________
Sexul: (M/F)
Data și locul nașterii:
Ziua / luna / anul __________ / __________ / __________
Locul (localitate, județ) _________________________________
Prenumele părinților:
Tata: _____________________________________
Mama:____________________________________
Domiciliul permanent: (str., nr.,localitate, județ, [anonimizat], e-mail):
___________________________________________________________________
Sunt absolvent(ă) promoția: ______ / ______
Forma de învățământ pe care am absolvit-o este: ([anonimizat], ID), cu taxă/fără taxă
Locul de muncă (dacă e cazul):__________________________________________
Solicit înscrierea la examenul de …………………………. (licență, diplomă, disertație):
Sesiunea ________________________________ anul _______________________
Lucrarea de ……………………………(licență, diplomă, disertație) pe care o susțin are următorul titlu:
______________________________________________________________________________________________________________________________________________________________________________________________________________________________
Îndrumător științific:
___________________________________________________________________
12. Menționez că susțin examenul de …………………………………. finalizare a studiilor (pentru prima oară, a [anonimizat]) _______________________________ [anonimizat]. 143 din Legea 1/2011. [anonimizat], [anonimizat], conform art. 146 din Legea 1/2011.
SEMNĂTURA
_________________________________
REFERAT
PRIVIND LUCRAREA DE LICENȚĂ
A
ABSOLVENT: [anonimizat] / AUTOMATICĂ ȘI INFORMATICĂ APLICATĂ
PROMOȚIA 2014
Titlul lucrării: Sistem de control acces & server GSM
Structura lucrării:
Lucrarea este structurată pe cinci capitole urmate de Concluzii și Bibliografie:
Cap. 1 Introducere in automatică
Cap. 2 Informatică – servere
Cap. 3 RFID
Cap. 4 Structura hardware
Cap. 5 Structura software
Aprecieri asupra conținutului lucrării de diplomă (disertație), [anonimizat], complexitate, actualitate, deficiențe
Subiectul abordat este de mare actualitate și urmărește realizarea unui sistem de acces care să permita intrarea intr-o zona utilizand tehnologia RFID.
Absolventul a realizat cu succes un studiu complet despre partea de hard, cea de soft și RFID și a implementat cu succes un astfel de sistem folosind o placa ARDUINO.
Lucrarea este bine organizata din punct de vedere logic, prezinta succesiv toate etapele proiectarii si realizarii, cuprinzând aplicații originale realizate de către absolvent.
Aprecieri asupra lucrării (se va menționa: numărul titlurilor bibliografice consultate, frecvența notelor de subsol, calitatea și actualitatea surselor consultate; modul în care absolventul a prelucrat informațiile din sursele bibliografice, contribuții originale)
Lucrarea cuprinde 11 titluri bibiliografice. Informațiile din lista bibliografică sunt de data recentă, de calitate și bine evidențiate pe parcursul lucrării. Acestea cuprind noțiuni despre sisteme utilizate în automatica, senzori, servere, RFID, etc.
Concluzii (valoarea lucrării elaborate de absolvent, relevanța studiului întreprins, competențele absolventului, consecvența și seriozitatea de care a dat dovadă absolventul pe parcursul documentării și elaborării lucrării)
Absolventul Adrian Lucian Gorgan dă dovadă de o foarte bună cunoaștere a domeniului și a depus un efort considerabil atat fizic cat și material în realizarea lucrării. Ritmul de elaborare a lucrarii a fost foarte bun, absolventul dovedind multă seriozitate și profesionalism. Aplicația realizată este funcțională.
Redactarea lucrării respectă normele de redactare.
Nu există suspiciuni de realizare prin fraudă a prezentei lucrări. Lucrarea are un grad de originalitate extrem de ridicat, bazându-se în totalitate pe contribuția proprie a absolventului
Consider că lucrarea îndeplinește condițiile pentru susținere în sesiunea de Examen de licență din Sesiunea Iulie 2014.
Recomand comisiei de disertație să accepte susținerea lucrării în sesiunea iulie 2014
și acordarea notei 10(zece), având în vedere gradul ridicat de complexitate și originalitate.
Arad,
Iulie 2014 Îndrumător științific
Prof.Dr.Ing. Valentina Emilia Bălaș
Introducere in automatică.
Tehnologii utilizate pentru realizarea unei automatizări.
Pentru realizarea unei automatizari se pot utiliza mai multe solutii:
– utilizarea unei tehnologii cablate, care presupune folosirea releelor electrice, pneumatice sau hidraulice
– utilizarea circuitelor integrate universale sau specializate pentru realizarea unor sisteme dedicate.
– utilizarea automatelor programabile AP
– utilizarea calculatoarelor de proces.
Domeniul de utilizare a fiecareia dintre solutii depinde de complexitatea automatizarii si de numarul de echipamente identice. In figura 1 este prezentat locul fiecarei solutii in realizarea unei automatizari.
Analizând figura rezultă următoarele:
tehnologia cablată este utilizată pentru probleme în care complexitatea automatizării este mică
automatele programabile se utilizează în cazul în care complexitatea automatizării este medie și trebuie adăugat, acolo unde se cere flexibilitate.
pentru un grad de complexitate ridicat se utilizează calculatoarele de proces CP
utilizarea AP și CP se recomandă dacă numărul de echipamente identice care urmează să fie realizate nu depășește 50.
pentru un număr mai mare de 50 de echipamente identice se recomandă dezvoltarea unei cercetării proprii care să permită elaborarea unor module specializate pentru tipul de automatizare și utilizarea lor că echipamente înglobate.
Există o suprapunere parțială a domeniilor de utilizare a soluțiilor de automatizare. De exemplu realizarea unor automate programabile performate permite folosirea lor în domeniul în care se folosesc cu aceleași rezultate calculatoarele de proces.
Noțiuni de condiționare a semnalelor provenite din proces
Realizarea conducerii unui proces cu ajutorul unui calculator se poate face prin colectarea de informații de stare din proces. Apoi pe calculator se intocmeste un program de conducere si se transmit spre elementele de execuție a comenzi.
Informațiile de la proces sunt furnizate de traductoare. Traductoarele sunt elemente care transformă mărimea fizică provenită din proces într-un semnal electric, tensiune sau curent, pe care modulele calculatoarelor de proces le pot prelua și transforma în valori numerice. Aceste valori pot fi folosite pentru realizarea programelor de conducere. De exemplu senzorii termoelectrici de temperaturaconvertesc temperatura într-un semnal analogic pe care un modul de intrări analogice îl poate prelua. Deși toate traductoarele, indiferent de mărimea care o măsoară, trebuie să furnizeze mărimea fizica in semnal electric, sunt cazuri în care acestea nu dau direct un semnal de tensiune sau curent și transformarea trebuie realizata prin intermediul unui hardware separat, inclus în traductor sau într-o structura separata pe care o vom denumi în continuare Sistem de condiționare a semnalelor (SCS) provenite din proces.
SCS este realizat ca o structura separată, care este situată între calculatorul de proces și proces. Principalele funcții ale unui SCS sunt:
Adaptarea mecanică la normele industriale de cablare;
Adaptarea electrică a semnalelor (amplificarea-atenuarea, prelucrări matematice simple, conversii de la mărimi ne-electrice la tensiune/curent etc.);
Izolarea galvanică si protecția împotriva supratensiunilor și supracurentior;
Filtrarea semnalelor;
Funcții auxiliare de alimentare a traductoarelor și elementelor de execuție.
Transformarea rezistență-tensiune
Rt depinde liniar de 𝜶.
U sursa de tensiune auxiliară.
Calculatorul nu poate prelua decât tensiune, deci trebuie folosită o sursă auxiliară de tensiune și un divizor care să dea o tensiune de ieșire Ue dependentă de 𝜶. Dependență este neliniară dar nu deranjează prea tare pentru că acum sistemele de calcul au vitează mare. Puntea – soluția care se adopta pentru măsurările de efort, greutate etc. Majoritatea firmele nu oferă rezistențe variabile cu efortul ci punți de rezistente (Fig. 3). Cele mai multe firme oferă traductoare cu AO legate ca în figura 2.
Ue este direct proportional cu mărimea care se doreste a fi măsurata.
Transformarea tensiune-curent
De foarte multe ori este nevoie să se aducă mărimea de la proces de la distanțe relativ mari. Aceasta duce la influențarea preciziei de măsurare. Din acest motiv se folosește o transformare tensiune-curent (Fig. 4), astfel încât să se transporte curent și nu tensiune. Dacă legătură este complet izolată atunci pierderea de curent între punctele de colectare și calculatoarele de proces este minimă, curentul Is nu depinde decât de Ui.
Înainte de a comanda un traductor de la o fabrică trebuie cunoscută distanță dintre traductor și calculatorul de proces deoarece fabrica poate oferii ambele structuri descrise mai sus.
Conversia tensiune-frecvență
Convertoarele tensiune-frecvență (Fig. 6) se utilizează pentru conversia semnalelor analogice in semnale numerice. Un avantaj important este că informația de frecvența se poate transmite la distanță, ca un semnal imun la perturbatii, care poate trece prin izolatoare galvanice (inductive sau optice) fără a fi afectat de erori de frecvență.
Când tensiunea de ieșire a integratorului depășește pragul comparatorului acesta declanșează monostabilul, care va închide contactul k un timp t1. Închiderea contactului k are ca efect introducerea în circuit a unui generator de curent Ir, care provoacă o creștere a tensiunii de ieșire. La deschiderea întreruptorului k tensiunea de ieșire B va reprezenta integrala cu semn schimbat a tensiunii de intrare rezultând o scădere. După un timp TU tensiunea de ieșire va depăși pragul comparatorului și fenomenul se repetă. De obicei capacitatea C este fixă, iar valorile rezistenței de intrare R și a condensatorului de la circuitul basculant monostabil se recomandă să fie alese astfel încât t1 să reprezinte 25% din TU.
Filtrarea semnalelor
O funcție de circuit este raportul dintre transformata Laplace a unui răspuns și transformată Laplace a unei excitații.
Filtrarea – analogică – rapidă cu AO, R, C. Dezavantaj – deriva componentelor – îmbătrînire uzură.
Filtrarea – Numerică – folosită cu convertori, este lentă inițial, datorită vitezei de lucru a calculatoarelor, se pierde legătura cu procesul. Mai nou există calculatoare foarte rapide, convertoare flash. Are avantajul că rămâne valabilă, dacă este bine făcută, până la distrugerea sistemului ce realizează filtrarea.
Proprietățile funcțiilor de circuit: O funcție de circuit este raportul a două polinoame în s
O funcție de circuit este o funcție reală în s, adică ia valori reale pentru valori reale ale lui s;
O funcție de circuit are proprietatea de reflexie
Polii unei funcții de circuit sunt în semiplanul stâng
Polii unei funcții de circuit H(-s) sunt în semiplanul drept
Modulul și faza unei funcții de circuit
Un semnal discret (digital) se obține din memorarea valorilor unui semnal continuu în anumite momente de timp. Intervalul dintre două eșantioane se numește perioadă de eșantionare T. Valorile memorate se numesc eșantioane, iar procesul de memorare se numește discretizare.
Realizarea hardware a unui filtru:
Izolare galvanică
Izolarea galvanica a unui semnal numeric cu leduri si tranzistori.
Des folosita la frecvente relativ mici. Pentru frecventa mare se folosesc structuri cu modulare/demodulare.
Izolare galvanica prin modulare/demodulare
Amplificatorul instrumental
Convertoare analog numerice
Se clasifica dupa – viteza si precizie
convertor cu conversie intermediară
convertor cu dublă integrare
convertor cu registru de aproximații succesive – este cel mai folosit din cauza vitezei
convertor flash. – este practic instaneu, viteză de procesare a semnalului electromagnetic e infinită și este viteză de lucru a convertoarelor flash.
Convertoare numeric-analogice
Sunt de 2 tipuri:
cu R ponderate
cu rezistențe de tip R, 2R.
Însumarea unor tensiuni în funcție de modul în care este înscris în registrul de date.
Dezavantaj – trebuie construite rezistențe ponderate.Dacă nu sunt exacte au influență asupra ieșirii.
Un CAN nu are întârzieri decât cele datorate propagării semnalelor electrice, adică foarte mici. Din momentul încărcării registrului de date contactele se deschid sau se închid.
Cu rezistente de tip R, 2R (Fig. 10).
Avantaj – se realizează doar 2 tipuri de rezistențe. Acțiunea unui sumator stă la baza obținerii tensiunii analogice. Toate impedanțele echivalente sunt 2R
Traductoare incrementale de rotație
Determinarea sensului de rotație
Cele 2 semnale cand se rotesc in sensul sagetii.
Cele 2 semnale cand se rotesc in celalalt sens.
Daca rotația are loc în sensul I, atunci conjuncția între derivata semnalului B și semnalul A realizează setarea bistabilului de sens și numărătorul va număra în sens direct. Dacă rotația are loc în sensul II, atunci conjuncția între derivata semnalului A și semnalul B realizează resetarea bistabilului de sens și numără-torul va număra în sens invers.
Informatică
Server
În tehnologia informației, un server este un program de aplicație care furnizează servicii altor aplicații (numite aplicații client), aflate pe același calculator sau pe calculatoare diferite. De obicei, aplicația server așteaptă conexiuni din partea aplicațiilor client. Se mai numește server și calculatorul pe care rulează una sau mai multe asemenea aplicații. Deseori soluția pentru mari aplicații cu mulți utilizatori se bazează tocmai pe arhitectura client-server, care constă din cel puțin 2 aplicații (și deseori cel puțin 2 computere).
Serverele au apărut în paralel cu rețelele de calculatoare. Rețelele permit calculatoarelor să comunice unul cu celalalt, iar cu cât rețeaua este mai mare apare nevoia ca un calculator să ia rolul de server care să deservească alte calculatoare (acestea interacționând eventual direct cu utilizatorii umani), care își asumă la rândul lor rolul de client.
Și după apariția serverelor rețelele s-au dezvoltat și au crescut mai departe; în schimb minicomputerele – care erau mai eficiente decât cele personale dar mai puțin eficiente decât mainframe-urile – au dispărut sau au fost "absorbite" de unele din aceste servere (au preluat rolul de server).
Apariția rețelelor cu calculatoare personale, a Internetului și răspândirea utilizatorilor acestor servicii au dat un impuls puternic dezvoltării serverelor.
Descriere
Serverele ocupă un loc important în tehnologia informaticii, la fel ca și minicomputerele în trecut, care însă au fost înlocuite. Un server este o aplicație pe computer, uneori chiar un computer întreg, care operează continuu în rețeaua sa și așteaptă solicitări din partea altor calculatoare din rețea. Serverele pot fi folosite simultan și pentru alte scopuri, dar când nevoile o cer, ele pot fi rezervate exclusiv pentru funcția de server. De exemplu, un calculator se poate folosi într-un birou simultan pentru două scopuri, ca stație de lucru și ca server pentru celelalte calculatoare din birou. Cuvântul server provine din cuvântul englez to serve – a servi: calculatorul server poate în principiu deservi întreaga rețea de calculatoare clienți, pentru a asigura accesul la toată paleta de forme de conectare și servicii. Deseori unul și același computer poate juca ambele roluri, și de server, și de client, în același timp. Numele de server este un alt termen pentru Host computer – computer gazdă, spre deosebire de alte elemente "inteligente" din rețea cum ar fi routerele și switch-urile.
În zilele noastre serverele se aseamănă fizic cu celelalte calculatoare uzuale, deși configurația hardware este deseori optimizată pentru funcționarea lor ca servere. Multe componente de hardware sunt identice cu cele ce le găsim într-un calculator personal. Totuși serverele rulează sisteme de operare și programe specializate care sunt foarte diferite față de cele folosite pe calculatoare personale și stațiile de lucru.
Serverele nu trebuiesc confundate cu calculatoarele de tip mainframe, care centralizează informații și procesează activitățile firmelor mari. Un mainframe poate în principiu să funcționeze simultan și ca server, sau chiar ca mai multe servere virtuale, pe lângă toate celelalte activități. Multe companii mari folosesc ambele tipuri de calculatoare, anume și mainframe, și servere. Acestea din urmă sunt de obicei mici, multe și descentralizate.
Tipuri de servere
Se întâlnesc foarte multe tipuri de servere. Cele mai multe aplicații client/server sunt aplicații care se înscriu în jurul unei baze de date. Cele mai importante tipuri de server sunt, serverele :
de baze de date
fișiere
de calcul
de interogare
O caracteristică majoră a majorității serverelor este că ele rulează pe sisteme de operare multitasking. În caz contrar partea de multitasking trebuie să fie asigurată de aplicația server pentru a permite conectarea mai multor utilizatori simultani.
Câteva din avantajele folosirii aplicațiilor client server:
Este un concept care permite stațiilor să fie atât server cât și clienți (în același timp) și să combine aceste avantaje.Este foarte flexibil și deschis în special când se folosește cu baze de date ce folosesc stocarea unor proceduri de lucru,
Este foarte sigur permițând să se folosească nivele de acces diferite între stația client și locul de unde acesta citește sau cere date. Nu se face un acces direct al datelor ci serverul este cel care are drepturi de citire scriere asupra bazei de date critice, urmând ca rezultatele aplicării cererii trimise de client și aplicate bazei de date să fie trimise către client.
Modificarea părții de server nu necesită întotdeauna modificarea părții de client (mai ales atunci când se folosesc comenzi lansate din consola).
Se folosește puterea de calcul sau interogare a serverului care se presupune că este o mașină puternică (de regulă cu un SO multiprocesor), pentru client nefiind necesare decât niște terminale sau PC-uri modeste care primesc deja un răspuns de cantitate mică.
Permite lucrul “on-line” pe aceeași structura de date a mai multor clienți simultan.
Permite scăderea importanței ca și risc a defectării oricărui client, pentru ca aplicația server poate funcționa mai departe fără acesta (sau fără unul din ei).
La proiectarea unei aplicații client/server trebuie să se țină seama că cele două părți să aibă unul sau mai multe din procesele următoare:
Clientul:
asigură o interfață cu utilizatorul
interpretarea comenzilor
intrare de date
validare de date
corectare erori
Serverul:
răspunde cererilor clientului
poate deservi mai mulți clienți simultan
asigura funcționalități diverse pt. diferite operații
permite “record-locking”
gestionează resursele
În figura 14 se poate vedea cum serverul poate asigura răspunsuri către mai mulți clienți(aplicații client) care au solicitat anumite task-uri.
A Server Handles Multiple Clients
CONCEPTUL CLIENT/SERVER
Client/Server înseamnă multe lucruri pentru mulți oameni. De obicei percepția generală este că aplicația are o porțiune client, ce rulează pe un calculator local, în speță un PC, și o parte de server care rulează pe o stație UNIX sau un mainframe. De obicei aplicațiile client server sunt orientate pe baze de date însă sunt și aplicații care oferă anumite servicii cum sunt:
server WEB
servere email
servere RAS
servere DNS, KCC, și majoritatea serviciilor de pe server.
Servere FTP, NIS etc
COMPONENTELE CLIENT/SERVER
Clientul în modelul client/server este stația de lucru. Acceași stație de lucru dacă este folosită în comun de mai mulți utilizatori în același timp devine server.
Rolul clientului
În modelul client/server, clientul joacă rolul de consumator al serviciilor provenite de la un server. Modelul face o separare clară între funcțiunile bazate pe ideea de servere care furnizează servicii ca urmare a cererilor din partea clienților.
Facilități cum sunt DDE, OLE sau CORBA permit o foarte ușoară comunicare între un server și un client prin tradiționala “cut and paste”.
O stație client folosește un SO (sistem de operare) local pentru a acoperi atât serviciile de baza cât și interfața cu sistemul de operare de rețea.
Serverele de aplicatii
Oferă suportul pentru clienți de a accesa informații. În modelul client/server aceste servicii pot fi oferite pentru o întreagă organizație sau doar pentru o parte a acesteia invocată prin IPC (Interprocess Control). De exemplu, un sistem de salarii poate păstra datele despre angajați pe un server, salariile pe un alt server, iar calculele să se execute pe un al treilea server. Aceste servere pot rula sisteme de operare diferite și pot fi situate la distanță mare unul de altul. Aplicația client invocă aceste servicii fără a considera aceste tehnologii sau de a ști de diferențele fizice geografice între aceste servere.
Configurații “client-server"
Host Computer
La început nu au fost nici un fel de aplicații client-server. Un terminal simplu (dumb) era legat direct de un computer gazdă folosint o linie serială RS232. Terminalul avea doar o tastatură și un ecran. Ecranul avea capabilitatea de a afișa caractere, cursorul se putea adresa, însă setul de caractere se află în ROM. Toate aplicațiile rulau pe un singur host.
Tipul “Two-tier” Client Server
Prima generație de aplicații client server a fost implementată în două părți logice. Acestea aveau și două părți logice de asemenea. Aplicația era formată din două module diferite care rulau pe calculatoare diferite.
Cantitatea de informații vehiculată între client și server determină tipul server-ului “thin” sau “fat”. Modelul “thin” ( subțire) înseamnă că aplicația client nu are o mărime mare și nu ocupă foarte mult din resursele gazdei sale, interacțiunea cu utilizatorul se face printr-un GUI. Aplicațiile client” thin” sunt foarte indicate pe calculatoare mai vechi (486, 386) care nu au o putere mare de calcul sau de altă natură(comparativ cu cerințele de astăzi).
Nivelul mediu (middleware) ilustrata in Fig. 17
Aplicația client la aceste tipuri de aplicații are la baza folosirea unor interfețe via API. Cele mai întâlnite “middleware” sunt foarte generale și se pot folosi pentru aproape orice tip de aplicație. Exemple de “middleware”:
TCP/IP
DCE
NetBIOS
Named pipes
LAN Manager
Dezvoltări specifice de “middleware” sunt un nivel deasupra celor de ordin general. Exemple sunt: ODBC pentru servere baze de date, SNMP pentru servere de email, SSL pentru WEB.
Tipul “Three-Tier” Client/Server
Este implementarea care se poate separa în mai mult de două părți logice. Schematic această este reprezentată grafic în modelul următor:
RFID
Descriere
RFID – Radio Frequency IDentification, este un procedeu de identificare automată a produselor, animalelor și oamenilor, bazat pe radiocomunicații. În principiu, se folosește o etichetă (tag) sau o cartelă (card) a cărei componență esențială este un transponder care conține informații de identificare și care, când este accesată prin unde radio, comunică unei stații de baza numită cititor RFID (RFID reader) informațiile respective.
Un sistem RFID include două componente esențiale: transponderul și cititorul – Fig. 18, aflate la distanță unul de altul, astfel că legătură se face numai prin unde radio, prin intermediul antenelor. Evident, informațiile sunt codate digital în transponder iar legătura radio este de fapt o transmisie de date.
În prezent, se folosesc pe scară largă mai multe procedee de identificare automată, în esență variante ale procedeelor optic, magnetic și cu contact electric:
codurile de bare (pe etichete), cu citire optică la distanțe xlmm … xlcm, foarte ieftine, cu capacitate de stocare mică (maxim zeci de biți);
cartelele inteligente, cu memorie cu contacte electrice sau cu pelicula magnetică (citire/scriere în câmp magnetic creat de bobine situate la x0,1mm distanță față de pelicula) care pot stoca (16000 … 64000) biți, cu preț mediu și durata de folosire limitată.
Sistemele RFID pot stoca volume mari de date (16 … 64kbiti) și pot fi citite de la distanță de la câțiva cm la zeci de metri. O comparație se poate face după tabelul de mai jos.
Avantajele esențiale ale RFID sunt: volumul foarte mare de date stocabile, distanța mare de citire și viteza mare de citire. Combinate cu scăderea continuă a costurilor.
Tipuri de sisteme RFID
În prezent, diversitate sistemelor RFID este foarte mare, întocmirea unor clasificări exhaustive devenind dificilă. Totuși, există câteva criterii de clasificare unanim acceptate, printre care: modalitatea de alimentare cu energie, modalitatea de transmisie, frecvența de lucru, tipul de cuplaj cu cititorul, volumul de date stocate și altele.
Cu referire la prezentarea schematică din Fig. 18, funcționarea oricărui sistem RFID este astfel.
Pe produs (obiect, persoană, …) există o etichetă sau cartelă conținând un transponder iar într-o locație considerată potrivită există cititorul care emite unde electromagnetice.
Când obiectul ajunge în rază de acțiune a cititorului, transponderul sesizează prezența câmpului emis și răspunde în consecință.
Cititorul identifica răspunsul și colectează/interpretează datele de la transponder.
În continuare, se pot desfășura variate operații, ca de exemplu:
comunicația încetează (situația cea mai simplă);
informația de pe transponder este ștearsă;
are loc un dialog, pentru modificarea / actualizarea datelor din transponder.
Sisteme active și pasive.
Indiferent de modalitate, datele stocate în transponder, sunt citite de către cititor prin intermediul câmpului electromagnetic, ceea ce se poate face numai dacă transponderul – care este până la urmă un circuit electronc mai mult sau mai puțin complex, dispune de o oarecare cantitate de energie. Această energie poate să provină:
de la o baterie proprie – transpondere active
de la câmpul generat de cititor – transpondere pasive.
Deoarece costul unei baterii depășește cu mult costul unui transponder, varianta activă este foarte rar folosită, numai când se impune citirea de la distanțe prea mari (zeci de metri) pentru că energia necesară să fie livrată prin câmp.
În consecință, în toată discuția care urmează, se va face referire numai la sistemele pasive.
Modalitatea de transmisie
Comunicarea dintre transponder și cititor poate fi: duplex, semi-duplex sau secvetiala.
Procedura de comunicarea duplex (full duplex – FDX) și semi-duplex (half duplex – HDX) presupune că transponderul comunica cu cititorul atunci când se află în câmpul de acțiune al cititorului activ. Cu alte cuvinte, de îndată ce este cititorul este activat adică emite unde radio, transponderul comunica cu cititorul. În practică, transmisia de la transponder la cititor se realizează:
prin modularea sarcinii,
prin modularea sarcinii pe subpurtătoare sau
prin emisia de subarmonice sau armonice ale frecvenței cititorului.
Procedura de comunicare secvențială (sequential – SEQ) presupune că cititorul este activat pe intervale de timp scurte, succesive , iar în pauzele de emisie este activ transponderul. Această presupune ca transponderul să acumuleze suficientă energie pentru menținerea emisiei în lipsa câmpului de la cititor. De regulă, pentru menținerea activă a transponderului în pauzele de emisie ale cititorului sunt necesare baterii.
Indiferent de modalitatea de comunicare, toate sistemele RFID, cu excepția celor de 1bit, necesită acumularea unei cantități oarecare de energie din aceea emisă de cititor.
În cazul sistemelor de 1bit, singură informație transmisă cititorului este prezența sau absența transponerului în zona de acțiune a cititorului. Că urmare, aceste sisteme sunt utilizate numai pentru protecție la furturi de produse, activitate în care sunt foarte eficiente.
Informația stocată și procesată în transponder
După cantitatea și modul de procesare a datelor la transponder, se deosebesc:
Sisteme de capacitate mică (EAS systems – Electronic Article Surveillance systems), care pot stoca volume foarte mici de date – în general câțiva Bytes (de exemplu un număr/cod serial, că și un cod de bare); programarea, modificarea datelor nu este posibilă. Marile avantaje sunt: costul foarte redus, dimensiunile reduse și consumul mic de energie.Între acestea, un loc aparte prin largă utilizare, în ocupă sistemele de 1 bit, simple, foarte ieftine, faorte potrivite pentru asigurarea protecției la furturi, la contorizarea produselor etc.Astfel de transpondere au aceleași utilizări ca și etichetele cu coduri de bare, asigurând în plus protecția la furt, un avantaj foarte important.
Sisteme cu capacitate medie, care pot stoca kBytes în memorii reinscriptibile, de tip:
EEPRM (Electrically Erasable ROM), nu necesită baterie, suportă 105 – 106 reprogramări, consumă multă energie
SRAM (Static RAM), care suportă practic oricâte reprogramări, oricât de frecvent dar necesită baterie – un mare dezavantaj sau
FRAM (Ferro/Ferrimagnetic RAM), care nu necesită baterie, consumă mai puțindecât EEPROM și pot fi reprogramate de 107 – 109 ori.
Sisteme cu capacitate mare, echipate cu microprocesor (microcontroler), memorie cu capacitate mare, variate posibilități de lucru, dintre care deosebit de importante sunt celede a comunica criptat – astfel se asigura un nivel oricât de mare se dorește al siguranței și secretizării comunicației. Din varii motive, aceste sisteme lucrează numai în HF (13,56MHz).
Frecvența de operare a sistemelor RFID
Frecvența și cuplul transponderului cu cititorul sunt principalii parametri care determină raza de acțiune a unui sistem RFID.
În prezent, sistemele RFID folosesc frecvențe de la sub 135kHz (JF, unde lungi), la peste 5,8GHz (EIF, microunde, unde centimetrice).
Cerință dominantă în stabilirea frecventelor de operare ale sistemelor RFID este: funcționarea RFID nu trebuie să perturbe sub nici o formă funcționarea altor sisteme de radiocomunicații.
Această înseamnă de fapt, că sunt accesibile numai frecvențele (benzile) care încă nu fost alocate diverselor utilizări industriale, științifice, de (radio)comunicații etc. În prezent, există o repartiție extrem de complicată a frecventelor pentru o imensă varietate de utilizări. Aceste repartiții se fac pe utilizări, pe regiuni (continente, țări) de către organisme regionale internaționale sub directă supraveghere a UIT (Uniunea Internațională a Telecomunicațiilor). În Europa de această problema se ocupă ETSI (European Technical Standardisation Institute) prin comisiile de specialitate. Apoi, în fiecare țară există organisme specializate pentru alocări de frecvențe. În România de această problemă se ocupă Ministerul Comunicațiilor prin Autoritatea Națională pentru Comunicații în Tehnologia Informației (ANCTI, fosta direcție de Reglementări de Frecvente). Din varii motive, printre care, nu în ultimul rând dotarea destul de precară a unităților de urmărire a încadrării în standarde, în România, în prezent, se aplică practic neschimbate, reglementările Uniunii Europene (partea continentală, incluzând Germania și Franța).
Structura Hardware
Arduino
Arduino este o platformă hardware open source formată dintr-o placă electronică cu un microcontroller. Ceea ce sună mult mai intimidant decât este în realitate: platforma Arduino a fost dezvoltată cu scopul explicit de a usura dezvoltarea proiectelor care necesită componente electronice. Vom explica pas cu pas modalitatea de exploatare a acestei platforme;
Tipuri de module
Tipuri de module
Un proiect bazat pe platforma Arduino consistă din mai multe module conectate între ele. Modulele pot fi categorisite în funcție de diverse criterii; aici le vom structura după funcție. Vom vedea mai jos cum anume se conectează diversele module la platforma de dezvoltare; în această secțiune dorim doar să vă prezentăm tipurile mari de module, ca să vă faceți o idee despre posibilități.
Platforma de dezvoltare — aceasta este placa electronică ce conține microcontroller-ul („creierul”) programabil. Dat fiind că platforma Arduino este open source, sunt disponibile atât platforme Arduino originale, fabricate în Italia, cât și clone compatibile, mai ieftine, fabricate în general în China. Vom vedea mai departe că există mai multe modele de astfel de platforme, modele care diferă atât în ceea ce privește capabilitățile cât și în ceea ce privește dimensiunile fizice. Totuși limbajul de programare, mediul de dezvoltare și interconectarea diverselor module sunt practic identice, indiferent de modelul specific al platformei.
Module de intrare — numite și senzori, acestea sunt module care se conectează la platforma Arduino pentru a trimite date către aceasta (de exemplu butoane, senzori de temperatură, senzori de distanță, potențiometre ș.a.m.d.)
Module de ieșire — acestea sunt module care se conectează la platforma Arduino pentru a permite acesteia să transmită informații către lumea exterioară. Acestea pot fi relee, afișaje, difuzoare ș.a.m.d.
Module de date — modulele de date permit platformei Arduino să comunice direct cu alte dispozitive digitale (inclusiv cu alte module Arduino). Modulele de date pot fi module Ethernet, care permit comunicația prin Internet sau printr-o rețea locală, module radio, care pot comunica cu computere sau alte platforme Arduino, module USB, module GSM și așa mai departe.
Accesorii — acestea nu sunt în general considerate module Arduino, însă sunt o parte uzuală a proiectelor de acest gen. Există tot felul de accesorii, de la soluții de alimentare cu curent electric până la cele mai diverse accesorii.
Conectarea modulelor
În general, un proiect bazat pe platforma Arduino consistă dintr-o platformă Arduino sau compatibilă și mai multe module conectate la aceasta. Dacă vă uitați cu atenție la plăcuța din Fig. 19 veți observa că puteți identifica câteva elemente destul de distincte: un conector USB (cutiuța argintie), o mufă de alimentare (piesa neagră cilindrică de lângă conectorul USB) și o sumedenie de conectori (piesele negre proeminente, cu găurele, dispuse în două rânduri, pe marginea de sus și de jos a plăcii). Toate aceste elemente sunt disponibile, sub o formă sau alta, pe orice placă Arduino sau compatibilă.
Conectorul USB este necesar pentru programarea inițială a microcontrollerului. Prin intermediul acestuia, platforma se conectează la un computer pe care se scrie, se compilează și se încarcă programul dorit. Vom vedea detalii mai jos.
Mufa de alimentare nu vă interesează pentru moment — platforma Arduino se alimentează prin portul USB, atâta vreme cât consumul de curent este rezonabil.
Pinii disponibili
Conectorii propriu-ziși sunt partea cu adevărat interesantă a întregii povești. Conectorii de pe platformele de dezvoltare Arduino sunt conectori mamă; deși puțin impropriu în aceste circumstanțe, vom numi fiecare conector individual, pin. Ei bine, pinii de pe placa de dezvoltare au următoarele funcții, conform etichetelor tipărite pe placă:
GND — ground, masa, polul negativ al circuitului, tensiune 0 volți
5V — 5V, pin care prezintă o tensiune de 5 volți față de GND, indiferent de tensiunea de alimentare.
N.B.: în funcție de modelul platformei de dezvoltare, tensiunea de lucru poate fi 5V sau 3,3V; pentru plăcile care funcționează la 3,3V, toate mențiunile explicite despre tensiunea de 5V din acest articol se vor citi 3,3V.
VCC — tensiunea de intrare. Platforma Arduino se alimentează fie prin conectorul USB, fie prin mufa de alimentare; acest pin prezintă tensiunea de alimentare neschimbată, indiferent că este 3,3V, 5V, 9V, 12V sau orice altceva.
Digital 0, Digital 1, …, Digital N — pini de intrare/ieșire digitală. Se decide din program dacă pinul X va fi folosit pentru intrare sau pentru ieșire. Pinii digitali au doar două stări: 1 sau 0 (logic), HIGH sau LOW (notația în cod), 5V sau 0V (tensiunea propriu-zisă). Numărul concret de pini disponibili depinde de modelul specific al platformei de dezvoltare; în general, numărul lor este de 14 sau 54.
Analog 0, Analog 1, …, Analog N — pini exclusiv de intrare analogică. Aceștia pot citi valori discrete între 0 și 1023, corespunzătoare în mod proporțional tensiunii de intrare (între 0 și 5V). Din nou, numărul de pini diferă de la placă la placă; în general numărul lor este de 6 sau 16.
În afară de acești pini, mai există câțiva pini cu funcții speciale; în plus, unii dintre pinii de deasupra au funcții auxiliare suplimentare.
Pe aproape toate platformele Arduino și compatibile pinul digital 13 corespunde și unui LED lipit direct pe placă; acesta este un martor util pentru experimentele dumneavoastră în timpul dezvoltării.
Pinii marcați PWM pe placă — aceștia pot fi folosiți pentru a trimite semnal digital modulat, util de exemplu pentru a simula intensitatea luminoasă variabilă a unui LED
Aproape orice modul extern are nevoie de cel puțin trei fire de conectare: două pentru alimentare (GND și 5V) și cel puțin unul pentru semnal (înspre sau dinspre modul, în funcție de natura acestuia).
ATENȚIE! Unele module funcționează la 3,3V, motiv pentru care unele platforme Arduino lucrează la 3,3V în mod nativ. Dacă alimentați un modul de 3,3V la de pinul de 5V al unei platforme Arduino aveți toate șansele să ardeți ireversibil modulul respectiv!
Un exemplu ușor de înțeles este un buton simplu, pe care îl puteți conecta la platforma Arduino în felul următor:
Evident, scopul acestui modul este să notifice aplicația în privința stării butonului (apăsat sau neapăsat), în așa fel încât să se ia o acțiune sau alta. La fel de evident, un singur buton nu ar fi suficient pentru a finaliza o aplicație utilă — este nevoie să conectarea mai multor module în mod simultan. Însă deja se folosesc pentru buton pinii GND și 5V de pe placa Arduino este nevoie multiplicarea pinilor 5V și GND. Există mai multe soluții pentru această problemă.
Varianta simplă este achizitionarea unui shield senzor. Acesta se înfige direct în placa Arduino și multiplică pinii de alimentare, ceea ce rezolvă problema dintr-un foc.
O altă variantă, mai dificilă dar necesară în cazul proiectelor mai complexe, este utilizarea unuibreadboard: se înfige capătul unui fir de conectare tată-tată în pinul GND de pe Arduino și celălalt capăt oriunde pe una dintre liniile orizontale albastre de pe breadboard; se înfige un capăt al altui fir în pinul 5V de pe Arduino și celălalt capăt oriunde pe una dintre liniile roșii de pe breadboard. Acum avem GND pe toți pinii de pe linia albastră și 5V pe toți pinii de pe linia roșie care se aleg în pasul anterior.
Ceilalți pini de pe breadboard sunt interconectați pe verticală, de obicei în două bancuri (șanțul orizontal întrerupe conexiunile, împărțind coloanele în două).
Programarea microcontroller-ului
Pentru a programa microcontroller-ul trebuie conectată placa Arduino la un computer pe care este instalat mediul de dezvoltare și driverele necesare. Mediul de dezvoltare este disponibil în mod gratuit pe site-ul producătorului pentru diverse sisteme de operare la adresa http://arduino.cc/en/Main/Software.
Informații pentru utilizatorii care folosesc Microsoft Windows:
Se descarcă aplicația de la adresa de mai sus și se dezarhiveaza într-un director convenabil; în restul documentului vom presupune că s-a dezarhivat în directorul C:\arduino-1.0.
Se conectează placa Arduino la computer printr-un cablu USB; cel puțin un LED ar trebui să se aprindă pe placă.
Dacă se solicită indicarea locației driverului, se indică directorul C:\arduino-1.0\drivers
Se pornește mediul de dezvoltare executând C:\arduino-1.0\arduino.exe
Se indică modelul plăcii în meniul Tools > Board
Se indica portul pe care s-a conectat placa Arduino în meniul Tools> Serial Port (în general este o singură opțiune)
Se alege din meniu exemplul Blink: File > Examples > 1. Basics > Blink
Se incarca programul pe placă: File > Upload
Comunicarea RFID
În diverse aplicații se solicită identificarea automată a persoanelor sau produselor pe baza unor coduri atașate. Cele mai utilizate ssteme de codificare și recunoaștere automată sunt cele pe bază de coduri de bare și respectiv cele de tip RFID. În primul caz codurile sunt marcaje pe suport de hârtie usor de identificat pe cale optică. Marcajele se pot tipări pe o linie sau pe două directii. Codurile sunt formate dintr-un număr limitat de cifre și o dată aplicate nu pot fi modificate. Pentru a fi identificat codul trebuie să fie adus în zona de vizibilitate a cititorului optic.
Mult mai versatile sunt etichetele (tag-urile sau transponderele) de tip RFID care pot fi identificate și uneori chiar modificate prin unde radio. Din punct de vedere principial un tag RFID este un microcircuit dotat cu o antenă radio încorporat într-un suport de plastic, hârtie, etc. Cititorul RFID emite o undă radio care alimentează tag-ul RFID și în același timp solicită codul înscris în tag. În preajma unui cititor, tagul emite o undă radio care conține codul tag-ului respectiv. De obicei codul conține o secvență de lungime predefinită de biți (40 , 64, 96 biti de date). In cazul tag-urilor mai evoluate sunt permise operații de ștergere și rescriere repetate, iar capacitatea de stocare a datelor este semnificativ mai mare.
Astfel de circuite de identificare se pot utiliza pentru evidența automată a miscării produselor sau pentru identificarea persoanelor autorizate să acceseze un anumit perimetru. Există implementări de sisteme de autentificare a persoanelor bazate pe tag-uri RFID ce permit stocarea datelor relevante ale persoanei (date demografice sau informații medicale).
In principiu pentru a construi un cititor RFID sunt necesare următoarele elemente:
o antenă construită sub forma unei bobine (Fig. 21)
un emițător-receptor radio specializat pe standardul RFIF
un circuit “inteligent” pentru interpretarea mesajelor și transmiterea acestora pe cale serială la un calculator; de obicei se folosește un microcontrolor
Tag-urile RFID sau Transpoderele conțin un circuit integrat și o bobină pe post de antenă. Ele pot fi active sau pasive. Cele active conțin propria sursă de energie folosită în păstrarea informației în memorie și comunicare. Cele pasive se bazează pe energia electrică a frecvenței purtătoare a semnalului radio generat de cititor. Acestea conțin o memorie de tip EEPROM pentru a păstra informația în timpul în care transponderul (tag-ul) nu se află în aria unei antene.
În funcție de complexitate tag-urile au drepturi de citire, scriere, protecție cu parolă, criptare, protecție la suprapunerea mai multor tag-uri pe aceeași antena, rescriere multiplă, etc.
Modul GSM
Shield-ul Arduino GSM permite unei plăci Arduino să se conecteze la rețeaua de Internet, să trimită sau să primească mesaje SMS și să realizeze apeluri de voce. Shield-ul este compatibil cu placa Arduino UNO însă pentru plăcile Arduino Mega, Mega ADK și Leonardo sunt necesare câteva modificări minore. Momentan, placă Due nu este compatibilă cu shield-ul.
În final, se conectează alimentatorul de 9V în mufă plăcii Arduino. Atenție ! Nu se recomandă alimentarea shield-ului direct din USB, fără alimentator. Modemul de pe placă shield-ului consumă mult mai mult decât poate să genereze portul USB. Acest lucru poate duce la o funcționare incorectă sau, în cel mai rău caz, la o defecțiune.
Shield-ul GSM este capabil de a trimite și SMS-uri. Sketch-ul de mai jos realizează o conexiune cu rețeaua GSM și transmite un mesaj către un număr care se specifică în program.
#include <GSM.h>
#define PINNUMBER ""
// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSM_SMS sms;
// char array of the telephone number to send SMS
// change the number 1-212-555-1212 to a number
// you have access to
char remoteNumber[20]= "9999999999";
// char array of the message
char txtMsg[200]="Salut ! Acesta este un test.";
void setup()
{
// initialize serial communications
Serial.begin(9600);
}
RTC (Real time clock)
Dacă se dorește ca placa Arduino să interacționeze cu noțiunea de timp, atunci este necesar un RTC sau Real Time Clock. RTC-ul este un circuit integrat creat special pentru a menține timpul, adică funcționează exact ca un ceas. În acest mod, placă Arduino nu este obligată să mențină singură timpul, deoarece nu este destinată pentru acest lucru.
În majoritatea situațiilor nu este necesar ca un microcontroller să cunoască timpul. În acest caz este necesar un RTC DS1307, ceas foarte popular care funcționează la o tensiune de 5V împreună cu placă Arduino.
Se va conecta RTC-ul împreună cu placă Arduino, după următorul tabel:
Structura Software
Ideea generală a acestui sistem este de a fi amplasat lângă o ușa, conectat la intranet. În momentul în care cineva dorește deblocarea ușii apropie cardul de acces RFID de acest dispozitiv care va decide dacă acea persoană este sau nu autorizată să intre în acea locație. În cazul în care nu are autorizație pentru acea locație ușa nu se va debloca și personalul de pază va fi avertizat printr-un SMS de intenția neautorizată de a accesa acea zona și id-ul persoanei în cauza.
În componentă software intră următoarele funcționalități:
Înregistrarea de accese în sistem prin TCP/IP
Interogare înregistrări accese
Interogare înregistrări evenimente
Creare de înregistrări în caz de eveniment (scanare RFID detectată)
Decizionare în caz de eveniment (scanare RFID detectată)
Blocarea tuturor acceselor prin TCP/IP
Deblocarea tuturor acceselor în cazul unui incendiu
Toată comunicarea între aceste module se face prin TCP/IP astfel eliminând adaptoare, amplificatoare și alte echipamente costisitoare.
Pentru a trimite o comandă dispozitivului se stabilește o legătură TCP/IP în baza IP-ului și portului de comunicare ales.
La introducerea unui nou utilizator cu codul de acces 123456789 se va trimite comandă în formatul <123456789>. La primirea acestei comenzi dispozitivul va introduce pe cardul microSD la sfârșitul fișierului db.txt codul fără caracterele de control “<” și “>”.
Pentru a verifica ce utilizatori autorizați sunt într-un terminal este suficientă trimiterea caracterului $, și acesta va trimite înapoi o lista cu toate codurile cardurilor RFID.
Pentru returnarea înregistrărilor cu intrări se va trimite caracterul # și în aceiași manieră vom primii toate informațiile din fișierul log.txt localizat pe cardul microSD.
La detectarea unei scanări a cardului RFID (remote frequency identification) se va transmite codul către placă Arduino în format serial, acest cod va fi comparat cu cele existente în fișierul db.txt din cardul microSD. Dacă se găsește acest cod se activează deschiderea ușii, în caz contrar se trimit server-ului GSM informațiile necesare pentru construirea unui SMS ce va fi trimis personalului de pază.
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
#include <Wire.h>
#include "RTClib.h"
#define SOP '<'
#define EOP '>'
#define Read '$'
DateTime now;
File rFile;
File wFile;
File logFile;
//char buf[11];
//char rec[12];
String content = "";
String StrTime = "";
RTC_DS1307 rtc;
const int SD_CS = 4;
const int ETH_CS = 10;
bool started = false;
bool ended = false;
bool ToRead = false;
char inData[100];
byte index;
char serData[100];
byte serindex;
// Enter a MAC address, IP address and Portnumber for your Server below.
// The IP address will be dependent on your local network:
byte mac[] = {
0x90, 0xA2, 0xDA, 0x0E, 0xD7, 0x89 };
IPAddress serverIP(10,69,3,149);
int serverPort=14949;
// Initialize the Ethernet server library
// with the IP address and port you want to use
EthernetServer server(serverPort);
void setup()
{
delay( 50 );
Wire.begin();
//rtc.begin();
Serial.begin(9600);
while (!Serial) {
;
}
if (!SD.begin(SD_CS)) {
Serial.println("Card failed, or not present");
return;
}
delay(200);
Serial.println("card initialized.");
// disable w5100 while setting up SD
pinMode(ETH_CS,OUTPUT);
//
//digitalWrite(10,HIGH);
//pinMode(4,OUTPUT);
pinMode(6,OUTPUT);// gnd pt error led
pinMode(7,OUTPUT); // vdd pt error led
digitalWrite(7,LOW);
pinMode(5,OUTPUT); // vdd pt ok led
digitalWrite(5,LOW); // set ok led off
digitalWrite(6,LOW); // set error led off
Ethernet.begin(mac,serverIP);
delay(200);
server.begin();
Serial.println("Server started");//log
BlinkRed(5);
BlinkGreen(5);
Serial.println("Ready");
}
void loop()
{
//////rtc///
//now = rtc.now();
///////////
CheckRFID();
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("connected");
//delay(50); // de sters
String clientMsg ="";
while (client.connected()) {
//–––––––––––––––––––––––––––––––––––-
if(client.available())
{
char inChar = client.read();
//Serial.println("bit de primit");
if(inChar == SOP)
{
Serial.print("<"); //bit start
index = 0;
inData[index] = '\0';
started = true;
ended = false;
}
else if(inChar == EOP)
{
Serial.println(">"); // bit sfarsitcr
ended = true;
break;
}
else if(inChar == Read)
{
Serial.println("comanda de citit");
ToRead = true;
break;
}
else
{
Serial.print(inChar); //bit continut
if(index < 99)
{
inData[index] = inChar;
index++;
inData[index] = '\0';
}
}
if(started && ended)
{
Serial.print("incepe scrisu");
client.println(inData);
Serial.print("inainte de sd.open");
wFile = SD.open("db.txt", FILE_WRITE);
Serial.print("dupa sd.open");
if (wFile) {
Serial.print("in if'");
Serial.print("Writing to db.txt…");
wFile.println(inData);
delay(50);
Serial.println(inData);
wFile.close();
Serial.println("done.");
ToRead = true;
//digitalWrite(SD_CS, HIGH);
//digitalWrite(ETH_CS, LOW);
client.println(inData);
}
else {
// if the file didn't open, print an error:
Serial.println("error opening file");
digitalWrite(7,HIGH);
}
// Reset for the next packet
started = false;
ended = false;
index = 0;
inData[index] = '\0';
}
if (ToRead == true) {
File rFile = SD.open("db.txt");
if (rFile) {
while (rFile.available()) {
client.write(rFile.read());
}
rFile.close();
client.write("\n\nSfarsit fisier");
BlinkGreen(3);
break;
}
else {
Serial.println("error opening db.txt");
}
ToRead = false;
}
}
}
}
}
void CheckRFID()
{
content = "";
char character;
serindex = 0;
serData[serindex] = '\0';
while(Serial.available() > 0) {
character = Serial.read();
serData[serindex] = character;
serindex++;
serData[serindex] = '\0';
}
//Serial.println(serData);
if (content != "") {
Serial.println(serData);
writeLog("continutCodRFID","autorizat");
}
}
void writeLog(String info, String state)
{
Serial.print("incepe scrisu'");
// The end of packet marker arrived. Process the packet
logFile = SD.open("log.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (logFile) {
Serial.println("Writing to log.txt…");
///////timp/////////
// logFile.print(now.year(),DEC);
// logFile.print('/');
// logFile.print(now.month(),DEC);
// logFile.print('/');
// logFile.print(now.day(),DEC);
// logFile.print(' ');
// logFile.print(now.hour(),DEC);
// logFile.print(':');
// logFile.print(now.minute(),DEC);
// logFile.print(':');
// logFile.print(now.second(),DEC);
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
logFile.println(": " + info + "–" + state + "\n");
Serial.println("\n" + info + "–" + state);
logFile.close();
Serial.println("done.");
}
else{
Serial.println("log file not opened!");
}
}
void BlinkGreen(int times)
{
digitalWrite(6,LOW);
for(int x=2;x<times;x++)
{
digitalWrite(5,HIGH);
delay(100);
digitalWrite(5,LOW);
delay(100);
}
}
void BlinkRed(int times)
{
digitalWrite(6,LOW);
for(int x=1;x<times;x++)
{
digitalWrite(7,HIGH);
delay(50);
digitalWrite(7,LOW);
delay(50);
}
}
Control acces
Marea majoritate a sistemelor de control acces de pe piață sunt personalizate în funcție de cerințele și nevoile clientului. Din lipsa unui echipament care să înglobeze cerințele necesare s-a recurs la construirea integrală al lui.
Cerințele impuse sunt următoarele:
Comunicare TCP/IP (configurare de oriunde din rețea prin ethernet)
Disponibilitate OFFLINE
Logare activități, scanări (id persoană, timp, <ne>autorizat)
Alertare prin SMS în caz că se încearcă accesul neautorizat (server GSM)
Pentru a raspunde tuturor necesitatilor am recurs la urmatoare elemente hardware:
Arduino Ethernet
Modul GSM
Modul Ethernet
Cititor RFID
Fig. 2In componenta acestui sistem se afla o placa de dezvoltare Arduino Ethernet. Specificatiile acestei placi sunt urmatoarele si sunt prezentate in figura de mai jos:
Microcontroller ATmega328
Tensiune de alimentare ( recomandata ) 7-12V
Tensiune de alimentare ( limita ) 6-20V
Digital I/O Pins 14 (4 PWM output)
SPI 10 – 13
6 pini analogici
Curentul pe I/O Pin 40 mA
DC Current la 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) 0.5 KB folositi pentru bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz
W5100 TCP/IP Embedded Ethernet Controller
Power Over Ethernet ready Magnetic Jack
Micro SD card
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: ______________________________________________________________________________________________________________________________________________________… [305874] (ID: 305874)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
