Platforma Interactiva Pentru Testarea de Solutii Pentru Case Inteligente
Listă figure
Listă tabele
Introducere
IoT
Figura 1.1. Internet of Things
Prima rețea de comunicație de pachete internațională a apărut în anul 1978 datorită colaborării lui Tymnet cu IPSS iar până în 1990 a devenit o infrastructură globală. În anul 1974 facem cunoștință cu termenul de “Internet” care este prescurtarea de la “Internetworking”.
Din anii 1990 și până astăzi conceptul tehnologiei s-a schimbat atât de mult și atât de rapid încât aproape în fiecare zi apar noi aplicații și noi tehnologii care ne ajută să avem o viață căt mai placută și cât mai ușoară. Se pune din ce în ce mai mult accent pe tehnologii “smart” care sunt capabile să comunice cu alte dispozitive prin intermediul Internetului fără a fi nevoie de intervenția omului.
Auzim tot mai des de cuvântul IoT, acesta provenind de la “Internet of Things” sau “Internet of Everything”. IoT ne arată că există posibilitatea de a interconecta toate obiectele existente începând cu telefoanele mobile, calculatoarele, ajungând până la mașini, sisteme de iluminat și chiar electrocasnice.
Ideea de casă inteligentă reprezintă și un concept din ce în ce mai folosit în zilele noastre. Unele dintre funcțiile pe care trebuie să le aibă o casă inteligentă sunt: avertizarea în cazul efracției sau incendiului, controlul paramentrilor mediului ambiant, optimizarea costurilor de întreținere, controlul sistemului de iluminat, deschiderea și închiderea automată a ușilor, sistem de supraveghere a casei, etc. De departe, una dintre cele mai bune metode de interconectare a dispozitivelor, este tehnologia de tip wireless. Tot mai mulți oameni încearcă să dezvolte o casă inteligentă folosindu-se de conceptul IoT.
Scopul proiectului
Acestă lucrare își are ca drept scop proiectarea arhitecturală și implementarea unui sistem de expunere și stocare a datelor provenite de la senzori hardware specializați pentru aplicații de monitorizare a parametrilor mediului ambiant pentru case inteligente.
Interconectarea de tipul IoT în cazul unei case inteligente introduce cerințe de fiabilitate, toleranță mare la defecte dar și cerințe de utilizare cât mai ușoară. Astfel sistemul trebuie să detecteze în timp real eventualele erori, să efectueze permanent un raport al activității sale, să se adapteze reconfigurându-se spre a asigura permanenta funcționare și cel mai important sa fie în acelasi timp ușor de utilizat și personalizat în funcție de necesitățile utilizatorului.
Aceste necesități au condus la existența următoarelor module: punctele de achiziție ce sunt conectate la diferiți senzori și actuatori, sistemul de gestionare și trimitere a datelor și serverul web ce expune atât o interfață pentru utilizator cât și o bază de date pentru stocarea permanentă a informației. Fiecare comunicație funcționează pe baza protocolului TCP având la bază paradigma client-server. Principiile de funcționare au fost proiectate și optimizate astfel încât să poată fi implementate pe dispozitive de tip embedded spre a avea un consum mic de energie și un cost de utilizare cât mai competitiv pe piață.
În cazul în care se dorește achziția datelor de la o serie de senzori, iar proiectul desfășurat are un scop didactic sau de prototipare, placa de dezvoltare Arduino este alegerea perfectă. Biblioteca bogată în documentație, mediul de programare asemănător limbajului C++ , costul redus și multitudinea de senzori sau module ce se pot interconecta au creat o comunitate activă și dornică de a oferi răspunsuri oricărui începător în domeniu. Astfel tehnologia microcontrollerelor și cea a senzorilor au devenit mult mai accesibile fiind desfășurate diverse programe prin care elevii de liceu sau studenții sunt inițiați în tainele programării, electronicii și implicit utilizării microcontrollerelor. Contextul propice a favorizat accentuarea conceptului de IoT fiecare utilizator dorind să automatizeze diverse procese din propria casă. De asemenea mediul academic începe a avea o contribuție majoră în domeniul Iot prin creare de platforme interactive de analiză și control al caselor inteligente, scopurile principale fiind ușurarea activităților zilnice, controlul mediului ambiant al casei, siguranța individului în propria locuiță, optimizarea din punct de vedere energetic prin adaptarea la activitățile zilnice ale utilitzatorului.
Un aspect important al platformelor interactive pentru casele inteligente este ușurința la utilizare. Interacțiunea utilizatorului trebuie să fie ghidată de propria intuiție, funcțiile și interfața adaptându-se nevoilor individului. Astfel se dorește ca și persoanele cu dizabilități fizile și motorii să poată utiliza cu succes aceste platforme extinzându-le aria de activitate și sporindu-le siguranța și confortul.
În momentul actual există pe piață o serie de aplicații pentru case inteligente care oferă o gamă foarte variată de opțiuni pentru utilizator dar sunt foarte dificil de utilizat. La o primă vizualizare a acestor aplicații vom constata că satisfac toate nevoile unui utilizator, dar la o analiză mai amănunțită vom observa faptul ca prezintă mai multe funcționalități decât este necesar și deseori acesta sporire a gradului de complexitate introduce dificultăți în utilizare. Deoarece s-a dorit ca utilizatorul să fie copleșit de multitudinea de opțiuni a fost omis un aspect de o importanță majoră, adică expunerea către utilizator a unei interfețe cât mai ușor de utilizat și mai apropiată de nevoile sale. Un alt lucru important în cazul unei platforme interactive pentru case inteligente este controlul cât mai mare și mai facil al datelor primite de la senzori.
Controlul îmbunătățit al datelor achiziționate cu ajutorul senzorilor respectivi înseamă o aplicație de o mai mare stabilitate din punct de vedere tehnic, o utilizare mai ușoară dar și o personalizare mai mare pentru utilizator.
Acest proiect își propune să contruiască o platformă interactivă pentru case inteligente ce se poate accesa de oriunde de pe o interfață web fără a fi nevoie ca utilizatoul să se afle în proximitatea casei, aceasta putând fi controlată și supravegheată de la distanță. De asemenea toate datele achiziționate de la senzori sunt stocate în baze de date specializate pentru ca o eventuală analiză a datelor sa poată fi efectuată cu ușurință și rapiditate. Rezultatul analizei este un profil al utilizatorului astfel ajungându-se la o adaptare a casei inteligente la activitatea individului. Costurile pentru utilizarea platformei sunt mici și astfel se adresează unui număr cât mai mare de utilizatori.
Proiectul a fost modularizat astfel încât să prezinte reconfigurabilitate, fiabilitate și o toleranță la defecte cât mai mare.
Structura proiectului
//sumar, la final – 0.5 pagini
Tehnologii disponibile și soluții existente
Tehnologii disponibile pentru achiziția și expunerea datelor
La o primă căutare în mediul online a tehnologiilor disponibile pentru achiziția și exportul datelor către un server web, se poate observa multitudinea de tehnologii “open-source” disponibile. Aceste tehnologii au în majoritatea cazurilor atât o documentație bogată și ușor de înteles cât și o comunitate activă ce oferă suport oricărui utilizator indiferent de nivel sau de cunoștinte. În cazul de față accesibilitatea este foarte mare, “open-source”, fiind alegerea ideală pentru proiecte personale și pentru mediul academic.
Platformele de dezvoltare Arduino sunt chiar în topul preferințelor când vine vorba despre o platformă de dezvoltare care să poată fi folosită pentru mici proiecte în cadrul IoT deoarece aceste platforme sunt foarte accesibile, având o documentație foarte impresionantă și bogată care pune la dispoziția utilizatorilor foarte multe librării.
Una dintre cele mai folosite librării în momentul de față este cea de Ethernet care are o accesibilitate și o fiabiliate foarte mare. De exemplu cu această librărie se poate face un simplu chat sau se pot trimite anumite date către un server web.
Stocarea unor pagini web și punerea lor printr-un protocol HTTP la dispoziția postulanților este ceea ce se definește a fi un server web. El poate fi scris în multe limbaje de programare și poate analiza, accesa sau găzdui datele scrise de utilizatori.
Raspberry Pi este o altă placă care este folosită la fel de mult ca și Arduino. Ea este un calculator, care are dimensiunile unui card de credit și care este în special folosit în scopuri educaționale. Acest dispozitiv le dă posibilitatea persoanelor de toate vârstele de a învăța diferite limbaje de programare de la zero.
Cu această mașinărie se poate naviga pe Internet, asculta muzică, vizualiza conținut video și lucra cu foi de calcul. La fel ca și Arduino, Raspberry Pi este foarte accesibil datorită costului mic și poate fi conectat la televizor sau la un monitor adăugând un mouse și o tastatură pentru acces.
Această placă este un mic calculator având memorie, procesor dedicat și o interfață grafică pentru ieșirea prin HDMI. Există chiar și o versiune special concepută a sistemului de operare Linux care se poate rula, astfel încât folosirea RPI-ului ca și emulator de jocuri se face fără foarte mult efort.
Placa Raspberry Pi nu are memorie internă dar prin folosirea unui card de memorie ca și memorie flash pentru întregul sistem, se pot face update-uri ale software-ului foarte ușor. Se poate face transfer de fișiere folosind FTP sau se poate configura pentru accesul prin SSH datorită independenței rețelei dispozitivului.
Modularizarea foarte bună care permite un flux de date mult mai rapid decât cel al lui Arduino este un avantaj pentru Raspberry Pi.
Spre deosebire de RPI, plăcile Arduino sunt defapt microcontrollere, nu calculatoare. Ele doar execută codul scris de utilizator dar nu au un sistem complet de operare. Este mult mai ușoară executarea unui simplu cod astfel încât platformele de dezvoltare Arduino au ca scop conectarea la senzori și dispozitive.
Utilizarea unui sistem de operare complex ar fi nejustificată pentru acțiunile simple precum interfațarea cu elementele de acționare și alte dispozitive prin urmare folosirea plăcilor Arduino este o alegere mult mai bună. Accesarea rapidă și ușoară la Internet prin cablu se datorează portului de Ethernet care este încorporat în placa RPI.
Având în vedere că Raspberry Pi se depărtează de conceptul embedded, Arduino păstreză toate caracteristicile unui sistem în timp real, având posibilitatea de a citi și scrie atât pe porturi digitale cât și analogice. Aceste caracteristici așează placa de dezvoltare Arduino în prima linie de abstractizare a oricărui sistem fiind capabil să interacționeze cu foarte multe componente electronice de bază fie acestea analogice sau digitale.
Pentru a se putea observa mai bine diferența dintre cele două, se vor prezenta caracteristicile unei plăci Arduino Uno și a unei plăci RPI Model B. Primul lucru pe care îl putem vedea este faptul că placa de dezvoltare Arduino Uno are o memorie mică de 0,002MB pe când RPI are 512MB. Viteza ceasului este o altă deosebire între cele două deoarece prima placă are o viteză de 16MHz iar cea de a doua cu 700MHz.
Raspberry Pi se prezintă cu un sistem de operare Unix spre deosebire de Arduino care nu are niciun sistem de operare. Tensiunea de alimentare a lui Arduino Uno poate varia între 7V și 12 V dar la Raspberry trebuie să fie de 5V.
În momentul de față se găsesc plăci de dezvoltare complet construite având toate componentele hardware care sunt necesare, de exemplu plăcile de dezvoltare precum cele de mai sus menționate, astfel încât utilizarea lor a devenit mult mai ușoară.
Pentru o mai ușoară programare a plăcilor de dezvoltare care controlează senzori sau diferite dispozitive electronice se poate folosi Wyliodrin. Această aplicație oferă utilizatorului posibilitatea de a alege limbajul de programare de la C, C++, C#, Java, Javascript, Script, până la Pascal, Pearl, PHP sau chiar Python. Datorită faptului că Wyliodrin poate fi descris ca un puzzle, având o interfață prietenoasă, este foarte ușor de utilizat.
Folosirea acestei platforme de tip cloud care desfășoară operațiunile pe un browser oferă o foarte mare fiabilitate astfel încât poate fi folosită în scop educațional sau pentru interes personal. Wyliodrin este tot mai des folosit în proiectele hardware care au la bază conceptul de Internet of Things datorită fiabilității.
Figura 2.1.1. Exemplu de program cu Wyliodrin
Soluții comerciale existente pentru monitorizarea casei
Ideea de monitorizare a unei case sau de a construi o casă inteligentă pare mai degrabă desprinsă din filmele științifico-fantastice decât o idee palpabilă. Deși întradevăr acest concept de ”smart house” a apărut prima oară în sectorul cinematografic, mulți regizori aspirând la diverse dispozitive futuriste, evoluția din ultimii ani ai tehnologiei a condus la contopirea ficțiunii cu realitatea. De asemenea dezvoltarea continuă a Internetului și accesibilitatea dispozitivelor mobile au favorizat popularizarea conceptului de ”Internet of Things”, utilizatorul obișnuit dorind în momentul de față transformarea propriului cămin într-o “casă inteligentă”.
În încercarea de a oferi o definiție exactă a ideii de “casă inteligentă” se ajunge la concluzia că orice casă ce posedă un sistem complex prin care se pot controla parametrii mediului ambiant, prin care se pot recepționa alerte în caz de inundație, incediu sau efracție și prin care se pot optimiza consturile de întreținere se poate spune ca prezintă toate atuurile ce o cataloghează drept o “casă inteligentă” (smart-house). Mai exact, aproape orice dispozitiv electronic care există într-o casa se poate converti într-un “dispozitiv inteligent” prin includerea în cadrul sistemului integrat și activ al unei “case inteligente”, accentuând în acest fel apartenența sa la conceptul de IoT.
Pentru a putea realiza arhitectura de comunicare a unei “case inteligente” este necesară utilizarea unei tehnologii care poate facilita interconectarea dispozitivelor cu un punct central de control și în final cu utilizatorul. Spre a avea o reconfigurabilitate sporită și ușurință în utilizare, cea mai bună tehnologie se dovedește a fi cea de tipul “Wireless”.
Tehnologia prin care comunică două sau mai multe dispozitive electronice, care nu sunt conectate din punct de vedere fizic se numeste “Wireless”. Primele utilizări ale acestei tehnologii datează încă de la începuturile anilor 1880 când Alexander Graham Bell și Charles Sumner Tainter au inventat radiofonul, ce putea susține conversații audio “Wireless” utilizând fascicule de lumină modulate.
A schimba un flux de informații printr-un anumit canal înseamnă că două sau mai multe dispozitive electronice comunică între ele. Un canal poate fi de trei tipuri: simplex, half-duplex (semi-duplex) și duplex (full-duplex).
Atunci când transmisia se poate efectua numai într-un singur sens, avem un canal de tip simplex. Canalul de tip half-duplex sau semi-duplex, este folosit atunci când transferul de informații se face în ambele sensuri dar nu simultan ci alternativ. Transmisia în același timp în ambele sensuri se numește transmisie duplex sau full-duplex.
Figura 2.2.1. Tipuri de conexiune
Orice tehnologie “Wireless” sau ”comunicațiile fără fir” prezintă mai multe componente. Unul dintre componentele de bază ale unei astfel de tehnologii este canalul de comunicație. Orice entități participante la o comunicație transmit informație codificată după un set strict de reguli și indicații.
Setul de indicații și reguli care permite comunicarea între două sau mai multe entități dintr-un sistem de comunicații prin transmiterea unui set de informații prin variația unei mărimi fizice printr-un mediu de orice tip se numește protocol de comunicații.
În cazul unei “case inteligente”, utilizarea unui singur protocol de comunicații nu este cea mai bună alegere. Dacă în primă instanță unicitatea unui protocol de comunicații ar părea că sporește consistența aplicației, adevărul este că o serie de protocoale utilzate corespunzător cresc adaptabilitatea, fiabilitatea și eficiența sistemelor unei “case inteligente”. Unele dintre cele mai folosite protocoale de comunicație sunt Wi-Fi, ZigBee, Z-Wave, X10, Insteon și 6LoWPAN.
Wi-Fi este o tehnologie construită pe baza standardelor de comunicație din familia IEEE 802.11 utilizate pentru realizarea de rețele locale de comunicație la viteze echivalente cu cele ale rețelelor cu fir electric de tip Ethernet. În prezent, foarte multe dispozitive hardware utlizează această tehnogie, fiind răspândită în domeniul telefoanelor mobile, calculatoarelor personale, consolelor de jocuri și unor televizoare de ultimă generație.
ZigBee este o tehnologie ce utilizează un protocol foarte avansat pentru crearea de rețele locale de mici dimensiuni. Consumul mic de energie limitează dinstanța de transmisie la 10-20 de metrii depinzând de mediu. Comparativ cu Wi-Fi, tehnologia ZigBee este mai simplă și mai puțin costisitoare.
Z-Wave este o tehnologie ce operează în jurul frecvenței de 908.42 MHz și folosește un tip de rețea de tip “plasă” adică transmite semnalul din aproape în aproape până ajunge la destinație. Este ideal pentru dispozitivele alimentate de baterii deoarece are un consum scăzut de energie. Deoarece poate controla mai multe dispozitive simultan se utilizează în special pentru controlul sistemelor de divertisment și al sistemelor de iluminat dar nu pe o distanță mai mare de 30 de metri.
X10 este un protocol de comunicații folosit de către dispozitivele electronice pentru automatizarea casei. A fost construit pentru a utiliza cablurile de alimentare dar între timp au fost reconfigurate pentru a folosi Wi-Fi.
Insteon este un protocol pentru automatizarea casei construit să facă legătura între protocoalele Wireless și cele bazate pe cablu fiind compatibil cu X10. Întrerupătoarele, senzorii de mișcare, termostatele dar și alți senzori folosesc acest protocol prin frecvența radio, cablu sau ambele. Fiecare dispozitiv care utilizează acest protocol poate primi sau transmite informațiile necesare.
The Internet of Things Tehnology sau 6LoWPAN folosește mecanisme de compresie și încapsulare care permit pachetelor Ipv6 să poată fi trimise și primite de la standardul IEEE 802.15.4. A pornit de la ideea că fiecare dispozitiv electronic, până și cele mai mici obiecte cu capacități limitate de procesare ar trebui să aibă un IP astfel putând participa la conceptul de ”Internet of Things”. Toate soluțiile deja existente pe piață care transformă o casă obișnuită, într-o “casă inteligentă” implementează unul sau mai multe protocoale dintre cele prezentate mai sus.
In sectorul dispozitivelor de monitorizare și control al unei “case inteligente”, se remarcă pe piață o soluție foarte populară în rândul utilizatorilor: “Nexia Home Inteligence”.
Acest sistem este destul de simplu folosind dispozitive inteligente care sunt compatibile cu protocopul de comunicații Z-Wave. Acesta este compatibil cu trei sisteme hardware de control: Nexia Bridge și termostatele Trane XL824 și American Standard Gold XV. Sistemul oferă capacitatea de monitorizare în timp real expunând date de la dispozitive hardware ce comunică prin Z-Wave.
Sistemele Nexia nu suportă protocoale de comunicații precum ZigBee, Insteon, sau X10 dar poate controla camerele de securitate care folosesc protocoalele Wi-Fi. Dispozitivele Nexia care folosesc și Wi-Fi trebuie să fie conectate la un router Wireless cu un cablu Ethernet ca să poată avea acces la Wi-Fi.
Interconectarea cu alte dipozitive inteligente, controlul prin voce sau posibiliteatea de interacțiune printr-o platformă web lipsesc cu desăvârșire. Totuși costurile mici și simplitatea în utilizare îl cataloghează ca fiind un produs de nivel mediu pe piața sistemelor de automatizare pentru “casele inteligente”.
Software-ul care convertește shield-ul de Ethernet Arduino intr-un instrument versatil și puternic pentru a interacționa cu diverse dispozitive pe Internet se numeste Teleduino.
Serverul acestui software translatează instrucțiunile primite de la Internet în acțiuni pentru obiectele inteligente Teleduino. Conectarea la serverul Teleduino se face automat imediat ce dispozitivele sunt configurate.
Această aplicație poate îndeplini urmatoarele task-uri: interfațarea cu senzorii și obiectele I2C, citirea și scrierea din EEPROM, setarea ieșirilor și citirea intrărilor digitale, și stabilirea ieșirilor și citirea intrărilor analogice.
Figura 2.2.2. Exemplu de aplicație Teleduino
O altă platformă IoT care permite conectarea cu ușurintă la Internet și folosirea ei pentru a programa diferite plăci de dezvoltare este ”DeviceHub.net”. Colectarea și analiza datelor dar și controlul la distanță se face foarte ușor cu această platform.
Funcționarea ei se bazează pe relația dintre senzori și actuatori. Actuatorii sunt componentele electronice care realizează acțiuni în lumea reală iar entitățile care colectează datele se numesc senzori. Atât actuatorii cât și senzorii se pot controla cu ajutorul unei platforme online.
DeviceHub este o platformă IoT flexibilă care oferă interacțiune, conectivitate și stocare de date pentru o gamă largă de dispozitive inteligente. Pentru a permite utilizatorului să citească sau să transmită date se folosesc API-uri extensibile și modulare.
Ceea ce oferă această platformă este că prin conectarea unui telefon mobil sau a unui laptop/computer se pot gestiona de la distanță mai multe dispozitive inteligente. Acest lucru a dus la o dezvoltare rapidă a unor sisteme hardware precum electronice portabile, spre exemplu o brățară care masoară pulsul, automate inteligente și multe altele. Principalele obiective ale acestei platforme sunt securitatea și performanța oferite utilizatorului.
Un alt aspect destul de important este că oferă posibilitatea unei conexiuni cu aproape orice dispozitiv electronic pentru a putea fi controlat sau monitorizat cu ajutorului Internetului.
Python, C++ și JavaScript sunt doar câteva din limbajele de programare pe care DeviceHub le pune la dispozitia utilizatorului.
Figura 2.2.3. DeviceHub.net
Unul dintre cele mai importante avantaje ale unui sistem de monitorizarea a unei case este fiabilitatea și compatibilitatea cu cât mai multe dispozitive și tehnologii deja existente pe piață împreună cu capacitatea de a avea o securitate a datelor cât mai mare. Astfel că cel mai mare dezavantaj al sistemelor care nu sunt open-source este că au o fiabilitate foarte mică. De cele mai multe ori sistemele precum Nexia sunt compatibile și fiabile doar cu dispozitivele sistemelor respective.
Costul foarte ridicat și dificultatea de a schimba anumite dispozitive dacă se întâmpină probleme este un alt dezavantaj al sistemelor care nu sunt open-source deoarece sistemele open-source sunt construite astfel încât să poată fi utilizate cu plăci de dezvoltare, senzori și alte dispozitive inteligente care au un preț foarte scăzut și astfel pot fi foarte ușor înlocuite atunci când este nevoie.
O altă diferență destul de mare între cele două sisteme este faptul că la o aplicație open-source dacă apare o problemă este mult mai probabil să poată fi rezolvă mult mai repede deoarece cu siguranță a mai apărut acea problemă și la alte persoane iar dacă nu a apărut, cu siguranță comunitatea aplicației respective este mult mai mare spre deosebire de comunitatea unei aplicații care se plătește.
Figura 2.2.4. Dispozitive Nexia
Spre deosebire de soluțiile prezentate mai sus, costurile ridicate, complexitatea sau lipsa unor anumite opțiuni, înclină balanța mai mult către o soluție open-source capabilă să îndeplinească o serie de cerințe de bază fiind de asemenea accesibilă și mediului academic reprezentând un suport pentru ilustrarea conceptelor de casa inteligentă” și integrarea în contextul IoT.
Arhitectura aplicației
3.1 Descrierea soluției propuse
În cadrul acestui capitol se va prezenta o imagine de ansamblu asupra soluției de monitorizare și control a unei “case inteligente” spre a demonstra apartenența la concepul de Internet of Things dar și utilitatea pe care o aduce în contextul utilizatorului.
La momentul actual există pe piață numeroase soluții de sisteme de monitorizare și control a unei “case inteligente”. Principalele probleme identificate sunt: costurile mari de integrare și exploatare, și imposibilitatea de a introduce noi elemente ce nu fac parte din aplicația inițială. Aceste dezavantaje voalează ideea de Internet of Things în care toate componentele electronice sau electrocasnice din interiorul unei case să fie interconectate prin faptul că îngreuneză posibilitatea de reconfigurabilitate a sistemului după preferințele utilizatorului.
3.2 Arhitectura generală propusă
Lucrarea introduce o nouă soluție de automatizare a casei adresându-se în special mediului academic. Fiind o aplicație open-source, principalul scop este ilustrarea conceptului de Internet of Things și formarea unei comunități care poate utiliza și îmbunătăți aplicația spre a avea acces un număr cât mai mare de utilizatori.
Soluția prezentată este divizată în trei componente principale: etajul de achiziție și control, etajul de gestiune și controlul fluxului de date, etajul de stocare a datelor și interfață cu utilizatorul. Principiile arhitecturale de proiectare a aplicației au fost abstractizarea, reconfigurabilitatea sistemului și toleranța mare la defecte.
Oferirea în permanență de noi biblioteci accesibile comunităților de programatori din întreaga lume este o preocupare constantă a diverselor grupuri de dezvoltatori. Astfel, abstractizarea se justifică prin tendința generală de a dezvolta aplicații pornind de la componente deja existente, bine documentate și testate. Prin abstractizarea aplicației la nivel arhitectural este posibilă și reconfigurabilitatea sistemului.
Figura 3.1. Diagrama generală
Pentru a introduce un nou dispozitiv este necesar doar adaptarea unui singur sau mai multor etaje din soluția existentă astfel, în cadrul aplicației fiind posibilă interconectarea unui număr mare de aparate electronice și electrocasnice dintr-o “casă inteligentă”. Rezultatul principal al implementării conceptului de abstractizare împreună cu cel de reconfigurabilitate este de sporire a toleranței la defecte. În cazul defectării unor componente, acestea se pot înlocui cu altele similare sau sistemul se poate reconfigura astfel încât să funcționeze și în absența modulelor respective, costurile de funcționare reducându-se foarte mult.
Aceste principii vin în sprijinul comunităților academice și open-source oferindu-le posibilitatea de a testa diverse configurații ale sistemului.
3.2.1 Etajul de achiziție și control
Primul modul în arhitectura aplicației este modulul de achiziție și control, ce are drept scop conectarea la senzori, achiziția și filtrarea datelor, împachetarea într-un format specific soluției curente și controlul comunicației cu unitatea de gestiune și control al fluxului de date.
Acesta este alcătuit din următoarele submodule: senzorii, uniteatea de achiziție a datelor, unitatea de filtrare a datelor și unitatea de comunicație. În cadrul proiectului s-au utilizat atât senzori activi cât și senzori pasivi.
Figura 3.2. Unitatea de achiziție și control
Senzorii sunt dispozitive tehnice care reacționează cantitativ sau calitativ la anumite proprietăți fizice sau chimice ale mediului, returnând un semnal ce poate fi convertit printr-o funcție matematică oferită de producător într-un sistem de referință internațional. În cazul automatizării unei “case inteligente” trebuie înregistrați o serie de parametrii din mediul ambiant.
Datele măsurate din mediul ambiant sunt trimise spre procesare următoarei unității de achiziție a datelor.
Unitatea de achiție a datelor gestionează accesul și preluarea datelor de la senzori, trimite datele în format brut unității de filtrare, preia datele uniformizate și le expune unității de comunicație spre a fi trimise etajului de gestiune și controlul fluxului de date. De asemenea functia de a prelua și procesa comenzile primite de la etajul superior îi revine tot acestei unități.
Unitatea de comunicație este interfața situată între etajul de gestiune și control al fluxului de date și unitatea de achiziție a datelor. Orice comunicație dinspre sau spre unitatea de achiziție se face prin intermediul acestui submodul. Conectarea la unitatea de gestiune și control al fluxului de date și de asemenea deconectarea precum și gestionarea cazurilor de apariție a problemelor pe rețeaua de comunicație sunt funcții principale ale acestui submodul. În orice moment conexiunea este verificată iar în cazul în care nu există posibilitatea de comunicare cu etajul superior, unitatea deconectează automat rețeaua spre a testa conexiunea pâna când se va restabili ulterior legătura. Aceste operațiuni se fac independent de celelalte submodule din cadrul unui punct de achiziție, neinfluențând din punct de vedere computațional modului în ansamblu.
3.2.2 Etajul de gestiune și controlul fluxului de date
Acest modul este al doilea în ierarhia generală a sistemului și are drept scop managementul conexiunilor cu punctele de achiziție, comunicația cu serverul web spre a recepționa comenzi sau expune date și gestiunea datelor în tranziția spre și dinspre serverul web.
Etajul de gestiune și control al fluxului de date are în componență următoarele submodule: unitatea de comunicație cu punctele de achiziție, unitatea de gestiune și unitatea de comunicație cu serverul web.
Figura 3.3. Unitatea de gestiune
Unitatea de comunicație cu punctele de achiziție are ca funcție principală gestionarea și expunerea canalelor de comunicație unității de gestiune. În cazul apariției unei erori pe canalul de comunicație cu unul dintre punctele de achiziție, raportează eroarea unității de gestiune spre a fi informat utilizatorul. Mai mult această unitate, la apariția unei probleme ce necesită resetarea modulului, va restabili automat conexiunea cu fiecare punct de achiziție.
Unitatea de gestiune este responsabilă pentru transmiterea datelor între unitatea de comunicație cu punctele de achiziție și unitatea de comunicație cu serverul web. Raportul și tratarea erorilor precum și gestiunea punctelor de achiziție, controlul celorlalte două submodule, sunt atribuții situate de asemnea tot în sfera de activitate a acestul submodul.
Unitatea de comunicație cu interfața web asigură permanenta circulație a datelor între etajul de gestiune și controlul fluxului de date și etajul de stocare a datelor și interfață cu utilizatorul, menținând o conexiune activă pentru ca utilizatorul să fie informat în timp real în legătură cu informațiile primite de la punctele de achiziție pentru a acționa corespunzător.
3.2.3 Etajul de stocare a datelor și interfață cu utilizatorul
Ultimul modul în arhitectura aplicației este modulul de stocare a datelor și interfață cu utilizatorul ce este alcătui din urmatoarele submodule: unitatea de comunicație, unitatea de stocare a datelor, unitea de control și portalul web utilizator.
Figura 3.4. Unitatea de stocare
Unitatea de comunicație are responsabilitatea de a asigura conexiunea între etajul de stocare a datelor și interfața cu utilizatorul și etajul de gestiune și controlul fluxului de date. În cazul unei probleme de comunicație intervine funcția de raportare și gestiune a erorii, utilizatorul fiind imediat informat.
Unitatea de stocare a datelor este componenta aplicației unde sunt menținute permanent toate datele colectate de către senzori spre a efectua o analiză ulterioară sau pentru a implementa diverse module de învățare automată care ar putea folosi datele stocate pe post de resurse. Există mai multe modalități de stocare a datelor dar cea mai folosită este baza de date avantajele fiind extinderea ușoară și regăsirea rapită a oricărei înregistrări. Această unitate utilizează un sistem de gestiune a bazei de date având rol de interfață între baza de date stocată fizic și utilizator, optimizând în acest fel orice operațiune efectuată asupra bazei de date dar și stocarea datelor pe suportul fizic.
Unitatea de control are rolul de administrare și control al tuturor operațiunilor desfășurate în cadrul etajului de stocare a datelor și interfață cu utilizatorul. Cererea de conecxiune și trimiterea sau recepționarea datelor de la unitatea de comunicație, actualizarea datelor prin portalul web expus utilizatorului, interogarea și preluarea datelor de la unitatea de stocare a datelor sunt în totalitate atribuții ale acestui submodul.
Portalul web utilizat reprezintă interfața web care este expusă utilizatorului și conține toate datele măsurate de către senzori precum și comenzile ce pot fi transmise înapoi urmând parcursul general al arhitecturii aplicației către punctele de achiziție spre a modifica starea diferiților actuatori. Acest submodul suportă conexiuni cu mai mulți utilizatori simultan fiecare având expusă aceeași interfață.
3.3 Protocoale de comunicație
În cadrul proiectului, pentru o fiabilitate sporită, pentru o mai mare ușurință în utilizare și pentru a menține costurile de funcționare și implementare cât mai mici, a fost luată decizia de a se analiza trei nivele din stiva OSI spre a alege protocoalele care se mapează cel mai bine pe ideea de automatizare a unei case. Astfel facilitarea comunicației între modulele aplicației s-a realizat prin alegerea unor protocoale ce corespund următoarelor nivele: nivelul legatură de date, nivelul transport și nivelul aplicație.
Nivelul legătură de date este responsabil cu transmiterea corectă și sigură a datelor printr-o legătură fizică existentă, între două puncte conectate direct prin această legătură fizică, preocupându-se în același timp și de controlul fluxului fizic (flow control), dar și de detecția și anunțarea erorilor. Dintre cele mai utilizate protocoale ale acestui nivel, se remarcă Ethernet și Wi-Fi.
Protocolul Ethernet este unul dintre cele mai răspândite protocoale de nivel legătură de date și se bazează pe fragmentarea datelor în cadre de mici dimensiuni care se transmit și se recepționează unul câte unul. Mediul de transmisie poate fi cablul coaxial, cablul torsadat sau pentru viteze foarte mari, fibra optică. Într-o casă inteligentă unitatea ce implementează funcționalitățile etajului de gestiune și controlul fluxului de date, are o poziție fixă care nu se modifică facilitând conectarea printr-un cablu torsadat și implicit folosirea unui protocol ca Ethernet-ul deoarece această unitate trebuie conectată la rețeaua internă a casei.
Portul prin care se conectează unitatea respectivă la rețeaua internă este folosit și pentru conectarea la Internet. Locul indicat pentru așezarea unității de gestiune și control al fluxului de date este panoul unde se regăsesc toate sistemele casei astfel încât conecxiunea și mentenanța să fie mai ușoare. De asemenea punctele de achiziție se pot conecta printr-un cablu torsadat la rețeaua internă a casei sau se pot interfața cu un access point extinzând în acest fel posibilitatea de conectare la Wi-Fi.
Wi-Fi este numele comercial pentru tehnologiile construite pe baza standardelor de comunicație din familia IEEE 802.11 utilizate pentru realizarea de rețele locale de comunicație fără fir la viteze echivalente cu cele ale rețelelor cu fir electric de tip Ethernet.
Deoarece punctele de achiziție sunt elemente mobile a căror poziție poate fi modificată de către utilizator, soluția combinată de access point și ethernet s-a dovedit a fi cea mai eficientă din punct de vedere financiar. Utilizarea protocolului Wi-Fi se datorează faptului că într-o casă inteligentă majoritatea obiectelor electrice și electrocasnice precum televizorul, aparatul de aer condiționat, mașina de spălat etc. folosesc acest protocol în detrimentul protocoalelor precum ZigBee, X10 sau Z-Wave. Prin folosirea protocolului Wi-Fi ca și protocol de comunicații într-o casă inteligentă are ca prim impact eliminarea conecxiunii fizice dar și posibilitatea mare de concetare cu alte dispozitive inteligente.
Nivelul transport are rolul de a accepta date de la nivelul superior, să le descompună, dacă este cazul, în unități mai mici, să transfere aceste unități nivelului inferior și să se asigure că toate fragmentele sosesc corect la celălalt capăt întru-un mod eficient izoleazând nivelurile de mai sus de inevitabilele modificări în tehnologia echipamentelor. Cele mai populare protocoale de nivel transport sunt TCP și UDP. În cadrul aplicației s-a ales utilizarea protocolului TCP în detrimentul protocolului UDP deoarece, TCP față de UDP are controlul erorilor dar și asigurarea faptului că un mesaj trimis va fi recepționat de entitatea receptor. Într-o casă inteligentă trebuie menținută permanent o conexiune între punctele de achiziție și unitatea de gestiune și control al fluxului de date, două etaje diferite trebuind să aibă siguranța că un mesaj transmis se va recepționa la capătul opus. Pentru un sistem de control al mediului ambiant sau pentru un sistem de securitate folosit într-o casă inteligentă este foarte importantă transmiterea corectă, în timp real și totală a datelor. Întreruperea conexiunii dintre două puncte duce la inaccesibilitate și la pierderea datelor ceea ce se poate întâmpla în cazul utilizării protocolului UDP.
Fiecare modul trebuie identificat în timp real de către unitatea de gestiune și control. Aceasta trebuie să primească informații și să cunoască starea fiecărui punct de achiziție deoarece în cazul apariției unei erori unitatea trebuie să raporteze utilizatorului iar acesta să aleagă fie reconfigurarea sistemului fie să remedieze defectul.
În cadrul nivelul aplicație a fost standardizată la nivel arhitectural al proiectului o metodă de împachetare a datelor pentru a avea un format consistent și ușor de utilizat de către fiecare etaj al aplicației. Au fost analizate amănuțit două metode de împlachetare a datelor: formatul JSON și formatul XML.
XML este un meta-limbaj de marcare care derivă de la SGML doar că este mult mai simplu. Printre avantajele sale se numără: extensibilitate, validitate și simplitate la utilizare.
JSON este un format de reprezentare și interschimb de date între aplicații informatice. Este un format text, utilizat pentru reprezentarea obiectelor și a altor structuri de date și este folosit în special pentru a transmite date structurate prin rețea. Avantajul față de XML este acela că are o mai mare simplitate iar în cazul serializării unei clase, procesul și consumul computațional sunt mult mai simple. De asemenea există foarte multe biblioteci care pot împacheta datele în format JSON, acest format fiind preferat de către programatori în special pentru posibilitatea simplă de împachetare și transmitere a datelor.
3.3 Utilizarea aplicației și interacțiunea cu utilizatorul
Orice aplicație trebuie să îndeplinească anumite criterii de performanță și ușurință în utilizare pentru a fi catalogată drept aplicație sigură și eficientă în funcție de sectorul de utilizare. În cadrul unei soluții pentru o ”casă inteligentă”, cerințele de fiabilitate și calitate a sistemului în ansamblu sunt foarte înalte. De asemenea orice eroare sau problemă ce apare în timpul utilizării, trebuie raportată în cel mai scurt timp utilizatorului, spre a acționa în conformitate cu situația.
Din perspectiva utilizatorului, sunt expuse trei tipuri de acțiuni: conectare, monitorizare parametrii și comandă actuatori. Acestea au fost definite ca urmare a unei abstractizări și eliminând orice altă componentă ce nu intră în sfera de interes a utilizatorului.
Primul pas în execuția aplicației este conectarea la serverul web, dintr-un browser de internet oarecare. // cross platform, orice browser, de oriunde
Utilizatorul dupa conectare va avea expus conținutul principal al aplicației de unde poate naviga în două direcții: monitorizare parametrii în timp real, comandă actuatori sau vizualizare istoric parametrii.
Monitorizarea paremetrilor în timp real este opțiunea prin care utilizatorul poate verifica cele mai recente măsurători ahiziționate de la senzori. Acestea sunt actulizare în mod automat o data în momentul în care noi date sunt disponibile.
Testarea și validarea aplicației
Testarea senzorilor
Etapele de testare și validare sunt necesare pentru a putea evalua funcționalitatea și fiabilitatea acestui proiect dar și rezultatele obținute ca urmare a implementării lui. Testarea se face prin citirea datelor primite de la o serie de senzori folosiți în acest proiect.
După o cautare amănunțită s-a dovedit că cei mai buni senzori care se puteau folosi sunt cei de la ”Grove” deoarece corespund cerințelor proiectului și sunt foarte ușor de utilizat. Din multitudinea de senzori disponibili de Grove s-au ales senzorii folosiți pentru controlul mediului ambiental precum senzorul de foc, de umiditate, UV, de sunet, de temperatură și umiditate și senzorul de lumină digital.
1.Modulul senzorului de lumină
Modulul senzorului de lumină digital transformă intensitatea luminii într-un semnal digital bazându-se pe transmisia serială I2C. Posibilitatea de a alege dintr-o gamă largă a spectrului de lumină se datorează diodei încorporată în modul. Sunt posibile trei moduri de detecție a luminii: infraroșu, spectru complet, sau modul vizibil ochiului uman. Alegerea a două moduri diferite de măsurare a spectrului poate duce la două răspunsuri diferite.
Figura 5.1. Senzorul de lumină digital
Acest senzor poate fi folosit la o temperatură care variază între -40℃ și 85℃, are o rezoluție de 16-Bit iar ieșirea digitală este de 400kHz în I2C Fast-Mode. Tensiunea de alimentare a acestui modul trebuie să fie între 3,3V și 5,1V.
Datorită librăriilor disponibile atât pentru Arduino cât și pentru Raspberry Pi, măsurarea iluminării se reduce la un simplu apel de funcție din biblioteca senzorului, valoarea rezultată fiind exprimată în “Lux”.
2.Modulul senzorului de sunet
Ieșirea modulului senzorului de sunet este analogică iar componenta principală este alcătuită dintr-un microfon electrostatic și un microfon simplu care se bazează pe amplificatorul LM358. Conectarea acestui modul la o placă de dezvoltare se face prin 4 pini, dintre care sunt folosiți pinul de alimentare (VCC), GND și pinul pentru semnal.
Figura 5.2. Senzorul de sunet
Microfonul are o sensibilitate de 52~48dB, cu impedanța de 2.2KΩ iar frecvența sa se situează între valorile de 16 și 20Khz. Alimentarea acestui modul se face la un curent cuprins între 4 și 8 mA cu specificația ca tensiunea ideală de alimentare (tensiunea de referință) să aibă 5V, fiind posibilă și alimentarea senzorului la tensiuni având valoarea între 4 și 12V.
Citirea datelor de la senzor se poate face cu placa de dezvoltare Arduino dar și cu Raspberry Pi. Pentru a face conversia din tensiunea de ieșire de pe pinul de semnal al senzorului în dB se poate utiliza următoarea formulă:
Vol (dB) = 20 * V1 (V) * V0 (V), unde V1 este tensiunea măsurată iar V0 este tensiunea de referință.
3. Modulul senzorului de umiditate
Fiind folosit pentru a detecta nivelul de umezeală din pământ, acest modul de senzor este utilizat cel mai adesea în grădină sau în seră, venind în ajutorul utilizatorilor spre a-i informa în legătura cu saturația de apă a solului, semnalând astfel momentul în care plantele trebuiesc udate.
Figura 5.3. Senzorul de umiditate
Acest modul folosește trei pini: un pin pentru GND, unul pentru semnal și un pin pentru tensiunea de alimentare. Valorile senzorului de umiditate pot fi cuprinse între trei nivele, stabilite de producător pentru a interpreta tensiunea citită de pe pinul de semnal al senzorului. Astfel, de la 0 la 300 înseamnă că pământul este uscat, între 300 și 700 reprezintă faptul că pământul este în condiții optime de umiditate, iar dacă valorile primite de la senzor sunt cuprinse între 700 și 950 înseamnă ca pământul are prea multă apă. Acest modul trebuie să aibă o tensiune de alimentare între 3.3 și 5V consumând un curent de 35mA.
4.Modulul senzorului de foc
Modulul acesta folosește senzorul YG1006 care este un fototranzistor NPN din silicon de viteză și sensivitate mari. Senzorul detectează surse de foc sau alte surse de lumină având o lungime de undă cuprinsă între 760nm și 1100nm.
Senzorul de foc trebuie alimentat la o tensiune cuprinsă între 4.75 – 5.30V curent continuu. Utilizarea acestui modul se poate face la o temperatură variind între -25 ~ 85 ℃ iar timpul de răspuns este de maxim 15 μS. Distanța de detectare a focului este posibilă de până la 1 m. Acest modul este utilizat pentru a detecta lumina în spectrul infraroșu. Utilizând un comparator, senzorul va returna un semnal digital de 0 sau 1. Ieșirea de 0 semnifică prezența unei lumini infraroșii iar 0 absența sa.
Figura 5.4. Senzorul de foc
5.Modulul senzorului UV
Detectarea intensității radiațiilor ultraviolete se face cu senzorul UV. Lungimile de undă ale acestor radiații sunt mult mai scurte decât a radiațiilor vizibile. Acest modul de senzor se bazează pe senzorul GUVA-S12D care are o gamă speactrală largă. Modulul trimite semnale electrice care variază cu intensitatea UV.
Temperatura în care poate lucra acest modul este cuprinsă între -30 și 85 ℃ cu un curent de alimentare de 0.31mA și o tensiune de 5VDC. Timpul de răspuns fiind cuprins între 200 și 370 nm. Acest senzor poate fi utilizat în industria automobilă, farmaceutică, chimică și robotică.
Formula matematică care se folosește în citirea datelor de la acest modul de senzor este următoarea:
UVindex = (307*Vsig)/ 200
Vsig = valoarea tensiunii măsurată de pinul SIG al modului.
[UVindex]S.I. = 1 mW/m2
Figura 5.5. Senzorul UV
6. Modulul senzorului de temperatură și umiditate
Spre deosebire de senzorul de umiditate prezentat mai sus, acest senzor măsoară temperatura și umiditatea din aer. Timpul de răspuns al acestui modul variază de la 6 până la 20s. Curentul și tensiunea de alimentare trebuie să se încadreze înte 1~1.5mA și respectiv 3.3~6V. Perioada de colectare a semnalului este de 2s. Intervalul de măsurare la umiditate este cuprins înte 5% și 99% RH iar la temperatură între -40 și 80 oC. Acuratețea măsurătorilor au o marjă de eroare de ±2% RH pentru umiditate și de ±0.5% oC pentru temperatură. Sensibilitatea senzorului are o valoare de 0.1 oC pentru temperatură și 0.3%RH pentru umiditate.
Librăria dispusă la dispoziția utilizatorului atât pentru Arduino cât și pentru Raspberry Pi conțin procedeul matematic de măsurare și transformare a valorilor primite de la senzori. Formula respectivă ajută utilizatorul să înțeleagă datele primite.
Figura 5.6. Senzorul de temperatură și umiditate
Filtrarea datelor
După ce s-a făcut conexiunea între plăcile de dezvoltare și senzori, s-a făcut și o primă testare a software-ului în care s-au analizat datele primite de la senzori. Având în vedere că senzorii folosiți pentru controlul mediului ambiental sunt foarte diferiți, rezultă că și metrica senzorilor este diferită.
Având în vedere că primele date primite de la senzori sunt date brute, având mult zgomot și fiind nefinisate, utilizarea lor era imposibilă. De aceea s-a constat că o analiză asupra lor va duce la o eroare în raport cu realitatea destul de semnificativă.
Figura 5.7. Date senzor brute
Se observă din graficul de mai sus un nivel de zgomot ridicat ce poate influența negativ o ulterioară analiză a datelor. Spre a uniformiza valorile citite există posibilitatea introducerii unor filtre în cadrul modulului de achiziție. Dintre filtrele studiate au fost alese 2 soluții: uniformizarea valorilor cu ajutorul filtrului trece jos și uniformizarea valorilor cu filtrul trece bandă.
Atât filtrul trece jos cât și cel trece bandă fac parte din categoria de filtre numerice liniare clasice, adică sunt filtre cu răspuns finit la impuls (FIR). Filtrele numerice sunt ușor de construit, testat și implementat datorită faptului ca sunt programabile din punct de vedere software, sunt stabile și necesită doar operații aritmetice simple.
FTJ reduce componentele de frecvență nedorite adică lasă să treacă doar semnalele de frecvență joasă și atenuează componentele de frecvență înaltă. Această filtrare este cel mai des folosită deoarece are rolul de a reduce zgomotele suprapuse peste semnalul util.
FTB este o îmbinare a filtrelor trece jos și trece sus, conectate în serie. El permite să treacă toate semnalele cuprinse între două limite de frecvență, una superioară dată de filtru trece jos și una inferioară dată de filtru trece sus.
După aplicarea celor două filtre s-a constat că datele primite de la senzori sunt mult mai exacte și prin urmare este posibilă utilizarea lor.
Dintre cele doua soluții s-a ales filtrul trece jos având avantajul de a necesita o resursă computațională mai scazută. În contextul unor dispozitive embedded respectiv placa de dezvoltare Arduino Uno ce se ocupă atât cu achiziția, trimiterea de informații dar și cu primirea și interpretarea comenzilor filtrul trece jos se dovedește a fi alegerea ideală uniformizând datele preluate de la senzor și în același timp neafectând performanțele de ansamblu ale sistemului tratat ca punct de achiziție.
Figura 5.8. Datele de la senzor prin filtru triunghi
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Platforma Interactiva Pentru Testarea de Solutii Pentru Case Inteligente (ID: 162974)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
