Disertație Rusu Liviu Isi2 2017 [306953]

UNIVERSITATEA POLITEHNICA DIN BUCUREȘTI

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE

DEPARTAMENTUL DE CALCULATOARE

PROIECT DE DISERTAȚIE

Internet of Things

(Internetul Lucrurilor)

Coordonator științific: Student: [anonimizat].Dr.Ing Florin Pop ___________________________

Ș.L Dr.Ing Gavril Godza Liviu Dumitru Rusu

BUCUREȘTI

Iunie 2017

UNIVERSITY POLITEHNICA OF BUCHAREST

FACULTY OF AUTOMATIC CONTROL AND COMPUTERS

COMPUTER SCIENCE AND ENGINEERING DEPARTMENT

MASTER THESIS

Internet Of Things

BUCHAREST

1.Introducere

”Internet of Things”, sau Internetul lucrurilor sau obiectelor cum este tradus în unele lucrări de specialitate își are originea în platforme de cloud și de Big Data ce constau în interacțiunea unor dispozitive conectabile și inteligente care utilizează infrastructura de rețele și de calculatoare cu ajutorul Internetului și care prelucrează mesaje și date transmise de către aceste dispozitive pentru automatizarea lumii înconjurătoare.care cuprinde toate domeniile. Internet of Things (IoT) [anonimizat], [anonimizat] , fapt ce permite acestor tip de obiecte să poată face schimb și achiziții de informații.. Experții estimează că până în 2020 piața IoT va ajunge la peste 50 miliarde de dispozitive conectate. Aceste obiecte se pot conecta la o mulțime de dispozitive și utilizatori prin intermediul rețelelor existente folosind infrastructura actuală. Aceasta este în prezent folosită în general pentru afaceri, e-learning, educaționale, cercetare, sau pur și simplu pentru nevoi personale. [anonimizat] a ușura procesele de afaceri prin culegerea datelor în mod automat de la senzorii din rețea fără a [anonimizat], stocare și prelucrare a acestor date în vederea obținerii unor informații utile sau afișarea de date în timp real pentru pacienții aflați sub control medical pe baza senzorilor de la purtător. Un aspect la fel de important este securitatea acestor dispozitive și rețele. ”Toate dispozitivele care au o conexiune la Internet sau într-o rețea cu dispozitive conectate la Internet pot avea probleme. [anonimizat]-[anonimizat], [anonimizat]” [1]

Scurt Istoric:”

13 ianuarie 1946 [anonimizat].

1949 [anonimizat] 27 [anonimizat] o plajă din Miami. Woodland, care mai târziu a devenit inginer la IBM, a primit ( cu Bernard Silver) primul brevet pentru un cod de bare liniar în 1952

1955 Edward O. [anonimizat] , folosit exclusiv pentru predicția rezultatelor la ruletă.

1960 4 octombrie Morton Heilig primește un brevet pentru un afișaj montat pe cap.

1967 Hupert Upton inventează un calculator analogic portabil cu afișaj de tip ochelari pentru a ajuta la citirea buzelor.

La începutul anilor ’80 membrii departamentului de informatică de la Carnegie-Mellon instalează micro-switch-uri în automatul de distribuție de coca-cola pe care le conectează la calculatorul departamental , astfel încât să vadă la terminalele lor câte sticle erau prezente în automat și dacă erau reci sau nu.

1981 În timpul liceului Steve Mann dezvoltă un sistem de imagistica personalizat pentru calculator și un kit de iluminat.

1990 Olivetti dezvoltă un sistem activ de insigne , cu senzori de infraroșu pentru a comunica poziția unei persoane.

1991 Mark Weiser publică ”Computerul secolului XXI” în Scientific American utilizând termenii computere omniprezente și virtualizare încorporată pentru a descrie modul în care elementele de hardware și software specializate . conectate prin fire, unde radio și infraroșu vor fi omniprezente iar nimeni nu va observa prezența lor

1993 Thad Starner de la M.I.T. începe să utilizeze un computer special cu o cască cu afișaj ca suport portabil.

1969 29 octombrie este transmis primul mesaj pe ARPA NET (predecesorul internetului).

1973 ianuarie 23 Mario Cardullo primește primul brevet pentru o etcihetă RFID pasivă.

1974 iunie 26 este utilizată pentru prima oară într-un supermarket o etichetă cu un cod universal de produs pentru achiziție.” [4]

Scop IoT este o arhitectură de informare la nivel mondial în curs de dezvoltare bazată pe internet care să faciliteze schimbul de bunuri și servicii. IoT are scopul de a oferi o infrastructură IT care să faciliteze schimbul de lucruri și informații într-un mod sigur și fiabil, adică funcția sa este de a depăși decalajul dintre obiectele din lumea fizică și reprezentarea lor în sistemele informatice. IoT va servi pentru a spori transparența și eficiența rețelelor lanțului de aprovizionare la nivel mondial, ”Internetul Lucrurilor” (IoT) devine din ce în ce mai mult un subiect de conversație în creștere atât la locul de muncă cât și în afara acestuia. Este un concept care are nu numai potențialul de a influența modul în care trăim, dar de asemenea modul în care lucrăm.Dar ce este exact Internetul Lucrurilor și ce impact are asupra fiecăruia? Există o mulțime de de complexități în jurul termenului IoT. Interrnetul de bandă largă a devenit disponibil peste tot, costul de conectare este în scădere, iar mai multe dispozitive sunt create cu capabilități Wi-Fi și senzori încorporați în ele, costurile tehnologice scad , iar penetrarea telefoanelor inteligente și a altor dispozitive asemănătoare este covârșitoare. Toate aceste lucruri susțin apariția și dezvoltarea IoT. Racordarea lucrurilor fizice la internet face posibilă accesarea datelor de la senzori de la distanță pentru a putea controla lumea fizică. Combinarea datelor primite de la senzori cu datele extrase din alte surse, de exemplu (cu date conținute în web), dă naștere unor noi servicii sinergice care depășesc ca bogăție a informațiilor și utilității serviciile care pot fi asigurate de către un sistem integrat izolat. Internetul lucrurilor se bazează pe această viziune. IoT se referă la interconectarea în rețea a obiectelor de zi cu zi, care sunt adesea echipate cu inteligență omniprezentă. IoT va crește ubicuitatea internetului prin integrarea fiecărui obiect pentru interacțiunea prin intermediul sistemelor integrate, ceea ce duce la o rețea de dispozitive distribuiite care comunică cu ființele umane, precum și cu alte dispozitive. Datorită progresului rapid în domeniul tehnologiilor care stau la baza sa, se deschid oportunități extraordinare pentru IoT cu un număr mare de aplicații noi care permit să îmbunătățească calitatea vieții noastre. Termenul de IoT (Internet of Things) a fost adus în prim plan de intreprinzătorul britanic Kevin Ashton cofondatorul centrului Auto-ID de la Massachussets Institute of Technology., creatorii stan-dardului RFID. Viziunea despre IoT prezentată de acesta presupunea o trecere de la IoT folosit în situații de tip B2B , unde era utilizată ca o tehnologie pentru gestiunea depozitelor în rețele închise , spre o tehnologie care lucrează pentru individ , o informatizare a vieții private.

2.Tehnologii utilizate

Ce este RFID sau Radio-Frecquency Identification , presupune o tehnologie care poate citi și stoca date despre anumite produse și care este în general atașată acelui produs.(Din această cauză a și fost utilizată frecvent ca etichetă inteligentă pentru produse). O altă tehnologie bazată pe cercetarea celor de la Auto-ID este și NFC ”Near Field Communication” reprezentând o altă idee care permite o viață permite o viață privată cu o parte semnificativă a avantajelor viziunii inițiale, permițând schimbul de informații la distanțe scurte prin sisteme radio, în condiții de securitate a transferului de date, tehnologie folosită deja pe multe din cardurile de credit vândute în prezent.

Barcode : Sistem de etichetare a produselor care permite generarea , imprimarea și exportul codurilor către alte aplicații. Poate genera codurile direct pe imprimate specializate în tipărit etichete autoadezive care se atașează produsului și prin care se stochează informațiile despre produs și care pot fi citite cu cititoare speciale. (fig 1)

Fig1 exemplu de barcode

Următorul pas a constat în QR-codes (Fig 2) în general denumit și (object link – quick response) , adică un frate mai mare al codurilor de bare, deoarece putea stoca mai multe date și poate fi citit mai ușor și de mai multe tipuri de aparate ( nu doar de cititoare dar și de telefoane inteligente) și implică mai puține costuri la momentul implementării decât RFID. , dar au și :

Dezavantaje:

Nu pot fi decât citite și nu se pot schimba informații de pe ele decât prin regenerare și reprintare.

Avantaje:

Pot fi interpretate ușor și stoca atât text cât și link-uri care sunt interpretate automat de telefon și încărcate în browser.

Fig 2 Ex de QR-code

IoT este o rețea de lucruri interconectate cu mai multe tipuri de relații

Oameni –Oameni

Oameni–Lucruri

Lucruri –Lucruri

Rețelele de transport interconectate și ideea de ”Smart Home” sau orașe inteligente ce vor utiliza algoritmi reprezintă dezvoltarea pe viitor.. O importanță deosebită are și dezvoltarea ”Cloud-ului” pentru promovarea tehnologiei deoarece o mare parte de culegere a datelor de la senzori, interpretarea lor, analiza și implementarea rezultatelor care va fi efectuată în cloud.

Caracteristici:

IoT O rețea de obiecte conectate la internet capabile să colecteze și să facă schimb de date cu senzori integrați

IoT Orice dispozitiv conectat la internet stand-alone, care poate fi monitorizat și/sau controlat dintr-o locație la distanță.

IoT ecosistemul obiectelor, toate componentele care permit intreprinderilor, guvernelor, consumatorilor să se conecteze la dispozitivele lor IoT , inclusiv tablouri de bord , rețele remote, gateway-uri, date de analiză, stocare a datelor și de securitate.

Entitate Include intreprinderi, guverne, consumatori

Strat Fizic hardware-ul care reprezintă un dispozitiv IoT, inclusiv senzorii și modulele de rețea.

Stratul de rețea (Layer) Responsabil pentru transmiterea datelor colectate de către stratul fizic de la diferite dispozitive.

Stratul aplicațiilor Aceasta include protocoalele și interfețele pe care dispozitivele le utilizează pentru a identifica și de a comunica între ele.

Telecomenzile (dispozitivele) Activează entitățile care utilizează dispozitivele IoT să se conecteze și să controleze aceste dispozitive folosind un tablou de bord, cum ar fi o aplicație mobilă. Acestea includ telefoane inteligente, tablete,, PC-uri, ceasuri inteligente, televizoare conectate și telecomenzi netradiționale.

Tabloul de bord (Dashboard) Afișează informații despre ecosistemulIoT utilizatorilor și le permite acestora să controleze IoT-ul ce deservește clientul. Acest tablou este în general afișat pe o telecomandă (dispozitiv inteligent)

Analytics Sisteme software care analizează datele generate de dispozitivele IoT. Analiza poate fi utilizată pentru o varietate de scenarii, cum ar fi predicția întreținerii.

Stocarea datelor În cazul în care datele din dispozitivele IoT sunt stocate.

Rețele Stratul de comunicare pe internet care permite entității să comunice cu dispozitivul lor și permite dispozitivelor să comunice între ele

3. Predicții IoT Tendințe și Piața

ABI Research a estimat pe baza unui studiu că “În 2020 vor fi peste 30 de miliarde de dispozitive vireless conectate la Internet. Pew Research Internet Project a contactat un mare număr de specialiști din domeniul IT și domeniile conexe, peste 83 % dintre aceștia consideră că în viitor majoritatea lucrurilor pe care le vom deține vor fi conectate direct la Internet până în anul 2025. Companii mari ca IBM , Google dar și Microsoft deja au investiții mari în infrastructură care va fi utilizată pentru fenomenul IoT. Piedica principală pe care marile companii o au în fața acestui nou val al schimbării IoT rămâne numărul destul de limitat de adrese disponibile prin Ipv4 și neadoptarea încă a standardului Ipv6”. [3] Un aspect important al ultimilor ani a acestui fenomen o reprezintă lipsa totală de control pe care oamenii o au în fața companiilor și a serviciilor de securitate privind protecția datelor, o rețea integrată chiar realizată cu bune intenții se poate transforma ușor într-un dispozitiv de obținere a informațiilor ce pot fi utilizate în lansarea de publicitate nedorită, un sistem prin care reclame malițioase sau cookie-uri pot obține informații compromițătoare despre unele persoane sau urmărirea la nivel național pe baza legii siguranței naționale. Explozia de dispozitive care fac parte din familia IoT, multitudinea de senzori, prelucrearea datelor și controlul la distanță în sectorul casnic dar corporate oferă multe perspective acestei tehnologii de viitor.

BI Intelligence- serviciile de cercetare Business Insider, se așteaptă că vor exista mai mult de 24 de miliarde de dispozitivelor IoT pânî în 2020. Asta înseamnă aproximativ patru dispozitive pentru fiecare ființă umană de pe planetă.

Industriile IoT – Mai multe medii în cadrul celor trei grupuri:

Guverne

Consumatori

Ecosisteme

Vor beneficia de pe urma IoT. Acestea includ:

Companiile IoT : Există literalmente sute de companii legate de Internetul lucrurilor , iar lista se așteaptă să se extindă în anii următori.

4.Platforme IoT

”Un singur dispozitiv se conectează la un alt IoT pentru a transmite informații folosind protocoale de transfer de pe Internet. Platformele IoT servesc ca punte între senzorii dispozitivelor și rețelele de date. Câteva din platformele dezvoltate deja pe piață:

Amazon Web services

Microsoft Azure

IBM’s Watson

Cisco IoT Cloud connect

SalesForce IoT cloud

Oracle Integrated Cloud

Kaa IoT Platform

Everything IoT

Carriots IoT

Temboo IoT

Particle IoT

De altfel în cadrul cercetării am realizat un studiu privind cele mai populare platforme IoT utilizate de studenți și de pasionați de IoT care utilizează platforme de dezoltare Arduino și Raspberry Pi pe baza unor chestionare online. Primul criteriu avut în vedere a fost varianta open-source gratuită vs varianta comercială pe bază de abonament.Pentru asta un utilizator al unei platforme IoT trebuie să aibe în vedere următoarele:

Costul utilizării (gratuit vs abonament anual)

Vizibilitatea, controlul, interoperabilitatea (limitată vs acces liber inclusiv la noi funcționalități)

Suportul și expertiza vânzătorului (limitat la utilizator vs access liber la toată platforma)

Deployment-ul (3-rd party vs on-premises, și hostare în cloud)

Servicii profesionale ( scumpe vs metodologie cost-eficientă)

Având în vedere criteriul menționat au apărut o mulțime de platforme comerciale dezvoltate de companii de cloud ca:

Google Cloud Platform

IBM Blue Mix

Microsoft Azure Cloud

Amazon Web Services

Oracle Integrated Cloud

Bosch IoT suite

Ericsson Device connection platform

Precum și o serie de platforme gratuite open-source ca:

Kaa IoT platform

Particle cloud for Raspberry Pi

Carriots IoT Platform

Everything IoT Platform

Temboo IoT Platform

Deși chestionarele utilizate în studiu au inclus și platformele comerciale accentul a fost pus pe cele open-source datorită costului, scalabilității și a popularității lor printre utilizatorii chestionați pasionați de platformele de dezvoltare Arduino și Raspberry Pi. Din multitudinea de caracteristici tehnice și funcționalități 5 criterii sunt importante pentru platformele open source :

Tehnologii proprietare și controlul acordat utilizatorului pentru soluția dezvoltată

Asigurarea de suport de și servicii fără costuri suplimentare fără abonament

Noi funcționalități adăugate și controlul asupra sursei cod fără soluții proprietare

Interoperabilitate și integrare cu terțe părți implicate în tehnologie , integrare cu o varietate largă de senzori și dispozitive și care poate include big data, soluții mobile și tehnologii web.

Suport – costuri reduse cu echipe dedicate și metodologie eficientă.

5.Analiza

Studiul online a evidențiat 5 funcționalități de bază necesare dezvoltării de proiecte IoT:

Managementul dispozitivelor

Integrarea

Securitatea

Protocoale pentru colectarea datelor

Tipuri de analiză efectuate de platformă

După cum se observă în tabelul 1 majoritatea celor 5 îndeplinesc cele 5 criterii de evaluare

Tabel 1 IOT compararea platformelor open source pe baza a 5 criterii

O altă clasificare este bazată pe alte 6 funcționalitățim (tabel 2)

Date stocate

Itegrare servicii

Vizualizare Date

SDK API

Managementul evenimentelor/reguli

Cont gratuit

Tabel 2 comparare platforme Iot open-source pe baza a 6 criterii

6.Rezultatul analizei Pe baza opiniei respondenților dezvoltatori de proiecte IoT cu ajutorul platformelor de dezvoltare Arduinpo și Raspberry Pi studiul meu a vizat un număr de 30 de astfel de utilizatori (studenți și pasionați) din care au răspuns chestionarelor 18 rezultănd o precizie de cca 60 %. Pe baza răspunsurilor celor 18 utilizatori am realizat o ierarhie procentuală a utilizării platformelor de către utilizatori (fig 1)

Fig 1 Ierarhia procentualăa popularității platformelor IoT open source

Se observă procentele mai scăzute pentru Kaa 15 %( nu are stocare date și nici vizualizare date), Carriots 14 % ( nu are vizualizare date) și Temboo 12 % ( nu are stocare și nici vizualizare date). În studiul meu am inclus și platformele comerciale ca întrebare secundară realizând o ierarhie pe bază de popularitate, întrebarea era dacă au auzit de aceste platforme și acordând,punctaj.

Fig 2 Ierarhia popularității platformelor de IoT

Pe baza opiniilor respondenților platformele comerciale sunt mai cunoscute dar datorită prețului sunt mai puțin utilizate de către segmentul de utilizatori studiat. Acestea vor deveni mai utilizate pe măsura scăderii prețului și a achiziționării celor open source de către cele comerciale ca mijloc de creștere a cotei de piață. Ierarhia aferentă platformelor open source pe care am pus accent în studiul meu pe baza răspunsurilor primite având în vedere ușurința conectării și a protocoalelor recunoscute de plăcile de dezvoltare Arduino și Raspberry Pi.(Fig3)

Fig3 Ierarhia celor mai utilizate platforme open pe baza popularității printre utilizatori

Alte aspecte tehnice trebuie avute de asemenea în vedere de utilizatorii platformelor IoT sunt:

Infrastructura (IPv4, Ipv6, 6LowPAN, RP)

Identificare (EPC, uCode, Ipv6, URI)

Protocol de transport/comunicații (Wi-Fi, Bluetooth, LPWAN)

Descoperire (Phisical Web, MDNS,DNS-SD)

Protocol date (MQTT, CoAP, Web-socket, HTTP, Https)

Managementul dispozitivelor (TR-069, OMA-DM)

Semantic (JSON-LD,WEB Thing Model)

Multi-Layer Framework (Allijoyn, Io-tivity,Weave, Homekit)

Securitate (Casă conectată, Industrial)

Funcționalități care se pot îmbunătății:

Evident multe funcționalități care necesită îmbunătățiri.Unele sunt deja implementate de producători , altele sunt în curs de realizare. Una dintre cele mai importante este Interfața utilizator care reprezintă primul impact asupra acestuia și nu mă gândesc doar la dispozitivele cu ecran (ceasuri, telefoane,drone,ochelari VR, sau cele utilizate în sănătate care au ecran).

Gândirea dincolo de ecran este noua tendință:

Bateți peste tot ( o interfață via KNOCKI prin care un mini dispozitiv WI-FI transformă orice suprafață pe care este proiectată se transformă într-un dispozitiv acționat de atingerea utilizatorului.

Butonul ca interfață Swith-ul POP fabricat de Logitech care este utilizat ca hub de automatizare pentru becuri,închizători de uși,difuzor, destinat să unească toate aceste dispozitive.

Mâinile ca interfață via AUGUMENTA: Are o abordare diferită combinând hardware-ul (ochelari conectați) , software-ul și realitate augmentată utilizând corpul uman ca interfață. Când sunt montați ochelarii, mâinile devin un tablou de bord configurabil, tastatură și cursor pentru operarea controalelor aparaturii.

Interfața asistată digital din interiorul urechii via Sony Xperia ca un gadget ce asistă via wi-fi navigația, căutarea fișierelor de muzică, informații meteo, dispozitive de planificare a calendarului, echipate cu accelerometre și giroscoape.

Comunicarea cu flaconul de medicamente (Adhere Tech) – un flacon de medicamente conectat preconfigurat de farmacist cu informații audio și video de administrare a medicației ce alertează pacientul când acesta uită ora de administrare.” [5]

Aplicații ale Internetului Lucrurilor:

Smart Home (Casa Inteligentă) : Locuință inteligentă este probabil cea mai populară aplicație IoT în acest moment, deoarece aceasta este populară și ușor accesibilă pentru consumatori. De la Amazon Echo la termostatul Nest, există sute de produse pe piață pe care utilizatorii le pot controla cu vocile lor pentru a le face viața mai ușoară și conectată decât oricând.

Wearables: ceasuri care nu mai sunt doasr pentru afi:area timpului. Apple watch :i alte ceasuri inteligente de pe piață au transformat încheieturile mâinilor în extensiile telefoanelor inteligente, permițând mesaje text, apeluri telefonice și multe altele. Dispozitive cum ar fi Fitbit și Jawbone au ajutat la revoluționarea lumii fitness-ului pentru a oferi oamenilor mai multe date despre antrenamentele lor.

Orașe inteligente : IoT are potențialul de a transforma orașe înregi prin rezolvarea unor probleme reale cu care cetățenii se confruntă în fiecare zi. Cu conexiunile adecvate și datele aferente, Internetul lucrurilor poate rezolva problemele de congestie a traficului și pentru a reduce zgomotul, criminalitatea și poluarea.

Mașini conectate: Aceste vehicule sunt echipate cu acces la internet și pot partaja accesul cu alții, la fel ca și conectarea la o rețea fără fir dintr-o casă sau birou. Mai multe vehicule au început să vină echipate cu această funcționalitate, astfel încât să se pregătească pentru a comunica cu mai multe aplicații incluse ce vor fi introduse n mașinile viitoare.

7.Inteligența Ambientală (IMA)

” În computing se referă la medii electronice , care sunt sensibile și receptive la prezența oamenilor.” [6] ” Inteligența ambientală este o viziune asupra viitorului electronicelor de larg consum, telecomunicațiilor și calculului, care a fost initial dezvoltat la sfârșitul anilor’90 pentru intervalul 2010-2020” [7] . În lumea inteligenței ambientale, dispozitivele lucrează în mod concertat pentru a sprijini persoanele în desfășurarea activității de zi cu zi , la realizarea sarcinilor și ritualurilor într-un mod simplu, natural, folosind informații și date , care sunt ascunse în rețeaua la care sunt conectate și mai integrate în mediul nostru, tehnologia dispare în mediul nostru, până când numai interfața cu utilizatorul rămâne perceptibilă utilizatorilor.

Calculul ubicuu(Ubicom) sau omniprezent ” este un concept în ingineria software și știința calculatoarelor în care calculul computațional poate să apară oricând și oriunde. Spre deosebire de claculul oferit de un desktop obișnuit, calculul ubicuu poate apărea folosind orice dispozitiv (mobil sau fix) în orice locație și în orice format. Un utilizator interacționează cu computerul, care poate fi reprezentat în multe forme diferite, inclusiv laptop-uri, tablete și terminale diverse ca aparate casnice , cum ar fi un frigider sau o pereche de ochelari”.[8] Tehnologiile care stau la bază pentru calculul omniprezent includ Internetul, middleware avansat, sisteme de operare, cod pentru dispozitivele mobile, senzori, microprocesoare, noi interfețe de utilizator pentru intrare/ieșire, rețele, protocoale mobile, localizare și poziționare geografică și noi materiale. Ca beneficiu al IoT automatizarea locuinței pe baza dispozitivelor cu acces la Internet dar și la nivel de consum energetic, iluminare, securitate sau facilități de confort reprezintă un element pe care îl am în vedere în această lucrare.

Această paradigmă este, de asemenea descrisă ca fiind calculul omniprezent (ubicuu), inteligența ambientală,media înconjurătoare sau ”everyware” . Fiecare termen pune accentul pe aspecte ușor diferite. Atunci când prima viziune de amnsamblu în ceea ce privește obiectele în cauză , este de asemenea cunoscută sub numele de calcul fizic, internetul obiectelor, calcul haptic și ”lucruri care gândesc”. Mai degrabă decât să propunem o definiție unică pentru calculul omniprezent a fost propusă, de la care poate pleca o descriere pentru diferite tipuri sau forme de sisteme și aplicații omniprezente. Paradigma inteligenței ambientale se bazează pe calculul omniprezent, crearea de profiluri, de conștientizare a contextului și designul de interacțiune om-calculator și se caracterizează prin sisteme și tehnologii care sunt:

Încorporate în multe dispozitive conectate la rețea și sunt integrate în mediu

De recunoaștere a contextului aceste dispozitive vă recunosc pe dumneavoastră și contextul de situație în care acționați

Personalizare acestea pot fi adaptate nevoilor dumneavoastră

Adaptivitate ele se pot schimba ca răspuns la cerințele tale

Anticipativitate Se pot anticipa dorințele fără medierea conștientă

” Inteligența ambientală este strâns legată de viziunea pe termen lung a unui sistem inteligent de servicii în care tehnologiile sunt capabile de a automatiza o platformă ce încastrează dispozitivele necesare pentru alimentarea unui context conștient, personalizat, adaptabil și anticipativ de servicii. În cazul altor platforme dezvoltate în care, interfața este în mod clar distinctă, într-un mediu omniprezent de calcul ”conținutul” diferă și poate fi definit ca un mediu inteligent sau ca suport ambiental. Acesta este constituit din comunicarea informațiilor în mediile omniprezente. Conceptul de mediu ambiant media se referă la forma ambientală media, conținut media ambiental și tehnologiei ambiental media. Principiile sale au fost stabilite de către Arthur Lugmayr și sunt manifestări de inteligență și experiență” [9] .

8.Senzori

Sunt din ce în ce mai folosite îîn activitatea de culegere, stocare de date și apoi transmise către aparate mult mai complexe care interpretează aceste date Și le interpretează în vederea luării unor decizii, astfel că sectorul de inteligență artificială va juca un rol hotărâtor în dezvoltarea acestei tehnologii. Tipuri de senzori :

Acustici

De vibrații

Electro-magnetici

Radio

Electrici

Magnetici

De vreme

De umiditate

De curgere

De radiații

De unghi

De viteză

De accelerație

Optici

Termici

De presiune

De forță

De nivel

De densitate

De prezență

De cuplu

Electrostatici

Pe baza acestora se strâng cantități uriașe de informații despre lumea înconjurătoare, de altfel un telefon inteligent conține o gamă largă de senzori ca gps, accelerometru,senzor de proximitate, de nivel ambiental, geolocație etc.

Automatizarea folosește deja intensiv senzori și se va extinde în locuință la electrocasnice ca: mașini de spălat, călcat, de curățat iar robotul de bucătărie va pregăti masa iar robotul de curățat parchetul va realiza activitatea sa după un program prestabilit, DVR-ul poate înregistra emisiuni favorite automat la ore prestabilite, frigiderul poate îngheța sau dezgheța alimente, autoturismul poate parca sau alimenta automat, lumina dar și tv-ul își vor modifica automat nivelurile de sonor sau iluminare iar controlul asupra lor se va realiza de pe platforma cloud-IoT .. După părerea mea succesul platformelor IoT va fi puternic influențat de dezvoltarea ”IA” fără ajutorul căreia prelucrarea unei cantități uriașe de date ar fi practic imposibil de realizat și volumul uriaș de date (Big Data) este practic imposibil de prelucrat. Scopul Inteligenței Artificiale este să i-a decizii în virtutea acestor date pentru a da se putea da sens instrucțiunilor semnificative ce vor fi traduse în comenzi asupra dispozitivelor.

Rezultate semnificative de machine learning prevăzute pe bază de algoritmi ,rezolvă fluviile de (big data) ce provin de la dispozitivele smart care asigură rezultatele dorite de utilizator. Pe baza acestor algoritmi de autoînvățare calculatoarele vor putea să acționeze și Să i-a decizii fără o programare explicită, deja primii pași în acest sens au fost de altfel făcuți prin programe de recunoaștere facială, vorbirea umană, căutare adaptivă sau colaborativă pe internet. Parcare automată pentru automobile sau descifrarea genomului uman, unde data-mining-ul contribuie la proces pe baza explorarării bazelor de date mari dar și căutarea și extragerea de pattern-uri cunoscute sau/și relații sistemice între acestea.

IoT este practic un flux de date între:

BAN Body Area Network senzori amplasați pe corpul utilizatorului

LAN Local Area Network interfața cu locuința a dispozitivelor casnice

WAN.Wide-Area-Network ce cuprinde automobilul,bicicleta, trenul, autobuzul, drona , sau avionul.

VWAN (Very Wide Area Network) înseamnă trecerea la ”orașului inteligent”, unde c e-serviciile vor juca un rol predominant fără a mai fi legate de locațiile fizice. Conform studiului IDC până în 2020:

4 mrd. de utilizatori vor fi conectați la IoT

4000 de miliarde de dolari reprezintă cifra de afaceri a firmelor din domeniul IoT

25 de milioane de aplicații vor fi disponibile tuturor utilizatorilor de IoT

25 de miliarde de sisteme încorporate dar și inteligente vor fi funcționale

Cantitatea de date procesate de IoT va ajunge la 50k miliarde de Gb

Mărimea pieței europene de IoT a fost în 2014 de 78,9 miliarde dolari

9.IoT Ca fenomen cu puternice rădăcini în spațiul electroniștilor amatori

Apărut în spațiul open-source cu tehnologii ușor de utilizat, care sunt suportate de comunități semnificative ce vor să grăbească integrările de tip IoT. Prima astfel de platformă de dezvoltare este Arduino, o platformă lansată de IDII (Interaction Design Institute Ivrea) di Italia, lîn acel moment profesorii de aolo care predau cursurile de embedded-electronics au folosit sisteme BASIC Stamp dezvolatate de MicroChip, soluții care erau destul de scumpe pentru studenții lor. De altfel profesorul Massino Banzi, de la această universitate a început dezvoltarea proiectului Arduino, numele fiindu-i inspirat de un bar din Ivea, bar ce poartă numele lui Arduin de Ivrea, un rege al Italiei din jurul anului 1000. El a utilizat ca o bază pentru proiectul său aplicația Wiring realizată de columbianul Hernando Barragan, o platformă gândită pentru arta vizuală. A folosit inițial microcontrollerele de la Atmel, ca un priml argument stabilit fiind prețul acestora dar și posibilitatea de programare a lor peste interfața serială, Massimo Banzi reușește în foarte scurt timp să-și creeze o comunitate puternică cu orientări foarte solide spre IoT,o comunitate unde în anul 2015 a participat și INTEL cu produsul său Galileo, care a fost urmat de compania Microsoft cu inițiativa sa VisualMicro. Eswtimările arată că peste 25 % din aceste dispozitive de tip IoT au la bază platforma Arduino(fig 5). O altă platformă apărută în spațiul IoT este Raspberry Pi, plăci de calculatoare de dimensiunea unui credit card dezvoltate mai întâi de Eben Upton, director tehnic la ASIC Broadcom, el a realizat Raspberry Pi Foundation scopul declarat fiind revitalizarea conceptului ”do it yourself personal computer” dar și pentru a inspira copiii pentru o înțelegere profundă a calculatoarelor, un fel de nou ”BBC Micro” . Fundația avea ca scop declarat să genereze un calculator cu un preț de mai puțin de 35 $ dar care să fie complet open-source , inclusiv pe partea de hardware. Prezenta soluție respectă acest criteriu iar numărul de producători al unor astfel de dispozitive este foarte mare. Toate dispozitivele din acest segment permit o conectare la Internet, sau i se pot atașa o multitudine de senzori și au un consum relativ redus de energie fiind de fapt niște platforme fiabile pentru fenomenul IoT. Estimările arată ca peste 10 % din soluțiile IoT au la bază platformele Raspberry Pi.

Microcontroller

Senzorii luați ca atare nu pot trimite semnalele direct peste internet deoarece acestea trebuie interpretate , astfel sunt necesare niște circuite programabile specializate care să interpreteze aceste semnale și să le tirmită peste internet pentru stocarea și analizarea lor dar și transformarea lor în date de intrare pentru aplicații în vederea luării deciziilor în baza lor. Cele mai cunoscute platforme sunt cele descrise anterior, Kit-urile Arduino sunt circuite programabile care au câștigat mult teren la toate nivelele pasionaților (amatori, studenți, business corporate) pentru că sunt polivalente și au posibilități largi de conectare la intrare/ieșire, pot fi programate în limbaje populare (C#, C++, C). Proiectul Raspberry Pi dispune de un sistem ARM/Linux care îl face perfect pentru integrarea cu IoT.( Fig 6)

Fig 5 Arduino board Fig 6 Raspberry board

Module Wi-Fi & Internet

Datele preluate de la senzori ș:i prelucrate de microcontrollerele descrise sunt transmise peste Internet prin Wi-Fi sau Ethernet. Plăcile ethernet de la computer nu pot funcționa corect direct cu microcontrollerele , din această cauză voi vor folosi module capabile să funcționeze sigur și care să fie integrabile cu proiectul Arduino/Raspberyy Pi. (fig 7)

Fig7 Wi-Fi module (https://www.google.ro/search?q= arduino+uno&client=firefox-b&source=lnms&tbm=isch&sa=X&ved= 0ahUKEwjsjZbN5cfUAhXFWBoKHZ1eBVMQ_AUICigB&biw=1366&bih=659#tbm=isch&q=wifi+module)

Printarea 3D ca element al IoT

A apărut ca un domeniu nou destul de interesant privind transmiterea de componente (items) la distanță prin tipărire (printare) care completează circuitul senzori-microcontrollere-wi-fi-Internet-Cloud-Printare 3D. Completată cu programe, platforme dar și tehnologii folosite în acest circuit , vor migra în întregime în cloud. (fig 8)

Fig 8 Printer 3D (https://www.google.ro/search?q= arduino+uno&client=firefox-b&source=lnms&tbm=isch&sa=X&ved= 0ahUKEwjsjZbN5cfUAhXFWBoKHZ1eBVMQ_AUICigB&biw=1366&bih=659#tbm=isch&q=3d+printer)

10.Locuința Inteligentă (Smart Home)

Casele Inteligente (Smart Homes) oferă un control automat și implică puțin efort manual în activități casnice, îmbunătățirea confortului și stilului de viață. Elementele care descriu și definesc conceptul de Smart Home :

Un set de funcții dar și de proprietăți ce definesc evenimente care sunt foarte utile în mediul e-home

Un set de elemente ca: Securitate, sănătate, comoditate dar și alte aspecte)

Pârghii de alertă pe nivele și obținerea de informții de la mai multe dispozitive în același timp.

În fig 9 este exemplificat conceptul de Smart Home în viziunea AMI (Ambientall Intelligence)

Fig 9 Viziunea AMI privind conceptul de Smart Home

Casa Inteligentă Pașii necesari realizării unei case supravegheate inteligent cu ajutorul senzorilor și transmiterea informațiilor în rețea folosind IoT.

Acesta nu mai este un concept futurist, ci este o soluție destul de pragmatică și care este deja prezentă în mii de case din lume. Industria echipamenteleor de automatizări este deja pregătiă să realizeze orice dorință legată de controlul utilizatorului asupra locuinței. Funcționalitatățile instalațiilor din locuință sunt controlate prin unele scenarii predefinite iar toate sistemele (iluminat,temperatură, sonorizare, TV/multimedia, alarma incendiu și efracție) sunt integrate în sistem și sunt controlate printr-o interfață grafică facilă dar și comodă de către utilizator sau se pot anticipa nevoile ocupanților casei și se pot rezolva automat. (fig 10)

Fig 10 Conceptul de Smart Home:( https://www.google.ro/search?q= casa+inteligenta&client=firefox-&tbm=isch&tbo=u&source=univ&sa=X&ved= 0ahUKEwiCrdiCuJbNAhXNKCwKHX0qB_MQsAQISA&biw=1280&bih=685)

Sistem reglare al iluminării

Sistem audio-video

Controlul temperaturii

Sistemul de securitate

Sistemul de irigație a grădinii

Sistemul de control al accesului

Iluminare Inteligentă

Aceasta presupune aprinderea dar și stingerea luminilor din interior și din exterior, zone controlate prestabilit. Prizele de alimentare pot fi controlate personalizat pe o serie de paliere orare sau pe zone ale locuinței.

Control al jaluzelelor/parasolarelor: Permite obținerea gradului de iluminare/umbrire dorit prin controlul de la distanță asupra acestora în funcție de scenariul prestabilit.

Ambianță audio personalizată

Scenariul în ceea ce privește controlul intensității și conținutului sunt personalizate, mergând de la volumul adaptat orei sau spațiului în care se ascultă, până la liste personalizate (play list) de muzică în funcție de preferințele ascultătorilor.

Controlul: Sistemelor Hi-Fi/multimedia este făcut de oriunde de la distanță prin Internet/telefon inteligent din diverse zone ale casei (grădinii,garaj,piscină,terasă) fiind controlate doar printr-o apăsare de buton.

Controlul termic/Economia de energie

Se poate personaliza pe scenariul ” Acasă” sau cu regim normal de temperatură și climă sau ”Serviciu” cu un prag redus de energie și care se activează automat când proprietarul părăsește locuința sau revenirea pe consum normal ”Acasă” atunci când se întoarce.

Controlul temperaturii poate fi personalizat pe zonă a reședinței și pe palier orar, prin posibilitatea modificării scenariului, realizabil prin intermediul aplicației sau remote prin Internet sau telefon.

Sisteme Utilitare

Controlul sistemelor de irigații, alimentare cu apă, pornire/oprire irigații, oprire/pornire pre-programată a irigatului ambiental, cu posibilitatea modificării palierelor orare sau a duratei irigării.

Operare jacuzzi/supervizare piscină – Umplere / golire la nivel, reglare temperatură și aciditate apă, dozare dezinfectanți, afișare concentrație substanțe dezinfectante sau dedurizare, verificare calitate.

Sistemele de Securitate

Integrează sistemele de alarmare la efracție, detecție incendiu, supraveghere audio/video, alertă evenimente și executare scenarii preselectate.:

Blocarea căilor de acces

Alarmarea sonoră

Comunicarea de date către dispeceratul de monitorizare

SMS de alarmare

Activarea automată și localizată a sistemului de stingere a incendiilor.

Detectare Efracție: Cu senzori punctuali sau liniari cu tehnologii MW sau cu infraroșu ce pot fi controlați de echipamente performante care pot gestiona scenarii anti-efracție.

Autorizare acces : Cu carduri de acces sau coduri unice/personalizate , drepturi de acces specifice, integrare cu sistemul de alarmă care generează statistici/rapoarte/zone de acces pentru duplexuri sau zone comune.

Controlul ușilor sau porților de garaje

Cu yale inteligente: ce au identificare biometrică (face recognition, amprentă sau retina scan ) cu autoblocare.

În această lucrare voi descrie un proiect de tip Smart Home cu sistem de alarmă conectat on-line care este format dintr-un senzor de prezență cu un switch ce se poate monta la ușă/geamuri. Senzorii de prezență aprind și un bec de control pe timp de seară cu ajutorul unui fotoelement. Proiectul are în vedere un kit de dezvoltare Arduino Uno, placa de dezvoltare preia datele transmise de senzori și comunică cu un telefon bazat pe Android sau o tabletă smart pentru control și notificare.

Senzorii de prezență

”Senzorul de mișcare sau detectorul de mișcare transformă orice mișcare într-un semnal electronic în momentul când este detectată mișcarea. Mișcarea este detectată atunci când intră în câmpul de acțiune al senzorului. Senzorul de mișcare electronic se poate conecta la sistemul de alarmă. Sistemul poate alerta pe proprietar atunci când mișcarea este detectată în interiorul sau la exteriorul casei sau pot apela automat la o firmă de securitate.

Tipurile de senzori de mișcare:

Senzori de mișcare radar

Senzori de mișcare infraroșu pasivi (PIR) (fig 11) [10]

Fig 11 Senzori de mișcare: ( https://www.google.com/search?q=s enzori+de+mi%C8%99care&client=firefox-b-ab&source=lnms&tbm=isch&sa=X&ved= 0ahUKEwjKy9_xsLrUAhXG6xoKHSCQAyUQ_AUICigB&biw=1366&bih=659)

Senzorii de mișcare au utilizare la instalațiile de iluminat. Iluminatul prevăzut cu senzor de mișcare este o tehnologie nouă. Pentru iluminat cu senzori se pot utiliza senzorii de mișcare cu IR pasiv sau cu senzori radar. ”Senzori[11] IR se folosesc de cele mai multe ori la exterior ei fiind mult mai puțin sensibili la mișcarea nemonitorizată cum ar fi mișcarea unor animale mici. Senzorii de înaltă frecvență se folosescmai mult la interior și se pot activa nu numai la mișcările omului dar și la cele ale obiectelor sau ale animalelor de companie, tipărirea unei coli la imprimantă sau la adierea vântului”[12]

11.Platforma de dezvoltare Arduino

”Este o placă electronică de dezvoltare care conține un microcontroller programabil. Platforma este de tip open-source și poate diferi în funcție de diferite capabilități sau de dimensiunile fizice” [11] ”Dar limbajele de programare precum și mediul de dezvoltare sunt însă identice ca și interconectarea modulelor indiferent de modelul platformei.

Modulele de intrare: ”Senzorii care se pot conecta la platformă pentru a putea trimite date către acest tip de platformă”[12]

Modulele de ieșire : Ce pot conecta platforma la diferite echipamente externe (relee, difuzoare, etc) pentru a putea transmite informațiile către lumea exterioară.

Modulele de date: Asigură o comunicare cu dispozitivele digitale module de tip ethernet, usb, wireless, gsm sau alte platforme Arduino.

Accesoriile: Surse de alimentare sau alte tipuri de accesorii

Procesorul este capabil să ruleze codul scris într-un limbaj de programare foarte similar cu C++.

Conectivitatea este asigurată de componentele capabile să realizeze o conectare pe rețeaua Ethernet-Schield GSM-3G sau componente de tip XBEE pentru comunicații personalizate.

” Datele pentru placa de dezvoltare:

Tensiune alimentare 5 V

Tensiune de intrare-recomandată 7-12 V

Tensiune de intrare-limite 6-20 V

Pini I/O digitali -14

Pini I/O analogici -6

Aurent maxim furnizat de pinii I/O -40 mA

Memoria Flash (stochează programul) -32 Kb

Memoria EPROM (date persistente) -1 Kb

Viteză procesor -16 Mhz

Avantajele utilizării acestui tip de platformă” [13]

Cost de achiziție redus

Poate fi programată folosind orice sistem de operare(Linux, Windows,MacOS)

Mediu programabil simplu și ușor

Placa și mediul de programare sunt open-source

Pentru a programa sunt necesare următoarele:

Cablu USB

Mediu de dezvoltare

Instalare placă de dezvoltare :

”Instalarea driverului plăcii (conectarea în grupul COM & LPT și alegerea portului Arduino Uno) Se actualizează driverele / browse pentru driverul dezarhivat în directorul ales (USB sau FTDI)

Se caută nume foder în care este dezarhivat driverul

Se selectează driverul ales și se finalizează instalarea

După instalare apare driverul în device manager” [14]

” Arduino comunică on-line cu două servere ”[15]

-Serverul de notificare Pushingbox: Acesta este un site la care te poï conecta printr-un cont Google. Aici se pot seta scenarii și/sau servicii. Notificări care vin de la senzorul PIR sau de la switch pot fi predefinite și trimise, prin intermediul unor servicii gratuite/plătite la dispozitivul inteligent sau în contul de e-mail. De exemplu atunci când se deschide ușa, senzorul detectează mișcarea apoi trimite un semnal plăcii care procesează acest semnal și trimite notificarea pe telefon/tabletă ”Mișcarea în fața ușii”

Din bara de sus a meniului se poate configura My Services și apoi se poate adăuga un serviciu ce estecompatibil cu softul dispozitivului android sau de tip IOS dintr-o listă care se afișează. Din bara de sus se poate selecta My Scenario. Putem crea un scenariu ”Mișcarea ușii” ca cel descris mai sus, apoi apăsăm Add. Acest scenariu poate fi redenumit oricând. Scenariului i se poate atribui un device ID format din litere și cifre. Acesta se poate copia și introduce apoi în codul Arduino aferent scenariului ca în figura 12 (fig 12)

Fig 12 pagina de logare pushing box

Fig 12 Serverul de PushingBox

Precum și codul aferent: (fig 13)

Fig 13 codul aferent device ID (http://www.roroid.ro/wp-content/uploads /2014/12/ deviceid.jpg ) – – Serverul de control netIO. Acesta este un app pentru dispozitivul smart android sau IOS, această aplicație se plăteșe. Nu există versiune gratuită. După instalare trebuie făcut un cont pe site-ul NetIO unde se editează fereastra pentru dispozitiv. Se setează conexiunea cu placa Arduino prin protocol http sau tcp, se configurează butoane la care se atribuie diferite funcții, se afișează icoane, se setează background-ul, slider pentru intensitatea led-ului prin pin-ul PWM de pe placă..De ex se poate atribui unui buton funcïa de pornire/oprire a senzorului PIR”(fig 14 și 15 )

Se pot configura atât textbox-uri, cât și butoane sau mesaje, se pot edita culorile sau marginile:

Ex din fig dreaptă arată configurarea unui buton.”[16]

Fig 15 configurare câmpuri interfață

Configurarea Aceasta este o structură generală JSON. Aceasta poate conține unele informații globale și toate paginile. Fiecare pagină conține un Array, Item, care specifică Butoanele,Etichetele,Slidere,Switch-urile

”Conexiunile Array definesc mai multe detalii referitroare la conectare, care pot fi utilizate de Item-uri și pagini. Definirea conectării la nivel de pagină este utilizată pentru toate butoanele de pe această pagină, cu excepția celor care au propriul atribut specificat de conectare. Item-ul Array este o colecție a tuturor Item-urilor ca butoane, etichete, slidere sau comutatoare. Toate elementele sunt redate în ordinea din acest Array.

String-ul specificat în atributul sendOnAppear va fi trimis de fiecare dată o pagină. Pe IPhone/Android atunci când apare pagina de pe ecran după scroll. Atributul fitToScreen (potrivirea pe ecran indiferent de rezoluție) este valabil doar pe Android, dacă e setat , toate dimensiunile definite vor fi scalate și se adaptează la rezoluția dispozitivului.

Feedback-ul haptic poate fi activat pentru dispozitive android pentru efectuarea unei scurte vibrații pe buton și comutator tactil.” [17]

Secvența de cod aferentă:

{

"type": "NetIOConfiguration",

"version": 2,

"description" : (string),

"name": (string),

"device": (string),

"navigation": "fix" | "collapsible",

"pagebuttonwidth": "static" | "dynamic",

"style": "flat" | "plastic",

"navBackground": (string) #r,g,b

"connections" : [],

"orientation": "landscape" | "portrait" #ipad only

"pages": [

{

"name" : (string),

"label" : (string),

"connection" : (string) #name of defined connection used for buttons

"sounds" : "active" | "inactive" | "keyboardsetting",

"hapticFeedback" : (bool),

"sendOnAppear" : (string),

"fitToScreen" : (bool), #android only

"width": (int),

"height": (int),

"textcolor": (string), # r,g,b

"background": (string) # r,g,b or *.png

"items" : []

}

]

}

Conexiuni O conexiune este o descriere a unei conexiuni, care poate fi utilizată de item-urile întregii aplicații. NetIO suportă patru tipuri de conexiuni:

TCP deschide un socket la gazda și portul specificate, utilizează atributul format pentru a trimite/primi șiruri de caractere sau date binare.

UDP trimite și primește toate comenzile peste UDP. Este util pentru aplicații simple.

HTTP solicită URL-uri de pe server de web, folosește gazda, portul și o anumită comandă pentru a crea o adresă URL:http://{host}:{}{port{comanda}. Pentru a activa autentificarea de bază, se adaugă numele utilizator și atributul parola.

HTTPS funcționează la fel ca HTTP, dar utilizează o conexiune securizată SSL.

Conexiuni bazate pe evenimente Dacă se definește atributul eventBased pe o conexiune TCP sau UDP, applicația va citi orice date care vin prin intermediul conexiunii fără a trimite ceva în prealabil. Acest lucru înseamnă că aplicația poate reacționa la evenimentele care vin din hardware fără solicitarea explicită a unui update. Conexiunile UDP au această opțiune activată întotdeauna. Odata ce aplicația primește date, toate item-urile vor obține datele pentru a le procesa. Acest lucru înseamnă că fiecare item ar trebui să filtreze cu parseResponse.

Codul aferent:

{

"name" : (string),

"host" : (string),

"port" : (uint),

"timeout" : (uint),

"initialsend" : (string)

"format" : "string" | "hex",

"sendTermination" : (string),

"receiveTermination" : (string),

"protocol" : "tcp" | "udp" | "http" | "https",

"eventBased" : (bool)

}”

Și biblioteca IO:

Items Fiecare item are nevoie de un atribut de tip care indică tipul elementului. În conformitate cu acest tip, elementul poate manipula diferite atribute descrise în secțiunile de mai jos. Toate elementele au un top, pe stânga, lățime și înălțime , atribut care este folosit pentru a poziționa elementul pe ecran. Se utilizează atributul de conectare opțional dacă se dorește comenzile trimise peste diferite tipuri de conectare , care nu sunt specificate î n configurația paginii.

Codul aferent Item-urilor:

{

"type": "button" | "label" | "slider" | "switch" | "webview",

"top": (int),

"left": (int),

"width": (int),

"height": (int),

"connection" : (string)

}

Butoane ”Butoanele sunt elemente interactive care reacționează la input-ul utilizatorului. Acest atribut, formă specifică stilul butonului (dreptunghi,rotunjit,cerc etc). La trimiterea Array-ului se definesc șiruri de caractere, care vor fi trimise prin conexiune la atingerea butonului. Dacă există mai multe șiruri definite, șirurile vor fi trimise unul câte unul. Există posibilitatea de a defini o pauză între comenzi de trimitere. Pentru aceasta, trebuie doar să introducem un ” __wait 1000” comanda (cu douăsublinieri). Această comandă nu va trimite nimic, dar așteaptă 1000 ms.

Dacă se dorește ca aplicația să trimită o altă comandă atunci căd eliberăm butonul (touch up), se definește atributul de eliberare. Comanda repetată, va fi trimisă în mod repetat în timp ce ținem apăsat un buton. Dacă specificăm un șir de citit, șirul va fi trimis după ce toate șirurile din Array au fost trimise. Răspunsul va fi afișat ca etichetă la butoane astfel încât să fim capabili să afișăm informații ce vin de la dispozitiv. Acest atribut de fundal poate fi , fie o culoare (cum ar fi textcolor) sau un nume de fișier al unui fișier png.

Codul aferent:

{

"type": "button",

"top": (int),

"left": (int),

"width": (int),

"height": (int),

"shape": "rect" | "rounded" | "circle",

"icon": "lamp_on" | "lamp_off" | "blue" | "green" | "yellow" | "red" | "down" | "up" | "right" | "left" | "previous" | "reverse" | "play" | "pause" | "stop" | "forward" | "next" | "back" | "standby",

"label": (string),

"textcolor" : (string) # r,g,b

"textalign" : "right" | "center" | "left"

"sends" : [(string), (string), …],

"repeats": [(string), …],

"reads": (string)

"release" : (string)

"connection" : (string)

"interval" : (int) # in miliseconds

"background" : (string) # either r,g,b or *.png

"border" : (string) # r,g,b

}

Pictogramele Există mai multe pictograme incluse pentru redarea unui control de la distanță simplă pentru un televizor sau un DVD player. Dacă se dorește includerea propriilor pictograme, pur și simplu adăugăm în iTunes Filesharing fereastra (IOS) sau le copiem pe cartela SD în directorul /NetIO pictograme (Android) și setăm pictograma în mod corespunzător” [18]

Etichete Etichetele afișează text sau imagini. Pot citi date o dată sau într-un interval. Similar cu butonul , etichetele pot schimba aspectul lor în funcție de datele de intrare

Codul aferent:

{

"type": "label",

"width": (int),

"height": (int),

"top": (int),

"left": (int),

"text": (string),

"textcolor" : "r,g,b", (example: "255,255,255" for white)

"background" : (string),

"border" : (string),

"icon" : (string),

"textalign" : "right" | "center" | "left"

"fontsize" : (int), #optional

"sends" : [(string), (string), …], #optional

"reads" : (string), #optional

"interval" : 2000 #optional, in miliseconds

"connection" : (string) #optional”[9]

Cursoare Sliderele pot schimba o valoare într-un anumit interval. Obiectul slider are nevoie de o valoare minimă și maximă. Valoarea este parsată în șir de caractere care conține {“valoare”}. Această {“valoare”} șir de caractere se înlocuiește cu valoarea. Dacă se doreșteca și cursorul nostru să aibă poziția corectă la reconectare, specificăm atributul care citește, exceptează un număr ca răspuns între MINVALUE și MAXVALUE {se poate vedea, de asemenea la response Handling}. Raportul privind dimensiunile cursorului este utilizat pentru a executa elementul glisant, fie vertical sau orizontal automat.

Codul aferent:

{

"type" : "slider",

"width": (int),

"height": (int),

"top": (int),

"left": (int),

"minValue" : (int),

"maxValue" : (int),

"showValue" : true | false,

"textcolor" : (string) # r,g,b

"sends" : (string),

"reads" : (string),

"connection" : (string)

"interval" : (int) # in miliseconds

"highColor" : (string),

"lowColor" : (string),

"knobColor" : (string)

}

Exemplu : ” trimite”:”luminozitatea set {value}”,”citește”:”get luminozitate”

Comutatoare Switch-uri sunt elemente cu douăstări care prezintă o anumită stare și pot transmite diverse șiruri în funcție de starea lor. Pentru a le face să funcționeze, specificăm textul care va fi afișat pentru ambele stări (onText, offtext), string-urile care vor fi transmise în funcție de starea (onSend,offSend) și atributul READS, care va stabili starea inițială.Răspunsul ”citește” este comparat co onValue pentru a determina starea actuală. În cazul în care starea ar trebui să fie actualizată în mod automat, trebuie de asemenea să specificăm un interval.

Codul aferent:

{

"type": "switch",

"width": (int),

"height": (int),

"top": (int),

"left": (int),

"onValue": (string),

"offValue" : (string),

"onText" : (string),

"offText" : (string),

"onSend": (string),

"offSend": (string),

"reads": (string),

"interval" : (int)

"textcolor" : (string),

"offtextcolor" : (string),

"knobColor" : (string),

"onColor" : (string),

"offColor" : (string),

"fontsize" : (int)

},

WebViews Un WebView încarcă URL-ul specific în cadrul dat. In acest fel, putem încorpora cu ușurință conținut html cum ar fi imagini ale camerei de tip webcam-uri și camere IP sau alte panouri de control web. În cazul în care atributul ”reloadButton” este setat la true, va apărea un buton care va reîncărca conținutul. De asemenea, în cazul în care URL-ul necesită autentificare de bază, putem specifica un nume de utilizator și o parolă (opțional), astfel încât WebView se va conecta automat.

{

"type": "webview",

"width": (int),

"height": (int),

"top": (int),

"left": (int),

"reloadButton": true | false,

"url": (string),

"interval" : (int),

"username" : (string),

"password" : (string)

},

Selector de culoare Un widget colorpicker poate fi utilizat pentru a selecta cu ușurință o culoare. Valoarea de culoare poate fi trimisă printr-o conexiune în diferite formate: valori între 0-255, valori între 0-1 sau hexa un fel de #RGGBB. Valorile de culoare sunt înlocuite cu {roșu}{verde}și{albastru}în care comenzile trimise sau citite precum și pe rândul de mai jos .Codul aferent:

{

"type": "colorpicker",

"sends": "set {red} {green} {blue}",

"format": "RGB 0-255",

"release": "set {red} {green} {blue}",

"reads": "get color",

"interval": 2000,

"comment": "this is a comment",

"parseResponse": "\\d+",

"formatResponse": "{0}"

}

Intrare text

Un widget de introducere a textului poate fi folosit pentru a introduce text într-o comandă în timpul rulării. În cazul în care atributul ”nu trimite” nu este definit, întregul text al câmpului de intrare plus comanda sendTermination este trimisă. În cazul în care este definită ”transmite”, aplicația înlocuiește {text} cu conținut real al casetei de intrare, implicit ”trimite” este doar {text}. Când citește, răspunsul va înlocui conținutul casetei de intrare, în acest fel se poate predefini textul în timpul rulării

Codul aferent:

{

….

"type": "textinput",

"buttonColor": "45,45,45",

"fieldColor": "40,40,40",

"textColor": "230,230,230",

"showSendButton": true,

"textcolor": "255,255,255",

"sends": "set {text}",

"interval": 2000,

"reads": "get value",

"id": "textinput01"

Response-handling Această caracteristică este foarte puternică și generică. Se compune din două atribute parseResponse și formatResponse care pot fi definite pe toate item-urile care se citesc valori. Dacă șirul rezultat începe cu un nume de atribut, se pot configura aceste atribute în timpul rulării.

Codul aferent:

{

"parseResponse" : (string),

"formatResponse" : (string),

},

În figura de mai jos (fig 16) se arată o interfață configurată cu mai multe butoane, icoane și textboxuri:

Fig 16 interfața configurată [19]

12.Proiectul prezentat Smart-Home în această lucrare reprezintă o aplicație de IoT,de tipul Smart-Home

13.Sistem de alarmă cu notificare SMS efectuat cu placa de dezvoltare Arduino care permite armarea/dezarmarea precum și anularea acestor funcții printr-un mesaj SMS precum și detectarea mișcării cu senzor PIR. De asemenea atunci când alarma este declanșată se primește un SMS de notificare. De asemenea sunt avute în vedere și alte funcționalități specifice Smart-Home de tipul Detector de incendiu,Control lumină ambientală, control tv, supraveghere video cu camera web, control sistem multimedia cu telefon mobil ce vor fi descrise în capitolele care urmează.

Componentele Necesare (fig 17)

Placa Arduino Uno

Modul A-GSM

Bread Board

Diodă Laser

Fotorezistor

Led-uri

Conectori

Senzor PIR

Fig 17 elementele componente

Dioda laser și fotorezistorul crează un senzor de barieră luminoasă. Atunci când este armată și bariera luminoasă este încălcată, sistemul de alarmă va trimite o alertă SMS la numere de alertă predefinite. Istemul dispune de 3 stadii, Armat/Dezarmat/Alarmă. Starea de alarmă se poate vedea pe cele 6 Led-uri care sunt conectate la placa Arduino Uno. Programul Arduino este proiectat astfel încât să se poată face armarea sau dezarmarea sistemului numai de la numerele de telefon permise.

Pentru a comunica cu modulul A-GSM se poate folosi cel mai recent cod al lor numit ” kickstart pentru Arduino”. Acesta este ca o bibliotecă pentru modulul A-GSM și ajută foarte mult pentru realizarea proiectului. În cazul proiectului descris se poate modifica puțin codul pentru a se potrivi mai bine nevoilor proiectului. (fig 18)

Fig 18 (modul de conectare modul A-GSM)

Senzorul PIR detectează mișcarea prin detectarea diferenței în nivelurile de infraroșu sau radiațiile emise de obiectele din jur. Valoarea semnalului la ieșirea senzorului PIR crește atunci când detectează orice mișcare. Raza de acțiune a unui senzor PIR tipic este de cca 6 m. Pentru buna funcționare a senzorului, este nevoie de un timp de încălzire între 20 și 60 de secunde. Acest lucru este necesar, deoarece senzorul PIR are un timp de setare în timpul căreia se calibrează senzorul în funcție de mediu și se stabilizează detectorul infraroșu. În acest timp nu ar trebui să fie nici o mișcare în fața sezorului. Dacă senzorul nu este suficient timp calibrat, ieșirea acestuia s-ar putea să nu fie fiabilă. Când senzorul PIR detectează orice mișcare, valoarea la ieșirea senzorului va crește. Acest lucru este detectat de placa Arduino. Apoi aceasta comunică cu modulul GSM prin comunicație serială pentru a efectua un apel la numărul de pe mobil programat. Un punct important de remarcat cu privire la senzorii PIR este faptul că valoarea de ieșire va fi ridicată atunci când detectează mișcare. Ieșirea senzorului merge cu cu valoare scăzută din când în când, chiar și atunci când există mișcare , fapt care ar putea induce în eroare microcontrollerul care i-a în considerare faptul că nu există nici o mișcare. Această problemă trebuie să fie abordată în programarea plăcii Arduino prin ignorarea semnalelor de ieșire scăzute, care au o durată mai scurtă decât un timp predefinit (timeri). Acest lucru se face prin presupunerea că mișcarea în fața senzorului PIR este prezentă în mod continuu. Proiectul se bazează pe o placă de dezvoltare Arduino Uno , conexiunea este destul de simplă. Senzorul PIR de detectare a mișcării are un conector cu ieșirea digitală. Acesta este conectat la oricare din pinii I/O digitali Arduino. Este important de remarcat de faptul că în timpul încărcării programului (biblioteca) la Arduino, modulul GSM trebuie să fie deconectat, deoarece ar putea interfera cu comunicația serială cu Arduino IDE. (Passive Infrared) sau senzorul PIR este un dispozitiv pyroelectric care detectează mișcarea. De accea este numit senzor de detectare a mișcării. El detectează mișcarea prin detectarea schimbărilor în nivelele razelor infraroșii emise de obiectele din apropiere.

Modulul GSM SIM (900)

SIM 900A este modulul GSM/GPRS cu interfața încorporată RS232.Ea are bandă dublă sistem GSM?GPRS, care funcționează pe frecvențe 900/1800 MHz.

Cu ajutorul interfeței RS232, modemul poate fi conectat la PC sau microcontroller prin intermediul unui cablu serial. Apelurile vocale, SMS-urile și accesul la internet sunt posibile cu acest modul. Există conexiuni pe placă pentru microfon și căști cu care putem efectua sau primi apeluri de voce.

Arduino Uno

Este controllerul principal utilizat în acest proiect. Acesta detectează semnalele de la senzorul PIR și trimite comenzi cĂtre modulul GSM în mod corespunzător. Pinii seriali ai Arduino sunt utilizați în acest proiect pentru a comunica cu modulul GSM.

Pașii necesari:Conectarea Arduino la computer

Se deschide interfața arduino_pir / arduino_pir.ino cu Arduino IDE

Se selectează portul serial (Instrumente-Serial Port) se face click pe încărcare

LED-ul Arduino va clipi. Acest lucru înseamnă că senzorul PIR este pe calibrare.

Deschidem server.py cu un editor de text , schimbăm valoarea SERIAL_PORT la portul serial setat în Arduino IDE. Modificăm valoarea SMS_FROM la nr setat din numerele de cont TelAPI (Putem seta la un alt număr, cum ar fi telefonul propriu și va costa puțin mai mult). Schimbăm SMS_TO ca valoare pentru telefonul mobil ales. Schimbăm valoarea TelAPI_ACCOUNT_SID la contul nostru SID așa cum se găsește în dashboard-ul TelAPI. Schimbăm valoarea TelAPIU_TOKEN la indicativul contului găsit în tabloul de bord TelAPI.

Software necesar : Codul Kickstart pentru Arduino (bibliotecă v.092):

Dacă nu se folosește biblioteca sau versiunea corectă pot apărea erori de genul:

SMSAlarm.ino: In function ‘void alarmSMS()’:
SMSAlarm:69: error: ‘listSMS’ was not declared in this scope
SMSAlarm:73: error: ‘readSMS’ was not declared in this scope
SMSAlarm:75: error: ‘getValue’ was not declared in this scope
SMSAlarm:79: error: ‘sendSMS’ was not declared in this scope
SMSAlarm:84: error: ‘sendSMS’ was not declared in this scope
SMSAlarm:89: error: ‘sendSMS’ was not declared in this scope
SMSAlarm:93: error: ‘deleteSMS’ was not declared in this scope

Cod Programator:

AppInventor Pentru aplicația Android e nevoie de un buton pentru armare / dezarmare a sistemului și o etichetă jurnal primirea mesajelor de sistem. Mai jos se poate vedea designul și aplicația (fig 19):

Fig 19 (AppInventor)

Și inițializarea pe interfață (Fig 20) :

Fig 20 Inițializarea pe interfața

// Arduino Proiect Securitate – PIR sensor and GSM shield (detector de mișcare)

1.#include "SIM900.h"

2.#include <SoftwareSerial.h>

3.#include "sms.h"

4.#include "Sodaq_DS3231.h"

5.#include <Wire.h>

6.SMSGSM sms;

7.String smsText = "Motion detected at ";

8.boolean started=false;

9.char sms_text[160];

10.int ledPin = 13;

11.int pirPin = 7;

12.int val = 0;

13.void setup()

{

Wire.begin();

rtc.begin();

pinMode (ledPin,OUTPUT);

pinMode (pirPin, INPUT);

Serial.begin(9600);

if (gsm.begin(9600))

{

14. Serial.println("\nstatus=READY");

15. started=true;

}

16. else

Serial.println("\nstatus=IDLE");

}

17.void loop ()

{

18. String timestamp;

val = digitalRead(pirPin);

digitalWrite(ledPin,val);

19.if (val == 1)

{

timestamp = getDateTime();

Serial.println(timestamp);

smsText = smsText+timestamp;

smsText.toCharArray(sms_text,160);

sms.SendSMS("+40767629476",sms_text);

String smsText = "Motion detected at ";

delay(60000);{

20.String getDateTime()

{

21. DateTime now = rtc.now(); //get the current date-time

String timeString;

String hourString;

String minuteString;

22. if(now.hour() <10)

{

23. hourString = "0"+String(now.hour());

}else

{

24.hourString = String(now.hour());

}

25. if(now.minute() <10)

{

26.minuteString = "0"+String(now.minute());

}else

27. minuteString = String(now.minute());{

}

28.timeString=hourString+":"+minuteString+" "+String(now.month())+"/"+String(now.date())+"/"+String(now.year());

return timeString;

}

Și interfața de pe dispozitivul mobil cu verificarea stărilor sistemului (fig 20):

Fig 20 Interfața tel mobil

14. Detector de incendiu/Fum Folosind placa de dezvoltare Arduino:

Senzorul de incendiu se bazează pe detectarea radiațiilor infraroșii (lungime de undă 760-1100 nm) montat pe modul (fig 21) iar la detectarea unor astfel de emisii se activează o diodă LED roșie conectată la platformă. Sensibilitatea senzorului poate fi ajustată precum și unghiul de detecție între 30 și 60 de grade. Modulul are ieșiri analogice și digitale iar pragul de declanșare se poate regla cu ajutorul unui potențiometru. Modulul se conectează cu ajutorul ieșirilor la placa de dezvoltare și are următoarele funcționalități:[20]

Tensiune de lucru 3,3-5V

Ieș:iri digitale/analogice

Indicator LED

Reglare prag de sensibilitate senzor

Distanță de detectare minimă 0,8 m

Unghi de detectare ~60 0

Fig 21 Senzor de incendiu

După cum se observă și în figură pinii de conectare conțin următoarele conexiuni

A0 pin ieșire analogică (se conectează la placa de dezvoltare Arduino)

G pin de pământare se conectează la pinul de masă al plăcii Arduino

+pin de alimentare cu 5V cc se alimentează de la placa Arduino

D0 ieșire digitală se conecteazî la intrarea digitală a plăciik Arduino (Fig22)

(Fig 22 Mode de conectare cu placa a senzorului de incendiu)

Codul aferent conectării digitale (utilizat în proiect este descris mai jos)

int led_pin = 13; // iniïalizare pin 13 ca pin LED

int flame_sensor_pin = 7; // iniïalizare pin 7 ca output

int flame_pin = HIGH ; // statusul senzorului

void setup () {

pinMode ( led_pin , OUTPUT) ; //declararea LED pin ca ieșire pinMode pinMODE (flame_sensor_pin, INPUT) ; // declarare pin sensor ca intrare pentru placa ARDUINO

Serial.begin (9600 ) ; //setare rata de transfer la 9600 baud rate

}

Void loop () {

Flame_pin = digitalRead (flame_sensor_pin ) ; //citire sensor

If (flame_pin == LOW) //aplicare condiții

{

Serial.println ( “FLAME , FLAME , FLAME” );

digitalWrite ( led_pin , HIGH) ; // dacă valoarea este ridicată se activează LED

}

Else

{

Serial.println ( “no flame “) ;

digitalWrite (led_pin, LOW) ; //altfel se trece valoare LED LOW

}

}

15.Controlul Luminii Ambientale cu senzori LDR și placa de dezvoltare Arduino:

Pentru controlul luminii ambientale este necesar un senzor (de tip LDR) care se conectează la placa de dezvoltare Arduino după cum se observă în figura 23. Modulul senzorului oferă o ieșire analogică simplă care se poate conecta la placa Arduino (Masa, +5Vși o ieșire analogică). Modulul acceptă orice sursă de alimentare de curent continuu filtrat și stabilizat într 3 și 5,5 V. Legăturile sunt foarte simple (se poate vedea în fig 23) [21]

Codul este simplu de implementat, se transmite apelul analogRead pe intrarea corespunzătoare pentru oținerea unei valori între 0 și 1023 care reprezintă de fapt nivelul luminii detectat, apoi se introduce codul de mai jos în interfața plăcii Arduino pe monitorul serial cu rata de transfer de 38.400 bps.

Int lightLevel ;

Void setup ()

{

Serial.begin (38400) ;

}

Void loop()

{

lightLevel = analogRead (A0) ;

Serial.println(lightLevel, DEC) ;

delay(200) ;

Nivelul luminii va fi raportat de cinci ori pe secundă prin consola serială [22]

Fig 23 Mode de conectare senzor LDR

16.Controlul televizorului cu ajutorul telefonului mobil

Elementele necesare:

Placa Arduino

Orice telecomandă cu infraroșu (eventual una universală, eu am folosit una LG)

Receptor IR

Jumperi

Cablu de conectare

Senzorul (fig 24) are trei conectori

Pin 1 out la pinul 11 Arduino

Pin 2 GND la GND Arduino

Pin 3 +5V cc la +5V Arduino

Fig 24 (senzor TV)

Modul de conectare este ilustrat în fig 25 iar biblioteca necesar de descărcat se găsește la adresa : http://www.mediafire.com/download/cv0r5191fvtqy2/IR_l’ble_package.zip ( e pusă pe mediafire din motive de siguranță) [23]

Este recomandabil să punem atât receptorul cât și telecomanda într-o cutie sau ceva care este ferit de lumină.Acest lucru va asigura faptul că nu va exista nici cea mai mică interferență și avem un cod clar decodat, astfel încât să nu trebuiască să reprogramăm Arduino de mai multe ori pentru o singură sarcină. De asemenea, ne asigurăm ca nu suntem în calea unor persoane care urmăresc emisiuni TV care să întrerupă semnalul. Biblioteca se descarcă în windows în C:\Program Files (x86/x64)\Arduino\libraries\RobotRemote

Arduino a făcut unele modificări la IDE, iar acum există o bibliotecă IR în conflict. Nu voi folosi acestă bibliotecă, pentru că încă mai vreau să folosesc IRremote. Deci ștergem acest fișier. Recunoașterea semnalelor emise de telecomandă: trebuie descărcată schița decodorului de semnale IR de pe : http://www.mediafire.com/view/6gnsnqp9a838xe/ Decode_IR.ino , se uploadează schița Arduino apoi se captează semnalele emise de telecomandă pe interfața(fig 26)

Fig 25 Mod de conectare senzor TV

Fig 26 Schiță decodor Arduino

Prin apăsarea diferitelor butoane de pe telecomandă, apar codurile aferente funcțiilor pe interfață. Apoi codul pentru sonzorul IR de recepție:

Codul aferent:

int IRpin = 11 ; // pinul pentru senzorul IR

int LED = 13 ; //pin LED

IRecv irrecv(IRpin);

Decode_results results;

Boolean LEDon = true; //se inițializează ca true

Void setup()

{

Serial.begin(9600);

Irrecv.enableIRIn(); // Start receiver

{

pinMode(LED, OUTPUT);

}

Void loop()

{

if (irrecv.decode(&results))

{

Irrecv.resume(); //Se recepționează urmăTOAREA VALOARE

}

iF (RESULT.VALUE == 0) // se schimba butonul 0 de pe telecomanda

{

if (LEDon == true) // Se trece LED pe true

{

LEDon = false;

Digitalwrite(LED, HIGH)

Delay(100); // se menține tranziția lină

}

Else

{

LEDon = true

Digitalwrite(LED,LOW)

Delay(100);

}

}

}

În acest del LED-ul este activat când este apîsaqt același buton.

if (results.value == 0) // se schimbă cu vlaoarea null nr butonului

if (results.value == 16753245 (codul butonului de power) , la fel pentru celelalte butoane.

Pentru schimbarea funcției fiecărui buton se scrie codul:

Switch(results.value)

Void loop ()

If (irrecv.decode(&results))

{

irrecv.resume(); //receive next value

}switch(results.value)

{

În codul final se aplică funcția aferentă fiecărui buton numerotat cu ajutorul declarației switch. De exemplu la butonul 03 se schimbă cu butonul dorit, în acest fel se poate schimba funcția fiecărui buton.

Case 16753245:

//do this

break;

Astfel adăugăm funcții diferitelor butoane

#include <IRremote.h>

int IRpin =11; //pinul pentru sensor IR

int LED =13; //pin LED

IRrecv irrecv(IRpin)

Decode_results results;

Boolean LEDon = true; // initializing LEDon as true

Void setup()

{

Serial.begin(9600);

Irrecv.enableIRIn(); //Start the receiver

pinMode(LED,OUTPUT)

}

Void loop()

{

if (irrecv.decode(&results))

{

Irreccv.resume(); //Receive the next value

Switch(results.value)

{

Case 01:

//do this

break;

case 02:

//do another thing

break;

case 03:

//do another thing

Break;

Default:

digitalWrite(LED, HIGH);

}

}

Codul asigură funcționalități diferitelor butoane ale telecomenzii. Scopul acestor pași deși pare mai complicat decăt instalarea direct pe telefonul mobil a unei aplicații de telecomandă smart este că va funcționa de oriunde de pe net prin intermediul modulului GSM atașat plăcii Arduino, deoarece aplicațiile obișnuite de telecomandă gratuite sau contra cost de pe google apps funcționează pe o distanță scurtă fiind legate de prezența în aceeși rețea locală cu routerul wireless.

17.Supraveghere video cu cameră web Prin conectarea unei camere web la placa de dezvoltare Arduino. Materiale necesare [23]

– Placa de dezvoltare Arduino Uno (fig 29)

– Arduino ethernet Schield (fig 28)

– Camera serială (fig 27)

Fig 27 (camera serială)

Modul de conectare cu placa de dezvoltare Arduino (fig 28)

Fig 28 Modul de conectare cu placa Arduino

Fig 29 Modul Arduino Ethernet Schield

Se importă bibliotecile necesare (http://arduino.cc)

Codul schiță pentru cameră (fig 30)

Fig 30 codul schiță pentru cameră

În această schiță de testare, vom vedea dacă camera este corect recunoscută și încercăm să facem o poză cu ea. Începem prin importarea bibliotecilor corecte:

#include <Adafruit_VC0706.h>

#include <SoftwareSerial.h>

Apoi trebuie să creăm obiectele corecte care să folosească camera: o conexiune serială, software pe pinii din dreapta și în final obiectul camerei.

SofwareSerial cameraconnection = SoftwareSerial(2, 4);

Adafruit_VC0706 cam = Adafruit_VC0706(&cameraconnection);

Apoi funcția setup, pentru a putea verifica dacă camera se inițializează:

if (cam.begin()){

Serial.println (“Camera found ! ”) ;

} else {

Serial.println( (“Camera not found!”) ;

}

Stabilim m{rimea imaginii la valoarea standard (640×480)

cam.setImagesizeVC0706_640x480) ;

delay(3000) ;

if (! Cam.takePicture())

Serial.println(“Failed to snap!”)

else

Serial.println(“Picture taken!”) ;

}

Se asigură astfel conectarea și funcționarea corectă a camerei. Pentru codul aferent microcontroller-ului este nevoie de introducerea mac-ului și IP-ului camerei (fig 31) altele decât cele default pentru a putea avea acces și control asupra camerei.

Fig 31 cod microcontroller

Iar pentru interfața android este necesară descărcarea pachetului android IP camera în android Studio fără de care sistemul nu va funcționa.(fig 32)

Fig 32 pachetul IP camera

Se modifică clasa activity cu setările noastre ( IP-ul și URL aferent camerei).
Personal am utilizat o interfață standard pe dispozitivul mobil pentru controlul mai multor senzori (fig 33) nu doar cea pentru IP camera ci pentru toți senzorii descriși în lucrare și alții care se pot introduce ulterior prin dezvoltarea proiectului. Se pot stoca pozele prin utilizarea unui card SD care se introduce în slotul plăcii dar nu am testat această posibilitate, camera utilizată are rezoluție standard (640×480) dar se pot utiliza și camere cu rezoluție înaltă însă trebuie avută în vedere mărirea lățimii de bandă utilizate și viteza de conectare la Internet.

Fig 33 Interfața Arduino Smart Home

Se modifică denumirea dispozitivului din interfața cu numele senzorului acționat. Se poate lăsa numărul de senzori acționați, se pot adăuga alții sau se pot scoate din aplicație unii dintre ei. După stabilirea senzorilor care vor fi utilizați se setează denumirea lor, numele dispozitivului, adresa IP și portul (fig34)

Fig 34 Setarea senzorilor/dispozitivelor

În figura 35 se poate vedea semnalul emis de senzor pe interfața telefonului mobil privind depășirea pragului de temperatură stabilit.

Fig 35 avertizare depășire prag temperatură

Și notificarea primită din aplicație (fig 36) Desigur se poate utiliza aplica ția și pentru integrarea senzorului de mișcare cu cel al camerei și înregistrarea automată a imaginilor la activarea senzorului de mișcare. Pentru aceasta e nevoie de o unitate centrală cu capacități mari de stocare deoarece transmiterea online în timp real necesită resurse serioase (viteză de conectare și lățime de bandă) și s-ar pierde pozele transmise în direct. De asemenea în acest fel se poate trimite apel la serviciile de urgență doar, la inițiativa utilizatorului pentru a nu abuza de serviciile de urgență în situații care nu impun aceasta.

Fig 36 Notificare primită de la senzorul de incendiu

18.Controlul sistemului Multimedia cu ajutorul telefonului mobil Sistemul multimedia atașat routerului wireless poate fi controlat cu ajutorul telefonului mobil ca parte a aplicației Smart-Home prin controlul funcționalităților asupra fișierelor audio-video indiferent de modul de stocare digitală a acestora.(dvd, blue-ray, sd card,flash stick,sau hdd). Redarea se va face pe ecranul televizorului iar amplificatorul audio va fi obligatoriu conectat la sursa de energie și rămas în stand-by pentru a putea fi controlat remote. Sistemul este obligatoriu să fie conectat la Internet prin intermediul aceleiași rețele locale cu celelalte aplicații și senzori. Interfața utilizată pe dispozitivul mobil simulează cursorul de căutare de tip pad a fișierelor dar și butoanele clasice aferente oricărei telecomenzi (fig 37). Acest model de cursor este necesar mai ales în cazul sistemelor multimedia care au incluse aplicații cu acces la servicii de fișiere online de tipul Youtube, Flickr sau Netflix sau feed-uri de știri online.

Fig 37 Interfața cursor multimedia

De asemenea sunt afișate butoanele pentru rularea fișierelor audio-video cu funcțiile clasice de stop/pause/rewind/fast forward dar și cele de search după denumirea fișierului (fig 38). De asemenea sunt utilizate și butoane sau layout-uri cu simbolurile diferitelor tipuri de fișiere pentru accesul și selectarea mai ușoară a acestora precm și butonul de return la intefața anterioară în funcție de mediul de stocare pe care se află fișierul respectiv (fig 39). În cadrul aceleiași aplicații integrate se poate extinde și utilizarea funcționalităților aferente consolei de jocuri cu butoanele și interfața grafică care să simuleze imaginea telecomenzii acesteia (fig 40) dar să și aibă aceleași funcționalități ca o telecomandă de consolă/joystick pentru ca utilizatorul să nu perceapă diferențe majore la acționarea acesteia în ceea ce privește timpii de răspuns sau funcțiile butoanelor

Fig 38 Interfața Butoane acces multimedia

În figura de mai jos este descrisă interfața de selecție a tipurilor de fișiere multimedia(fig39):

Fig 39 interfața de selcție a fișierelor multimedia

Cponsola de jocuri se poate simula de asemenea printr-o interfața prietenoasă asemănătoare cu imaginea clasică a unei console de jocuri.(fig 40):

Fig 40 Interfața consolei de jocuri

O funcționalitate interesantă a aplicației de telecomandă sistem multimedia este de a afișa informații despre fișierele accesate ca: Synopsis pentru fișierele video sau fotografiilor digitale , ce includ date despre autor/regizor/producător/data lansării actori pentru filmul respectiv sau durata acestui film/melodie sau chiar de rating fie pentru fișierele stocate fie pentru cele accesate online similar datelor afișate pe site-uri consacrate ca IMDB (fig41)

Fig 41 Synopsis fișier multimedia

Pentru fișierele stocate în format digital aceste informații trebuie stocate pe același suport și în același folder pe care este stocat și fișierul multimedia pentru a putea fi afișat corect odată cu accesarea fișierului respectiv. Pentru DVD,Blu-Ray sau alte aplicații de distribuție online acestea sunt deja incluse în fluxul transmis de sistem. Pentru fișierele personale care sunt stocate pe suportul de memorie de tipul pozelor sau filmulețele de familie sau melodiile preferate, aceste date trebuie organizate pe principiul bazelor de date pentru ca informațiile respective să fie afișate corect sau eventual făcut back-up într-un repository sau în cloud de unde se pot face oricând actualizări sau indexări ale fișierelor în caz de cădere a sistemului de stocare. Interfața aferentă căutării acestor fișiere este descrisă în fig 42.

Fig 42 Interfața căutare fișier multimedia

Pentru că platformele IoT se află încă la început nu sunt standardizate protocoalele de comunicare sau standardele de securitate a acestor rețele, fiecare furnizor încearcă să-și impună propriile soluții privind IoT.

Astfel fiecare strat (Layer) are propriiele protocoale de comunicare

Aplicații – JSON

REST API’s

Webtransfer- CoAP/Http

Internet – UDP/TCP

Rețea – IPv4/Ipv6

Problemele platformelor sunt:

Standardizarea (sau mai precis lipsa ei)

Eterogenitatea rețelei/platformei

Cunoașterea contextului (multitudinii de senzori și a datelor)

Precum și framework-urile aferente [24]

Alljoyn open-source framework

IoTivity Open source bazat{ pe Linux)

IEEE p2413 Bazat pe arhitectura IoT

Thread bazată pe open standard și Ipv6

IPSO Aplication Framework (PDF)

OMA Lightweight Machine-to-Machine client server

Weave platforma de comunicare pentru IoT

Telehash = JSON+UDP+DHT

19 .IoT În România

Machina Research se așteaptă ca piața IoT să crească semnificativ în perioada 2017-2020, se previzionează că numărul de dispozitive mobile legate la Internet va crește de la 1,56 milioane la 7,84 milioane , piața ”mobile-to-mobile” să crească astfel de la 1,14 miliarde de euro la 3,12 miliarde euro.

La sfârșitul lui Ianuarie Orange România a lansat serviciul M2M Control, platformă de management și control pentru dispozitive în sisteme IoT care folosesc telefonia mobilă. Orange se așteaptă la câștiguri semnificative determinate de creșterea acestui segment de piață. Pe 8 Aprilie 2015 guvernul României a adoptat ”Digital Agenda for Romania – 2020” care definește strategia de transformare a infrastructurii IT în România pentru a include și fenomenul IoT , guvernul vede o creștere de 11 puncte procentuale din acest domeniu și din cele conexe în următorii ani. ” In Martie 2014 firma din România DeviceHub.net a primit fonduri pentru dezvoltarea protocoalelor sale gândite în scopul ușurării interacțiunilor în sistemele IoT bazate pe platformele open-source cu scopul de a îmbunătăți situația infrastructurii necesare în acest domeniu în Europa de Est. Adoptarea IoT pe scară largă în companiile românești va duce la dublarea în fiecare an a volumului de date rulate în sistemele informatice. Acest volum uriaș de date va genera provocări uriașe în special pentru soluțiile ERP care din păcate nu sunt adaptate să permită analiza și structurarea acestui volum de date în creștere”[25] Pentru exemplificare, conform Wizrom software circa 90 % din datele introduse în soluțiile ERP sunt procesate de operatori și provin în general de la un număr mic de calculatoare, cititoare de coduri de bare, echipamente GPS,RFID, dacă însă pe piața IoT vor pătrunde datele communicate de senzorii din zona de producție/transport/logistică și business, acestea vor ocupa aproape 50 % din total fapt care va pune serioase probleme infrastructurii de conectare/analiză și stocare mai ales în ceea ce privește structurarea, consolidarea și analiza acestor date.

”Dintr-o dată sistemul ERP va fi in undat cu de două ori mai multe date și dacă soluția nu a fost adoptată la o asemenea încărcare nu va mai funcționa cum trebuie. Dar în același timp IoT aduce beneficii uriașe companiilor care vor adopta acest concept și aici mă refer la câștiguri clare din creșterea eficienței operaționale și scăderea costurilor de operare.

IoT combinat cu ERP va permite companiilor să monitorizeze și previzioneze consumuri de energie și materii prime, vârfurile de performanță ale angajaților, vârfurilor de consum în companie, precum și o mulțime de alți indicatori la care probabil încă nu s-au gândit, dar care le-ar putea îmbunătăți eficiența operațională” [26]

În cadrul ” Future Media” organizat la Crowne Plaza în 2016 , ”compania Vodafone a prezentat stadiul implementării industriei M2M machine-to-machine și despre IoT. Se estimează că până în 2024 IoT va conecta circa 5 milioane de dispozitive. Aceste terminale inteligente ca frigiderul smart va anunța când s-a terminat laptele sau îți va plasa comanda automat pe site-ul ales de client pentru cumpărături. Deja acest tip este folosit în unele hoteluri unde comunică bazei de date conținutul consumat de la minibar în baza de date a hotelului care facturează automat băutura consumată. Deja au apărut televizoarele din gama smart care sunt compatibile cu tehnologia IoT fapt care le transformă în centrul de comandă al caselor smart, putând să deschidă ușa vizitatorilor supravegheat de utilizator direct de pe canapea. Alertele senzorilor de mișcare pot anunța pe ecranul acestui televizor atunci când sunt detectate mișcări în afara casei oferind securitate locuinței chiar și când locuitorii utilizatori ai acestei tehnologii nu sunt acasă. Aceste televizoare se pot conecta deja la peste 200 de smarthings compatibile ca încuietori , termostate, camere ccd etc. Smarthings permite utilizatorilor să acceseze toate dispozitivele lor inteligente de pe telefonul mobil/televizor , tabletă etc. Cu aplicațiile Smarthings utilizatorii se pot conecta și pot administra toate dispozitivele din ”Smart Home” dar și alte servicii printr-o singură intuitivă.

20.CONCLUZII

În urma testelor nu foarte lungi asupra sistemului am observat că uneori măsurătorile afișate prezintă erori dacă distanța mișcării față de senzor e prea mare. De asemenea o problemă apărută în timpul testelor a fost determinată de lipsa semnalului gsm care a creat sincope în rularea aplicației , dispozitivul inteligent pierzând controlul asupra comunicării cu aplicația web. Având în vedere că fiecare senzor a fost utilizat individual nu am putut testa aplicația ca un sistem integrat de locuință inteligentă din motive financiare. La partea de control a sistemului multimedia și a televizorului toate componentele de comunicații trebuie utilizate în aceeași rețea locală altfel nu vor fi recunoscute și aplicația nu va funcționa. Partea de control a camerei web a fost testată local deoarece necesită resurse financiare suplimentare în afara componentelor pentru achiziționarea unui domeniu și a unui IP furnizat de un provider de Internet. Un asemenea proiect are un impact deosebit asupra consumurilor de utilități dintr-o locuința mai ales dacă toate componentele sunt integrate ca o singură aplicație în care un server local să gestioneze toate aplicațiile responsabile de funcționarea fiecărui senzor și modul și pe care utilizatorul să se conecteze cu dispozitivul mobil și care să poată oferi și rapoarte de utilizare a fiecărei componente de automatizare (necesare mai ales la cele referitoare la sistemul de alarmă și cele privitoare la consumul de utilități).

În acest fel utilizatorul poate face comparații privind evoluția consumurilor gestionate de aplicație vs cele lăsate la întâmplare. O soluție comercială în acest sens poate fi furnizată de platformele cloud.

Aceste sisteme au permis apariția următoarelor modele:

Clădirile inteligente-unde consumul energetic aferent birourilor sau al altor tipuri de clădiri ca: Hoteluri, Hale industriale, Sălile de sport sau clădirile rezidențiale este mult redus contribuind în acest fel la reducerea costurilor de întreținere dr și la un mediu mai prietenos și puțin poluant.

Locuințele inteligente: care asigură iluminarea/încălzirea și alte utilități la nivel optim asociat diferitelor activități ale locatarilor , pot asigura protecție la efracție, incendii,inundații sau alte tipuri de incidente ale infrastructurii (calorifere, rețea de conducte, acoperiș) și le comunică utilizatorilor în timp util.

IoT are avantajul că fiind o tehnologie la începuturile ei nu este încă proprietară și facilitează accesul tuturor atât utilizatori pasionați cât și segmentul de business pe baza platformelor open-source la nivel de hard și soft și pe măsura dezvoltării ei va produce o dezvoltare explozivă pe baza cererii în creștere.

Alte tipuri de aplicții ale IoT:

Automobilele inteligente care vor fi dotate cu senzori și module de comunicații

Sănătatea( E-patient și E-health cu fișe electronice care vor însoți pacientul

Smart-City sau orașul inteligent (unde E-serviciile vor juca un rol fundamental)â

Transportul Metropolitan Inteligent (I-Transportation)

E-Taxi de tipul Uber care este deja în exploatare

I-learning

Propuneri viitoare:

Casa Inteligentă va fi o prezență din ce în ce mai actuală în România . Aceasta va utiliza aplicații pe baza cărora să se poată lua decizii având în vedere scenarii prestabilite și va acționa pe baza acestora iar deciziile le va transmite utilizatorului. Datele transmise de senzorii descriși în lucrare sunt procesate și afișate pe dispozitivul mobil de pe care se poate interveni cu ajutorul interfeței utilizator cu ajutorul butoanelor și reglajelor. Sunt extrem de multe aplicații de tip Smart-Home care depășesc prin complexitate și performanțe prezentul proiect. Acesta s-a dorit a fi un proiect demonstrativ dar se poate transforma prin aprofundarea cercetării într-o soluție comercială care să utilizeze toate componentele într-o aplicație integrată și la care să se adauge o soluție de securitate fiabilă care să gestioneze toate componentele care au acces remote și eliminarea pătrunderilor neautorizate atât cele accidentale căt și pe cele malițioase.

REFERINȚE

[1] A.Avădanei ”Cum virusezi un frigider.Internet of Things o provocare pentru specialiștii în securitate” publicat în Yoda.ro/Online aprilie 2015 accesibil la http://www.yoda.ro/online/cum-virusezi-un-frigider-internet-of-things-o-provocare-pentru-specialistii-in-securitate.html

[2] Gartner Newsroom release Barcelona Spain November 11, 2014 “4.9 Billion Connected Things will be in use in 2015” accesibil la : http://www.gartner.com/newsroom/id/2905717

[3] L. Rainie and J. Anderson “The Internet of Things Connectivity Binge: What are the Implications? Pew Research Center June 6, 2017 accesibil la : http://www.pewinternet.org/2017/06/06/the-internet-of-things-connectivity-binge-what-are-the-implications/

[4] G. Press “A Very Short History Of Internet Of Things” publicat în jurnalul online al revistei Forbes din 18 Iunie 2014 (The Little Black Book of Billionaire Secrets) accesibil la: https://www.forbes.com/sites/gilpress/2014/06/18/a-very-short-history-of-the-internet-of-things/#2bc48acc10de

[5] L.D. Rusu IoT Platforms: ” Analysis for building Projects” Informatica Economica Volume 21, 2nd Issue, 30  June 2017

[6] M. Tache „Aportul politicilor :i strategiilor U.E. la dezvoltarea AMI” publicat{ }n buletinul AGIR/2009 accesibil la: http://www.agir.ro/buletine/750.pdf

[7] Enciclopedia Wikipedia „Ambient Intelligence” accesibil la https://en.wikipedia.org/ wiki/Ambient_intelligence

[8] Enciclopedia Wikipedia „Ubiquitous computing „accesibil la >https://en.wikipedia.org/ wiki/Ubiquitous_computing

[9] Mediul ambiental Inteligent pe baza plăcilor de dezvoltare Arduino accesibil la : SwkJ:www.tehnorama.ro/arduino/+&cd=1&hl=ro&ct=clnk&gl=ro&client=firefox-b/30-05-2015

[10] Senzori de mi:care Enciclopedia Wikipedia accesibil la :https://ro.wikipedia.org/wiki/ Senzor_de_mi%C8%99care

[11] Tutorial Arduino articol postat pe www.capisci.ro secțunea construiește singur accesibil la: http://www.capisci.ro/articole/Arduino

[12] Prof.dr.Ing.V. Dolga „Senzori și traductoare” Universitatea Politehnica Timișoara curs de mecatronică/facultatea de mecanică/2011

[13] Platforme Arduino Robofun secțiunea platforme accesibil pe site-ul oficial Robofun : https://www.robofun.ro/platforme

[14] G.Dima „Tutorial Arduino- Prima lecție” de e-learning pe platforma ROROID apr 2017 accesibila la : http://www.roroid.ro/prima-lectie/

[15] V. Stanciu ”Documentație Arduino Robofun.ro”disponibil la: ]https://www.robofun.ro/docs/Arduino%20pentru%20Toti%20pagini%201-30.pdf

[16] Github Pushingbox for Arduino /14.01.2013 accesibil la : https://github.com/Clement87/PushingBox-for-Arduino-WiFi-shield

[17] D. Eickhoff NetUI Ui-designer editor documentation accesibil la: http://netio.davideickhoff.de/editor/?config=default

[18] D.Eickhoff NeIO documentation/labels accesibil la : http://netio.davideickhoff.de/en/ documentation/#labels

[19] Google images NetIO-UI designer accesibil la : https://images.search.yahoo.com/yhs/search;_ylt=AwrB8o4ttFdXGg8AFlk2nIlQ;_ylu=X3oDMTBsZ29xY3ZzBHNlYwNzZWFyY2gEc2xrA2J1dHRvbg–;_ylc=X1MDMTM1MTE5NTcwMgRfcgMyBGJjawM4YXVtaWp0YmpzYTBsJTI2YiUzRDQlMjZkJTNESkFtM0lUOXBZRUp2eGIydkJhZ3JHSmNsY2UyYm1fX1V2X2J5ckEtLSUyNnMlM0RodiUyNmklM0RSR2hPa3M5QzJlQ1lHUzRYTkQxZwRmcgN5aHMtTGtyeS1TRjAxBGdwcmlkAzg5RjBPa0syVGQ2YjRYTTZWZER6bEEEbXRlc3RpZANudWxsBG5fc3VnZwMwBG9yaWdpbgNpbWFnZXMuc2VhcmNoLnlhaG9vLmNvbQRwb3MDMARwcXN0cgMEcHFzdHJsAwRxc3RybAMxNwRxdWVyeQNOZXRJTy1VSSBkZXNpZ25lcgR0X3N0bXADMTQ2NTM2NTU3OQR2dGVzdGlkA251bGw-?gprid=89F0OkK2Td6b4XM6VdDzlA&pvid=_9BEZzY5LjGFetKfVz4oFQenODIuNwAAAAABCbyJ&p=NetIO-UI+designer&fr=yhs-Lkry-SF01&fr2=sb-top-images.search.yahoo.com&ei=UTF-8&n=60&x=wrt&type=YHS_SF_14300&hsimp=yhs-SF01&hspart=Lkry

[20] Instructables Forum “Fire Detection Using Arduino and Flame Sensor” accesibil la : http://www.instructables.com/id/Flame-detection-using-Arduino-and-flame-sensor/

[21] Instructables Forum “LDR Sensor Module Interface with arduino”accesibil la : http://www.instructables.com/id/LDR-Sensor-Module-Users-Manual-V10/

[22] Freetronics.com „Light Sensor Module Quickstart Guide” accesibil la : https://www.freetronics.com.au/pages/light-sensor-module-quickstart-guide#.WUDzxcYlHIX

[23] Open Home Automation Blog „Wireless Camera with Arduino Wifi chip” accesibil la: ] https://openhomeautomation.net/wireless-camera/

[24] Postscapes Channel “IoT Standards and Protocols”accesibil la : https://www.postscapes. com/internet-of-things-protocols/

[25] A. Bodomoiu Wizrom Software „Cum va influența Internet of Things companiile din România” postat pe Economica.Net/02.06.2017 accesibil la : http://www.economica.net/cum-va-impacta-internet-of-thing-companiile-din-romania_101805.html#n

[26] The Strategy.ro „Companiile nu sunt pregătite deloc pentru Internet of things” accesibil la : http://www.thestrategy.ro/2015/08/30/companiile-nu-sunt-pregatite-deloc-pentru-internet-of-things/30_Aug_2015

Lista de Abrevieri

IoT – Internet of Things

RFID – Radio Frecquency Identification

ERP- Enterprise Resource Planning

M2M – Machine to Machine

GPS – Global Positioning System

GPRS – General Radio Packet Service

LDR – Light dependent Resistor

PIR – Passive Infrared Receiver

SMS – Short Message Service

ID – Identification

AMI – Ambiance Intelligence

NFC – Near Field Communication

BAN – Body Area Network

LAN – âLocal Area Network

WAN – Wide Area Network

VWAN – Very Wide Area Network

Similar Posts