Nume Prenume ZĂVOIANU NICOLAE-CORNEL [304024]

UNIVERSITATEA “LUCIAN BLAGA” DIN SIBIU

FACULTATEA DE INGINERIE

DEPARTAMENTUL DE CALCULATOARE ȘI INGINERIE ELECTRICĂ

LUCRARE DE DISERTAȚIE

Conducător științific : Prof. univ. ing. dr. FLOREA ADRIAN

Absolvent: [anonimizat], 2020 –

UNIVERSITATEA “LUCIAN BLAGA” DIN SIBIU

FACULTATEA DE INGINERIE

DEPARTAMENTUL DE CALCULATOARE ȘI INGINERIE ELECTRICĂ

TERMOSTAT INTELIGENT Componentă a locuinței inteligente

Conducător științific: Prof. univ. Ing. dr. FLOREA ADRIAN

Absolvent: [anonimizat] "LUCIAN BLAGA" DIN SIBIU APROBAT(data)

FACULTATEA DE INGINERIE __________________

DEPARTAMENTUL DE CALCULATOARE DIRECTOR DEPARTAMENT

SI INGINERIE ELECTRICA _____________

PLAN TEMATIC

pentru lucrarea de disertație

Proiectul de diplom dat student: [anonimizat]

1. [anonimizat] a locuinței inteligente.

2. Termenul de predare a proiectului 10.06.2020.

3. [anonimizat] (case inteligente) și IoT;

– documentație Arduino / ATmega;

4. Nota explicativ (enumerarea problemelor care vor fi rezolvate)

Termostatul inteligent ca și componentă de bază a [anonimizat] :

– controlul de la distanță al temperaturii ambientale;

– monitorizarea senzorului de gaz;

– monitorizarea apariției inundației;

– setare manuală a temperaturii utilizând butoanele existente pe placa de dezvoltare cu afișare

pe display;

– transmiterea tuturor datelor preluate de la senzori către serverul de IoT cât și preluarea

comenzilor utilizatorului din serverul de IoT;

– preluarea datelor din serverul de IoT și afișarea lor pe dispozitive mobile.

5. Enumerarea materialului grafic (cu indicarea precis a desenelor obligatorii)

– Schema bloc a componentelor electronice;

– [anonimizat];

– Capturi aplicație mobilă / widget-uri;

6. Consultaii pentru proiect (sptmnal) 2 x 2 ore pe sptmn.

7. Data eliberrii temei 01.07.2019.

Tema a fost primit pentru ndeplinire: CONDUCTOR,

Data 01.10.2019 Prof. univ. dr. ing.

FLOREA ADRIAN

__________________

Semntură student________________ (semntura)

Ministerul Educației Naționale

Universitatea “Lucian Blaga” din Sibiu

VIZAT

Conducător științific

Prof. univ. ing. dr. [anonimizat]. Hațegului, nr. 3, sc. A, et. 3, ap. 11, județ Sibiu cod postal 550069 având actul de identitate seria SB nr. 581989, codul numeric personal [anonimizat] [anonimizat] a locuinței inteligente

declar următoarele:

[anonimizat], entități cu care mă aflu în relații de muncă sau altă natură;

[anonimizat], animalelor sau plantelor;

opera științifică nu a mai fost publicată de subsemnatul / subsemnata sau de o [anonimizat], anterior datei depunerii acesteia spre evaluare în scopul obținerii recunoașterii științifice în domeniu.

Specific explicit că ideile prezentate sunt originale, iar sursele de informații care stau la baza emiterii unor teorii originale au fost corect citate și prezentate în opera științifică.

Data…………………………………….

Numele și prenumele ZĂVOIANU NICOLAE-CORNEL

Semnătura………………………………………….

Notă: Prezenta declarație va purta viza conducătorului științific.

Cod. PO – ULBS – DPPI – 06_ed – 1_rev – 0 / 05.11

Copyright : ULBS, Serviciul CDI-PI, Centrul PatLib din Sibiu OSIM-EPO

Adresa: Bd-ul. Victoriei, nr. 10

Sibiu, 550024, România

e-mail: rectorat@ulbsibiu.ro

www.ulbsibiu.ro

Capitolul 1. Prezentarea proiectului

1.1 Introducere

Casa inteligentă (smart house) este o îmbinare perfectă de diverse subsisteme legate de viața casnică prin tehnologii avansate reușind astfel să împărtășească resurse, să comunice cu interiorul căminului dar și să schimbe informații cu rețeaua externă a casei prin intermediul unui gateway inteligent. Principalul său obiectiv este acela de a oferi locatarilor săi un mediu de viață confortabil, sigur, convenabil și ecologic prin sisteme integrate, servicii dedicate și management eficient. Casa inteligentă permite sporirea confortului locatarilor prin automatizări care pot fi controlate de la distanță și a devenit un obiectiv cu dezvoltare continuă prin intermediul tehnologiilor inovatoare create în vederea unei eficientizări a resurselor de cost și timp alocate pentru întreținere.

1.2 Prezentare generală proiect

Acest proiect a luat naștere din necesitatea unui sistem care poate controla și facilita ca datele de mediu ale unei locuințe să fie disponibile oriunde și, de ce nu, să alarmeze în caz de situație extremă proprietarii putând fi extinsă funcționalitatea prin alertarea concomitentă a firmei de pază, a pompierilor în caz de incendiu sau a poliției în caz de jaf.

Figura 1 Architectura sistemului

În calitate de utilizatori, ne dorim să putem gestiona de la distanță temperatura locuinței prin controlul direct al centralei termice, controlul alimentării cu gaz, apă cât și obținerea de la distanță a informațiilor legate de puritatea aerului din diferite încăperi, umiditatea aerului, eventuale scurgeri de gaze și defecțiuni ale instalației de apă.

Considerăm că este foarte util să putem controla temperatura din interior, senzorii de inundație montați în puncte critice pentru a detecta din timp scurgeri accidentale de apă dar și senzorii de gaz pentru detectarea acumulărilor nedorite din locuință.

Atât controlul centralei termice, controlul instalațiilor de gaz și apă cât și informațiile legate de calitatea aerului (temperatura aerului, umiditatea aerului, puritatea aerului) și inundație vor fi disponibile pe telefonul mobil prin intermediul unui server de tip IoT (Internet of Things).

Termostatul inteligent ca și componentă de bază a unei case inteligente, va avea disponibile următoarele funcționalități:

• controlul de la distanță al temperaturii ambientale (înainte să plecăm de la serviciu putem seta temperatura dorită, iar când ajungem la domiciliu vom găsi un mediu optim cu economie de resurse);

• monitorizarea senzorului de gaz și acționarea automată a electrovalvei existente pe instalația de gaz;

• monitorizarea inundației (vom putea astfel să identificăm o eventuală defecțiune a conductelor de apă) și acționarea automată a electrovalvei existente pe instalația de apă;

• setare manuală a temperaturii utilizând butoanele existente pe placa de dezvoltare cu afișare pe display;

• transmiterea tuturor datelor preluate de la senzori către serverul de IoT cât și preluarea comenzilor utilizatorului din serverul de IoT;

• preluarea datelor din serverul de IoT și afișarea lor pe dispozitive mobile.

Figura 2 Widget folosit pentru citirea datelor de la serverul IoT

Capitolul 2. Fundamentare teoretică

2.1 Introducere în sisteme inteligente (Smart Systems)

Tehnologiile inteligente pentru casă (Smart House Systems) sunt sisteme și dispozitive care pot controla elemente din mediul casnic: iluminat, aparate electrocasnice, telefoane, sisteme de încălzire sau răcire, sisteme de securitate ale domiciliului și sisteme mecanice, de intrare și siguranță. Sistemele de automatizare la domiciliu pot fi operate prin intermediul impulsurilor de energie electrică sau cu ajutorul unui cip computer folosind o serie de comutatoare / periferice diferite. Un dispozitiv simplu, cum ar fi o lumină ambientală, poate fi activat de un semnal primit de la un detector de mișcare sau poate face parte dintr-un sistem computerizat de automatizare a locuinței. Ca o definiție foarte de bază, tindem să ne referim la automatizare în domiciliu ca la orice sistem care oferă controlul de la distanță sau controlul automat al obiectelor din jurul casei.

Smart House System este un sistem de automatizare fără fir, care se presupune a fi implementat în mediile casnice existente, fără modificări în infrastructură și permite utilizatorului să controleze locuința de pe smartphone-ul sau computerul său, iar totul ar trebui să se întâmple în funcție de timp sau de alte citiri actualizate ale senzorilor, cum ar fi lumina, temperatura sau sunetul de pe orice dispozitiv din rețea.

Automatizarea caselor este implementată în viața cotidiană deoarece :

• Crește independența și dă un control mai mare utilizatorului asupra mediului de acasă (chiar și atunci când acesta este plecat);

• Facilitează comunicarea și interacțiunea cu familia de la distanță;

• Se economisește timp și efort fiind un plus de confort (poate fi pus în funcțiune de la distanță spre exemplu un aspirator inteligent, care va efectua un ciclu de curațenie a casei atunci când utilizatorul este la serviciu);

• Îmbunătățește siguranța personală și a membrilor familiei;

• Se reduc substanțial costurile alocate cu încălzirea și răcirea locuinței (înainte să plecăm de la serviciu putem seta temperatura dorită, iar când vom ajunge la domiciliu vom găsi un mediu optim personalizat);

• Crește eficiența energetică a casei utilizatorului;

• Generează o alertă auditivă și vizuală (prin aplicația mobilă) asupra situațiilor de urgență (scurgeri de gaz, inundație, ș.a.) sau a riscului de efracție (geam spart, ușă deschisă);

• Va permite utilizatorilor să monitorizeze casa în timp ce sunt plecați, asigurându-se astfel de la distanță de integritatea fizică a bunurilor sau a animalelor de companie.

Sistemele inteligente pot fi controlate prin :

• Telecomandă – oferă comoditatea de a controla iluminatul, aparatele electrocasnice, sistemele de securitate și electronicele de oriunde s-ar întâmpla să fiți în acel moment: de pe canapea, din pat sau chiar din mașină. Există mai multe „metode” diferite de controlare a dispozitivelor de la distanță prin intermediul telecomenzii : telecomandă dedicată unui sistem sau mai multor sisteme (universală), aplicație mobilă care permite telefonului inteligent să aibă și funcționalitate de telecomandă universală, s.a. ;

• Control automat – adaugă și mai mult confort, făcând lucrurile să se întâmple automat, fără a fi nevoie de niciun efort depus de utilizator pentru aceasta. Printre exemple se numără faptul că luminile pot să se aprindă la amurg și se stingă la ora dorită, temperatura ambientală poate fi controlată prin setare pe intervale orare în anumite limite de temperatură sau pornirea automată a robotului aspirator la o anumită oră când locatarii sunt plecați la serviciu, cumpărături sau în parc la plimbare;

• Control vocal – prin intermediul sistemului de control vocal, monitorizarea și utilizarea echipamentelor inteligente ale casei a devenit foarte intuitivă și ușor de folosit, fiind nevoie doar să folosești cuvintele de activare și de declanșare pentru a lansa fiecare scenariu în parte. Astfel, ca utilizator al sistemului, nu este nevoie să pornești smartphone-ul, nici să deschizi aplicația de monitorizare pe tabletă sau laptop, ci doar să folosești comanda vocală ce va fi recunoscută urmând a fi transmisă funcția corespunzătoare dispozitivului sau dispozitivelor executante. Există implementate compatibilități cu majoritatea echipamente inteligente pentru casă, ajutându-te astfel să gestionezi vocal toate dispozitivele domestice esențiale. Prin intermediul controlului vocal, utilizatorul poate crea și lansa zeci de scenarii posibile pentru dispozitivele inteligente, un exemplu de scenariu fiind “Goodbye” ce poate stinge luminile ambientale, va activa închiderea perdelelor, a jaluzelelor sau rulourilor motorizate și va comuta automat termostatul inteligent pe modul economic, urmând ca în acest scenariu utilizatorul să părăsească locuința.

Menționăm câteva aplicații și tehnologii ale sistemelor inteligente în care senzorii pot fi integrați în sistemul de automatizare a clădirilor pentru a declanșa răspunsuri automate pentru eficiența energetică a clădirii și aplicații de confort [2]:

• Încălzire, ventilație și aer condiționat: este posibil să dispuneți de la distanță prin Internet toate sistemele de monitorizare a energiei casei, încorporând o interfață de utilizator simplă și prietenoasă;

• Sistem de control al iluminării: o rețea „inteligentă” care încorporează comunicarea între diverse intrări și ieșiri ale sistemului de iluminat (spațialitate, intensitate, culoare) folosind unul sau mai multe dispozitive de calcul centrale;

• Sistem de control video, senzori și detecție mișcare: este posibil să sesizați prezența unei persoane străine în interiorul locuinței folosind camere video cu sau fără senzori de mișcare, încuietorile cu cheie inteligente, senzorii de efracție sau de geam spart și senzori de mișcare (PIR);

• Roboți casnici și de securitate: un sistem de securitate gospodărească integrat cu un sistem de automatizare a locuinței poate oferi servicii suplimentare, cum ar fi supravegherea de la distanță a camerelor de securitate prin Internet sau controlul accesului și blocarea centrală a tuturor ușilor, ferestrelor perimetrale și a rulourilor exterioare;

• Controlul și integrarea aparatului cu rețeaua inteligentă și un contor inteligent, profitând, de exemplu, de o producere ridicată de energie electrică a panoului solar la mijlocul zilei pentru a activa consumatori casnici precum mașini de spălat, sisteme de ventilație / răcire, ș.a.;

• Detectarea scurgerilor de apă, gaze, a fumului și a detectoarelor de dioxid de carbon – pot fi monitorizați indicii de calitate a aerului din locuință prin utilizarea senzorilor de dioxid de carbon (CO2), gaze, fum, care vor comanda sistemul de ventilație al locuinței în vederea reglării nivelului de oxigen optim sau vor comanda electrovalvele de închidere automată gaze naturale sau apa;

• Sisteme de poziționare interioară (Indoor positioning systems) ;

• Îngrijirea animalelor de companie și a bebelușilor (de exemplu urmărirea mișcărilor animalelor de companie sau a bebelușilor) și controlul drepturilor de acces pentru animalele de companie prin închidere / deschidere porți de acces;

• Controlul calității aerului – sisteme inteligente instalate acasă și utilizate pentru monitorizarea calității aerului ambiental dar și a nivelului de poluare din oraș, facilitându-se astfel crearea hărților de poluare;

• Bucătărie inteligentă și gătit conectat – utilizarea dispozitivelor de control vocal pentru aparatele de bucătărie.

Din punct de vedere istoric, sistemele inteligente au fost vândute ca sisteme complete în care consumatorul se bazează pe un singur furnizor pentru întregul sistem, inclusiv hardware-ul, protocolul de comunicații, hub-ul central și interfața cu utilizatorul. Toate aceste limitări anterioare nu mai există, acum fiind disponibile atât hardware liber cât și sisteme software open source care pot fi utilizate în locul sau cu hardware-ul proprietar.

Într-o revizuire a dispozitivelor de automatizare casnică, concluziile au constat în două probleme principale pentru consumatori:

O rețea Wi-Fi conectată la Internet poate fi vulnerabilă la hacking.

Tehnologia este încă la început, iar consumatorii ar putea investi într-un sistem care devine inutil. În 2014, Google a cumpărat compania care vindea sistemul de automatizare casnică Revolv Hub, l-a integrat cu Nest și, în 2016, a închis serverele pe care Revolv Hub funcționa, făcând astfel hardware-ul anterior inutil [2].

2.2 Internet of Things (Internetul Obiectelor)

Figura 3 Evoluția IoT [3]

Internet of Things (Internetul obiectelor, abreviat IoT) sau Internet of Everything este un concept ce presupune folosirea Internetului pentru a conecta între ele diferite dispozitive ce au încorporate circuite electronice, servicii și sisteme automate, formând astfel o rețea de obiecte în scopul monitorizării sau controlului de la distanță. [1]

Termenul Internet of Things a fost folosit pentru prima dată de Kevin Ashton în anul 1999. El se referă la obiecte (lucruri) identificabile și la reprezentările lor virtuale într-o structură asemănătoare Internetului. În acel moment, el a considerat identificarea prin frecvență radio (RFID – Radio-Frequency Identification) ca fiind esențială pentru internetul lucrurilor, fiind ceea ce ar permite calculatoarelor să gestioneze toate obiectele individuale. [1]

Internet of Things (IoT) este un concept care descrie un viitor în care în fiecare zi obiectele fizice sunt conectate la Internet și se pot identifica sau comunica cu alte dispozitive.

Figura 4 Internetul lucrurilor

Obiectele (things) trebuie să fie capabile să captureze date (de obicei prin intermediul senzorilor), iar ulterior să transmită aceste date în altă parte prin intermediul Internetului. Acestea pot fi senzori meteorologici, senzori de măsurare a nivelului de poluare, dispozitive medicale, autovehicule ce încorporează caracteristici smart, obiecte electrocasnice (smartv), smartphones, camere de supraveghere, în general, orice obiect care are încorporate capacități de comunicare. [4]

Internetul în bandă largă este din ce în ce mai disponibil, costul conectării scade, se creează tot mai multe dispozitive cu capabilități și senzori Wi-Fi încorporate, costurile tehnologiei scad, iar pătrunderea smartphone-ului în viața de zi cu zi este tot mai evidentă devenind aproape indispensabil. Toate acestea putem spune că introduc o „furtună perfectă” pentru dezvoltarea domeniului de aplicabilitate al Internet of Things.

• Internet of Things (IoT) este parte integrantă a viitorului Internet.

Poate fi definit ca o infrastructură de rețea globală dinamică, cu capabilități de autoconfigurare, bazată pe protocoale de comunicare standard și interoperabile, în care „obiectele” fizice și virtuale au identități, atribute fizice și personalități virtuale și folosesc interfețe inteligente.

Figura 5 Connect the Word

2.3 Ce este de fapt Internet of Things (Internetul Obiectelor) ?

Internet of Things (IoT) poate fi definit ca "o rețea omniprezentă care permite monitorizarea și controlul mediului fizic prin colectarea, procesarea și analizarea datelor generate de senzori sau obiecte inteligente". Simplu spus, acesta este practic conceptul de conectare a oricărui dispozitiv cu un comutator pornit și oprit la Internet (și / sau unul la altul). Aceasta include orice, de la telefoane mobile, cafetiere, mașini de spălat, căști, lămpi, dispozitive purtabile și aproape orice altceva vă puteți gândi. Acest lucru este valabil și pentru componentele mașinilor, de exemplu chiar și un motor al unui avion. Existența comutatorului pornit și oprit la orice dispozitiv mărește considerabil șansele ca acesta să poată fi integrat în IoT.

Au fost făcute destule referiri la comunicațiile Machine-to-Machine (M2M – Mașină-la-Mașină) și IoT în mod interschimbabil fiind adeseori considerate una și aceeași. În realitate, M2M poate fi privit ca un subset al IoT care este un segment mai cuprinzător, ce include comunicarea de la mașină la om (M2H Machine-to-Human), identificarea frecvenței radio (RFID), serviciile bazate pe locație (LBS), senzorii Lab-on-a-Chip (LOC), senzori de realitate augmentată (AR), robotica si telematica vehiculului. Multe dintre aceste tehnologii sunt rezultatul evoluțiilor în aplicațiile militare și industriale, caracteristica lor comună fiind aceea de a combina obiecte senzoriale încorporate cu inteligența artificială, rulând date pe un mix de rețele cu fir și fără fir. Într-un context mai larg, arhitectura cuprinde Internetul Obiectelor, precum și perspective de ingineria afacerilor, rezultatele din informațiile preluate și transmise de aceste „obiecte inteligente” fiind utilizate pentru dezvoltarea continuă.

Figura 6 Ecosistemul IoT

Ecosistemul Internet of Things cuprinde toate componentele care permit întreprinderilor, guvernelor și consumatorilor să se conecteze la dispozitivele IoT, inclusiv telecomenzi, tablouri de bord, rețele, gateway-uri, analitice, stocare de date și securitate. [5]

Internetul Obiectelor este o rețea uriașă de „lucruri” conectate care include și oameni, iar asta înseamnă că relațiile de comunicare vor fi între oameni-oameni, oameni-obiecte și obiecte-obiecte. Așadar, noua regulă pentru viitor va fi: „Orice lucru care poate fi conectat, va fi conectat!”. Dar de ce cineva și-ar dori atât de multe dispozitive conectate care comunică între ele? Cu siguranță că există multe exemple care sa demonstreze valoarea potențială. Să considerăm de exemplu, că sunteți în drum spre o întâlnire; mașina dumneavoastră ar putea avea acces la agenda zilnică și cunoaște deja calea cea mai bună de urmat pentru a ajunge la destinație prin traficul actualizat în timp real. Cum ar fi, în cazul în care este aglomerație, mașina să poată trimite un text celeilalte părți a întâlnirii pe care o anunță că veți întârzia? Cum ar fi dacă ceasul deșteptător te trezește la 6 dimineața și apoi anunță cafetiera să înceapă să fiarbă cafeaua pentru tine? Cum ar fi dacă echipamentul de birou ar ști când scade nivelul consumabilelor și comandă automat altele noi? [6]

Figura 7 Everything – Totul – Evoluție 2004 – 2018

Până în acest an, 2020, se estimează că numărul dispozitivelor conectate va avea o creștere care va atinge limita de 50 de miliarde de unități. Principalul motor al acestei creșteri nu este populația umană ci mai degrabă, faptul că dispozitivele pe care le folosim în fiecare zi (de exemplu electrocasnice, smart tv, frigidere, mașini, ventilatoare, sisteme de iluminat, dispozitive mobile, purtabile etc.) și tehnologiile operaționale, cum ar fi cele folosite în fabrici, devin entități conectate pe tot globul. Această lume a obiectelor interconectate – în care oamenii interacționează cu mașinile și mașinile vorbesc cu alte mașini (M2M) a devenit o realitate a zilelor noastre și va rămâne un model de dezvoltare viitoare.

Figura 8 Cisco – Evoluție număr dispozitive inteligente de protejat 2020

Internet of Things (IoT) permite oportunități și conexiuni practic interminabile, multora dintre acestea nici măcar nu le poate fi înțeles pe deplin impactul momentan, acesta fiind un motiv pentru care rămâne un subiect atât de actual, cu o mulțime de oportunități, dar și cu multe provocări ce vor trebui gestionate eficient. Ne așteptăm ca „obiectele” să devină participanți activi la procesele de afaceri, prin culegerea de informații tehnice, medicale și sociale, ținând cont că interacționează și comunică atât între ele cât și cu mediul din care fac parte, schimbul de date și informații fiind o bază solidă pentru construirea de prognoze. Încercăm să înțelegem care sunt numeroasele oportunități și provocări pe măsură ce tot mai multe dispozitive încep să devină inteligente, dar și modul în care acestea ne vor afecta viața, iar cel mai bun lucru pe care îl putem face este să ne educăm individual și să acceptăm dezvoltarea conștientizând impactul potențial asupra modului în care lucrăm și trăim.

2.4 Aplicații ale Internet of Things

Locuință inteligentă (Smart Home): orice spațiu cu destinație locativă va putea fi transformat într-o casă inteligentă prin intermediul conexiunilor tehnologice cu rol de îmbunătățire a confortului locuinței. Conceptul de locuință inteligentă descrie interconectarea și comunicarea obiectelor din interiorul locuințelor, fiind incluse în acest segment becurile și prizele inteligente, sistemele destinate divertismentului, termostatele, detectoarele de fum, aparatele electrocasnice, ferestrele, interfoanele sau încuietorile inteligente și multe altele. Asistenții vocali sunt capabili să facă legătura între toate dispozitivele inteligente existente într-o locuință, asemeni unui hub smarthouse existând astfel posibilitatea de a controla fiecare dispozitiv în parte dintr-o singură aplicație.

Dispozitive mobile ușor de purtat (Wearables): constituie majoritatea dispozitivelor din domeniul aplicațiilor IoT destinate consumatorilor și sunt dispozitive electronice inteligente (cu micro-controlere) care sunt purtate aproape de sau pe suprafața pielii, care detectează, analizează și transmit informații referitoare la semnale corporale (semne vitale) și / sau date ambientale oferind feedback imediat către purtător. În această categorie sunt incluse elemente din electronica de consum cu răspândirea smartwatch-ului și a brățărilor de activități, dar tehnologia purtabilă este încorporată și în sistemele de navigație, textilele avansate și asistența medicală.

Oraș inteligent (Smart City): Un oraș inteligent este o zonă urbană care folosește diferite tipuri de senzori electronici ai internetului obiectelor (IoT) pentru a colecta date și a utiliza informațiile obținute din aceste date pentru a gestiona eficient activele, resursele și serviciile. Sunt colectate date de la cetățeni sau dispozitive, iar ulterior sunt procesate și analizate pentru a monitoriza și gestiona traficul și sistemele de transport, centralele electrice, utilitățile, rețelele de alimentare cu apă, gestionarea deșeurilor, detectarea infracțiunilor, sistemele de informații și alte servicii comunitare. Soluțiile dezvoltate vin în rezolvarea problemelor cu care se confruntă locuitorii orașelor (aglomerațiile din trafic, reducerea zgomotului, a poluării și susținerea siguranței orașelor).

Sănătate conectată (Sănătate digitală / Telehealth / Telemedicină) conceptele de sistem de sănătate conectat și de dispozitive medicale inteligente au un potențial enorm, nu doar pentru organizații ci și pentru bunăstarea oamenilor în general. Noile tipuri de instrumente de monitorizare a sănătății în timp real și de îmbunătățire a deciziilor medicale bazate pe seturi mari de date ale pacienților sunt unele dintre beneficiile preconizate. Asistența medicală inteligentă este un sistem de servicii de sănătate care utilizează tehnologia, cum ar fi dispozitivele purtabile, IoT și internetul mobil pentru a accesa informații din punct de vedere numeric, pentru a conecta persoane, materiale și instituții legate de asistența medicală, apoi gestionează și răspunde activ nevoilor medicale. Asistența medicală inteligentă poate promova interacțiunea între toate părțile din domeniul sănătății, se poate asigura că participanții obțin serviciile de care au nevoie, pot ajuta părțile să ia decizii în cunoștință de cauză și să faciliteze alocarea rațională a resurselor. Pe scurt, asistența medicală inteligentă este o etapă superioară a construcției informațiilor în domeniul medical.

Automobile conectate – automobilul viitorului Fie că este vorba de auto-conducere sau, pur și simplu de șofer asistat, conexiunea cu alte mașini, serviciile de cartografiere sau de control al traficului vor juca un rol important pentru automobilul viitorului. Generația următoare de sisteme de divertisment la bordul autovehicului și de monitorizare de la distanță sunt, de asemenea, concepte interesante pentru dezvoltare. O serie de mari producători, care joacă un rol important cum ar fi: Google, Microsoft și Apple, au realizat platforme dedicate mașinilor fără șofer și conectate.

Figura 9 – Mașina fără șofer

Mașina fără șofer se bazează pe utilizarea unui număr mare de senzori care funcționează în combinație cu GPS-ul și date istorice. Acest lucru permite unei mașini să meargă din punctul A în punctul B înțelegând unde se află în orice moment, ce se află în jurul ei și cum să ajungă cel mai bine din punctul A în punctul B într-un mod sigur și eficient.

Figura 10 Mașinile conectate

Știm cu siguranță că în anul 2008, numărul dispozitivelor conectate la Internet a depășit numărul de oameni de pe Pământ, iar în 2020, vor fi conectate 50 de miliarde de dispozitive.

Dar nu tot ce este legat de IoT prezintă doar avantaje și trebuie să luăm în considerare faptul că un concept mare ca acesta poate avea și dezavantaje. Cea mai mare și cea mai importantă problemă pe care o putem găsi în IoT putem spune că este securitatea. Cu câteva miliarde de dispozitive conectate între ele, ce putem face cu toții pentru a ne asigura că informațiile noastre personale rămân în siguranță? Trebuie să ne întrebăm dacă cineva va putea să se conecteze la toasterul nostru și, astfel, va avea acces la întreaga rețea.

Cert este faptul că IoT deschide, pentru companii din întreaga lume mai multe amenințări la adresa securității. Apoi avem problema confidențialității și schimbului de date. Acesta este un subiect fierbinte, așa că nu ne putem imagina decât cum vor crește preocupările atunci când vorbim despre multe miliarde de dispozitive conectate.

O altă problemă cu care se vor confruntă în mod special multe companii este legată de cantitățile masive de date pe care le vor produce toate aceste dispozitive. Companiile trebuie să găsească o modalitate de stocare, urmărire, analiză și sumarizare a vastelor date ce vor fi generate.

Capitolul 3. Blynk în IoT

3.1. Despre Blynk

Blynk este o aplicație platformă de analiză ce a fost proiectată pentru Internet of Things și API (Application Programming Interface – interfață de programare a aplicației) pentru stocarea și preluarea datelor de la dispozitive IoT. Cu ajutorul platformei Blynk se poate controla hardware-ul de la distanță, se pot afișa datele senzorilor, se pot vizualiza sau stoca date și se pot crea aplicații mobile de conectare la senzori și o rețea de obiecte cu actualizări automate de stare [9].

Există trei componente importante disponibile în platformă:

Aplicația Blynk – permite utilizatorilor să creeze interfețe personalizate pentru proiectele IoT folosind diverse widgeturi disponibile. Este un constructor de aplicații drag-and-drop, simplu de utilizat, care vine cu un pachet de funcții IoT cum ar fi: vizualizarea și reprezentarea grafică a datelor colectate de la senzori, controlul releelor, motoarelor sau altor aparate electrice, generarea de notificări push sau trimitere de email-uri pentru atenționarea atingerii anumitor valori setate de utilizator.

Blynk Server – serverul este responsabil pentru toate comunicațiile dintre smartphone și hardware utilizându-se serviciile de Cloud Blynk sau serverul privat Blynk local. Este un server Java Open Source responsabil pentru trimiterea mesajelor între aplicația mobilă Blynk și diverse plăci de microcontrolere (adică Arduino, Raspberry Pi, NodeMCU ș.a.) ce poate gestiona cu ușurință mii de dispozitive și poate fi lansat chiar pe un sistem Raspberry Pi.

Bibliotecile Blynk – sunt disponibile pentru toate platformele hardware populare și permit comunicarea cu serverul pentru prelucrarea tuturor comenzilor de intrare și de ieșire necesare comunicării cu diverse obiecte IoT. Biblioteca Blynk este o extensie (pentru C++, C#, JavaScript, Python, MicroPython, API RESTful HTTP, Node.js, Lua, ș.a.) care rulează la nivelul superior aplicației hardware. Gestionează toate rutinele de conectare și schimbul de date între hardware-ul utilizat, Blynk Cloud și proiectul de aplicații creat de utilizator [9].

Figura 11 Server Blynk

Explicând prescurtat modul de funcționare al platformei Blynk, de fiecare dată când este apăsat un buton în aplicația mobilă Blynk pentru implementarea unei operații dorite de utilizator, mesajul preluat de buton este transmis și ajunge în spațiul Blynk Cloud, de unde este direcționat către hardware-ul obiectului IoT destinație în vederea execuției instrucțiunii solicitate. Modul în care acționează în sens invers este asemănător și totul se întâmplă la fel de rapid precum o clipire a ochilor.

Pentru a utiliza și crea noi aplicații mobile folosind platforma Blynk vom avea nevoie de următoarele resurse :

1. Hardware – microcontrolere Arduino, Raspberry Pi, NodeMCU sau un kit de dezvoltare similar. Blynk lucrează utilizând Internetul, aceasta înseamnă că hardware-ul folosit ar trebui să se poată conecta la Internet. Unele dintre plăci, cum ar fi Arduino Uno, vor avea nevoie de un Ethernet sau Wi-Fi Shield pentru a comunica, altele sunt deja conectate la Internet: precum ESP8266, Raspberri Pi cu dongle WiFi, Particul Photon sau SparkFun Blynk Board. Dar chiar dacă nu este folosită o plăcuță de dezvoltare cu conectare la Internet, există disponibilă varianta de conectare prin USB la un laptop sau desktop.

2. Smartphone – Aplicația Blynk este un constructor de interfață ce funcționează pe sistemele de operare iOS și Android (cerințele minime fiind versiunea iOS 9 și Android versiunea 4.2).

3. Conexiune Internet – pentru a conecta hardware-ul la Internet, se pot alege aproape orice modul cu conectare integrată, fie module externe de conectare, conectivitatea acceptată fiind una dintre cele menționate mai jos :

• Wifi

• Ethernet

• Celular (GSM, 2g, 3g, 4g, LTE)

• Serial

• USB prin computer

• Bluetooth (BETA)

Pentru a conecta hardware-ul online și la Blynk Cloud, este necesar un token de autentificare a dispozitivului obținut după descărcarea aplicației și generat pentru fiecare dispozitiv [9].

3.2. Operațiile principale ale Blynk

3.2.1 Transferul datelor cu ajutorul pinilor virtuali

Blynk poate controla direct pinii de Intrare / Ieșire digitali și analogi direct pe hardware. Au fost creați pinii virtuali ce sunt folosiți pentru a trimite orice date de la microcontroler în aplicația Blynk și invers, astfel orice va fi conectat la hardware-ul utilizat va putea comunica cu Blynk. Cu pinii virtuali datele trimise din aplicație pot fi prelucrate pe microcontroler și apoi retrimise înapoi la smartphone, în acest fel existând posibilitatea declanșării unei funcții, citirii dispozitivelor I2C, convertirii valorilor, controlării servo și motoare cu curent continuu etc. Pinii virtuali pot fi folosiți pentru a interfața cu bibliotecile externe (Servo, LCD și altele) și pentru a implementa funcționalități personalizate. Dispozitivul poate trimite date către aplicație folosind Blynk.virtualWrite (pin, valoare) și poate primi date din aplicație folosind BLYNK_WRITE (vPIN) [9].

Exemplu de cod pentru trimitere date de la hardware către widget prin pinul virtual:

// Trimiterea unui șir de caractere

Blynk.virtualWrite ( pinul, "abcd" );

// Trimiterea unui număr întreg

Blynk.virtualWrite ( pinul, 1234 );

// Trimiterea unui număr real

Blynk.virtualWrite ( pinul, 123.45 );

// Trimiterea valorilor multiple asemenea unui vector

Blynk.virtualWrite ( pinul, "hey", 1234, 123.45 );

// Trimiterea valorilor RAW

Blynk.virtualWrite ( pinul, buffer, lungime );

3.2.2 Transferul datelor de la aplicație la hardware

Pot fi trimise orice date de la widget-uri din aplicație către hardware, toate controlerele widget-ului (butoane, slider, timere, joystick) fiind capabile să trimită date către pinii virtuali ai hardware-ului aferent proiectului dezvoltat. În exemplul de mai jos este prezentat cum pot fi obținute informații de la un buton dintr-o aplicație widget :

BLYNK_WRITE(V1) // Butonul widget-ului va scrie în pinul V1

{

int pinData = param.asInt();

}

În momentul în care butonul va fi apăsat, aplicația Blynk va trimite 1, iar la următoarea apăsare va trimite 0.

Unele controlere (de exemplu joystick) au mai multe ieșiri, acestea putând fi scrise pe pinii virtuali ca o serie de valori (vector), din partea hardware-ului putând fi obținute oricare elemente ale tabloului ca în exemplul de mai jos:

BLYNK_WRITE(V1) // widget-ul va scrie în pinul V1

{

int a = param[0].asInt(); // preluarea primei valori a vectorului

int b = param[1].asInt(); // preluarea celei de-a doua valori a vectorului

int c = param[N].asInt(); // preluarea valorii N a vectorului

}

3.2.3 Preluarea datelor de la hardware

Există 2 moduri de preluare a datelor de la hardware și transfer al acestora către aplicația widget utilizând pinii virtuali:

Solicitări efectuate de către aplicația widget – va fi utilizată frecvența de citire încorporată în Blynk în timp de aplicația este activă setând parametrul frecvența de citire la un anumit interval:

Figura 12 Preluare date Blynk

// Widgetul din aplicație citește pinul virtual V3 cu o anumită frecvență

BLYNK_READ(V3)

{

Blynk.virtualWrite(3, millis() / 1000) ; // Această instrucțiune scrie timpul de

// preluare din Arduino în secunde pe pinul V3

}

Încărcarea datelor din hardware

Figura 13 Încarcare date Blynk

Dacă este necesară preluarea datelor unui senzor sau a altor date din hardware în aplicația widget, atunci poate fi folosită pentru scriere o logică aleasă de utilizator și este necesară setarea frecvenței de preluare a datelor. Orice comandă trimisă de către hardware în Blynk Cloud este stocată automat pe server, iar preluarea informațiilor va fi realizată fie prin widget-ul History Graph, fie folosind API-ul HTTP. Este recomandată trimiterea datelor la anumite intervale și să fie evitată astfel situația în care să se ajungă la o suprasolicitare datorată fluxului mare de date primite de la hardware într-un anumit moment. Pot fi utilizate de asemenea pentru aceasta și timere-le BlynkTimer [9].

3.2.4 Sincronizarea stărilor

Pentru Hardware – Dacă hardware-ul utilizat pierde conexiunea la Internet sau se resetează, valorile pot fi restaurate din aplicația Blynk.

Comanda Blynk.syncAll () restabilește toate valorile widget-ului pe baza ultimelor valori salvate pe server, toate stările de pini analogi sau digitali vor fi restaurate. Fiecare pin virtual va efectua evenimentul BLYNK_WRITE. Însă, dacă pinul este gol și nu a fost inițializat, atunci hardware-ul nu va primi niciun răspuns pentru acel pin în timpul sincronizării. De asemenea, se poate actualiza o singură valoare a unui pin virtual, apelând Blynk.syncVirtual (V0) sau mai mulți pini cu Blynk.syncVirtual (V0, V1, V2, …). Se poate utiliza serverul pentru a stoca orice valoare fără a utiliza widgetul, apelând doar Blynk.virtualWrite (V0, valoare). [9]

Pentru aplicație – Dacă trebuie menținută sincronizarea hardware-ului cu aplicația widget, chiar dacă aplicația este offline, atunci va fi utilizat Blynk.virtualWrite. Dacă ne imaginăm că avem un led widget conectat la pinul virtual V1 din aplicație și un buton fizic atașat hardware-ului, atunci când apăsăm butonul fizic ne așteptăm să vedem starea actualizată a led-ului widget în aplicație. Pentru a ajunge la acest rezultat, va trebui apelată Blynk.virtualWrite (V1, 255) atunci când este apăsat butonul fizic. [9]

3.3 Widget-uri

3.3.1 Clasificare și parametrii

Widget-urile sunt module de interfață. Fiecare dintre acestea îndeplinește o funcție specifică de intrare / ieșire atunci când comunică cu hardware-ul.

Există 4 tipuri de widget-uri:

Controlere – utilizate pentru a trimite comenzi care controlează hardware-ul;

Afisaje – utilizate pentru vizualizarea datelor de la senzori și alte surse;

Notificări – trimiterea mesajelor și notificărilor;

Interfață – widget-uri pentru a îndeplini anumite funcții GUI;

Altele – widget-uri care nu aparțin niciunei categorii menționate mai sus;

Fiecare widget are setările proprii, unele dintre acestea (de exemplu Bridge) activează doar funcționalitatea și nu au nicio setare. [9]

Setări comune pentru widget:

Selectorul de pini – acesta este unul dintre principalii parametri ce vor trebui setați și definește ce pin să controleze sau să citească:

1. Pini digitali – reprezintă pinii fizici digitali de Input / Output existenți pe hardware. Pinii activi PWM sunt marcați cu simbolul ~ ;

2. Pini analogi – reprezintă pinii fizici analogi de Input / Output existenți pe hardware;

3. Pinii virtuali – acești pini nu au reprezentare fizică și sunt utilizați pentru a transfera orice date între aplicația Blynk și hardware-ul utilizat;

Figura 14 Selector Pini Blynk

Data Mapping (Maparea datelor)

În cazul în care se dorește maparea valorilor primite pe un anumit interval, se va utiliza butonul de mapare:

Figura 15 Data Mapping Blynk

Să presupunem că senzorul utilizat trimite valori de la 0 la 1023. Dar se dorește afișarea valorilor într-un interval definit de la 0 la 100 în aplicație și se va activa Mapping Data, valoarea de intrare 1023 va fi mapată la 100.

Split / Merge

Unele dintre Widgeturi pot trimite mai mult de o valoare și acest comutator va controla cum vor fi trimise aceste valori.

Split: Fiecare dintre parametri este trimis direct la pinul hardware-ului utilizat (de exemplu D7). În acest mod sunt trimise mai multe comenzi de la un widget, ceea ce poate reduce performanța hardware-ului ( exemplu: un widget Joystick setat pe pinii D3 și D4 va trimite 2 comenzi pe Internet:

digitalWrite(3, value);

digitalWrite(4, value);

Merge: Când este selectat modul Merge va fi trimis doar un mesaj, constând dintr-o serie de valori ce va trebui analizat pe hardware. Acest mod poate fi utilizat doar cu pini virtuali.

Decimals ( Zecimale ) – Definește câte zecimale doriți să fie afișate atunci când mutați un glisor. Când se alege „Fracțiune”, glisorul va trimite numai valori întregi fără zecimale. „1 cifră” înseamnă că valorile vor arăta ca 1.1, 1.2,…, 2.0 etc. [9]

3.3.2. Controlere Blynk

Buton

Butonul funcționează în moduri push sau switch. Permite trimiterea valorilor ON și OFF (LOW / HIGH). Butonul trimite 1 (High) la apăsare și 0 (Low) la eliberare.

Figura 16 Buton Blynk

Slider

Similar cu potențiometrul, slider-ul permite trimiterea valorilor între un interval Minim / Maxim dat.

Figura 17 Slider Blynk

Timer (Temporizator)

Temporizatorul declansează acțiuni la un moment specificat chiar dacă smartphone-ul și aplicația sunt offline. Timpul de pornire trimite 1 (HIGH). Timpul de oprire trimite 0 (LOW).

Widgetul cronometru se bazează pe ora serverului și nu cea setată în telefon, iar uneori cele două pot să difere dacă nu sunt sincronizate.

Figura 18 Timer Blynk

Joystick

Joystick-ul controlează mișcări servo în 4 direcții (sus-jos-stânga-dreapta).

Figura 19 Joystick Blynk

3.3.3. Afișaje Blynk

Afișaje valori – afișează datele primite

Figura 20 Afișaje Blynk

Afișaje etichete – Afișează datele primite într-un mod de formatare, fiind o versiune mai bună a afișajelor de valori, unde se pot adăuga sufixe și prefixe din aplicație, fără cod suplimentar în hardware.

Figura 21 Afișaje Etichete Blynk

Opțiuni de formatare pentru afișaje etichete – de exemplu dacă senzorul trimite o valoare 15.6789 aplicației Blynk, opțiunile de formatare următoare sunt acceptate:

/ pin/ – afișează valoarea fără formatare (15.6789)

/pin./ – afișează valoarea rotunjită fără partea zecimală (16)

/pin.#/ – afișează valoarea cu o cifră zecimală rotunjită (15.7)

/pin.##/ – afișează valoarea cu două zecimale rotunjite (15.68)

LED

Un LED este un element simplu iluminat sau nu pentru indicarea stării. Trebuie să fie trimisă valoarea 0 pentru a stinge LED-ul și 255 pentru a-l porni. Sau poate fi utilizat API-ul Blynk așa cum este descris mai jos:

Widget LED led1 (V1); // atașarea led-ului la pinul virtual V1

led1.off ();

led1.on ();

Toate valorile cuprinse între 0 și 255 vor schimba luminozitatea LED-ului:

Widget LED2 (V2);

led2.setValue (127); // setarea luminozității LED-ului la 50%.

Gauge – etalon măsură standard

Permite afișarea vizuală a valorilor numerice.

Figura 22 Gauge Blynk

Opțiuni de formatare – de exemplu dacă senzorul trimite o valoare 15.6789 aplicației Blynk, opțiunile de formatare următoare sunt acceptate:

/ pin/ – afișează valoarea fără formatare (15.6789)

/pin./ – afișează valoarea rotunjită fără partea zecimală (16)

/pin.#/ – afișează valoarea cu o cifră zecimală rotunjită (15.7)

/pin.##/ – afișează valoarea cu două zecimale rotunjite (15.68)

LCD

Acesta este un afișaj LCD obișnuit de 16 * 2 pentru care trebuiesc utilizate comenzi speciale:

lcd.print (x, y, "Mesajul de trimis");

În acest caz x este o poziție simbol (de la 0 la 15), iar y este un identificator de linie (0 sau 1).

lcd.clear ();

Figura 23 LCD Blynk

SuperChart

SuperChart este utilizat pentru a vizualiza date live sau istorice. Poate fi utilizat pentru datele senzorilor, pentru înregistrarea de evenimente binare și multe altele. Pentru a utiliza widgetul SuperChart, vor trebui încărcate datele din hardware cu intervalul dorit folosind timere. [9]

Figura 24 SuperChart Blynk

3.3.4. Notificări

Twitter

Widget-ul Twitter conectează contul utilizatorului de Twitter la Blynk și va permite acestuia să trimită Tweet-uri de pe hardware-ul utilizat la dezvoltarea proiectului.

Limitările sunt legate de restricția de a trimite 2 tweet-uri cu același mesaj (aceasta fiind politica Twitter), fiind permis doar un tweet la 5 secunde.

Exemplu de cod:

Blynk.tweet ("Arduino-ul meu poate să trimită tweet acum!"); [9]

Email

Widget-ul Email permite să fie trimise e-mailuri de pe hardware la orice adresă.

Exemplu de cod:

Blynk.email ("exemp_email@gmail.com", "Subiect email", "Mesajul merge aici");

Conține, de asemenea, câmpul către (TO). Cu acest câmp, se va putea defini destinatarul pentru e-mail în aplicație. Se va putea omite acest câmp atunci când se dorește trimiterea unui e-mail la adresa de e-mail de conectare a aplicației Blynk:

Blynk.email („Subiect”, „Mesajul merge aici”);

Email-urile pot fi trimise fie în format text / html, fie text / simplu (unii clienți nu acceptă e-mail text / html), iar acest tip de conținut de e-mail poate fi modificat în setările widget-ului Email.

Limitările constau în următoarele:

Adresa de e-mail + subiectul + lungimea mesajului trebuie să fie de maxim 120 de caractere. Cu toate acestea, se poate crește această limită dacă este necesar adăugând #define BLYNK_MAX_SENDBYTES XXX la schița creată, în cazul acesta XXX reprezintă lungimea maximă a email-ului. De exemplu pentru ESP, se va putea seta această lungime maximă la 1500 :

#define BLYNK_MAX_SENDBYTES 1500.

Este permisă trimiterea unui singur email într-un interval de 5 secunde

În cazul în care este utilizat Gmail pe serverul local, limita este de 500 de email-uri pe zi (prin Google). Alți furnizori pot avea limitări similare.

Utilizatorul este limitat la 100 de mesaje pe zi în Cloud Blynk; [9]

Notificări Push

Widgetul notificare Push permite să fie trimise notificări push de pe hardware pe dispozitivul mobil. În prezent conține și 2 opțiuni suplimentare:

Notifică atunci când hardware-ul este offline – se va primi notificare push în cazul în care hardware-ul a fost deconectat.

Perioada de ignorare offline – definește cât timp hardware-ul ar putea fi offline (după ce a fost deconectat) înainte de a trimite notificarea. În cazul în care depășește perioada atunci va fi trimisă notificarea „hardware offline”. Nu veți primi nicio notificare în cazul în care hardware-ul a fost reconectat în intervalul specificat.

Prioritatea ridicată – oferă mai multe șanse ca mesajul să fie livrat fără întârzieri. Totuși, prioritatea mare are un dezavantaj deoarece contribuie mai mult la descărcarea bateriei în comparație cu mesajele cu prioritate normală.

Limitări :

Lungimea maximă admisă a corpului este de 120 de caractere;

Fiecare dispozitiv poate trimite doar o notificare la fiecare 5 secunde; [9]

Capitolul 4. Introducere în microcontrolere

Un microcontroler este o structură electronică destinată controlului automat al unui proces fără a fi necesară intervenția externă. Un microcontroler este de fapt un microcircuit care încorporează o unitate centrală (CPU) și o memorie, împreună cu resurse care-i permit interacțiunea cu mediul exterior.

Primele controlere au fost realizate în tehnologii pur analogice, folosind componente electronice discrete și / sau componente electromecanice (de exemplu relee). Cele care fac apel la tehnica numerică modernă au fost realizate inițial pe baza logicii cablate (cu circuite integrate numerice standard ) și a unei electronici analogice uneori complexe, motiv pentru care "străluceau" prin dimensiuni mari, consum energetic pe măsură și, nu de puține ori, o fiabilitate care lăsa de dorit.

Apariția și utilizarea microprocesoarelor de uz general a dus la o reducere consistentă a costurilor, dimensiunilor, consumului și o îmbunătățire a fiabilității. Dezvoltarea tehnologiilor de fabricare a făcut posibil ca majoritatea componentelor necesare pentru astfel de structuri să fie încorporate ( integrate) într-un singur circuit integrat (cip).

Un microcontroler (sau MCU – Micro-Controller Unit) reprezintă un sistem de calcul complet integrat într-un cip. Accentul este pus pe reducerea dimensiunii și consumului de energie și pe obținerea costurilor de producție cât mai scăzute. Sunt utilizate în sisteme încorporate și au performanțe mai mici decât microprocesoarele de uz general, dar microcontrolerele au memoria și interfețele necesare integrate în cip. Performanța, capacitatea de memorie și tipul de interfețe sunt determinate de tipul de aplicație pentru care este MCU destinat.

În cele mai multe cazuri, un microcontroler are următoarele blocuri funcționale:

Unitate Centrală de Procesare (Central Processing Unit – CPU).

Oscilatorul bloc intern pentru ceasul sistemului (generator de tact).

Memorii de sistem (de tip ROM / PROM / EPROM / FLASH).

Sistem de întreruperi și excepții.

Bloc de intrare / ieșire (porturi digitale paralele).

Porturi seriale sincrone și asincrone.

Sisteme de cronometre (timere) / contoare programabile pentru gestionarea timpului.

Figura 25 Microcontroler

În plus față de aceste blocuri, diverse sisteme pot include și următoarele: intrări multiple analogice-digitale, convertoare analog-digitale cu ieșiri PWM (Pulse width modulation – modulația lățimii pulsului), cronometre de veghe și altele.

Un microcontroler este capabil să efectueze operațiuni pe biți și să acceseze rapid porturile directe de intrare / ieșire și să trateze eficient și în timp real evenimente externe (comutatoare sau semnale de la periferice).

4.1 Aplicații ale microcontrolerelor

Microcontrolerele sunt utilizate într-o varietate de domenii care necesită controlul automat al unui sistem. Industria auto este unul dintre cele mai importante domenii care au contribuit la dezvoltarea microcontrolerelor. Sunt utilizate în această zonă pentru blocuri simple de control (iluminare) dar și pentru operațiuni complexe care asigură siguranța pasagerilor (controlul puterii motorului, control pentru urmărirea drumului, aer condiționat și blocare centrală). În prezent, o mașină deține rețele de zeci de microcontrolere care cooperează eficient pentru controlul acesteia.

Un alt domeniu important în care sunt folosite microcontrolerele este industria aeronautică dar și sectorul militar, unde sunt utilizate prin integrarea dispozitivelor de măsurare, senzori, senzori inteligenți.

Microcontrolerele sunt utilizate prin încorporare în diverse aparate, telefoane, camere digitale, cititoare, carduri etc. Practic suntem înconjurați de dispozitive care folosesc microcontrolere.

4.2 Clasificarea microcontrolerelor

În prezent, există un număr extrem de mare de tipuri constructive de microcontrolere, unul dintre criteriile de clasificare ce poate fi considerat important fiind lungimea (dimensiunea) cuvântului de date. În funcție de puterea de calcul necesară și alte caracteristici pot fi selectate diferite tipuri având dimensiunea cuvântului de date de 4, 8, 16, 32 biți sau 64 biți. Nu este necesar ca dimensiunea cuvântului de date să fie egală cu dimensiunea unui cuvânt mașină (program de cuvinte). [13]

"Un sistem este un mod de lucru, de organizare sau de realizare a uneia sau a mai multor sarcini în conformitate cu un plan, program sau set de reguli fixe. Un sistem este, de asemenea, un aranjament în care toate unitățile se reunesc pentru a lucra conform planului." [13]

O întrebare care apare imediat după această definiție este: "Ce este un sistem integrat?" Există diverse definiții ale sistemelor integrate și este foarte dificil să alegem una, deoarece din punctul meu de vedere nu există una perfectă. Dar printre toate descrierea cea mai elegantă a sistemelor încorporate este definiția lui Wayne Wolf „Un sistem integrat este un sistem informatic, altul decât un computer cu scop general. [14]

Pare destul de simplă la prima vedere această definiție, dar în ea este fundamentul sistemelor încorporate (embedded systems) deoarece sunt mai limitate în funcționalitate hardware și / sau software decât un computer personal (PC). În ceea ce privește limitările hardware, acest lucru poate însemna limitări ale performanței de procesare, limitări ale consumului de energie, ale memoriei, funcționalității hardware și altele. În software, de obicei, limitările se referă la existența de aplicații mult mai simple, mai puține aplicații, fără sistem de operare, cu un sistem de operare limitat sau mai puțin cod la nivel de abstractizare. Dar această definiție nu este în întregime adevărată, deoarece plăcile hardware și software-ul din zilele noastre (pe care îl putem găsi în mod obișnuit în sistemele de computer personal) au fost implementate în sisteme integrate mai complexe.

Un sistem integrat (încorporat) este o combinație de software cu hardware care creează un sistem de calcul dedicat care îndeplinește o funcție specifică într-un mecanism mecanic sau electric, de multe ori cu constrângeri de calcul în timp real. Spre deosebire de un computer cu scop general (cum ar fi un computer personal), un sistem încorporat este proiectat pentru a satisface o mare varietate de nevoi.

De ce au fost necesare sisteme integrate în automobile? A fost nevoie de implementarea acestora datorită funcționalității lor complexe prin care pot realiza o gamă largă de funcții și pot efectua operațiuni în timp real. Un alt avantaj care a contribuit la implementarea lor este costul mic de fabricație și consumul redus.

Sistemele încorporate pot fi utilizate pentru a implementa de la funcționalitatea reglării suspensiei în funcție de condițiile de drum până la sistemele de frânare anti-blocare (ABS) și sistemele de siguranță.

Un exemplu de sistem de calcul integrat într-o mașină este ECU (Electronic Control Unit) care controlează unul sau mai multe dintre sistemele sau subsistemele electrice dintr-un vehicul. În zilele noastre există modele auto care au sute de ECU încorporate, utilizate pentru economisirea energiei, conținut redus de carbon, siguranță (activă și pasivă) și, de asemenea, pentru confort și divertisment.

Figura 26 Mașină autonomă

Capitolul 5. Mediul de dezvoltare Arduino

5.1 Arduino IDE (Integrated Development Environment)

Mediul de dezvoltare Arduino conține un editor de text pentru scrierea codului, o zonă de mesaje, o consolă de text, o bară de instrumente cu butoane pentru funcții comune și o serie de meniuri. Se conectează la hardware-ul Arduino pentru a încărca programe și a comunica cu acestea. Software-urile scrise folosind Arduino se numesc schițe (sketches). Aceste schițe sunt scrise în editorul de text, apoi sunt salvate cu extensia de fișier .ino. Editorul de text are caracteristici pentru tăierea / lipirea și pentru căutarea / înlocuirea textului. Zona de mesaje oferă feedback în timpul operațiunilor de salvare, exportare și afișează, de asemenea, erori. Consola afișează textul trimis către mediul Arduino, inclusiv mesaje complete de eroare și alte informații. Colțul din dreapta jos al ferestrei afișează placa curentă și portul serial. Butoanele barei de instrumente permit verificarea și încărcarea programelor, crearea, deschiderea și salvarea schițelor și deschiderea monitorului serial. [11]

Figure 27 Arduino IDE

Mediul Arduino folosește conceptul de caiet de schițe definit ca un loc standard pentru a stoca programele (sau schițele). Schițele din caietul de schițe pot fi deschise din meniul File > Sketchbook sau accesând butonul Open din bara de instrumente. Prima dată când este executat software-ul Arduino, se va crea automat un director pentru caietul de schițe. Se poate vizualiza sau modifica locația caietului de schițe din meniul Preferințe. Începând cu versiunea 1.0, fișierele sunt salvate cu o extensie de fișier .ino. Versiunile anterioare folosesc extensia .pde, însă se pot deschide fișierele numite .pde și în versiunea 1.0 sau alte versiuni ulterioare, iar software-ul va redenumi automat extensia fișierului în .ino. [11]

Înainte de a încărca schița, trebuie selectate elementele corecte din meniurile Tools > Board și Tools > Serial Port. Pentru Windows portul serial este COM1 sau COM2 (pentru o placă serial) sau COM4, COM5, COM7 sau mai mare (pentru o placă USB) – pentru a afla exact, se căută un dispozitiv USB în secțiunea porturi din Windows Device Manager.

După ce a fost selectat portul serial și placa corectă, se va apăsa butonul de încărcare (Upload) din bara de instrumente sau se selectează elementul Încărcare (Upload) din meniul Fișier (File). Plăcile Arduino curente se vor reseta automat și vor începe încărcarea. Cu plăci mai vechi (pre-decimale) care nu au implementată resetarea automată, va trebui apăsat butonul de resetare de pe placă chiar înainte de a începe încărcarea. Pe majoritatea plăcilor, se pot vedea LED-urile RX și TX clipind pe măsură ce schița este încărcată. Mediul Arduino va afișa un mesaj când încărcarea este completă sau va afișa o eroare. [11]

La încărcarea unei schițe, se utilizează un mic program de încărcare Arduino (Arduino boot loader) care a fost salvat în microcontroler din fabrică și va permite să fie încărcat codul fără a utiliza hardware suplimentar. Arduino boot loader este activ pentru câteva secunde atunci când placa se resetează, apoi începe să ruleze schița ce a fost încărcată cel mai recent în microcontroler. La pornirea acestuia va începe aprinderea intermitentă a LED-ului de control – pinul 13 (adică la resetarea plăcii).

Capitolul 6. Componente hardware ale proiectului

Microcontrolere

Releu pentru circuit

Senzori

Ecran LCD

Lista elementelor controlate de sistem

Apa

Gaze

Temperatura, umiditatea și puritatea aerului

6.1 Microcontrolere

6.1.1 Microcontroler – Modulul NodeMCU

Figura 28 Modulul NodeMCU

NodeMCU este o platformă IoT open source cu costuri reduse. Termenul "NodeMCU" combină "Node" (nodul) cu "MCU" (unitate de micro-controler) și se referă mai mult la firmware decât la kiturile de dispozitiv. Firmware-ul folosește limbajul de script LUA ce se bazează pe proiectul eLua fiind creat pe Espressif Non-OS SDK pentru ESP8266.

NodeMCU a fost creat la scurt timp după apariția ESP8266, un microchip Wi-Fi integrat cu costuri reduse, cu o stivă completă TCP / IP și capacitate de microcontroler cu un nucleu Tensilica Xtensa LX106, produs de Espressif Systems în Shanghai, China, utilizat pe scară largă în aplicațiile IoT. [15]

NodeMCU a fost lansat pe 13 octombrie 2014, când Hong a publicat primul dosar de nod-mcu-firmware către GitHub. La doar două luni mai târziu, proiectul s-a extins pentru a include și o platformă open-hardware. Mai târziu în acea lună, Tuan PM a portat biblioteca client MQTT de la Contiki pe platforma SoC ESP8266 și s-a angajat la proiectul NodeMCU, iar de atunci NodeMCU a putut suporta protocolul MQTT IoT, folosind LUA pentru a accesa brokerul MQTT. O altă actualizare importantă a fost implementată în 30 ianuarie 2015, când Devsaurus a portat U8glib ( Universal Graphics Library for 8 Bit Embedded Systems ) la proiectul NodeMCU, permițând NodeMCU să comunice cu afișaje LCD, OLED și VGA.

În vara anului 2015, creatorii au abandonat proiectul firmware și un grup de contribuabili independenți, dar dedicați l-au preluat, iar până în vara anului 2016, platforma NodeMCU includea mai mult de 40 de module diferite . [15]

Proiectul NodeMCU își propune să simplifice dezvoltarea ESP8266 și are două componente cheie:

• Un firmware open source ESP8266 care este construit pe partea superioară a SDK-ului proprietar al producătorului. Firmware-ul oferă un mediu de programare simplu bazat pe eLua (încorporat Lua)

• Placa DEVKIT care încorporează cipul ESP8266 pe o placă de circuit standard. Placa are un port USB încorporat, care este deja conectat cu cipul, un buton de resetare hardware, antena Wi-Fi, lumini LED și pin-uri GPIO (General Purpose Input Output) de dimensiuni standard care se pot conecta la o placă de dezvoltare . [15]

NodeMCU oferă o experiență importantă și accesibilă pentru toți dezvoltatorii IoT:

• ADC: suport pentru măsurarea intrării analogice (nivelul tensiunii) pe pinul A0 al plăcii NodeMCU

• HTTP: suport pentru scrierea codului pentru gestionarea cererilor HTTP

• SSL / TLS: Suport pentru conexiuni securizate HTTPS

• MQTT: Suport pentru protocolul MQTT pentru a trimite date către alte dispozitive sau servere folosind un model de publicare / abonare prin TCP / IP

• Socket Web: o bibliotecă utilă pentru a accesa servicii web bazate pe soclu web

• DHT: o bibliotecă utilă pentru a citi datele din familia DHT de senzori de mediu

• NodeMCU este modulul ideal pentru a fi utilizat în proiecte pentru Internet of Things, deoarece combină conectivitatea Wi-Fi cu versatilitatea unei placi Arduino

• Are 9 pini digitali pentru intrare și ieșire, dintre care 8 pini sunt pentru PWM și o intrare este pentru analog

• Pentru placa NodeMCU avem cipuri ESP8266 care rulează la 26 Mhz și are flash 4 MB și 160 KB RAM

Conectarea la Internet

SDK-ul aferent NodeMCU conține un modul HTTP pentru a face solicitări HTTP pe Internet. Când este construit firmware-ul NodeMCU, vor trebui selectate opțiunile HTTP pentru a include acest modul. În funcția de apelare, argumentul de cod este valoarea de retur HTTP (de exemplu, 200 indică succesul și 404 indică faptul că adresa URL nu este accesibilă), iar argumentul de date este conținutul din mesajul de răspuns HTTP.

Accesarea pinilor GPIO

Pinii de intrare / ieșire generală (GPIO – General Purpose Input Output) sunt pini digitali pe placa NodeMCU Devkit. Fiecare pin poate avea doar două stări: o stare de joasă tensiune și o stare de înaltă tensiune, reprezentate prin valorile 0 și respectiv 1. Din aplicația NodeMCU LUA, va putea fi citită starea din fiecare pin, apoi va putea fi setată această stare.

Citirea semnalelor analogice

În timp ce pinii GPIO sunt pini digitali, unii senzori IoT trimit date ca semnale analogice. Adică tensiunea cablului de intrare reprezintă datele. De exemplu, nivelul real de tensiune de la un senzor de temperatură poate indica citirea temperaturii. Pe placa NodeMCU DEVKIT, pinul A0 poate funcționa ca un pin ADC (Analog to Digital Convertor). Când un fir de intrare este conectat la A0, nivelul său de tensiune între 0 și 3.3V va fi convertit la un număr întreg între 0 și 1024.

Pinul ADC poate converti tensiunea doar de la 0 la 3.3V. Dacă senzorul produce o tensiune analogică în afara acestui interval (cum ar fi de la 0 la 5V), va trebui adăugată o rezistență între firul de intrare și pinul A0. Este ușor să fie adăugat acest rezistor atunci când se conectează placa NodeMCU Devkit pe o placă de dezvoltare breadboard.

6.1.2 Microcontroler – Modulul de dezvoltare UNO R3 ATmega328p

Figura 29 Modulul UNO R3 ATmega328p

Placa de dezvoltare UNO R3 ATmega328p are următoarele caracteristici:

• Microcontroler: ATmega328p
• USB Chip: CH340G
• Operating Voltage: 5V
• Input Voltage (recomandat): 7-9V
• Input Voltage (limite absolute): 6-12V
• Digital I/O Pins: 14 (dintre care 6 sunt utilizați pentru ieșiri PWM)
• Pini de intrare Analogici: 6
• DC Current per I/O Pin: 40 mA
• DC Current for 3.3V Pin: 50 mA
• Flash Memory: 32 KB (ATmega328) dintre care 0.5 KB sunt folosiți de către bootloader
• SRAM: 2 KB (ATmega328)
• EEPROM: 1 KB (ATmega328)
• Clock Speed: 16 MHz

Pentru comunicarea USB placa folosește chipul CH340g.

ATmega328P este un microcontroler de 8 biți cu putere redusă bazat pe arhitectură RISC îmbunătățită. Executând instrucțiuni puternice într-un singur ciclu de ceas, realizează randamente care se apropie de 1 MIPS pe MHz permițând proiectantului de sistem să optimizeze consumul de energie versus viteza de procesare.

Figura 30 Schema bloc ATMega328

Nucleul AVR combină un set de instrucțiuni cu 32 de regiștri de lucru cu scop general. Toți cei 32 de regiștri sunt conectați direct la unitatea logică aritmetică (ALU), permițând accesarea a doi regiștri independenți într-unul singur, instrucțiune unică executată într-un singur ciclu de ceas. Arhitectura rezultată este mai eficientă deoarece se realizează randamente de până la zece ori mai rapide decât microcontrolerele CISC convenționale. [12]

ATmega328P are următoarele caracteristici: 32 Kbytes de sistem Flash programabil cu capacități de citire-scriere, 1 Kbyte EEPROM, 2 Kbytes SRAM, 23 linii Input / Output de uz general, 32 de regiștri de lucru pentru uz general, trei cronometre / contoare flexibile cu moduri de comparare, întreruperi interne și externe, un USART programabil în serie, o interfață serială cu 2 fire orientată pe octeți, un port serial SPI, un ADC pe 6 canale de 10 biți (8 canale în pachetele TQFP și QFN / MLF), un programabil Watchdog Timer cu oscilator intern și cinci moduri selectabile software de economisire a energiei. [12]

Modul inactiv oprește CPU în timp ce permite SRAM, temporizatorului / contoarelor, USART, interfață serială cu 2 fire, port SPI și întreruperilor sistem să continue să funcționeze. Modul Power-down salvează conținutul registrului, dar blochează oscilatorul, dezactivând toate celelalte funcții ale cipului până la următoarea întrerupere sau până la resetarea hardware-ului. În modul Economisire energie, cronometrul asincron continuă să ruleze, permițând utilizatorului să mențină o bază de cronometru în timp ce restul dispozitivului este adormit. Modul de reducere a zgomotului ADC oprește CPU și toate modulele Input / Output, cu excepția temporizatorului asincron și ADC, pentru a minimiza zgomotul de comutare în timpul conversiilor ADC. În modul Standby, oscilatorul rezonator rulează în timp ce restul dispozitivului doarme. [12]

6.2 Releul circuitului

Figura 31 Releu

Un releu este un comutator electric programabil care poate fi controlat de un microcontroler (Arduino, NodeMCU, ș.a.), fiind utilizat pentru a porni sau opri programabil dispozitive care folosesc tensiune înaltă sau curenți mari.

Releul este o punte între microcontroler si dispozitivele de înaltă tensiune, având două grupuri de pini: grup de pini de joasă tensiune și grup de pini de înaltă tensiune.

Pinii din grupul de joasă tensiune sunt conectați la microcontroler, incluzând trei pini:

Pinul GND trebuie conectat la GND (0 V)

Pinul VCC trebuie să fie conectat la VCC (5 V)

Pinul IN primește semnalul de control de la microcontroler

Pinii din grupul de înaltă tensiune sunt conectați la un dispozitiv de înaltă tensiune, incluzând trei pini (de obicei în borna cu șurub):

Pinul COM este pinul comun. Este utilizat atât în modul normal deschis, cât și în modul normal închis;

Pinul NO în mod normal este deschis. Este utilizat în modul normal deschis;

Pinul NC este în mod normal pinul închis. Este utilizat în modul normal închis;

6.3 Senzori

Senzorul de umiditate este un senzor simplu de apă care poate fi utilizat pentru a detecta umiditatea din încăpere. Dacă senzorul detectează apă, acesta va genera pe ieșire un semnal ridicat și în celălalt caz, ieșirea va fi inversată

Figura 32 Senzor umiditate

Senzorul de gaz este folosit pentru a detecta scurgerile de gaze în încăperi mici sau mari și are o sensibilitate ridicată la principalele gaze pe care le poate identifica: GPL-ul, izobutan, propan, metan, alcool, hidrogen și fum. Senzorul dispune de un comparator, astfel că se pot citi date analogice în timp real sau se poate afla dacă concentrația de gaz a depăsit o anumită limită.

Temperatura de lucru: -20℃ – 50℃

Figura 33 Modul senzor gaz (GPL, butan, hidrogen)

Senzorul digital de temperatură și umiditate încorporează un senzor de umiditate capacitiv și un termistor, pentru a măsura aerul din jur și a da un semnal digital pe pinul de date (nu necesită pini de intrare analogici). Necesită sincronizare atentă pentru a culege datele la fiecare 2 secunde.

Figura 34 Modul senzor temperatură și umiditate

6.4 Ecran LCD

Figura 35 Modul ecran LCD

Modulul LCD afisează 4 linii a câte 20 de caractere și poate fi folosit cu usurință și în condiții de iluminare joasă deoarece are și lumină de fundal ( care trebuie protejată printr-o rezistență sau un potențiometru de 2k). Pentru simplificarea realizării comunicației și reducerea pinilor folosiți la legarea LCD-ului la controler vom folosi un modul I2C.

Figura 36 Modul I2C

Modulul I2C este un adaptor ce se montează direct pe ecranul LCD. Comunicația I2C reprezintă un avantaj deoarece avem nevoie de doar două fire pentru a comunica cu plăcuța de dezvoltare. Cele două fire sunt necesare pentru clock și pentru date. Modulul conține un potențiometru pentru a regla contrastul și este compatibil și cu ecranele ce au iluminare de fundal.

Capitolul 7. Implementarea proiectului

În acest proiect au fost implementate cu succes următoarele puncte:

– Un modul de monitorizare care preia date de la senzori de temperatură / umiditate, senzori de gaz și umiditate la sol (senzor utilizat pentru detectarea inundației) și publică datele pe un server IoT;

– Un modul de control semi-autonom care poate porni și opri un dispozitiv de climatizare folosind senzori de temperatură / umiditate, un releu și serverul IoT;

– În acest proiect s-a folosit și configurat serverul IoT dedicat Blynk

Figura 37 Diagrama bloc hardware

În diagrama bloc avem prezentate intrările și ieșirile sistemului. Ca intrări, avem senzorii ale căror date sunt citite de către microcontroler. Microcontrolerul citește datele de la senzori la fiecare interval prestabilit pentru modulul de control și monitorizare.

Figura 38 Citire senzor umiditate și actualizare valoare server Blynk

Figura 39 Electric diagram for monitoring module

Toate datele colectate de către microcontroler de la senzori, sunt procesate și trimise pe serverul IoT pentru a fi disponibile oriunde folosind Internetul:

Figura 40 Citire senzor inundație și actualizare server Blynk

Pentru sistemul IoT am ales serverul Blynk datorită interfeței prietenoase și sigure, care este protejată de o cheie unică privată aferentă fiecărui proiect nou creat. Scrierea și citirea datelor pe server sunt efectuate din aplicația mobilă sau cu ajutorul widget-urilor aferente, iar fiecare element din cadrul aplicației reprezintă o informație specifică (temperatură, umiditate, inundație, puritate aer) . Procesul este de tip producător-consumator, producătorul fiind modulul NodeMCU care preia datele senzorilor și le transmit serverului IoT, iar consumatorul este aplicația sau widget-ul de pe dispozitivele mobile care afișează informațiile stocate pe server.

Modulele NodeMCU au resurse de prelucrare limitate, dar sunt suficiente pentru a prelua, prelucra și trimite date către server. Software-ul pentru fiecare modul a fost conceput pentru a facilita depanarea mai ușoară și a face posibilă inserarea informațiilor incluse pe interfața serială.

Figure 41 Serial output for debug

Senzorul de inundație este scump și din aceste motive a fost înlocuit cu un senzor de umiditate al solului format din doi electrozi cu ajutorul cărora este calculată căderea de tensiune și, în funcție de gradul de umiditate al solului acesta devine un conductor mai bun pentru curent și astfel căderea de tensiune este mai mică. În cazul nostru vorbim despre apă brută, astfel avem doar două situații: una în care nu există inundație și curentul nu circulă între cei doi electrozi sau există inundație și curentul circulă între cei doi electrozi.

Figura 42 Starea hardware a modului de monitorizare

Figura 43 Display modul de monitorizare și aplicație mobilă

În imaginile prezentate mai sus putem vedea starea hardware pentru modulul care include senzorul de umiditate și temperatură, senzorul de inundație, senzorul de gaz, display-ul și cum sunt amplasați acești senzori în proiectul Termostat inteligent.

Figura 44 Widget Termostat inteligent

Modulele de monitorizare a mediului preiau temperatura, umiditatea, puritatea aerului cât și prezența sau lipsa gazelor în aer și le transmit serverului la intervale prestabilite pentru a face consumul de energie mai eficient. După aceea datele pot fi vizualizate în aplicația Android dedicată care afișează informații și sub formă de widget foarte ușor de utilizat.

Aplicația dedicată pentru Android va permite să fie setată temperatura dorită de pe telefonul mobil, pentru a facilita pornirea centralei termice de la distanță în cazul în care temperatura ambiantă este sub un anumit nivel.

Figura 45 Aplicația mobilă Android

Pentru modulul de control a fost utilizat un server IoT, care permite pe lângă stocarea informațiilor sub diferite forme și controlul dispozitivelor de la distanță în aplicația dedicată Android. Acesta este serverul IoT al Blynk care oferă o gamă largă de servicii IoT. Modulul de control al centralei termice a fost proiectat să funcționeze ca un dispozitiv de sine stătător dar și ca un dispozitiv care comunică cu serverul IoT în sens dublu, primind comenzi de la server și trimitând informații despre temperatură, umiditate și starea dispozitivului de încălzire (ON/OFF).

Figura 46 Modulul de control al centralei termice

Modulul de control al centralei termice preia temperatura și umiditatea de la senzorul DHT22, la un anumit interval verifică valoarea și activează sau dezactivează centrala termică astfel:

• Dacă temperatura este mai mică decât temperatura setată și starea centralei termice este OFF atunci va fi pornită iar temperatura și umiditatea de pe server sunt transmise și actualizate împreună cu informațiile legate de starea centralei;

• Dacă temperatura este mai mare decât cea setată și starea centralei termice este ON, atunci aceasta va fi oprită și odată cu temperatura și umiditatea curente care sunt trimise serverului, vom trimite și informațiile actualizate despre starea centralei termice.

Figura 47 Actualizarea stării releului conform temperaturii citite

Figura 48 Actualizarea stării releului în serverele Blynk și centrală

Figura 49 Actualizarea stării ledului pentru funcționarea centralei în aplicația mobilă

Pentru a ne asigura că informațiile de pe server sunt coerente, inclusiv la pornirea modulului, starea inițială este trimisă serverului pentru a suprascrie ultima stare stocată pe server.

Ca o dezvoltare ulterioară, va fi implementat un modul FAIL SAFE pentru a evita problemele datorate supratensiunii sau supraîncălzirii circuitelor.

Capitolul 8. Concluzii și dezvoltări ulterioare

Starea actuală a proiectului este în curs de dezvoltare. După cum am menționat în capitolele anterioare, este foarte posibil ca acest proiect să fie actualizat constant, din cauza evoluției rapide a resurselor din domeniu. Acest mediu dinamic este creat de nevoile în creștere din mediul casnic în vederea îmbunătățirii confortului zilnic.

În prezent avem funcționalitate completă pentru modulul de monitorizare care furnizează datele de pe serverul IoT, iar de aici acestea sunt preluate de aplicația mobila sau de widgetul Android. De asemenea, a fost dezvoltat un sistem de control autonom al centralei termice care poate fi monitorizat și controlat de la distanță prin intermediul aplicației mobile Android.

Ca o dezvoltare ulterioară a modulelor de monitorizare și control, va fi implementat un modul FAIL SAFE pentru a evita problemele datorate supratensiunii sau supraîncălzirii circuitelor. Mai jos este o listă de caracteristici care urmează să fie dezvoltate în viitor, funcții pe care le considerăm de mare ajutor în crearea unui set dezvoltat de module inteligente:

• Un sistem central pentru controlul luminii într-o cameră va fi implementat pe baza monitorizării intrărilor și ieșirilor persoanelor din cameră, pe baza numărării acestora;

• Temperatura din fiecare cameră va fi controlată folosind un modul ESP8266 și o electrovalvă conectată la fiecare calorifer;

• Acționarea automată a electrovalvei existente pe instalația de apă;

• Acționarea automată a electrovalvei existente pe instalația de gaz;

• Va fi implementat un sistem de securitate bazat pe senzori de proximitate, senzori de gaz și fum, camere de supraveghere iar modulul existent va fi inclus în acest proiect.

Bibliografie:

Internet of Things, https://en.wikipedia.org/wiki/Internet_of_things

Home Automation, https://en.wikipedia.org/wiki/Home_automation

SRI Consulting Business Intelligence/National Intelligence Council – Apendix F of Disruptive Technologies Global Trends 2025 page 1 Figure 15 (Background: The Internet of Things)

Internetul lucrurilor- o nouă paradigmă a conectării în Internet, Daniel Savu, Mihaela Tomescu, Lidia Băjenaru, Revista Română de Informatică și Automatică, vol. 27, nr. 1, 2017 http://www.rria.ici.ro

IoT 101 – The Essential Guide to the Internet of Things, Andrew Meola, Business Insider Intelligence, Aprilie 2019

https://www.businessinsider.com/iot-101-essential-guide-to-the-internet-of-things-2019-4

Forbes Magazine

INTERNET OF THINGS – Dragoș D. POPA, Dragoș POPA, Elena-Corina BOSCOIANU – Buletinul AGIR nr. 2 / 2016 aprilie-iunie

Smart Home: Architecture, Technologies and Systems, Min Li, Wenbin Gu, Wei Chen, Yeshen He, Yannian Wu, Yiying Zhang, Procedia Computer Science 131 (2018) 393 – 400

Documentație Blynk, http://docs.blynk.cc/

Getting started with Blynk, https://blynk.io/en/getting-started

Arduino, http://en.wikipedia.org/wiki/Arduino

Datasheet Atmega 328P, www.alldatasheet.com

Embedded systems: Architecture Programming and Design, Raj Kamal, Mc. Graw-Hill Inc. Publisher

Computers as components: Principles of embedded computing systems design, Wayne Wolf, Morgan Kaufmann Publisher, 2000

NodeMCU LUA Firmware, Hari Wiguna, Hackaday. Retrieved 2 April 2015

Smart healthcare: making medical care more intelligent , Shuo Tian,Wenbo Yang, Jehane Michael Le Grange, Peng Wang,Wei Huang, Zhewei Ye, https://www.sciencedirect.com/science/article/pii/S2414644719300508?via%3Dihub

Casa inteligentă – Ce este și ce avantaje oferă?, https://www.dozait.ro/casa-inteligenta-ce-este-si-ce-avantaje-ofera/

Similar Posts