Sunteți pe pagina 1din 49

Universitatea „Politehnica” Timişoara

Facultatea de Electrotehnică şi
Electroenergetică,

Timişoara

LUCRARE DE LICENȚĂ
IoT dedicat accesului securizat ȋn clădiri
tip office şi clădiri rezidenţiale

Coordonator:

Conf.dr.ing. Alin Argeşeanu

Student:

Mădălina-Raluca Barboni

Timișoara

2019
CUPRINS

CAPITOLUL 1. INTRODUCERE IOT.............................................................................................3


1.1 IOT PREZENTARE GENERALĂ........................................................................................................ 5
1.2 DEFINIȚII ȘI CONCEPT................................................................................................................. 8
1.3 ARHITECTURA GENERALĂ ȘI CARACTERISTICILE IOT.........................................................................11
1.4 PARTICULARITĂȚILE ȘI PROVOCĂRILE GENERALE ALE IOT..................................................................14
1.4.1 AUTOMATIZAREA VS. INTELIGENȚA..........................................................................................14
1.4.2 PROBLEMA STANDARDELOR....................................................................................................15
1.4.3 ECONOMIE TRADIȚIONALĂ VS. DIGITALĂ...................................................................................18
1.4.4 SECURITATE........................................................................................................................ 21
1.4.5 TELEMEDICINA, ASISTENȚA MEDICALĂ ȘI IOT MEDICALĂ..............................................................23
1.5 TENDINȚE DE CERCETARE..........................................................................................................25
CAPITOLUL 2. PROGRAMAREA ÎN PYTHON............................................................................26
2.1 MODUL ÎN CARE PROGRAMAREA ESTE DIFERITĂ DE UTILIZAREA UNUI COMPUTER................................26
2.2 CE ESTE LIMBAJUL DE PROGRAMARE PYTHON?............................................................................28
2.3 DE CE PYTHON ȘI NU ALTE LIMBAJE DE PROGRAMARE?..................................................................30
CAPITOLUL 3. PREZENTARE TEMĂ..........................................................................................33
3.1 CERINȚELE ȘI CARACTERISTICILE UTILIZATORULUI:...........................................................................33
3.2 REZULTATE ȘI ACTIVITĂȚI VIITOARE............................................................................................. 47
CAPITOLUL 4. CONCLUZII.......................................................................................................48
BIBLIOGRAFIE........................................................................................................................49

49
CAPITOLUL 1. INTRODUCERE IOT

Internetul lucrurilor (IoT, Internetul tuturor, calculul omniprezent, Internetul


omniprezent) și serviciile sale devin o parte imensă a vieții moderne și a modalităților de
desfășurare a afacerilor (Centrul de cercetare rusă "Internet of Things", 2013). Lucrurile care se
aflau doar în imaginația noastră, cum ar fi un asistent digital, o casă inteligentă, o mașină
inteligentă și un mediu inteligent, devin realitate acum cu ajutorul dispozitivelor mobile, al
electronicii moderne și al rețelei care leagă totul într-o infrastructură imensă de Internet de
lucruri.

Luați în considerare o situație în care vă treziți dimineața și o brățară de urmărire a


somnului a reușit deja să scrie cum ați dormit și a încărcat datele la un serviciu cloud. O mașină
de cafea și un cuptor cu microunde au primit date de la acel serviciu de cloud și au înțeles că te-
ai trezit și au început să gătească micul dejun pentru tine. După datele aceleiași benzi, în
dormitorul dvs. apare lumina. Când ieșiți din cameră în bucătărie, toate lămpile sunt comutate
automat. În bucătărie, vă așteaptă deja o ceașcă de cafea. Când ieșiți din casă și mergeți la
serviciu, aspiratorul robot începe să ordoneze camerele.

Dezvoltarea rapidă a IoT s-a datorat reducerii continue a costului tehnologiei. În ultimii
ani, am constatat în mod continuu scăderea costurilor pentru diferite soluții, începând de la
imprimantele 3D până la smartwatch-urile și trackerele de fitness. Reducerile dramatice ale
modulelor Bluetooth și Wi-Fi (de exemplu, aproximativ 1 EUR pe articol pentru modulul BLE)
permit conectarea tot mai multor dispozitive la Internetul obiectelor. (Sklyar, 2016).

Internetul obiectelor este un pas logic în dezvoltarea rețelei mondiale, care a dat inițial
posibilitatea de a vizualiza pagini statice. În zilele noastre, conduce la sisteme interconectate cu
inteligență artificială, adaptate la întregul mediu al schimbărilor permanente și nevoilor umane.
IoT modernă nu este încă dezvoltată, iar 99% din toate obiectele care pot fi conectate nu sunt
deloc conectate. Aceasta înseamnă că a început evoluția Internetului, dar nimic nu este clar și
arhitecturile sunt încă în curs de dezvoltare. Legea lui Metcalfe afirmă: "Valoarea unei rețele de
telecomunicații este proporțională cu pătratul numărului de utilizatori conectați ai sistemului
(n2). Imaginați-vă situația când toate obiectele noi conectate (senzori, dispozitive de acționare,

49
dispozitive etc.) și oamenii ar adăuga valoarea lor la ecuație, ridicând dramatic eficiența
Internetului. (Evans &Annunziata, 2012)

Conform unor studii diferite, un număr de dispozitive conectate în 2020 va fi de până la


50 de miliarde, ceea ce reprezintă un număr enorm pentru astăzi (Cisco, 2016). O astfel de
dezvoltare rapidă ridică o mulțime de probleme în sfera tehnică și de afaceri. Nimeni nu știe cum
să desfășoare afaceri în era Internetului veșnicelor: tehnologiile nu sunt clare, nevoile
consumatorilor nu sunt încă precizate și chiar utilizatorii înșiși nu înțeleg ce doresc să cumpere.
Toate aceste probleme împiedică managerii să investească în IoT din cauza riscurilor enorme și a
domeniului de aplicare neclar. Dezvoltatorii de produse nu au nici o idee despre modul în care ar
trebui să funcționeze dispozitivul final sau soluția și care sunt cerințele pentru proiect. Chiar și
situația pieței este neclară. În ansamblu, Internetul lucrurilor este ceva nou și nedefinit.

Internetul lucrurilor sugerează o mulțime de posibilități în întreaga industrie a sănătății,


unde informațiile adecvate reprezintă un depozit de cură rapidă și sigură. În prezent, principiile
IoT sunt deja aplicate anumitor aspecte ale îngrijirii sănătății umane, îmbunătățind calitatea și
reducând dramatic costurile. Cu toate acestea, nu toate aplicațiile posibile și pacienții țintă sunt
acoperite, bineînțeles. Dat fiind că metodele și soluțiile de colectare, transmitere și analiză a
datelor se îmbunătățesc tot timpul, vom observa un număr mai mare de soluții medicale bazate
pe internetul obiectelor pentru monitorizarea pacienților. (Niewolny, 2014)

1.1 IoT prezentare generală

Pentru a înțelege ce Internet de obiecte este, aș dori să reamintesc istoria


telecomunicațiilor și Internetului, în primul rând (Postscapes, 2015):

 1844 - Samuel Morse trimite primul cod morse.


 1926 - Nikola Tesla pentru Colliers: "Când aplicația wireless este aplicată perfect, întregul
Pământ va fi transformat într-un creier uriaș, care de fapt este, toate lucrurile fiind particule ale
unui întreg real și ritmic ... și instrumentele prin care va fi capabil să facă acest lucru va fi

49
uimitor de simplu în comparație cu telefonul nostru actual. Un bărbat va putea să-l poarte pe unul
în buzunarul de la pantalon ".
1964 - Marshall McLuhan: "... prin intermediul mijloacelor de comunicare electronice, am creat
o dinamică prin care toate tehnologiile anterioare - inclusiv orașele - vor fi transpuse în sisteme
de informare".
 1969 - a fost elaborat ARPANET.
 1974 - TCP / IP și-a început activitatea.
 1989 - Tim Berners-Lee propune World Wide Web.
 1990 - A fost creat primul obiect conectat (toaster de John Romkey).
 1991 - Prima pagină web a fost găzduită.
1995 - A început primul serviciu de comerț electronic (Amazon și Echobay sau Ebay).
 1998 - Mark Weiser: "Calculul omniprezent este aproape opus realității virtuale, în care
realitatea virtuală pune oamenii într-o lume generată de calculator, combativitatea omniprezentă
forțează computerul să trăiască aici în lume cu oameni".
 1999 - începerea efectivă a unui lucru numit IoT. Directorul executiv al Centrului de auto-
identificare, Kevin Ashton, a propus termenul "Internetul obiectelor": "Am greșit, dar sunt destul
de sigur că expresia" Internetul obiectelor "a început viața ca titlul unei prezentări realizat la
Procter & Gamble (P & G) în 1999. Conectarea noii idei de RFID în lanțul de aprovizionare al P
& G la subiectul fierbinte al internetului a fost mai mult decât o modalitate bună de a atrage
atenția executivului. Ea a rezumat o perspectivă importantă care este încă neȋnţeleasă.
 2000 - 2004 - IoT este în discuție în Guardian și Scientific American. Unele companii încearcă
să-și imagineze dispozitivele viitorului, iar termenul începe să apară în cărți și publicații. RFID
se desfășoară pe o scară masivă.
 2005 - subiectul Internetului obiectelor este subliniat în mare măsură de ITU (International
Telecommunication Union) și primul raport este publicat: "O nouă dimensiune a fost adăugată în
lumea tehnologiilor informației și comunicațiilor (TIC) timp, oriunde ,conexiune pentru oricine,
vom avea acum conectivitate pentru orice. Conexiunile se vor multiplica și vor crea o rețea
dinamică de rețele complet nouă - un Internet de lucruri ". (Uniunea Telecomunicațiilor Internet
(ITU), n.d.)

49
2006-2008: UE a recunoscut termenul și a avut loc conferința European IoT, IPSO Alli-ance
(cei mai mari membri: Intel, Ericsson, Google, Cisco, SAP, Sun, Fujitsu și Bosch) obiecte
inteligente și pentru a împuternici Internetul lucrurilor. (Alianță IPSO, n.d.)
 2011 - a fost lansat IPv6.
 2011-azi - Europa își arată interesul și sprijinul continuu în acest domeniu prin intermediul
programului de lucru ICT-FP7, IoT-A și al viitoarelor directive digitale. Guvernul britanic
investește 5 milioane de lire sterline pentru dezvoltarea IoT în țară. China continuă să finanțeze
și să sprijine cercetarea în domeniul dezvoltării în domeniul instituțiilor. Procesul de inițiere a
standardelor globale în domeniul Internetului a început. Aceasta promovează o abordare
unificată a elaborării standardelor tehnice care să permită Internetul obiectelor la scară globală.
Sunt produse noi produse. Standardele devin comune și deschise.

Cronologia internetului obiectelor poate fi împărțită în mai multe etape descrise în


figura 1. Se observă în mod clar că dezvoltarea Internetului nu este super rapidă, dar primul pas
uriaș a fost realizat și au început unele studii. Pe scurt, situația actuală poate fi descrisă după cum
urmează: creșterea numărului de dispozitive care interacționează nu numai cu utilizatorii, ci și cu
ceilalți (M2M). Deci, fiecare lucru are un posibil acces la rețea, dar ceea ce este nevoie ȋn el, este
problema care trebuie rezolvată.

Pentru a încheia scufundarea istorică, Figura 2 descrie popularitatea interogării de


căutare "Internet of Things" în motorul Google din 2004. Popularitatea este marcată de la 0 la
100, unde valoarea de 100 este popularitatea maximă a termenului. O valoare de 50 înseamnă că
termenul este jumătate la fel de popular. De asemenea, un scor de 0 înseamnă că termenul a fost
mai mic de 1% la fel de popular ca vârful. Se poate observa fără dificultate că interesul crește
exponențial. În ceea ce mă refer la țările cele mai interesate de IoT, primele cinci locuri sunt
preluate de Singapore, India, Coreea de Sud, Hong Kong și Irlanda.
Țările nordice se află în primele douăzeci. De exemplu, Finlanda este a opta. Aceasta înseamnă
că Internetul obiectelor este un subiect foarte relevant în toate țările care conduc tehnologiile și
revoluția IT. (Google Trends, 2016)

49
49
1.2 Definiții și concept

În afară de definiția lui Kevin Ashton, există câteva explicații moderne asupra a ceea ce
Internetul obiectelor este:
"Internetul obiectelor este un fel de formă de rețea bazată pe Internet, extinderea sa și
extinderea clientului său în orice schimb de informații și comunicări privind bunurile și
materialele (M2M)". (Kiritsis, 2011)

"Expresia Internetul obiectelor este mai largă decât un concept sau o tehnologie unică.
Este mai degrabă o nouă paradigmă care implică un set larg de tehnologii, aplicații și viziuni. De
asemenea, nu există un acord complet privind definiția, deoarece se schimbă în raport cu punctul
de vedere. Se poate concentra asupra identității virtuale a obiectelor inteligente și a capacităților
lor de a interacționa inteligent cu alte obiecte, cu oamenii și cu mediile sau cu integrarea fără
întreruperi între diferite tipuri de obiecte și rețele către o arhitectură orientată spre servicii a
viitorului Internet " . (Vermesan și colab., 2011)

"Internetul obiectelor (Internet of Things) este o parte integrantă a internetului


viitorului incluzând evoluțiile existente și viitoare ale Internetului și rețelelor și ar putea fi definit
conceptual ca o infrastructură dinamică globală a rețelei cu capacități de auto-configurare bazate
pe standarde și protocoale de comunicare inter-operabile, în care "lucrurile" fizice și virtuale au
identități, atribute fizice și personalități virtuale, utilizează interfețe inteligente și sunt integrate
fără probleme în rețeaua de informații "(Iera, et al., 2010)

Fiecare "lucru", pornind de la senzorul mic și terminând cu brațul de fabricare


robotizat, are următoarele caracteristici, arătând apartenența sa la infrastructura IoT:

 Senzori (încorporați sau senzorii înșiși) - Dispozitivele și sistemele au senzori care urmăresc și
măsoară activitatea în lumea reală.
 Conexiune - Există o conexiune directă cu dispozitivul sau este conectată indirect printr-un
hub, un smartphone (în cazul purtătorilor de rufe, de exemplu) sau o stație de bază, în timp ce
întregul sistem IoT local este conectat în continuare la Internet în orice caz . Aceste conexiuni

49
între dispozitive ar putea fi implementate prin utilizarea altor tehnologii fără fir , în locul
conexiunilor IP.
 Unitate de procesare - Ca orice unitate de calcul, dispozitivul din mediul IoT are o putere de
procesare pentru analiza datelor și trimiterea acestora. Există câteva excluderi aici și câteva
dispozitive sau senzori care pot fi gestionate de la distanță nu au capacități de calcul. Cu toate
acestea, ele au încă logică pentru manipularea datelor primite sau trimise.
 Eficiența energetică - toate dispozitivele IoT trebuie să fie suficient de eficiente pentru a
îndeplini sarcina necesară fără consum mare de energie electrică.
 Eficiența economică - Desigur, soluții mari, cum ar fi telefoanele inteligente sau dispozitivele
smarthome, sunt scumpe, dar senzorii și actuatorii mici trebuie să fie ieftini în producție și
suport.
 Calitate și fiabilitate - dispozitivele IoT trebuie să poată lucra în medii agresive, în aer liber, în
apă și pe perioade lungi de timp. Chiar și dispozitivele utilizatorilor trebuie să fie robuste și bine
construite.
 Securitate - Dispozitivele ar trebui să poată transfera datele în mod fiabil și sigur. Protecția și
confidențialitatea sunt probleme importante. De exemplu, în cazul monitorizării medicale datele
nu au putut fi prinse sau schimbate.

Se consideră că Internetul obiectelor are patru straturi de zone operaționale (nu se


amestecă cu concepte de arhitectură) (Iera, et al., 2010):
 Stratul 1 - identificarea fiecărui obiect
 Stratul 2 - servicii pentru nevoile oamenilor (de exemplu casa inteligentă)
 Nivelul 3 - urbanizarea digitală, conceptul de oraș inteligent

În zilele noastre, omenirea este mai mult sau mai puțin gata, cu doar două straturi de
Internet de lucruri, astfel încât întregul potențial al acestor tehnologii nu este încă experimentat.
Aceste straturi arată că IoT este o rețea netă de rețele mici, conectate împreună (de exemplu,
dispozitivul dvs. într-o casă inteligentă și casa dvs. inteligentă într-un oraș inteligent). Pentru a
satisface ideea de IOT, totul ar trebui să fie implicat, care este prezentat în Figura 3. Întrebarea
este în necesitatea și logica conexiunilor, precum și gestionarea unor cantități uriașe de date. Este

49
nevoie de un sistem ușor de gestionat și comandat, ceea ce reprezintă provocarea tehnică de
astăzi.

1.3 Arhitectura generală și caracteristicile IoT

Internetul lucrurilor este destul de diferit de cel comun în domeniul comunicării. Pentru
noi este normal ca comunicarea să poată fi stabilită oricând și de oriunde, totuși internetul
obiectelor are o dimensiune suplimentară - "nimic". Astfel, conceptul IoT are câteva
caracteristici care demonstrează comprehensivitatea multidimensională, schimbul de informații
și prelucrarea inteligentă:

 Interconectate. Internetul lucrurilor facilitează accesul la dispozitive și dispozitive la alte


dispozitive.
 Sensibilitate inteligentă. Majoritatea dispozitivelor și servomotoarelor au senzori încorporați
sau conectați pentru a detecta condițiile curente.

49
 Inteligență. Dispozitivele IoT au unele unități de calcul și software folosite pentru deciziile
inteligente, predicții și controlul automatizării.
 Eficiența energetică. Toate dispozitivele IoT trebuie să fie eficiente și capabile să utilizeze
energia reciclabilă, să stimuleze recoltarea energiei proprii, în cazul în care aplicarea
dispozitivului necesită și permite acest lucru.
 Exprimarea (sau schimbul de date). Dispozitivele conectate IoT au capacitatea de a exprima și
de a-și împărtăși starea actuală cu toate celelalte dispozitive conectate. Acesta permite un flux de
comunicare mai bun între utilizator și mașini.
 Siguranță. Dispozitivele de internet ale obiectelor ar trebui să contribuie la asigurarea
siguranței vieții individuale. Toate dispozitivele medicale inteligente sunt un bun exemplu al
acestei caracteristici.
Mai mult decât atât, Internetul obiectelor are particularități funcționale:
 Funcție pentru a obține informații din lucruri
 Funcție de schimb de informații
 Funcție de procesare și control inteligent a informațiilor
 Funcție la scară largă

Internetul obiectelor este determinat de arhitectura sa, care este capabilă să colecteze
toate caracteristicile și funcțiile și să le facă să funcționeze corect și fără probleme într-o singură
arhitectură unică. Există două tipuri de arhitecturi cunoscute, de 3 și 5 straturi.
Figura 4 prezintă arhitectura și include următoarele straturi (Gang, 2011):
 Nivelul de percepție (uneori stratul de echipament sau colectorul de date și coordonarea și
colaborarea). Acest strat se ocupă de datele colectate din lucruri. De exemplu, dispozitivele de
detectare. Analog cu stratul fizic în modelul de rețea OSI.
 Strat de rețea (uneori strat de transmisie). Transmite informații de la lucruri către alte lucruri și
sisteme de procesare a informațiilor.
 Nivelul middleware. Acest nivel este responsabil de procesarea informațiilor și de luarea
deciziilor pe baza analizelor efectuate.
 Nivel de aplicație. Oferă aplicațiile bazate pe informațiile obiect procesate în stratul
middleware.
 Nivel de afaceri. Responsabil pentru gestionarea întregului ecosistem IoT.

49
S-a afirmat de multe ori că lucrurile sunt conectate permanent între ele pentru
comunicare, dar nu sunt în mod necesar capabile să transfere date între ele. Această abilitate
depinde de asemănarea serviciilor pe care le sunt atribuite. Un singur lucru nu are capacitatea de
a raționa asupra mediului înconjurător și, ulterior, să ia decizii și acțiuni inteligente pentru a
atinge obiectivele. În timp ce întregul sistem poate face acest lucru, întregul sistem ar putea fi
reprezentat ca ceva inteligent, dar nu cu un singur dispozitiv în el.

49
1.4 Particularitățile și provocările generale ale IoT

1.4.1 Automatizarea vs. Inteligența

Nu este posibilă dezvoltarea rapidă a Internetului obiectelor în mediul nostru existent,


deoarece viziunea actuală asupra IoT nu este clară și abordarea rădăcinilor trebuie schimbată
complet pentru a obține o lume tehnologică exact inteligentă. Cel mai adesea, conceptul de IoT
este inseparabil legat de ceva "inteligent": casele inteligente, senzorii inteligenţi, transportul
inteligent, afacerile inteligente, cu toate acestea, atunci cȃnd privim cu atenţie această inteligenţă,
înțelegem că lampa de control la distanță în casă este o automatizare, dar nu casa inteligentă sau
chiar și seringa digitală controlată de la smartphone nu este o soluție inteligentă, deoarece nu
există inteligență și conexiuni suplimentare în sistem. Se pare că în zilele noastre Internetul
obiectelor nu este inteligent și nu este clar ce inteligența este.

Apariția internetului obiectelor este un pas așteptat, deoarece lenea este motorul pro-
gress. În plus, oamenii doresc să beneficieze de tehnologiile existente la putere maximă.
Aproximativ 20 de ani în urmă, aparatul de aer condiționat acasă a fost pornit de către utilizator
când era prea fierbinte sau rece. După o anumită evoluție a calculului, avem un dispozitiv între
ele, care este programat de către utilizator pentru a porni automat încălzirea sau răcirea, în
funcție de senzorul conectat. În cele din urmă, casa nu s-a dovedit a fi "inteligentă", deoarece o
astfel de abordare schimbă ușor situația, dar utilizatorul trebuie să controleze totul. Acest lucru
devenind automatizarea.

Deci, ce este inteligentul IoT? Acesta este un set de tehnologii care vor schimba
paradigma realizării rezultatului astfel încât utilizatorul să stabilească ținta, nu mijloacele de
realizare a acesteia. Acestea sunt caracteristicile inteligenţei IoT:
a) Suport permanent al utilizatorilor de către obiecte ;
b) Procese clare și orientare către rezultate ;
c) Cerere de a face în loc de reguli privind modul de a face.

49
În cazul instrumentelor medicale, să definim caracteristicile unei pompe de insulină
inteligente:
a) Monitorizarea CGM activă și livrarea permanentă a insulinei;
b) Analiza datelor bazată pe date colectate și API medicale conectate;
c) Cererea de a menține nivelul normal de glucoză.

Cea mai mare întrebare acum este cum să atingem obiectivele descrise mai sus, iar
soluția posibilă discutabilă este arhitectura multi-agent. Bazarea abordării multi-agent este
conceptul de agent de software mobil, care este implementat și funcționează ca un program de
calculator independent sau un element de inteligență artificială. Esența tehnologiei multi-agent
este o metodă complet nouă de rezolvare a problemelor. Spre deosebire de metoda clasică, atunci
când o căutare este efectuată printr-un algoritm bine determinat (determinist), care permite
găsirea celei mai bune soluții pentru o anumită problemă, rezultatul obținut în mai multe
tehnologii este obținut automat ca rezultat al interacțiunii din multe module software separate
(așa-numitele agenți). (Wei&Toenjes, 2012)

Fiecare utilizator și fiecare dispozitiv din lumea reală sunt atribuite unui agent software
- un obiect cu un anumit grad de inteligență, care reprezintă interesele sale în lumea virtuală.
Lumea virtuală poate fi numită copie oarecum îmbunătățită a lumii reale cu aceleași părți care
adesea respectă reguli prestabilite și bine-cunoscute, oferind răspunsuri fiabile la întrebări.
Relația dintre lumile reale și virtuale este bidirecțională. Aceasta înseamnă că soluțiile din lumea
virtuală sunt date realității pentru execuție și toate evenimentele neintenționate ale lumii reale
afectează lumea virtuală. (Mzahm, 2012) .

1.4.2 Problema standardelor

Alături de barierele clare ale IoT, cum ar fi crearea de baterii eficiente, scăderea
consumului de energie, implementarea IPv6, crearea de tehnologii fără fir și altele, există unele
probleme neclare și discutabile care trebuie rezolvate pentru a stimula dezvoltarea Internetului și
a aspectului final din ea în viețile noastre. Dezvoltarea rapidă a Internetului obiectelor a început
să întâmpine aceleași probleme care au lovit revoluția în domeniul calculatoarelor personale în

49
anii 1980. În prezent, problema nu este cum să aducem un produs pe piață, ci cum să dezvoltăm
standardele corespunzătoare, fără de care diferitele dispozitive vor fi doar o grămadă de junk,
care nu pot comunica între ele.

Examinarea atentă a tuturor lucrurilor este critică, de la compatibilitatea hardware și


până la metodele de stocare a datelor din cloud. Înainte ca progresul să depășească prea mult,
piața trebuie să elaboreze standarde aplicabile. Pentru a arăta problema, am prezentat actuala
varietate de standarde și alianțe diferite.

Qualcomm este unul dintre liderii producătorului de procesoare pentru telefoane și


tablete. Compania este, de asemenea, un jucător important în piața de Internet de obiecte de la
dezvoltarea protocolului AllJoyn, care a stat la baza creării Alianţei All Seen. Alianța a fost
înființată în 2013 și a primit deja sprijinul celor mai mari producători de aparate electrocasnice,
cum ar fi Electrolux, LG, Panasonic, Sony și gigantul industrial Bosch.

Un concurent direct al AllSeenAlliance este Open InterconnectConsortium (OIC).


Consorțiul urmărește aceleași obiective ca AllSeen, încercând să creeze un standard pentru
sincronizarea dispozitivelor care formează Internetul obiectelor, fără a utiliza protocolul AllJoyn
de la Qualcomm. Consorțiul OIC a fost creat în 2014 de giganți precum Intel, Samsung (ceea ce
este ciudat, deoarece Samsung lucrează împreună cu Qualcomm) și Broadcom. În curând însă a
existat o ruptură între părți, iar în octombrie 2014 Broadcom a părăsit grupul.
Intel a creat, de asemenea, o alianță separată Intel Internet of ThingsSolutionsAlliance,
care, evident, va utiliza o abordare mai integrată, promovând brandurile membrilor săi, cum ar fi
Dell, Hewlett-Packard, Fujitsu, Microsoft și Oracle.

Este evident că jocurile în jurul standardelor și încercările de a monopoliza piața produc


multă zgomot în jur. Companiile și entuziaștii mai mici nu sunt siguri care protocol sau cadru de
lucru de utilizat, ceea ce produce tot mai multe întrebări. În acest stadiu, nimeni nu va face orice
concesie și, se pare că piața ar alege câștigătorul, dar va dura ceva timp, trecând începutul unei
erei IoT către viitorul nedefinit.

49
Deci, ce ar trebui făcut pentru a finaliza etapa de inovare / dezvoltare și pentru a vă
concentra asupra implementării mediului? Potrivit lui Maciej Kranz, vicepreședinte și director
general al tehnologiei corporatiste de la Cisco: "industria începe să realizeze că modelul
fragmentat și închis nu poate fi scalabil și limitează beneficiile introducerii Internetului
obiectelor" (Kranz , 2016). Din nou, în conformitate cu Cisco, lucrarea privind standardizarea
IoT se face în patru direcții (Cisco, 2016):

1) Dezvoltarea IP-urilor existente și Ethernet: IEEE și IETF se concentrează pe aceasta, creând


cerințe pentru astfel de sfere de IoT ca Ethernet determinist , de exemplu.

2) Gestionarea standardelor ramurii industriale: principalii actori din industrie fac standarde din
protocoalele proprii, creând contradicții, ceea ce împiedică compatibilitatea. Pentru a transforma
standardele existente în tehnologie IP și Ethernet, asigurând în același timp compatibilitatea cu
protocoalele moștenite, industria IoT cooperează cu comisioane mari.

3) Crearea modelelor arhitecturale: modelul general este creat de Forumul Mondial IoT pentru a
asigura compatibilitatea reciprocă a tuturor componentelor în întregul mediu. Modelul sugerat
are șapte straturi, care oferă posibilitatea de a utiliza sisteme deschise de IoT cu unitate garantată:

a) Colaborare și procese (oameni și procese de afaceri)


b) Aplicații (rapoarte, analize, control)
c)Abstractizarea datelor
d) Stocarea datelor
e) Analiza și calculele (operații de date)
f) Comunicări
g) Dispozitivele fizice și controlorii (lucrurile din IoT)

4) Deschiderea consorțiilor pentru a gestiona cele mai mari probleme: după cum sa discutat
anterior, situația este dificilă aici, pentru că toată lumea dorește să câștige jocul cu stand-urile lor
de proprietate. Cu toate acestea, pe de altă parte, adevărul (soluții mai bune, în cazul nostru)
rezultă din ciocnirea opiniilor.

49
1.4.3 Economie tradițională vs. digitală

Am observat o mulțime de factori care dilată rata dezvoltării IoT deja. Cum ar fi
standardizarea tehnică și tehnologică, securitatea comunicațiilor și a tranzacțiilor. Există unele
opinii cu privire la problemele nerezolvate ale dispozitivelor însuși din partea sursei permanente
de alimentare, a performanței stabile și a ușurinței de utilizare. Unii sceptici sunt înclinați să
creadă că oamenii ,psihologic și social, în principiu, nu sunt pregătiți pentru un mediu digital
comprehensiv. Dar acum aș vrea să mă gândesc și la un alt factor care afectează dezvoltarea
segmentului Internet al lucrurilor - proprietarii și companiile de management înțeleg greșit
modalitățile de a face afaceri în noua economie globală a informațiilor, care este din ce în ce mai
mult ghidat de o interacțiune instantanee digitală a consumatorilor pe mai multe niveluri , obiecte
și algoritmi. Poate că acest factor este principala "frână" pentru Internetul Lucrurilor?

Pentru a afla ce este greu de înțeles pentru afaceri în noile economii, să definim
diferențele dintre economia digitală tradițională și cea modernă (IDC, 2016):

a) Rețeaua globală de informații este omniprezentă - orice informație poate fi accesată oriunde în
orice moment.
b) Dispozitivele sunt mobile și inteligente - o mulțime de "lucruri" au învățat cum să
implementeze o funcționalitate destul de complexă și să împărtășească date structurate.
c) Utilizatorii sunt exigenți - utilizatorii sunt acum destul de diverşi la nivel profesional și
psihologic, pot prezenta cerințe complexe și se așteaptă la o abordare personalizată a nevoilor
lor.
d) Informația a devenit principala și cea mai scumpă resursă - majoritatea informațiilor de înaltă
calitate au devenit mai scumpe decât orice altă resursă materială. Monopolul privind informația
este un lucru imposibil de a fi propriul și apărător, însă dezvoltarea unui nou proiect sau a unei
afaceri este impracticabilă fără un suport semnificativ de informații.
e) Riscurile ridicate - este esențial să se apere împotriva riscurilor din ce în ce mai complexe,
abordări diferite pentru a asigura stabilitatea afacerilor prin transferul resurselor financiare
valoroase de la competențele principale de operare.

49
f) Principiile managementului sunt depășite - managerii companiilor folosesc instrumentele
dezvoltate pentru economia anterioară sau "pre-digitală". Aceste metode vechi limitează
capacitatea de a lua decizii corecte în timp.
g) Marketingul modern este complicat - este necesar să se efectueze efectiv strategia de afaceri
fără a se supune unui marketing extern. Înțelegerea esenței produselor propuse este o sarcină din
ce în ce mai dificilă, iar consecințele deciziilor greșite sunt mai greu de calculat.
h) Dependența de concurenți și piața ridicată (de aceea analizez situația înainte de dezvoltarea
produsului) - toate întreprinderile sunt puternic afectate de toate schimbările.
Specialiștii din diferite sfere au devenit independenți - diferiți profesioniști pot schimba sferele
de lucru. De asemenea, este complicat să se asigure tehnicieni de audit, din cauza numărului
limitat și a competenței profesionale imense.

Conform particularităților economiei digitale găsite, pot estima incomprehensiunea


întreprinzătorilor și managerilor și pot sugera soluții posibile pentru probleme. Mai întâi de toate,
nu există o viziune clară despre ce "obiecte" fizice și obiecte logice ar trebui să fie conectate la
Internet pentru a câștiga ceva. Aceasta este o chestiune importantă de alocare a resurselor
deficitare - desigur, este posibil să continuăm cu un număr mare de obiecte și angajați în
schimbul de informații, dar care sunt avantajele acesteia în gestionarea operațiunilor? În al doilea
rând, toate tehnicile actuale de gestionare sunt vizate de oameni, dar modul de administrare a
"lucrurilor" nu este definit. Pe de o parte, acest lucru pare minunat și convenabil pentru a numi
sarcini la roboți sau algoritmi, dar, pe de altă parte, după un timp, managerul realizează că
aceleași roboți și algoritmi funcționează doar în limitele stabilite și funcțiile sunt predispuse la
greșeli. Lucrurile sunt destul de simple în acțiunile și deciziile lor și nu sunt capabile să adapteze
procesele de afaceri, ca răspuns la situația în schimbare rapidă din jur .

O altă problemă urgentă este găsirea unui client în dinamica constantă a pieței,
variabilitatea stărilor de spirit și dependența informațională puternică. Noi produse sunt
dezvoltate rapid, prin urmare, oamenii nu sunt în măsură să captureze toate tendințele, astfel
încât noul produs ar trebui să fie cât mai detaliat posibil pentru a obține o anumită atenție. Pentru
a continua, informația însăși este problematică, deoarece ea confuză gestionarea, în timp ce
metodele matematice și statistice complicate fac deciziile actuale. Managementul are încredere în

49
acele modele matematice proiectate de profesioniști incontestabil de talentați, dar adesea nu sunt
suficienți pentru a înțelege subiectul, economia și marketingul unei afaceri date.

Există mai multe aspecte care trebuie discutate (cum se creează o echipă bună pentru
proiectul IoT, cum să protejați afacerea de riscuri și cum să comunicați cu partenerii și
concurenții?), Dar nu va duce la soluții. De exemplu, Marketingul trebuie personificat. Într-un
moment în care piețele au nevoie de produse de înaltă calitate și ieftine, iar producătorul poate
implementa în mod flexibil orice soluție de design și artă, a devenit într-adevăr dificilă și
necesară adaptarea și tratarea fiecărui client în parte. Într-o economie de consum, în care setul de
bunuri, lucrări și servicii este atât de strâns legat, afacerea nu poate fi satisfăcută doar de
informații despre segmentele simple de piață "plate"; este relevant să cunoaștem cât mai multe
despre segmentele de piață complexe, să definim consumatorii într-o clasificare pe mai multe
niveluri. Nu numai relațiile cu clienții trebuie să fie controlate, ci și relațiile clienților.

Ar trebui create noi instrumente de gestionare.Managerul ar trebui să poată lua decizii


în deplasare. Este nevoie de un model complet cu o configurație adaptivă de extindere, unde sunt
localizate toate instrumentele de gestionare a informațiilor. O astfel de infrastructură nu ar putea
fi universală, din cauza diferitelor domenii de activitate.

Clientul ar trebui să obțină produsul real, dar nu un prototip. Desigur, IoT oferă produse
inovatoare cu o funcționalitate imensă, însă utilizatorul dorește să vadă un "lucru", nu o idee,
deoarece nu este un investitor. În plus, profesioniștii ar trebui să învețe și alți specialiști, iar
întregul proiect și sistemele de gestionare a resurselor umane trebuie să se potrivească economiei
digitale. Aceasta înseamnă că metodele de gestionare vechi sunt schimbate în metodologii noi,
cum ar fi SCRUM, de exemplu. În cele din urmă, dezvoltarea netă a partenerilor, serviciilor și
comunicațiilor este semnificativă. Produsul cu integrare bogată este mai atractiv pentru
utilizatorii finali.

În ansamblu, întreprinderile trebuie să regândească în mod fundamental modelul de


afaceri, inclusiv metodele de formare a avantajelor competitive. Dacă automatizarea a lăsat unele
șanse să salveze cel puțin o parte din procesele tradiționale de afaceri, Internetul lucrurilor este

49
greu în această privință - trebuie să luăm în considerare problema într-un mod cuprinzător și larg,
schimbând totul. O îngustare artificială a perspectivelor și a domeniului IoT conduce la investiții
ineficiente evidente.

În total, pentru a lucra în economie digitală următoarele funcții ar trebui implementate:

a) Analiza datelor;
b) Managementul cunoștințelor și al celor mai bune practici;
c) Suport pentru competențe la nivel înalt;
d) Proiectarea modelelor de bază și a modelelor de afaceri speciale
e) Cercetarea și utilizarea sistemelor complexe de marketing și financiare
f) Elaborarea de standarde și reglementări;
g) Creșterea eficienței comunicării cu clienții;
h) Dezvoltarea permanentă a proceselor tehnologice, de fabricație și management;
i) Gestionarea riscului.

1.4.4 Securitate

De la senzori mici la mașini uriașe, Internetul lucrurilor se extinde cu mare viteză. Intel
a afirmat că, în urmă cu 10 ani, au fost asociate doar 2 miliarde de obiecte inteligente cu lumea
wireless, iar IDC a estimat că numărul dispozitivelor conectate până în 2020 ar fi deja 200
miliarde (IDC, 2016). Aproape orice dispozitiv conectat, pornind de la televizoare inteligente, un
tracker de fitness sau un sistem de securitate la domiciliu și terminând cu imprimante, sisteme
auto sau lumini cu control asupra rețelei, va expune mai devreme sau mai târziu la hacking. Iată
câteva exemple ilustrative de astfel de spargere:
 Mai mult de 8.000 de persoane au fost victime ale atacurilor hackerilor când hackerii din
grupul Anonymous au invadat infrastructura Agenției Spațiale Europene, iar numele furate,
adresele de e-mail și parolele persoanelor au fost apoi publicate sub forma a trei date despre
dump în justpaste.it serviciu.

49
 Symantec utilizează un calculator special configurat, Rasberry Pi, pentru a atrage atenția asupra
vulnerabilităților situate pe suprafața dispozitivelor de fitness. Experții în securitate au descoperit
că unele dintre aceste dispozitive permit atacatorilor să monitorizeze cu ușurință locația tracker-
ului.
 Un hacker și expert în securitatea cibernetică, Chris Roberts de la compania One World Labs
din Denver, SUA, a reușit să spargă sistemul de divertisment la bordul avionului și, potrivit
raportului FBI din aprilie 2015, să intercepteze controlul aeronavelor.

Din cauza cantităților mari de informații generate de dispozitivele conectate, prioritățile


ar trebui să treacă la protecția datelor importante. Primul pas în crearea unei infrastructuri de
securitate este studiul speciilor la care apar amenințări. În plus față de phishing, DoS și DDoS
atacuri și intruziune fizică în epoca de gadget-uri aplicații de hacking pe scară largă. Astăzi piața
oferă un instrument automat special pentru hacking, multe dintre ele fiind gratuite. Faptul este
că, spre deosebire de mediile web centralizate, aplicațiile mobile sunt plasate în ecosisteme de
dispozitive mobile nereglementate. Codul neprotejat al aplicațiilor mobile (aceleași pe care le
descărcați când instalați o aplicație, de exemplu, din magazinul AppStore sau Google Play) le
permite atacatorilor să modifice ușor aceste aplicații și să le folosească în avantajul lor. Datorită
acestor atacuri, nouă din zece organizații (90%) au avut un impact negativ asupra activității sale,
inclusiv întârzieri în dezvoltarea produselor sau serviciilor (31%), reducerea productivității
angajaților lor (30%), (28%) și o anumită presiune (24%) (Compton &Mickelberg, 2014). Toate
aceste puncte au un impact negativ atât asupra reputației corporative, cât și asupra performanței
generale a companiei, precum și asupra încrederii clienților săi în această industrie.

Procedura de autentificare este un aspect important de lucru cu dispozitivele conectate.


De exemplu, atunci când deschidem o mașină inteligentă cu un telefon mobil, vrem să fim siguri
că nimeni, cu excepția noastră, nu o poate face. Furnizorii de echipamente ar trebui, de
asemenea, să fie autorizați să acceseze dispozitivul la distanță. De exemplu, producătorul de
mașini electrice Tesla notifică șoferilor despre disponibilitatea actualizării firmware-ului și
despre momentul în care această actualizare va fi descărcată. Astfel, șoferul realizează că
actualizarea a fost recepționată direct de la Tesla și nu se încearcă ruperea. Pentru o autentificare

49
mai sigură, datele biometrice sunt utilizate pe scară mai largă, ceea ce permite confirmarea
fiabilă a faptului că suntem cei care ne așteptăm să fim.

Analiza situației arată necesitatea unei abordări cuprinzătoare și bazate pe știință pentru
a asigura siguranța internetului lucrurilor:

 Evaluarea riscului - pentru dezvoltator, este important să înțelegem toate potențialele


vulnerabilități. Metodologia de evaluare ar trebui să acopere aspectele legate de confidențialitate,
securitate, fraudă preventivă, atacuri cibernetice și furt de proprietate intelectuală. Evaluarea
riscurilor nu este o sarcină ușoară deoarece infractorii cibernetici caută în mod constant și învață
treptat tot mai multe tipuri de amenințări noi. Și întrucât nu există o soluție universală de
neutralizare a acestor amenințări, în acest moment se recomandă invitarea unor consultanți de
experți în securitate.
 Securitatea la etapa de proiectare - punctul esențial este că siguranța dispozitivului trebuie să
fie considerată în proiect. Aceasta include siguranța punctelor finale și a măsurilor preventive,
inclusiv crearea de dispozitive protejate împotriva ruperii hardware și software.
 Asigurarea securității datelor - autentificarea puternică, criptarea și gestionarea sigură a cheilor
de criptare ar trebui folosite pentru a proteja informațiile stocate pe un dispozitiv și la momentul
transferului.
 Managementul ciclului de viață - securitatea nu ar trebui văzută ca un proces izolat care o
execută o singură dată și uită de el. Este important ca dispozitivul utilizat în ecosistemul Internet
of Things să fie protejat pe tot parcursul ciclului lor de viață, indiferent dacă este vorba de un
produs independent sau de un anumit sistem, de exemplu, integrat în mașină.

1.4.5 Telemedicina, asistența medicală și IOT medicală

Diferența dintre telemedicină și îngrijirea medicală / mediul medical al lucrurilor este


mică, însă înțelegerea incorectă a termenilor conduce la confuzii în domeniu.

49
Telemedicina este utilizarea informațiilor medicale schimbate de la un site la altul prin
intermediul comunicațiilor electronice pentru îmbunătățirea, menținerea sau asistarea stării de
sănătate a pacienților. În strânsă legătură cu telemedicina este termenul "telehealth", care este
adesea folosit pentru a cuprinde o definiție mai largă a asistenței medicale la distanță, care nu
implică întotdeauna servicii clinice. Videoconferința, transmiterea imaginilor statice, e-sănătatea,
inclusiv portalurile pacientului, monitorizarea de la distanță a semnelor vitale, educația medicală
continuă și centrele de apel medical sunt considerate ca făcând parte din telemedicină și
telehealth. (Higgs, 2014) Cu titlu simplu, telemedicina este Internetul obiectelor aplicate în
scopuri medicale, deci este un termen rezumativ folosit pentru a descrie modalități moderne de
îngrijire medicală prin folosirea tehnologiilor informaționale.

Atât internetul medical, cât și cel medical al lucrurilor sunt considerate ca fiind
telemedicină, dar sunt diferite. Îngrijirea medicală este un tip de îngrijire medicală care vizează
monitorizarea condițiilor normale, susținerea stărilor cronice și utilizarea abordărilor preventive
pentru a asigura un stil de viață sănătos.

Medicina în cazul IoT este o zonă responsabilă pentru tratamentul de urgență, studii de
boli și științe medicale. Internetul medical al lucrurilor este despre soluții staționare, baze de date
medicale și echipamente profesionale conectate. Healthcare Internet of Things este un set de
tehnologii și dispozitive diferite utilizate pentru a sprijini sănătatea personală. De aceea, termenii
de asistență medicală IoT și asistența medicală personală IoT pot fi folosiți în mod
interschimbabil. Serviciile de asistență medicală IoT oferă servicii personale prin utilizarea
dispozitivelor și sistemelor personale destinate unei singure persoane.

Monitorul continuu de glucoză, stimulatorul cardiac, serviciul de cloud cu înregistrări


medicale și dispozitivul de urmărire a copiilor ar putea fi considerate a fi sisteme personale de
îngrijire a sănătății prin internetul obiectelor. Internetul lucrurilor contribuie la îmbunătățirea
sistemului de sănătate prin creșterea transparenței proceselor și optimizarea activităților de
operare, ceea ce la rândul său ajută la îmbunătățirea calității îngrijirii pacienților.

49
1.5 Tendințe de cercetare

Dezvoltarea infrastructurilor IoT va urma probabil o abordare incrementală și extindere


de la utilizarea de tehnici actuale, cum ar fi RFID (Identificare prin frecvență radio). Eforturile
de cooperare internațională și la nivel de sistem, sunt necesare pentru abordarea provocărilor
[20], [70] - [73]:
1) Integrarea rețelelor sociale cu soluțiile IoT: Nu există un interes puternic de a utiliza rețelele
sociale pentru a le îmbunătăți comunicări între diferitele lucruri din domeniul internetului. O
nouă paradigmă, denumită Internetul social al lucrurilor (SIoT), a fost recent propus de Atzori și
colab. [42]. Există o tendință pentru trecerea de la IoT la o nouă viziune numită Web of Things
permite componentelor IoT să devină actori activi și colegi pe Web [74] - [77].
2) Dezvoltarea tehnologiilor ecologice IoT: În ceea ce privește implicarea IoT, miliarde de
senzori conectați care comunică prin rețeaua fără fir, consumul de energie al senzorilor este o
mare îngrijorare și limitare pentru lărgirea internetului. Economisirea de energie ar trebui să
devină un obiectiv critic de proiectare pentru dispozitivele IoT, cum ar fi senzori fără fir [78].
Este necesar să se dezvolte tehnici cu eficiență energetică sau abordări care pot reduce puterea
consumată senzori [79].
3) Dezvoltarea de soluții middleware IoT pentru Context-Conștientizare: În prezent, cele mai
multe Soluțiile de middleware IoT nu au conștientizare în contextul capabilității. Uniunea
Europeană a identificat contextul conștientizării drept un domeniu important de cercetare IoT și a
specificat intervalul de timp (2015-2020) pentru calculul IoT contextual de cercetare și
dezvoltare [21].
4) Folosirea tehnicilor de inteligență artificială pentru a crea Lucrurile inteligente sau obiectele
inteligente: Arsénio et al. [80] propune crearea Internetului de Intelligent Things prin aducerea
inteligenței artificiale în lucruri și rețele de comunicare. Viitoarele sisteme IOT trebuie să aibă
caracteristici, inclusiv "auto-configurare, auto-optimizare, auto-protecție și autohealing" [81],
[82].

5) Combinarea IoT și Cloud Computing: Cloud-ul furnizează un mod bun pentru ca lucrurile să
se conecteze și să ne permită accesul la lucruri diferite pe Internet. Cercetări suplimentare se vor
concentra pe implementarea de noi modele sau platforme care să ofere "senzori ca un serviciu "
pe Cloud [84] - [86].

49
CAPITOLUL 2. PROGRAMAREA ÎN PYTHON

2.1 Modul în care programarea este diferită de utilizarea unui computer

Primul lucru pe care trebuie să-l înțelegeți despre computere atunci când programați
este că vă controlați computerul. Uneori, calculatorul nu face ceea ce vă așteptați, dar chiar dacă
nu face ceea ce doriți pentru prima dată, ar trebui să faceți același lucru a doua și a treia oară -
până când preluaţi controlul și schimbați programul.

Cu toate acestea, după ce ați învățat cum să programați, înțelegeți cum s-a întâmplat
această situație și poate veți găsi că puteți să faceți mai bine decât unii dintre programatorii ale
căror programe le-ați folosit. Rețineți că programarea într-o limbă precum Python, o limbă
interpretată, înseamnă că nu veți avea nevoie să cunoașteți mai multe despre hardware-ul
calculatorului, memoria sau secvențele lungi de 0s și 1s. Veți scrie în formă text ca și cum ați fi
obișnuit să citiți și să scrieți, dar într-o limbă diferită și mai simplă.

Python este limbajul și, la fel ca limba engleză sau orice altă limbă (limbi) pe care o
vorbiți, este logic și pentru alți oameni care deja vorbesc limba. Învățarea unui limbaj de
programare poate fi și mai ușoară, totuși, pentru că limbile de programare nu sunt destinate
discuțiilor, dezbaterilor, apelurilor telefonice, pieselor de teatru, filmelor sau oricărei alte tipuri
de interacțiuni ocazionale. Acestea sunt destinate să ofere instrucțiuni și să se asigure că aceste
instrucțiuni sunt urmate. Calculatoarele au fost modelate în instrumente incredibil de flexibile,
care au găsit o utilizare în aproape toate afacerile și sarcinile pe care le-au găsit oamenii, dar sunt
încă construite din piese fundamentale de înțeles și controlabile.

Programarea este Consistență .În ciuda complexității implicate în acoperirea tuturor


disciplinelor în care calculatoarele s-au strecurat, calculatorul de bază este încă relativ simplu în
principiu. Mecanismele interne care definesc modul în care un computer funcționează nu s-au
schimbat foarte mult de la anii 1950, când tranzistorii au fost folosiți pentru computere. În tot
acest timp, această simplitate de bază a însemnat că, computerele pot și ar trebui să fie menținute
la un standard ridicat de coerență. Ce înseamnă pentru tine, ca programator, este ca oricând să-i

49
spui unui computer să sară metaforic, trebuie să-i spui cât de înalt și unde să aterizezi și că va
face acest salt - de pește și peste atâta timp cât precizezi. Programul nu trebuie să înceteze în
mod arbitrar să lucreze sau să schimbe modul în care funcționează fără a vă facilita schimbarea.

Programarea este Control . Programarea unui calculator este foarte diferită de crearea
unui program, deoarece cuvântul se aplică oamenilor în viața reală. În viața reală, cereți
oamenilor să facă lucruri și uneori trebuie să vă luptați cu putere pentru a vă asigura că dorințele
voastre sunt îndeplinite - de exemplu, dacă vă planificați o petrecere pentru 30 de persoane și
alocați două dintre ele pentru a aduce chips-urile şi acestea vin cu băuturile, este în afara
controlului tău. Cu calculatoarele , problema aceasta nu există. Calculatorul face exact ceea ce îi
spui. După cum vă puteți imagina, acest lucru înseamnă că trebuie să acordați o atenție detaliilor
pentru a vă asigura că, calculatorul face exact ceea ce doriți să faceți. Unul dintre obiectivele
programului Python este de a programa în blocuri, care vă permit să vă gândiți la proiecte mai
mari și mai mari, construind fiecare proiect ca niște piese care se comportă în mod bine înțeles.
Acesta este un obiectiv cheie al unui stil de programare cunoscut sub numele de programare
orientată pe obiecte.

Principiul călăuzitor al acestui stil este că puteți crea fragmente de încredere care încă
funcționează atunci când le compuneți împreună, care sunt ușor de înțeles și care sunt utile.
Acest lucru vă oferă programatorului controlul asupra modului în care se execută programele
dvs., permițându-vă să vă extindeți programul deoarece problemele pe care le rezolvați
evoluează. Programele sunt executate pe computere care gestionează problemele din lumea reală;
și în lumea reală, planurile și circumstanțele se schimbă frecvent. Datorită acestor circumstanțe
schimbătoare, programatorii rareori au posibilitatea de a crea programe perfect artizanale, utile și
flexibile. De obicei, puteți atinge doar două dintre aceste obiective. Modificările cu care va trebui
să vă ocupați ar trebui să vă ofere o anumită perspectivă și să vă conducă să programați cu
prudență.

Cu suficientă atenție, puteți crea programe care să știe când li se cere să depășească
capacitățile lor și pot eșua grațios prin notificarea utilizatorilor că s-au oprit. În cele mai bune
cazuri, puteți crea programe care explică ce a eșuat și de ce. Python oferă funcții deosebit de
utile, care vă permit să descrieți ce condiții s-au întâmplat, care au împiedicat funcționarea

49
programului dvs. Ceea ce înseamnă totul Împreună, aceste principii de început înseamnă că vei fi
introdus în programare ca o modalitate de a spune unui computer ce sarcini doriți să facă, într-un
mediu în care vă aflați sub control. Veți fi conștient de faptul că uneori se pot întâmpla accidente
și că aceste greșeli pot fi adăpate prin mecanisme care vă oferă o anumită discreție cu privire la
modul în care vor fi tratate aceste condiții, inclusiv recuperarea de la probleme și continuarea
activității.

2.2 Ce este limbajul de programare Python?

Python este un limbaj interpretabil, interactiv, orientat pe obiecte de nivel superior, cu o


semantică dinamică. A fost creat de Guido van Rossum în 1991, iar numele l-a primit de la
grupul umoristic britanic „Monty Python”. Are o structură de date de calitate înaltă care, în
combinație cu scrierea dinamică și legarea, îl face foarte atractiv pentru dezvoltarea rapidă a unor
diferite aplicații.

Flexibilitatea sa vă permite să obțineți multe rezultate, mici sau mari. Astfel, Python se
poate folosi pentru a scrie programe simple, dar are și puterea necesară pentru a crea operații
complexe folosite de companiile globale, multinaționale. De asemenea, Python poate să
folosească limbajele de „scripting” și „glue”, care combină componentele existente într-un
întreg.

Sintaxa simplă a lui Python îi accentuează lizibilitatea reducând astfel costurile de


întreținere a programului. Python are suport pentru pachetele care stimulează modularitatea
programului și reutilizarea codului, iar opțiunea „The Python Interpreter” și biblioteca
voluminoasă sunt disponibile și în format sursă și în format binar.

Programatorilor le place Python în special datorită productivității pe care o oferă,


pentru că nu are pași complicați și pentru că ciclul edit-test-debug este incredibil de rapid.
Programul Debugging Python este simplu, deoarece o introducere greșită a datelor nu va produce
o eroare în segmentare. În loc, opțiunea debugging va detecta problema, fără excepții. Debugger
la nivel de sursă permite verificarea variabilelor locale și globale, estimarea expresiilor arbitrare,
setarea stopurilor, introducerea simultană a liniilor de cod etc.

49
Python este larg răspândit și aplicat cu succes în multe domenii dintre care enumerăm
doar câteva: dezvoltarea grafică desktop a aplicațiilor (inclusiv jocurile), matematica și analiza
științifică a datelor, dezvoltarea internetului (astăzi, Python este folosit de unele dintre cele mai
mari domenii de internet din lume ca Google, Facebook, Reddit, Dropbox, YouTube, Instagram,
Pinterest...).

Python este un exemplu de limbă de nivel înalt; alte limbi de nivel înalt despre care ați
fi auzit sunt C, C ++, Perl și Java. Există, de asemenea, limbi de nivel scăzut, uneori denumite
"limbi de mașină" sau "limbi de asamblare". În mod voit, computerele pot rula numai programe
scrise în limbi inferioare. Astfel, programele scrise într-un limbaj de nivel înalt trebuie procesate
înainte de a putea fi difuzate. Această prelucrare suplimentară durează ceva timp, ceea ce
reprezintă un mic dezavantaj al limbilor de nivel înalt. Avantajele sunt enorme. În primul rând,
este mult mai ușor să programați într-un limbaj de nivel înalt. Programele scrise într-un limbaj de
nivel înalt necesită mai puțin timp pentru a scrie, sunt mai scurte și mai ușor de citit și sunt mult
mai probabil să fie corecte. În al doilea rând, limbile de nivel înalt sunt portabile, ceea ce
înseamnă că acestea pot rula pe diferite tipuri de calculatoare cu puține modificări sau fără
modificări. Programele de nivel scăzut pot rula pe un singur tip de computer și trebuie rescrise
pentru a rula pe altul.

Două tipuri de programe procesează limbi de nivel înalt în limbi de nivel scăzut:
interpreți și compilatori. Un interpret citește un program la nivel înalt și îl execută, ceea ce
înseamnă că acesta face ceea ce spune programul. Ea procesează programul puțin câte o dată,
lectând alternativ liniile și realizând calcule.

Un compilator citește programul și îl traduce complet înainte de începerea executării


programului. În acest context, programul la nivel înalt se numește cod sursă, iar programul tradus
se numește cod obiect sau executabil. Odată ce un program este compilat, îl puteți executa în
mod repetat, fără traducere suplimentară.

Python este considerat un limbaj interpretat deoarece programele Python sunt executate
de un interpret. Există două modalități de utilizare a interpretului: modul interactiv și modul

49
script. În modul interactiv, tastați programele Python, iar interpretul afișează rezultatul: >>> 1 +
1 2 Chevronul, >>>, este promptul pe care interpretul îl utilizează pentru a indica că este gata.
Dacă tastați 1 + 1, interpretul răspunde 2. Alternativ, puteți stoca codul într-un fișier și utilizați
interpretul pentru a executa conținutul fișierului, numit script. Prin convenție, scripturile Python
au nume care se termină cu .py. Pentru a executa scriptul, trebuie să îi spuneți interpretului
numele fișierului.

2.3 De ce Python și nu alte limbaje de programare?

Este al doilea an la rând în care limbajul de programare Python se numără printre cele
mai populare șase limbaje de programare din lume, iar site-ul american de top al noilor
tenhologii Dice l-a declarat limbajul de programare cel mai dorit.

Joburile din acest domeniu sunt extrem de căutate, iar experții sunt foarte bine plătiți.
Conform datelor de pe platforma Gooroo, care se ocupă cu analitica tehnologiei și plății,
programatorii Python sunt pe locul doi la cel mai bine plătiți din Statele Unite ale Americii.
Salariul mediu al unui expert Python este de 103 492 de dolari pe an și lunar se publică 7 732 de
anunțuri în care companiile caută experți Python.

Acest trend s-a răsfrânt și asupra pieței noastre, de aceea și firmele din Serbia/România
caută din ce în ce mai mult programatori care să cunoască foarte bine Python.

Limbajul de programare Python este adesea comparat cu alte limbaje de programare ca


Java, JavaScript, Perl sau Tcl. În practică, alegerea limbajului de programare este dictată de
obicei de alte limitări impuse de activitățile zilnice precum costurile, disponibilitatea, investițiile
precedente sau pregătirea.

Python vs Java

Programele scrise în Python sunt în majoritatea cazurilor mai lente decât cele scrise în Java, dar
timpul necesar pentru dezvoltare este semnificativ redus. Programatorii care lucrează în Python
au nevoie de la trei până la cinci ori mai puțin timp pentru programare decât colegii lor care
lucrează în Java. Această diferență este atribuită în principal tipurilor de date Python încorporate

49
de nivel superior și scrierii sale dinamice. De exemplu, programatorul nu pierde timp selectând
tipul de argumente sau variabile; de asemenea, Python are și liste polimorfice, tipuri de
dicționare și un suport sintactic puternice, incluse direct în limbaj.

Datorită avantajelor de scriere, Python este mai adecvat ca limbaj „glue”, în timp ce
Java este mai bine caracterizat ca limbaj cu implementare redusă. De fapt, aceste două limbaje
alcătuiesc împreună o combinație extraordinară – componentelor lor se pot dezvolta în Java, iar
mai târziu se pot combina când creăm aplicațiile în Python.

Python vs JavaScript

Subseturile Python „bazate pe obiecte” sunt echivalente cu JavaScript. La fel ca


JavaScript, Python susține un stil de programare care folosește funcții și variabile simple fără să
implice definiția claselor. Însă, Python este mai potrivit pentru scrierea programelor mai mari și
reutilizarea codului printr-un stil de programare orientat pe obiecte, unde clasele și istoria joacă
un rol important, ceea ce nu este cazul lui JavaScript.

Python vs Perl

Python și Perl au un „background” similar și multe caracteristici identice, dar o


filosofie complet diferită. Perl pune accent pe suportul pentru taskurile destinate aplicațiilor
obișnuite, precum cele cu expresii regulate încorporate, scanarea fișierelor și funcții de generare
a rapoartelor. Pe de altă parte, Python pune accent pe suportul pentru metodologii comune de
programare și încurajează programatorii să scrie un cod lizibil, oferind o notație elegantă, dar nu
exagerat de criptică. În consecință, Python este mult mai utilizat în comparație cu Perl.

Python vs Tcl

La fel ca Python, Tcl poate fi folosit ca limbaj pentru dezvoltarea aplicațiilor, dar și ca
limbaj de programare independent. Însă, în mod tradițional Tcl depozitează toate datele sub

49
formă de șiruri, ceea ce are drept rezultat o structură mai slabă și o execuție mai lentă a codurilor
în comparație cu Python. De asemenea, lui Tcl îi lipsesc datele necesare pentru scrierea
programelor mai mari, de aceea Tcl conține de obicei componentele C sau C++, care sunt
specifice tocmai acestei aplicații, iar în cazul lui Python aplicația se poate scrie într-un cod
Python „curat”. Aceasta are drept consecință dezvoltarea mai rapidă a aplicației în Python decât
în Tcl, deoarece în timp ce în Tcl programatorul face debug în componenta C sau C++, în
Python, acesta lucrează deja la proiectul său și programează.

49
CAPITOLUL 3. PREZENTARE TEMĂ

Un sistem care utilizează un aparat RaspberryPi și un aparat Pi pentru procesarea /


procesarea (în funcție de nevoile de procesare) date din casă direct către utilizatorul serviciului
servere (un laptop mai puternic în cazul nostru) să fie procesate cu o latență minimă pentru a
determina dacă entitățile necunoscute sunt prezente la ușa din față (aceasta este doar o utilizare
caz) și să notifice utilizatorul și, dacă este posibil, să ia o acțiune.

3.1 Cerințele și caracteristicile utilizatorului:

- Un sistem care oferă informații despre mediu

- Alerte în perioadele specificate de utilizator, dacă există mișcări, o persoană sau ceva schimbat
într-o anumită zonă

- Comunică cu utilizatorul printr-o aplicație sau pe un site web

- Sistemul ar trebui să funcționeze într-un mediu care să ofere un acces non-stop

- Sistemul ar trebui să recunoască obiecte sau persoane

- Sistemul poate oferi acces la datele istorice pentru o anumită perioadă de timp

- Sistemul poate fi potrivit pentru exterior (rezistent la intemperii)

Componentele Hardware sunt următoarele:

 Placa Rasberry Pi 3 B + utilizată ca sistem de calcul pentru manipularea datelor de


procesare și prelucrare a datelor și hardware-ul conectat
 Camera Pi NoIR pentru captarea unui flux video pentru ca sistemul să proceseze, de
asemenea, capanul de capturină cu lumină infraroșie pentru o vizibilitate îmbunătățită
 LED-uri pentru indicarea stării. LED-uri cu LED-uri infraroșii pentru iluminarea feței în
timpul nopții, astfel încât nu va fi necesar să orbiți persoana de pe ușa din față cu lumină
vizibilă.
 Comutator releu pentru pornirea sau oprirea Servo-ului (viitor motor actual DC)

49
 Servo (viitor, actual DC motor) pentru a bloca sau debloca ușa

Raspberry Pi 3 Model B + este cel mai nou produs din gama Raspberry Pi 3, oferind un
procesor quad core pe 64 de biți care rulează la 1.4GHz, dual-band 2.4GHz și LAN fără fir de
5GHz, Bluetooth 4.2 / BLE, capacitate Ethernet mai rapidă și PoE printr-un HAT PoE separat .

LAN-ul wireless dual-band vine cu certificare modulară de conformitate, permițând


desenului să fie proiectat în produse finite cu o reducere semnificativă testul de compatibilitate
LAN fără fir, îmbunătățind atât costul, cât și timpul de lansare pe piață.

49
Modelul Raspberry Pi 3 B + păstrează aceeași amprenta mecanică ca ambele Raspberry
Pi 2 Model B și Raspberry Pi 3 Model B. Specificaţiile tehnice fiind prezentate in figura 6.

49
Schema logică a sistemului este prezentată ȋn figura 8.

Limbajul de programare utilizat este Python.

Python este un limbaj de programare dinamic multi-paradigmă, creat în 1989 de


programatorul olandez Guido van Rossum. Van Rossum este și în ziua de astăzi un lider al
comunității de dezvoltatori de software care lucrează la perfecționarea limbajul Python și
implementarea de bază a acestuia, CPython, scrisă în C.

Python este un limbaj multifuncțional folosit de exemplu de către companii


ca Google sau Yahoo! pentru programarea aplicațiilor web, însă există și o serie de aplicații
științifice sau de divertisment programate parțial sau în întregime în Python.

49
Popularitatea în creștere, dar și puterea limbajului de programare Python au dus la
adoptarea sa ca limbaj principal de dezvoltare de către programatori specializați și chiar și la
predarea limbajului în unele medii universitare. Din aceleași motive, multe sisteme bazate pe
Unix, inclusiv Linux, BSD și Mac OS X includ din start interpretatorul CPython.

Python pune accentul pe curățenia și simplitatea codului, iar sintaxa sa le permite


dezvoltatorilor să exprime unele idei programatice într-o manieră mai clară și mai concisă decât
în alte limbaje de programare ca C. În ceea ce privește paradigma de programare, Python poate
servi ca limbaj pentru software de tipul object-oriented, dar permite și programarea imperativă,
funcțională sau procedurală. Sistemul de tipizare este dinamic iar administrarea memoriei
decurge automat prin intermediul unui serviciu „gunoier” (garbage collector). Alt avantaj al
limbajului este existența unei ample biblioteci standard de metode.

Bibliotecile Python utilizate sunt:

smtplib:

- definește un obiect de sesiune client SMTP care poate fi utilizat pentru a trimite email către
orice dispozitiv conectat la Internet

email.mime:

- creează obiecte email și MIME de la zero

RPi.GPIO:

- oferă o clasă pentru a controla GPIO-ul pe un Raspberry Pi

NumPy:

- oferă conversia imaginilor în matrice numerice

OpenCV:

- oferă procesarea imaginilor, detectarea feței și recunoașterea

Pillow lib:

- oferă manipularea imaginilor.

49
Trainer.py e cel care face asocierea fiecărui folder din fişierul dataset cu o persoană.

#Program to train with the faces and create a YAML file

import cv2 #For Image processing


import numpy as np #For converting Images to Numerical array
import os #To handle directories
from PIL import Image #Pillow lib for handling images

face_cascade = cv2.CascadeClassifier('classifier_data.xml')
recognizer = cv2.face.LBPHFaceRecognizer_create()
# recognizer = cv2.createLBPHFaceRecognizer()

face_ID = -1
pev_person_name = ""
y_ID = []
x_train = []

dataset = os.path.join(os.getcwd(), "dataset") #Tell the program


where we have saved the face images
print (dataset)

for root, dirs, files in os.walk(dataset): #go to the face image


directory
for file in files: #check every directory in it
if file.endswith("jpeg") or file.endswith("jpg") or
file.endswith("png"): #for image files ending with jpeg,jpg or
png
path = os.path.join(root, file)
person_name = os.path.basename(root)
print(path, person_name)

if pev_person_name!=person_name: #Check if the name


of person has changed
face_ID=face_ID+1 #If yes increment the ID count
pev_person_name = person_name

Gery_Image = Image.open(path).convert("L") # convert


the image to greysclae using Pillow

49
Crop_Image = Gery_Image.resize( (550,550) ,
Image.ANTIALIAS) #Crop the Grey Image to 550*550 (Make sure your
face is in the center in all image)
Final_Image = np.array(Crop_Image, "uint8")
#print(Numpy_Image)
faces = face_cascade.detectMultiScale(Final_Image,
scaleFactor=1.5, minNeighbors=5) #Detect The face in all sample
image
print (face_ID,faces)

for (x,y,w,h) in faces:


roi = Final_Image[y:y+h, x:x+w] #crop the Region
of Interest (ROI)
x_train.append(roi)
y_ID.append(face_ID)

recognizer.train(x_train, np.array(y_ID)) #Create a Matrix of


Training data
recognizer.save("trained_model.yml") #Save the matrix as YML file

Recognizer.py realizează detectarea feţei.

import cv2
import numpy as np
import os
import time
import mailing
import routine
# import board

from PIL import Image


from logger import log

class Recognizer:
def __init__(self):
self.labels = ['Barboni Madalina']
self.allowed = ['Barboni Madalina']

log('Face detector initializing ...')

49
self.face_cascade =
cv2.CascadeClassifier('classifier_data.xml')
log('Face detector initialized.')

log('Creating face recognizer ...')


self.recognizer = cv2.face.LBPHFaceRecognizer_create() #
face recognizer
log('Face recognizer created.')
log('Loading trained model ...')
self.recognizer.read("trained_model.yml") # load the
trained data
log('Trained model loaded.')

log('Initializing capture device ...')


self.cap = cv2.VideoCapture(0) #Get vidoe feed from the
Camera
log('Capture device initialized.')

log('Testing capture device ...')


cameraWorks, testImage = self.cap.read()
if cameraWorks:
log('Capture device is working.')
else:
log('Capture device is not working ...')

self.delta = 0.5
self.saw_faces = {}
self.starting_time = time.time() #starting timestamp
log('Staring time is %f' % self.starting_time)

for name in self.labels:


self.saw_faces[name] = [0, self.starting_time] #
keeping count of the faces detected [count, last_time_seen]
log('Mailing service initializing ...')
self.mailer = mailing.sPiMailing('Madalina Barboni',
'madalina.barboni@gmail.com')
log('Mailing service initialized.')
routine.init()
routine.setDnd()
log('Recognizer initialized.')

49
def recognize(self):
while True:
ret, img = self.cap.read() # take a frame
if ret:
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#convert Video frame to Greyscale
faces = self.face_cascade.detectMultiScale(gray,
scaleFactor=1.5, minNeighbors=5) #Recog. faces
for (x, y, w, h) in faces:
roi_gray = gray[y:y+h, x:x+w] #Convert Face
to greyscale

id_, conf = self.recognizer.predict(roi_gray)


#recognize the Face

if conf >= 80:


font = cv2.FONT_HERSHEY_SIMPLEX #Font
style for the name
name = self.labels[id_] #Get the name
from the List using ID number
cv2.putText(img, '%s %.2f' % (name,
conf), (x,y), font, 1, (0,0,255), 2)
time_st = time.time()
if time_st - self.saw_faces[name][1] <
self.delta:
self.saw_faces[name][0] =
self.saw_faces[name][0]+1
else:
self.saw_faces[name][0] = 0

self.saw_faces[name][1] = time_st

if self.saw_faces[name][0] > 10: # if a


person is recognized
log('Recognized ' + name)
if name in self.allowed:
# board.unlock()
self.kill()
elif routine.away():
cv2.imwrite('intruder.jpg', img)
if routine.doNotDisturb:

49
self.mailer.notifyWhileInDnd()
self.kill()
break
else:
self.mailer.notifyWhileAway()
self.kill()
else:
print('Do something when other
than allowed')

cv2.rectangle(img,(x,y),(x+w,y+h),
(0,255,0),2)

cv2.imshow('Preview',img) #Display the Video


if cv2.waitKey(20) & 0xFF == ord('q'): #EXIT
log('Kill message was recieved')
self.mailer.kill()
self.kill()
return
else:
log ('ERROR Capture failed') # if loading a frame
failed (camera not working)
self.kill()
break

def restart(self):
log('Recognized allowed face. Unlocking. Restarting...')
self.__init__()

def kill(self):
# When everything done, release the capture
self.cap.release()
cv2.destroyAllWindows()
# board.kill()
log('Recognizer is shut down ...')

Mailing.py realizează trimiterea emailul-ui utilizatorului prin conectarea la serverul de Google -


Gmail.

49
import smtplib
import datetime

from email.mime.text import MIMEText


from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from logger import log

class sPiMailing:
def __init__(self, user_name, user_email):
self.email = 'sPiCameraProject@gmail.com' # email account
of the service
self.password = 'MSProject123'

self.client = [user_name, user_email] # email accounts of


the initial user user
self.smtp = smtplib.SMTP('smtp.gmail.com', 587)

self.smtp.ehlo()
self.smtp.starttls()
self.smtp.ehlo()

self.smtp.login(self.email, self.password)

def sendEmail(self, subject, text):

msg = MIMEMultipart()
msg['From'] = self.email
msg['To'] = self.client[1]
msg['Subject'] = subject
attachment = open('intruder.jpg','rb')
msg.attach(MIMEText(text,'plain'))

part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment;
filename= intruder.jpg")
msg.attach(part)

49
self.smtp.sendmail(self.email, self.client[1],
msg.as_string())
log('Email sent.')

def notifyWhileAway(self):
subject = 'Someone at the front door!'
text = 'Hello {0}!\n\n\tAt {1} sPi system has detected
someone at the front door while you are away. We\'ve attatched a
picture of the individual.\nBest regards the sPi
team!'.format(self.client[0].split()[0],
datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y"))
self.sendEmail(subject, text)

def notifyWhileInDnd(self):
subject = 'Someone was at your front door.'
text = 'Hello {0}!\n\n\tAt {1} sPi system has detected
someone at the front door during your do not disturb hours.
We\'ve attatched a picture of the individual.\n\nBest regards the
sPi team!'.format(self.client[0].split()[0],
datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y"))
self.sendEmail(subject, text)

def kill(self):
self.smtp.quit()
log('Mailing service is shut down ...')

# part of it inspired by https://github.com/samlopezf/Python-


Email

Routine.py- sunt setate intervalele ȋn care utilizatorul nu doreşte să fie deranjat sau nu se află ȋn
locuinţă.

# import board

import mailing

from datetime import datetime


from logger import log

away_interval = [datetime.now(), datetime.now()]

49
doNotDisturb = False
awaySet = False

def init():
log('Routine initialized.')

def away():
global away_interval
global doNotDisturb
global awaySet
if doNotDisturb:
return True

if not awaySet:
return False
else:
now = datetime.now()
if away_interval[0] < now and away_interval[1] > now:
return True
else:
return False

def setDnd():
global doNotDisturb
if not doNotDisturb:
doNotDisturb = True

def setAwayInterval(start, end):


global away_interval
global awaySet
away_interval = [datetime.strptime(start, '%Y-%m-%d %H:%M'),
datetime.strptime(end, '%Y-%m-%d %H:%M')]
awaySet = True

def setAvailable():
global away_interval
global doNotDisturb

doNotDisturb = False
away_interval = [datetime.now(), datetime.now()]

49
Logger.py este utilizat ȋn principal pentru depanare . Fiecare rulare a programului este salvată
ȋntr-un fişier text denumit log.txt.

from datetime import datetime

def init_log():
logfile = open('log.txt', 'w')
logfile.write('<%s> Logfile cleared\n' % datetime.now())

def log(logmessage):
logfile = open('log.txt', 'a+')
logfile.write('<%s> %s\n' % (datetime.now(), logmessage))
print(logmessage)

Detectarea unui intrus ȋn faţa uşii duce la informarea utilizatorului printr-un email ca şi ȋn figura
9.

Figura 9. Exemplu email trimis de sPI

3.2 Rezultate și activități viitoare

- Versiunea curentă a proiectului suportă următoarele funcționalități:

49
- Recunoașterea feței

- Notificare prin email

- LED-uri de stare

Următoarea listă de extensii și îmbunătățiri a fost identificată ca fiind susținută

in viitor:

- Blocarea ușii (necesită servo)

- Feed video alături de notificarea intrusului

- Feed-uri live disponibile pe scară largă

- Interfața audio (difuzor pentru sistem)

- Recunoașterea vocii (posibilitatea de a lăsa un mesaj)

- Aplicație mobilă și web pentru intercation de sistem

- Stocare în cloud pentru backup de supraveghere

- Aprobarea parametrilor de expunere a camerei pentru a determina dacă sunt necesare legături
infraroșii

- Integrarea API pentru a determina condițiile de umplere și pentru a reacționa în consecință

- Date instruite care trebuie partajate cu sisteme similare

CAPITOLUL 4. CONCLUZII

49
Internetul obiectelor (IoT) este un sistem de inter-operare a dispozitivelor de calcul,
mașinilor mecanice și digitale, stocul viu sau oamenii care sunt clasificați cu unic identificatori,
care conectează orice obiect cu Internetul, efectuează schimbul de informații și corespondența,
realizează recunoașterea intelectuală a obiectului, localizarea, urmărirea, monitorizarea și
managementul. Oferă soluții bazate pe integrare al tehnologiei informației (IT), care este
aplicația de computere pentru stocare, recuperare, transmitere și manipulare fără a fi nevoie de
informații om-umane sau umane- computerizarea computerului. În acest sens, IoT poate fi
definită ca "o infrastructură dinamică globală a rețelei cu capacități de auto-configurare bazate pe
standard și protocoale de comunicare interoperabile, acolo unde este fizic și lucrurile virtuale au
identități, atribute fizice și personalități virtuale ".

În prezent, internetul obiectelor (IoT) a câștigat o mare atenție din partea cercetătorilor,
deoarece devine o tehnologie importantă care promite o viață omenească inteligentă, permițând o
comunicare între obiecte, mașini și toate lucrurile împreună cu persoanele. IoT reprezintă un
sistem care constă în lucruri în lumea reală și senzori atașați sau combinați la aceste lucruri,
conectați la internet prin structura rețelei prin cablu și fără fir. .

Prin tehnologia IoT, lumea va deveni inteligentă în toate aspectele, deoarece IoT va
oferi un mijloc de orașe inteligente, asistență medicală inteligentă, case inteligente și clădiri, în
plus față de multe aplicații importante, cum ar fi energia inteligentă, rețeaua, transportul,
gestionarea și monitorizarea deșeurilor.

Această lucrare a propus utilizarea unui sistem inteligent de monitorizare a intrării


caselor rezidenţiale care comunică cu proprietarul prin intermediului sistemului electronic de
email .

Python este un limbaj de programare care devine din ce ȋn ce mai utilizat . Din acest
motiv am considerat că trebuie prezentat ȋn această lucrare .

49
BIBLIOGRAFIE

Cisco, 2016. Internet of Things. [Online] Available at:


http://www.cisco.com/c/en/us/solutions/internet-of-things/overview.html

Compton, M. & Mickelberg, K., 2014. Connecting Cybersecurity with the Internet of Things, s.l.:
PwC.
Continua Alliance, 2016. H.810 Interoperability design guidelines for personal connected health
systems, s.l.: s.n.

Gang, G., 2011. Internet of Things Security Analysis, International Conference on Internet
Technology and Applications. s.l., s.n. 71

Google Trends, 2016. IoT search term. [Online] Available at:


https://www.google.com/trends/explore?date=all&q=%22internet%20of%20things%22&hl=en-
US

IBM, 2015. Watson for a Smarter Planet: Healthcare. [Online] Available at: http://www-
03.ibm.com/innovation/us/watson/

IDC, 2014. U.S. Wearable Computing Device 2014–2018: Forecast and Analysis, s.l.: s.n.

IDC, 2016. Worldwide Internet of Things Forecast Update: 2015 – 2019, s.l.: s.n.

Iera, A., Morabito, G. & Atzori, L., 2010. The Internet of Things: 20th Tyrrhenian Workshop on
Digital Communications. s.l.:Springer.

Internet of Things Russian research center, 2013. What is holding up the IoT. [Online] Available
at: http://internetofthings.ru/issledovaniya/26-v-chjom-sila-interneta-veshchej

Internet Telecommunications Union (ITU), n.d. [Online] Available at:


http://www.itu.int/en/Pages/default.aspx

IPSO alliance, n.d. Enabling IoT devices' interoperability. [Online] Available at:
http://www.ipso-alliance.org/

James Payne, Begining Python- Using Python 2.6 and Python 3.1 . [Online]

Postscapes, 2015. Internet of Things history. [Online] Available at:


http://www.postscapes.com/internet-of-things-history/

PwC, 2014. PwC Global State of Information Security Survey 2015, s.l.: s.n.

49
Vermesan, O., Friess, P., Guillemin, P. & Gusmeroli, S., 2011. Internet of things strategic
research roadmap. In: Internet of Things: Global Technological and Societal Trends. s.l.:s.n., pp.
9-52.

Wei, W. & Toenjes, R., 2012. A Comprehensive Ontology for Knowledge Representation in the
Internet of Things, s.l.: IEEE 11th International Conference on Trust, Security and Privacy in
Computing and Communications.

Zeinab Kamal Aldein Mohammeda, Elmustafa Sayed Ali Ahmed ,Electrical and Electronic
Engineering Department, Red Sea University, Sudan, Internet of Things Applications,
Challenges and Related Future Technologies

https://www.link-academy.com/cursul-python-limbaj-de-programare

https://ro.wikipedia.org/wiki/Python

OpenCV: https://opencv.org

DrawIO: https://draw.io

smtplib: https://docs.python.org/3/library/smtplib.html

Email.mime: https://docs.python.org/2/library/email.mime.html

NumPy: https://www.numpy.org

Face Recognition: https://circuitdigest.com/microcontroller-projects/raspberry-pi-and-opencv-based-


face-recognition-system

49

S-ar putea să vă placă și