FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI [615748]
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT „IOAN SLAVICI”
TIMIȘOARA
UNIVERSITATEA „IOAN SLAVICI” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL : CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI
PROIECT DE DIPLOMĂ
CONDUCĂTOR ȘTIINȚIFIC
conf. dr. ing. MNERIE GABRIELA
ABSOLVENT: [anonimizat]
2019
2
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂ ȚĂMÂNT „IOAN SLAVICI”
TIMIȘOARA
UNIVERSITATEA „IOAN SLAVICI” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL : CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI
SISTEM DE SUPRAVEGHERE A
ACCESULUI ȘI MĂSURARE A
TEMPERATURII
CONDUCĂTOR ȘTIINȚIFIC
conf. dr. ing. MNERIE GABRIELA
ABSOLVENT: [anonimizat]
3
Cupr ins
Cupr ins ………………………….. ………………………….. ………………………….. ………………………….. ……….. 3
Capi tolul 1. ………………………….. ………………………….. ………………………….. ………………………….. ….. 4
Introducere ………………………….. ………………………….. ………………………….. ………………………….. ….. 4
Capi tolul 2. ………………………….. ………………………….. ………………………….. ………………………….. ….. 5
Descrierea conceptelor folosite în realizarea acestei implementări ………………………….. ……… 5
2.1. Ce înseamnă tehnologia Wi -Fi ……………………… Eroare! Marcaj în document nedefinit.
2.2. Ce înseamnă IoT (Internet of Things – ”Internetul lucrurilo r”) ……. Eroare! Marcaj în
document nedefinit.
2.3. Serverul Cayenne ………………………….. ………………………….. ………………………….. ……….. 10
2.5. Protocolul OneWire ………………………….. ………………………….. ………………………….. ……. 14
2.7 Paralelă între două servere dedicate IoT ………………………….. ………………………….. ……. 16
Capi tolul 3. ………………………….. ………………………….. ………………………….. ………………………….. … 17
Structura hardware a sistemului și aplicația practică ………………………….. ………………………. 17
3.1. Schema bloc a sistemului implementat ………………………….. ………………………….. ……… 18
3.2. Descrierea blocurilor funcționale și motivul alegerii acestora ………………………….. … 19
3.3. Descrierea modului de funcționare al aplicației ………………………….. …………………….. 27
3.4. Etapele realizării aplicației practice ………………………….. ………………………….. …………. 28
3.5. Interfața grafică de pe site -ul Cayenne și de pe aplicația Magazin Play ………………. 34
Capi tolul 4. ………………………….. ………………………….. ………………………….. ………………………….. … 36
Concluzii ………………………….. ………………………….. ………………………….. ………………………….. ……. 36
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. … 37
Anexa 1. ………………………….. ………………………….. ………………………….. ………………………….. …….. 38
Codul sursă aferent întregului sistem este: ………………………….. ………………………….. …………… 38
Anexa 2. ………………………….. ………………………….. ………………………….. ………………………….. …….. 43
Schema electrică, completă a sistemului ………………………….. ………………………….. ……………….. 43
4
Capitolul 1.
Introducere
Ca urmare a evoluției foarte rapide a tehnologiei informației și prin apariția de dispozitive
inteligente ce pot face mai ușoară viața personală, se simte nevoia realizării de astfel de dispozitive,
pentru a ușura viața de zi cu zi.
Cel mai nou și uzitat concept de utilizare a Internetului în favoarea activităților cotidiene este
conceptul IoT (Internet of Things – ”internetul lucr urilor”). Ca urmare a acestui concept am
considerat utilă realizarea unei aplicații prin intermediul căreia să se poată supraveghea accesul în 4
incinte și a se măsura temperatura în acestea (ideea de bază fiind implementarea acesteia într -un
apartament cl asic).
Datele recepționate de la senzorii de temperatură și cei de stare a ușilor/geamurilor din incinte
sunt transmise pe Internet prin conexiunea Wi -Fi existentă în locație, pe un server dedicat acestui tip
de proiecte IoT personale, în mod gratuit și a nume Serverul de date Cayenne:
http://cayenne.mydevices.com/ . Avantajul utilizării acestui server rezidă în faptul că este gratuit
(necesită doar înscriere) și are facilități utile de personalizare a interfeței grafice de acces, precum și
trimiterea de alerte ce se pot seta funcție de senzorii folosiți.
5
Capitolul 2.
Descrierea conceptelor folosite în realizarea acestei implementări
2.1. Ce înseamnă tehnologia Wi -Fi
Dezvoltarea tehnologiei Wi -Fi care este foarte cunoscută în ziua de astăzi a avut loc pe
parcursul unei perioade de timp extrem de îndelungate. Din câte se pare, totul a izvorât din dorința
unei companii de a nu se mai afla în urma giganților de pe piață. La mijlocul anilor ’80, IBM era de
departe cea mai puternică și cea mai cunoscută companie din domeniu, majoritatea celorlalte fiind
nevoite să construiască dispozitive care pot funcționa cu produsele sale.
Însă în 1985, Comisia Federală pentru Comunicații din Statele Unite a eliberat numeroase
secțiuni din spectrul de unde radio, astfel încât orice entitate le putea folosi atât timp cât nu
interzicea accesul altor persoane. Importanța deciziei respective nu trebuie ignorată, întrucât, fără
aceasta, tehnolo gia Wi -Fi nu ar fi fost posibilă.
Observând acest lucru, o companie denumită NCR (cea care a produs, printre altele, și multe
dintre bancomatele pe care le puteți vedea în ziua de azi) a profitat de ocazie pentru a dezvolta o rețea
locală fără fir. Desigur, progresul nu a fost unul extrem de rapid și, astfel, au trecut nu mai puțin de
șapte ani până când, în sfârșit, a fost dezvoltată tehnologia IEEE 802.11 .
Inițial, au fost disponibile două versiuni: 802.11 a și 802.11b . Astfel, compania Interbrand a
fost angajată pentru a găsi o denumire mai atrăgătoare, iar în scurt timp, aceasta a propus ”Wi -Fi”.
Potrivit Wikipedia, Wifi și WiFi sunt alte două denumiri folosite des, însă ele nu sunt aprobate de
Wi-Fi Alliance. La ora actuală, standardele Wi -Fi sunt a, b, g, n, ac, pe frecvențele de 2,4GHz și
5GHz, viteza fiind de 1Gbps, la conexiunile pe fibra optică.
Pentru o perioadă, aceasta din urmă a folosit sloganul ”The Standard for Wireless Fidelity”
(Standardul pentru fidelitate wireless), astfel că mulți oameni au ajuns să creadă că Wi -Fi este o
abreviere pentru ”wireless fid elity”. Desigur, acest lucru nu este adevărat. ”Wireless fidelity”
(fidelitate wireless) nu are niciun sens, astfel că denumirea Wi -Fi este folosită doar pentru a evita una
mult mai co mplicată, precum 802.11a. De asemenea se poate considera că această abreviere a fost
echivalată cu Hi -Fi specific normelor sistemelor audio de calitate.
Cele mai des folosite versiuni 802.11 fiind cele din urmă, ”n”, respectiv ”ac”. Un alt lucru
interesant la ora actuală, este faptul că banda de transfer poate fi mai mare decât în mod normal, prin
emisia independentă la viteză maximă pe cele două frecvențe. Cu alte cuvinte, o conexiune de 1Gbps
6
la portul WAN se traduce în o viteză de 2x1Gbps pe cele două fr ecvențe de emisie. Tot mai multe
device -uri încep să fie funcționale și pe frecvența de 5GHz.
2.2. Ce înseamnă IoT (Internet of Things – ”Internetul lucrurilor”)
Internetul este omniprezent în viața noastră. Începând de la PC -uri, smartphone -uri, tablete ,
console de jocuri pana la televizoare si set top -box-uri.
În anul 2016 la CES (Consumer Electronics Show ), conceptul de ”Internet of Things” a luat
amploare și s -a preconizat ca viitorul aparține acestor dispozitive de zi cu zi, dotate cu senzori.
Conec tate între ele pentru a lucra împreună, a înțelege ceea ce facem și automat pentru a ne face viața
mai ușoară. Desigur, suntem în măsură să le controlam prin intermediul smartphone -ului sau tabletei
și la un moment dat sigur vom dispune și de control vocal . Acest control vocal este deja funcțional
pe piața IT prin dispozitivele Amazon Alexa, Google Home. De asemenea la ora actuală s -a
implementat acest control vocal și la nivelul sistemelor de operare Windows și MacOSx, prin
Cortona, respectiv Siri.
Dar dincolo de acest concept bine intenționat care ne permite o inter -conectivitate cu obiectele
din jurul nostru, ce este de fapt Internet of Things ?
7
IoT cuprinde toate dispozitivele care pot detecta aspecte ale lumii reale cum ar fi: temperatura,
lumina, prezen ța sau absen ța unor persoane sau obiecte etc. IoT colectează aceste informații și pe
baza acestora acționează . Dispozitivele inteligente folosesc tehnologia intern et prin Wi -Fi pentru a
comunica între ele, sau uneori direct prin Cloud. Utilizarea Cloud -ului devine din ce în ce mai
atractivă, deoarece, datele, pe lângă faptul că sunt afișate, ele sunt și stocate, pentru a putea fi folosite
ulterior din contul utiliza torului. În mod ideal, punctul de acces central îl deține utilizatorul, prin
intermediul smartphone -ului, tabletei sau a laptopului oriunde ar fi.
La ora actuală există foarte multe dispozitive ”inteligente”, care fac mai ușoară viața de zi cu
zi. Câteva exemple ar fi:
1. Telecomanda inteligent ă wireless de la Sonoff este un dispozitiv cu ajutorul c ăruia, prin
intermediul smartphone -ului tău, poți controla televizorul, combina muzicala, iluminatul,
aerul condiționat și alte dispozitive inteligente prin intermediul unui releu
electromagnetic, care asigură și protecția galvanică . Există de asemenea posibilitatea
utilizării unei telecomenzi în RF, pe 433MHz.
2. Priza inteligent ă wireless de la Sonoff: Grație acestui dispozitiv nu va mai trebui s ă îți
faci griji c ă ai uitat s ă oprești ceva când ai plecat. Acesta rămâne mereu conectat la
rețeaua de Wi -Fi din locuință pentru a -ți oferi posibilitatea de a programa pornirea sau
oprirea unui dispozitiv electronic prin folosirea smartphone -ului, oriunde te -ai afla.
8
Cele două dispozitive sunt controlate cu aplicația eWeLink.
3. Bec LED PlayBulb de la MiPow : Cu ajutorul acestui bec LED inteligent se poate asculta
muzica preferata la acest dispozitiv printr -o conexiune bluetooth , în timp ce se poate
regla intensitatea si culoarea luminii ambientale cu ajutorul smartphone -ului. Fiind un
bec LED consumul energiei electrice este redus (10 -15W) .
4. Sistemul de securitate inteligent iSmartAlarm reprezintă un pas înainte în siguranța
locuinței proprii. Es te un sistem ce nu necesit ă experienț ă și autorizație de instalare a
unei persoane calificate, el funcționând cu ajutorul conexiunii de internet din cadrul
locuinței tale. Se sincronizează foarte ușor cu smartphone -ul tău și te ține la curent prin
notifică ri, mesaje, e -mailuri , dacă sistemul de securitate detectează o posibil ă
infracțiune . Componentele acestui sistem sunt: Cube (unitatea central ă), senzorii de
mișcare , senzorii de contact (pentru uși si ferestre), camera de supraveghere cu
9
posibilitatea de control la distanta de 360 de grade și telecomanda pentru un control
rapid al întregului sistem.
5. Detectorul de gaz și monoxid de carbon KEPLER de la Orvibo este un dispozitiv
indispensabil pentru locuința oricărui om. Acest gadget monitorizează continuu
conținutul de gaz și monoxid de carbon din locuință și transmite un semnal de alarma pe
smartphone -ul utilizatorului prin intermediul unei aplicații , când valorile minime au fost
depășite . Are un acumulator încorporat și este detașabil astfel se poate detecta cu
ușurință locul de proveniență a gazelor.
Acestea sunt o serie de dispozitive bazate pe acest concept si sigur se vor mai lansa,
IDC(International Data Corpor ation) anticipând 200 de miliarde de dispozitive interconectate pana
in 2021, din care 30 de miliarde fiind autonome. Un dezavantaj al acestor dispozitive ar fi acela, că
10
fiecare dispozitiv folosește propriul program, lucru ce duce la o multitudine de aplicații instalate pe
telefonul mobil de tip smartphone. Ca urmare a acestui inconvenient , multe dintre aceste dispozitive
inteligente au început să aibă implementat sistemul de comunicație cu dispozitivele tip Alexa, Siri,
native sistemelor de operare fo losite, Android, respectiv IoS.
2.3. Serverul Cayenne
myDevices Cayenne
myDevices Cayenne permite realizarea rapidă de prototipuri și afișare a parametrilor acestora
prin soluții de vizualizare Iot. Cayenne se poate folosi ca un instrument de vizualizare în timp real,
precum și un istoric al acestora, prin intermediul The Things Network ( ”rețeaua lucrurilor”).
Schimbarea transferului de date la Cayenne LPP
Pentru a putea afișa conținutul dorit, provenit din aplicația proprie, în interfața Cayenne,
informația a fost codată cu Cayenne Low Power Payload (Cayenne LPP).
CayenneLPP conține metadate pe care Cayenne le înțelege și le poate afișa în interfața
proprie , creată pentru automatizarea dorită. Pentru fiecare dată trimisă trebuie să definim ID -ul datei
și ce fel de dată este. Primul byte este ID -ul canalului, iar al doilea byte este tipul datei transmise
(real, întreg , cu virgulă mobilă).
Linkul de trimiter e a datei
Exemplu de cod ce se folosește la transmiterea datelor pe Cayenne:
TheThingsNetwork ttn(loraSerial , debugSerial , freqPlan );
CayenneLPP lpp(51); // create a buffer of 51 bytes to store the payload lpp.reset ();
// clear the buffer
lpp.addTemperature (1, 22.5); // on channel 1, add temperature, value 22.5°C
lpp.addBarometricPressure (2, 1073.21 ); // channel 2, pressure
lpp.addGPS (3, 52.37365 , 4.88650 , 2); // channel 3, coordinates
ttn.sendBytes (lpp.getBuffer (), lpp.getSize ());
Linkul de recepție a datei
Pentru a putea trimite date modului de automatizare din interfața Cayenne, trebuie realizat
un canal de ieșire ce se reg ăsește în link -ul de recepție. Se pot folosi date analogice, cât și digitale
lpp.addDigitalOutput (4, 1); // channel 4, set digital output high
lpp.addAnalogOutput (5, 120.0 ); // channel 5, set analog output to 120
Setarea formatului datelor, în consola Cayenne
După codarea cu CayenneLPP, se folosește consola de formate Payload Formats
• Mergi la The Things Network Console și click Payload Formats
11
• În meniul contextual se stabilește Cayenne LPP în locul lui Custom
Setarea contului myDevices
1. Crearea unui cont myDevices
2. Log-in și click, spre exemplu pe LoRa
3. Selectează The Things Network la finele meniului contextual, click pe Cayenne
LPP și introduceți DevEUI al dispozitivului (care poate fi găsit în consola principală
– Console )
12
Adăugarea integrării myDevices Cayenne în Console
1. Mergeți la Console și adăugați prin intermediul Add
Integration
2. Denumiți aplicația Process ID
3. Adăugați integrarea
Creați interfața Cayenne
Click pe dispozitiv și modificați parametrii așa cum doriți, pentru datele afișate și modul lor de
afișare prin icon-uri. După puțină editare, procesul va părea unul simplu.
13
2.4. Aplicația Cayenne din Magazin Play de la Google
14
2.5. Protocolul OneWire
Ce este protocolul One Wire ?
Nu este decât un a lt protocol care îți permite să interconectezi diverse d ispozitive periferice,
în special senzori, direct cu placa de dezvoltare. Spre exemplu, senzorul de temperatura DS18B20
este un se nzor care face c onversia tem peraturii. Dar avantajul vine datorită interfeței cu care
senzorul este d otat.
Interfața identifică în mod unic senzorul cu care placa de dezvoltare c omunică. Asta
înseamnă că nu ești limitat în a utiliza unul sau doi senzori. În s chimb, poți folosi zeci de se nzori
conectați în rețea (maxim 128), f olosind ca și magistrală de date un s ingur f ir. De aici vine și
numele protocolului – One Wire.
Câți senzori pot folosi? 128 este numărul maxim, dar tre buie să iei în ca lcul foarte multe
aspecte cum ar fi: distanța între senzori, tipul de ca blu folosit, sursa de a limentare, ecra narea
cablului, paraziții externi, deci nu se poate stabili 100% acest număr. Cel mai folosit senzor
OneWire este s enzorul de temperatura DS18B20. Iată câte va informații despre acest senzor:
Conversia temperatur ii o face la rezoluții mari cuprinse între 9 și 12 bit;
Are o funcție interesa ntă de a larmare, atu nci când temperatura c itită depășește
limitele programate de ut ilizator;
Se poate alimenta senzorul în mod parazit ( parasite power);
Fiecare senzor are un c od unic pe 64 de bit. Asta înseamnă că se pot interconecta f oarte
mulți senzori, pe același fir, sub f orma unei rețele;
Poate măsura tem peraturi negative (până la -55 de grade Celsius) dar și pozitive (până la
125 de grade Celsius) cu o acuratețe de ± 0.5 grade;
Poate fi alimentat cu te nsiuni cuprinse intre 3 si 5.5V;
O variantă constructivă este cu teacă de protecție ce facilitează imersiunea acestuia.
Modul parasite power
În mod normal, senzorul necesită 3 f ire pentru o funcționare corectă, respectiv 2 fire
de alimentare și un fir One Wire. Un lucru interesa nt este că senzorul îți permite să renunți la
un fir de a limentare și să folosești doar ce le 2 fire rămase.
Practic modul parasite power îți permite să alimentezi, dar să și ”vorbești ” cu se nzorul
folosind firul GND și firul One Wire. În acest ca z, firul One Wire este folosit pentru 2 lucruri:
alimentarea se nzorului și comunicația cu placa de dezvoltare.
Lucrul acesta este foarte util atunci când vrei pur și simplu să scazi costurile pentru cel d e-
al tre ilea fir. Această te hnologie se folosește foarte des în industr ia producăt oare de mașini. Doar
prin eliminarea f irului de alimentare al senzorilor, o mașină folosește pana la 50 m de ca blu, în t imp
ce o mașină echipata cu se nzori din generația precede ntă (care folosește toate ce le 3 fire) poate
15
folosi până la 600 m de ca blu. Mai ales ca d epanarea u nei probleme se poate face mult mai repede
si mult mai ușor.
2.6. Aplicația Arduino IDE
Programele Arduino pot fi scrise în orice limbaj de programare cu un compilator capabil să
producă un cod mașină binar. Atmel oferă un mediu de dezvoltare pentru microcontrolerele sale,
AVR Studio și mai nou, Atmel Studio.
Proiectul Arduino oferă un mediu integrat de dezvoltare (IDE), care este o aplicație cross –
platform , scrisă în Java, dezvoltat de firma producătoare Arduino.cc . Acesta își are originile în mediul
de dezvoltare pentru limbajul de programare.
Este proiectat pentru a introduce programarea în lumea celor nefamiliarizați cu dezvoltarea
softwar e. Include un editor de cod cu funcții precum:
-evidențierea sintaxelor ;
-potrivirea acoladelor ;
-spațierea automată ;
-mecanisme simple cu un singur click, pentru a compila și a încărca programele în plăcuța
Arduino. La ora actuală, prin versiunea 1.8.9 s -a ajuns la integrarea mai multor tipuri de plăci de
dezvoltare, cum ar fi ESP -8266, ESP -32. Acestea utilizau anterior mediul Pyton. Un program scris în
Arduino IDE pentru plăci de dezvoltare se numește sketch .
Arduin o IDE suportă limbajele de programare C și C++ folosind reguli speciale de
organizare a codu lui. Arduino IDE oferă o librărie software numită Wiring, din proiectul Wiring, care
oferă multe proceduri comune de intrare și ieșire. Un sketch tipic Arduino scris în C/C++ este compus
din două funcții care sunt compilate și legate cu un ciot de program main() , într -un program
executabil cu o execuție ciclică:
setup() : o funcție care este rulată o singură dată la începutul programului, când se inițializează
setările.
loop() : o funcție apelată în mod repetat până la oprirea alimentării cu energie a plăcuței.
După compilarea și legarea cu GNU toolchain inclus, de asemenea, în IDE, mediul de
dezvoltare Arduino IDE trimite comandă către programul avrdude pentru a converti codul executabil
16
într-un fișier text codat hexazecimal, care poate fi încărcat în placa de dezvoltare, conform cu
bootloader -ul specific plăcii folosite prin intermediul unui program de încărcare existent în avrdude .
De asemenea se salvează și un fișier tip .bin ce poate fi înscris în procesor cu orice interfață serială.
Exemplu de pro gram
Un program Arduino tipic pentru un programator începător face ca un LED să se aprindă
intermitent (mai exact, acest program se găsește înscris în toate plăcile Arduino Uno, respectiv
Arduino Nano de către producător ). În mediul de dezvoltare Arduino IDE, utilizatorul ar trebui să
scrie un astfel de program după cum urmează:
void setup() { // – declarația unică de la începutul programului
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() { // – declarația de buclă ce se execută continuu
digitalWrite (LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Multe plăcuțe Arduino conțin un LED, împreună cu un rezistor în serie, între pinul 13 și masă
(GND), ceea ce este un amănunt util pentru multe teste.
2.7 Paralelă între două servere dedicate IoT
Așa cum am precizat, pentru a avea acces asupra datelor recepționate, se poate folosi serverul
Cayenne ce oferă sprijin pentru aplicațiile personale. Este un serviciu gratuit, ușor de imp lementat,
utilizarea acestuia necesitând doar crearea unui cont pe site -ul myDevice Cayenne. Prin intermediul
acestuia se pot scrie și citi date de la și către senzori și dispozitive.
Mai există și alte servere ce facilitează acest acces, dar au mai multe limitări. Un alt server,
care se apropie prin denumire mai mult de ”Internetul Lucrurilor” este Thinkspeak ( ”Lucrurile
vorbesc”), care are de asemenea o interfață foarte prietenoasă, însă în mod gratuit oferă doar
posibilitatea utilizării a trei milioane de valori pe parcursul unui an calendaristic, ceea ce limitează
aplicațiile care ar avea nevoie de un flux de date mai mare. De asemenea numărul canalelor utilizate
este limitat la 4, în varianta gratuită.
Cele două aplicații se pretează utilizării persona le funcție de aprecierile fiecăruia. În cele ce urmează
voi ilustra cele două servere descrise, pentru a se putea face o comparație. Se va vedea că există
diferențe în utilizarea acestora. Se poate spune că serverul Cayenne este mai versatil, acesta fiind și
motivul alegerii acestuia.
17
După cum se observă în acest exemplu, pe serverul Cayenne se pot defini icon -uri de
interfață, pe când la Thingspeak nu. De asemenea Thingspeak are integrare cu Mathcad, Cayenne
nu. Cu alte cuvine în alegerea lor un rol important îl are tipul aplicației ce se dorește implementat.
Capitolul 3.
Structura hardware a sistemului și aplicația practică
Nu prea demult, lucrul la hardware a însemnat construirea circuitelor de la zer o, folosind sute
de componente diferite cu nume ciudate precum rezistența, condensatorul, inductorul, tranzistorul și
așa mai departe. Fiecare circuit a fost ”cablat” pentru a face o aplicație specifică, iar efectuarea de
modificări necesita tăierea firelo r, conexiunilor de lipire și multe altele.
Odată cu apariția tehnologiilor digitale și a microprocesoarelor, aceste funcții au fost înlocuite
cu programe software. Software -ul este mai ușor de modificat decât hardware -ul. Cu câteva apăsări
de tastă, se poate schimba radical logica unui dispozitiv și se pot incerca două sau trei versiuni în
aceeași perioadă de timp în care s -ar lipi o pereche de rezistențe.
Toate obiectele pe care le putem construi folosind WeMos urmează un model foarte simplu
(ilustrat î n figură) numit "dispozitivul interactiv". Dispozitivul interactiv este un circuit electronic
capabil să perceapă mediul folosind senzori (componente electronice care convertesc măsurătorile
din lumea reală în semnale electrice). Dispozitivul procesează in formațiile pe care le primește de la
senzori cu comportament implementat ca software, iar apoi va putea să interacționeze cu lumea
18
folosind elemente de acționare, componente electronice care pot converti un semnal electric într -o
acțiune fizică.
3.1. Schema bloc a sistemului implementat
Pentru implementarea acestui sistem s -a folosit această schemă bloc, compusă din trei părți:
1. Placa de dezvoltare WeMos D1 R1 ce conține mai multe blocuri funcționale
pentru a realiza conectarea la Internet și a prelucra datele primite(ESP8266),
un controler USB pentru a se putea realiza comunicarea cu un computer, pentru
a fi programat precum și mai multe blocuri auxiliar e pentru funcțiile necesare;
19
2. Senzorii de temperatura de tip DS18B20 ce pot comunica cu procesorul prin
conexiunea OneWire, patentată de Dallas Semiconductors;
3. Contactele de acces ce sunt realizate cu contacte tip REED, ce sunt stabilite pe
o anumită poziți e prin intermediul unui magnet permanent;
4. Blocul de alimentare
3.2. Descrierea blocurilor funcționale și motivul alegerii acestora
1. Placa de dezvoltare WeMos D1 mini
20
Caracteristici tehnice WeMos :
Bazat pe ESP -8266EX;
Compatibil cu Arduino IDE;
11 pini GPIO (pini generali bidirecționali intrare/ieșire) ;
1 pin ADC (0 – 3.3V);
Conține regulator în comutație cu tensiune maximă de intrare de 24V;
Frecvență de operare microcontroler : 80 / 160MHz;
Memorie Flash: 4MB;
Interfaț ă I2C;
Sistem de programare pe USB cu circuitul integrat CH340;
Pini ce pot genera semnal PWM;
Pini ce suportă întreruperi externe.
Dimensiuni: 34.2 x 25.6 mm.
Caracteristici tehnice ESP -8266EX
802.11 b / g / n
Wi-Fi Direct (P2P), soft -AP
Protocol TCP / IP integrat
Comutator TR, balun, LNA si amplificator de putere integrate
PLL, DCXO, regulatoare si unități de gestionare a energiei integrate
+19.5dBm putere ieșire in modul 802.11b
Memorie flash 1MB
CPU -ul integrat de 32 bit cu consum redus de energie ar putea fi folosit ca procesor de aplicare
SDIO 1.1 / 2.0, SPI, UART
STBC, 1×1 MIMO, 2×1 MIMO
21
A-MPDU & A -MSDU aggregation & 0.4ms guard interval
Transmite pachete in < 2 ms
Consumul de energie in modul standb y de < 1.0mW (DTIM3)
Pin Funcție ESP-8266 Pin
TX TXD TXD
RX RXD RXD
A0 Analog input, max 3.3V input A0
D0 IO GPIO16
D1 IO, SCL GPIO5
D2 IO, SDA GPIO4
D3 IO, 10k Pull -up GPIO0
D4 IO, 10k Pull -up, BUILTIN_LED GPIO2
D5 IO, SCK GPIO14
D6 IO, MISO GPIO12
D7 IO, MOSI GPIO13
D8 IO, 10k Pull -down, SS GPIO15
G Ground (masa) GND
5V 5V –
3V3 3.3V 3.3V
RST Reset
RST
Toți pinii I/O au suport pentru interrupt/pwm/I2C/one -wire, cu excepția lui D0.
Toți pinii I/O operează la 3,3V
22
Acest produs reprezintă un modul cu circuit integrat ESP8266. Acest circuit este unul dintre
cele mai performante și foarte folosit în lumea IoT. Pentru a interfața cu el, nu este nevoie decât de
un cablu cu care să îl conectați la computer și de software -ul Arduino ID E.
Cu ajutorul acestui produs puteți construi proiecte inovative specifice erei IoT.
2.Senzorii de temperatură DS18B20
23
După cum se poate remarca, acești senzori au aspectul unui tranzistor bipolar, în capsulă
TO-92, însă pot fi gasiți intr -o teacă metalică, cu protecție epoxidică și clasa de securitate electrică
IP67, lucru ce permite acestui senzor imersiunea în apă, în cazul în care este nevoie. În aplicația
noastră vom folosi ambele variante.
Caracteristici tehnice:
Tensiune: 3 V – 5.5 V (poate fi alimentat și din conexiunea de comunicație);
Curent: 1.5 mA;
Interfață de comunicație 1 Wire;
Memorie ROM de 64 biți.
Intervalul de temperatură măsurat: de la – 55°C pana la 125°C;
Precizie: ±0.5 °C pentru temperaturi intre -10°C și +85°C;
Rezoluție de la 9 la 12 biți, cu timp de conversie de 750 ms la 12 biți.
Dimensiuni: 6 mm x 50 mm;
Lungime cablu: 1 m;
Senzorul de temperatură DS18B20 este unul de înaltă performanță ce poate da rezultatul cu
o precizie de până la 12 biți. De asemenea, nu are nevoie d ecât de o conexiune pentru comunicații.
Puterea necesara este foarte mică, având nevoie de 1.5 mA maxim. De asemenea, un avantaj îl oferă
faptul că își poate lua tensiunea de funcționare de pe linia de comunicație.
În figura următoare este ilustrat modul î n care poate fi alimentat DS18B20. Varianta
normală cu potențial pozitiv și negativ, precum și varianta de alimentare parazită din magistrala de
date. Noi vom folosi varianta cu alimentare normală, deoarece permite extinderea suprafeței
acoperite de senzor care este de circa 3 ori mai întinsă decât la alimentarea parazită, precum și
24
faptul că magistrala OneWire suportă până la 128 de senzori, situație în care, alimentarea parazită
este exclusă.
3.Contactele tip REED pentru montarea la căile de acces în incinte PNI MC38
25
Caracteristici tehnice
Alimentare: maxim 12 V
Putere maximă: 3 W
Curent maxim admis pe contact: 300 mA
Detecție : 15 mm
Tip contact: NÎ/ND
Tip montaj: aparent
Material: ABS
Dimensiuni: 28 x 28 x 9
Greutate: 9 gr
4.Blocul de alimentare
26
Ținând cont că acest proiect necesită alimentare permanentă din rețeaua electrică a casei, se
observă că blocul de alimentare este format din două sub -blocuri:
– o parte de tensiune ridicată ( rețeaua electrică din casă), pentru care am optat pentru un sistem
clasic, cu transformator coborâtor pe PCB, capsulat, tip TSZZ 4,5W/0,75A, pentru a fi acoperitor
pentru nevoile montajului și pentru a funcționa rece, cu sistemul clasic de redresare dublă altern anță,
filtrare capacitivă și protecție cu siguranță fuzibilă;
– o parte de tensiune scăzută ( 9,5V maxim, după filtrarea capacitivă), pentru care am optat
pentru un stabilizator în comutație cu LM 2596. Am ales această variantă pentru o disipare redusă de
căldură, comparativ cu sistemul clasic de stabilizare liniară, care ar fi necesitat radiatoare de răcire și
ar fi ocupat mult mai mult spațiu . Acest circuit integrat este unul cu performante ridicate, funcționând
la o frecvență de comutație de 52KHz, putând să livreze la ieșire un curent de maxim 3A, pentru o
diferență a tensiunii intrare -ieșire de 4 V. Aceste dispozitive sunt disponibile în tensiuni de ieșire fixe
de 3.3 V, 5 V, 12 V și o versiune de ieșire reglabilă, necesitând puține componente externe. E u am
optat pentru varianta cu tensiune de ieșire reglabilă, pentru a putea realiza, în cazul în care se va dori,
o dezvoltare ulterioară a acestui proiect. În figura de mai jos este prezentată schema internă a acestui
circuit integrat
Aici se poate obs erva realizarea practică a acestei surse de tensiune, cu cele două sub -blocuri
funcționale , descrise anterior.
27
3.3. Descrierea modului de funcționare al aplicației
Pentru o mai bună înțelegere a modului în care funcționează această aplicație , voi descrie
detaliat acest lucru.
Așa cum am descris anterior, acest montaj se alimentează la rețeaua de curent alternativ, 220V,
50Hz, din locul unde va fi montat. Aceasta, prin intermediul unei siguranțe termice, interne
transformatorului și prin butonul de pornit/oprit, îl alimentează pe acesta din urmă. Tensiunea
alternativă din secundar, este trecută de asemenea printr -o siguranță fuzibilă accesibilă pe partea
posterioară a cutiei , de 0,75A, urmând să treacă mai departe către puntea redresoare și circuitu l
capacitiv de filtrare.
Această tensiune alimentează modulul stabilizator de tensiune ce va alimenta montajul
electronic, precum și LED -ul de semnalizare al alimentării cu energie electrică. La ieșirea
stabilizatorului în comutație vom avea o tensiune de 5V ce alimentează placa de dezvoltare și senzorii
aferenți.
Mai departe, pe lângă alimentarea de 5V, placa de dezvoltare trebuie să comunice și cu
senzorii. Această comunicare se face pe deoparte pe magistrala OneWire, la care sunt conectați
senzorii de t emperatură DS18B20, prin intermediul a 4 conectori tip Jack mamă/tată, iar pe de altă
parte cu contactele tip REED ce supraveghează accesul în incinte. Conectarea acestora cu placa de
dezvoltare se face în același mod ca și senzorii de temperatură, prin in termediul a 4 conectori tip Jack
mamă/tată.
Odată alimentată placa de dezvoltare WeMos și conectarea senzorilor, aceasta se va conecta
la rețeaua de Internet locală (routerul Wi -Fi din locație), apoi va începe să ”citească” starea senzorilor
și contactelor REED. După executarea acestor pași, va transmite informația pe serverul Cayenne ,
odată la 15 secunde, conform cu programul înscris în WeMos.
Acesta este modul în care funcționează aplicația.
28
3.4. Etapele realizării aplicației practice
În realizarea aces tui sistem IoT am ținut cont de implementarea ușoară a acestuia în practică
și de posibilitatea adăugării altor extinderi, pentru un număr mai mare de incinte sau pentru mai multe
tipuri de senzori. În momentul de fată, ar mai fi posibilă implementarea a încă 4 tipuri de senzori cu
ieșire digitală și a unui senzor cu ieșire analogică.
S-a plecat de la utilizarea unui procesor suficient de puternic, cu intrări bidirecționale
programabile (D1 -D8) și cu o intrare analogică (A0), care să poată fi ușor de config urat pentru o
conexiune wireless la Internet, acesta având posibilitatea conectării Wi -Fi.
După stabilirea componentelor și modulelor folosite s -a trecut la realizarea unei scheme
electrice, care să poată prelucra temperatura în protocol OneWire și de asem enea supravegherea stării
unor contacte electrice de tip (deschis -închis). Am ales module ușor de programat și ușor de interfațat
cu placa de dezvoltare aleasă . Așa cum am prezentat în capitolul anterior, am optat pentru placa de
dezvoltare WeMos D1 R1 (WeMos D1 mini), care are la bază procesorul ESP -8266. Este o placă de
mici dimensiuni , robustă cu comunicare nativă pe USB cu stabilizator de tensiune integrat de tip LDO
ce poate oferi un curent de 500mA, pentru alimentarea altor subansamble ce funcționea ză la 3,3V.
Eu am ales alimentarea cu 5V a plăcii pentru a evita posibilitatea alimentării stabilizatorului integrat
de pe placa WeMos doar pe terminalele de ieșire, acest mod ducând la o funcționare defectuoasă a
acestuia .
Pentru ca placa WeMos să comunic e corect cu senzorul de temperatură trebuiesc îndeplini ți
trei factori:
1. Inițializarea – în primul rând, orice tranzacție sau orice schimb de date începe cu o secvență
de inițializare. Secvența de inițializare este alcătuită dintr -un semnal de reset tran smis de placa de
dezvoltare (Master) , urmat de un semnal de prezență transmis de senzori (Slaves) . Semnalul de
prezență este util pentru placa de dezvoltare, pentru că aceasta trebuie să identifice prezența senzorilor
pe magistrala OneWire
2. Comenzi ROM – imediat după ce placa de dezvoltare a identificat senzorii de pe magistrală
urmează un schimb de date folosind o serie de comenzi ROM . Spre exemplu, există o comandă de
căutare (Search ROM) prin care placa de dezvoltare identifică numărul senzorilor de pe magistrală și
tipurile lor. Mai există o comandă (Read ROM) care este utilă doar dacă pe magistrală se află conectat
un singur senzor. În acest fel, placa de dezvoltare nu pierde timp util pentru căutarea altor senzori. O
altă comandă este (Skip ROM), atu nci când placa de dezvoltare dorește să se adreseze tuturor
senzorilor. Acestea sunt doar câteva exemple.
3. Comenzi specifice senzorului de temperatură – imediat ce placa de dezvoltare a identificat
senzorii de temperatură prin comenzile ROM , urmează ca p laca de dezvoltare să facă un schimb de
informații cu senzorul în sine. Lucrul acesta se face printr -un set specific de comenzi. Spre exemplu,
comanda Convert T , prin care placa de dezvoltare inițializează o conversie de temperatură . Imediat
29
dopă ce senzor ul a primit și executat comanda de conversie , pune toată informația pe un spațiu intern
de memorie format din 2 bytes. Urmează ca placa de dezvoltare să citească, prin altă comandă, spațiul
intern de memorie al senzorului . Această comandă se numește ReadS cratchpad, prin care placa de
dezvoltare citește toată zona de memorie a senzorului. Există și alte comenzi de citire și scriere , setare
alarmă, identificare senzori, modul în care se face alimentarea etc.
După stabilirea componentelor ce vor fi folosite și după conceperea schemei am trecut la
verificarea funcționalității acesteia prin intermediul plăcii de probă tip Breadboard, iar ca fire de
conexiune am folosit conectori Dupont . În imaginile următoare se vede realizarea de probă.
În urma acestei experimentări, am ajuns la concluzia că implementarea soluției este bună și
că totul funcționează conform așteptărilor. Ca urmare am accesat site -ul myDevice Cayenne și
mi-am realizat interfața de care aveam nevoie, urmând ca ulterior să o optimizez pentru a se putea
interpreta mai ușor informația. Interfața pe telefonul mobil arăta astfel:
30
Mai departe, am desenat schema electrică așa cum apare în Anexa 2. Pentru desenarea
schemei electrice am folosit un program specializat în desenarea schemelor electrice și electronice.
Acest program este Proteus 8.7 SP3 (build 25561) , așa cum se observă în figura de mai jos.
Pentru realizarea cablajelor imprimate, pe care s -a realizat aplicația, am folosit din nou un
program specializat în realizare a cablajelor imprimate și anume Sprint Layout versiunea 6.0
31
Cablajele imprimate pentru aplicația implementată sunt două la număr. Primul cablaj este cel
al aplicației implementate, iar al doilea este cel al blocului de alimentare. Am realizat două cab laje
deoarece am dorit separarea totală a WeMos de partea de alimentare din rețeaua industrială de
230V/50Hz
Realizarea practică a cablajelor a fost realizată prin metoda fotografică, prin expunerea unei
plăci de cablaj imprimat, acoperit cu fotorezist , la ultraviolete, conform unei măști (silk mask)
produse de Sprint Layout , apoi trasele de cupru rezultate au fo st acoperite cu staniu, pentru a preveni
oxidarea și pentru a avea un aspect mai plăcut. Cablajele realizate practic și echipate, sunt prezentate
în imaginile următoare (cele două blocuri funcționale):
1. Modulul de procesare și comunicare WeMos:
2. Blocul de alimentare cu energie electrică:
32
După realizarea montajelor electronice s -a trecut la realizarea unei cutii adecvate plăcilor
finite, precum și pentru conexiunea cu senzorii. Pentru a reuși o cat mai bună adaptabilitate, s -a ales
folosirea u nor conectori tip Jack stereo de 3,5mm (mamă -tată), pentru conectarea senzorilor și
contactelor la montaj. S -a ales o cutie din material plastic, ABS.
Pe partea frontală conține 8 conectori Jack pentru senzori și contacte, un buton cu reținere
pentru porni t/oprit și un LED verde ce semnalizează alimentarea cu energie electrică.
Pe partea posterioară conține un soclu de siguranță fuzibilă și o trecere pentru cablul de
alimentare cu tensiune, de la rețeaua electrică a locuinței. În faza de asamblare, aceasta arată ca în
figura de mai jos:
În final, montajul electronic este închis în cutia descrisă mai sus cu ajutorul a 4 șuruburi ce
conțin 4 pufere de cauciuc pentru a preveni alunecarea și zgârierea suprafețelor pe care va fi depusă
cutia. Montajul finaliza t arată astfel:
33
34
3.5. Interfața grafică de pe site -ul Cayenne și de pe aplicația Magazin Play
35
3.6. Graficele de evoluție ale parametrilor măsurați din interfața Cayenne
36
Capitolul 4.
Concluzii
Prin lucrarea de față, am încercat să aduc o ilustrare a modului în care la ora actuală Internetul
a început să ne influențeze viața cotidiană, observând tot mai mult imersiunea acestuia în viețile
noastre. Această aplicație se pretează la realizarea conce ptului de ”Casă inteligentă”, prin intermediul
ei, iată, putem supraveghea temperatura în mai multe incinte, precum și protecția căilor de acces în
aceste incinte.
Ideea realizării a plecat de la o situație reală neplăcută, pe de o parte posibilitatea int rării prin
efracție într -o incintă, iar pe de altă parte la disconfortul ce s -ar crea dacă în acea incintă temperatura
ar scădea sau crește necontrolat.
Prin această implementare putem avea acces la datele transmise de oriunde din lume prin
intermediul Int ernetului, lucru care în trecut părea de domeniul Științifico -Fantastic. De asemenea se
pot pune limite de temperatură minim/maxim, precum și acces permis sau nepermis într -o incintă.
Prin intermediul comenzilor ce se pot da de pe serverul Cayenne, vom fii în permanență informați cu
privire la ceea ce se întâmplă în lipsa noastră.
Acest server are posibilitatea de transmitere a unui mesaj text (SMS) pe telefonul mobil prin
declararea unui număr de telefon valid. Nu am testa această facilitate, dat fiind fa ptul că aceste SMS –
uri s-ar transmite ca și cum ar proveni din Statele Unite ale Americii, lucru ce ar duce la costuri
suplimentare la telefonul mobil.
Un lucru îmbucurător este că în permanență există posibilitatea extinderii acestei aplicații, în
specia l prin suplimentarea numărului de senzori de temperatură, grație protocolului OneWire. Spun
acest lucru, deoarece această extindere nu afectează deloc partea de hardware, oricare dintre cei 4
senzori poate susține pe cele trei fire aferente câte o sub -rețea proprie, putând adăuga până la
maximum 32 senzori (această limitare provine din facilitățile serverului Cayenne, nu cele fizice).
De asemenea se poate extinde și numărul de contacte de supraveghere cu încă trei bucăți cu
modificări hardware minim. Dacă s-ar dori mai multe ar trebui schimbată inclusiv placa de dezvoltare,
lucru ce nu ar mai fi fiabil, ducând la costuri suplimentare.
Cu alte cuvinte, se poate spune că am realizat o automatizare personală, cu posibilități de
extindere, automatizare ce folos ește din plin conceptul IoT, fiind de un real folos în locuința
personală, spre exemplu.
37
Bibliografie
[1]. Rețeaua lucrurilor, https://www.thethingsnetwork.org/docs/applications/cayenne/
[2]. Utilizare senzori temperatură OneWire, http://robofun.ro/docs/DS18B20.pdf
[3]. Internetul lucrurilor, https://www.quickmobile.ro/articole/ce -este-internet -of-things
[4]. Noțiunea de Wi -Fi, https://playtech .ro/2016/cum -a-fost-adoptata -denumirea -wifi-si-ce-
inseamna -aceasta/
[5]. Noțiunea de Wi -Fi, https://playtech.ro/2015/intalnirea -care-a-pus-bazele -tehnologiei -wifi-ce-
influenta -a-avut-apple/
[6]. Arduino IDE, https://ro.wikipedia.org/wiki/Arduino
[7]. Comunicarea cu senzo rul DS18B20,
http://www.coned.utcluj.ro/~salomie/DS_Mas/4_Seminar/FullResearchPapers/9/IoT -Sergiu –
AdrianCoca.docx
[8]. Arduino Unor v3, https://www.robofun.ro/arduino_uno_v3
[9]. Arduino, http://www.roroid.ro/prima -lectie
[10]. ArduinoUNO, http://digital.csic.es/bitstream/10261/127788/7/D -c-%20Arduino%20uno.pdf
[11]. WeMos D1 R1, https://www.wemos.cc/
[12]. Brian W. Evans, Arduino programând notebook, August 2007
[13]. L. Darace , S. Condor , Samos Teaca Yourself Android Application Development in
24Hours, Second Edition, Sams Publishig House, 2012.
[14]. D. Wilcher, Learn Electronics with Arduino, Apress Access, 2012.
38
Anexa 1 .
Codul sursă aferent întregului sistem este :
//Acest exemplu arata cum se poate face o conectare la serverul Cayenne pentru a trimite/receptiona
date
// adaugare "zone" de acces si senzori multiplii de catre Mihai Brindusoiu, 24.04.2019, Timisoara
// 4 senzori DS18B20 in paralel
// 4 "zone" de acces monitorizate
// Includem librariile de care avem nevoie
#include <OneWire.h> //tipul interfetei senzorilor de temperatura
#include <DallasTemperature.h> //tipul de senzori de temperatura
// Datele de la senzori sunt transmise pe GPIO 5 – D1
#define sete 5 // GPIO5 – D1 definire pin se(nzor)te(mperatura)
#define precizie 10
// Setup OneWire pentru a comunica cu dispozitive OneWire Maxim/Dallas)
OneWire oneWire(sete);
//Transferul OneWire catre libraria Dallas Temperature.
DallasTemperature senzori(&oneWir e);
// matricea de memorare a adreselor de la senzori
DeviceAddress st1, st2, st3, st4;
float t1, t2, t3, t4; //definire tipul de variabila luat de temperatura, numar real in virgula mobila
#define SW1 4 //GPIO04 – D2
#define SW2 14 //GPIO14 – D5
#define SW3 12 //GPIO12 – D6
#define SW4 13 //GPIO13 – D7
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>
// Datele autentificare ale retelei WiFi.
char ssid[] = "SRX -WR150WH";
char wifiPassword[] = "laboratornoi";
39
// Informatiile de auten tificare de pe serverul Cayenne. Aceste informatii provin de la Cayenne
Dashboard.
char username[] = "57806020 -dd2c -11e7 -b556 -b7f707866213";
char password[] = "3e35dea06e4179d36b8d9c0bc63dbb66a0c4a8ea";
char clientID[] = "fa74c930 -1ac4 -11e8 -ac80 -85ded0fe5d 33";
unsigned long lastMillis = 0;
unsigned long asteptare = 15000;
//inceputul setarii dispozitivelor hardware
void setup() {
Serial.begin(9600); //definire viteza comunicare seriala
Serial.println();
Serial.println("NodeMCU – Cayenne IoT");
pinMode(SW1,INPUT); //definire buton 1 ca intrare
pinMode(SW2,INPUT); //definire buton 2 ca intrare
pinMode(SW3,INPUT); //definire buton 3 ca intrare
pinMode(SW4,INPUT); //definire buton 4 ca intrare
// Start librarie Dallas
senzori.begin();
// localizare senzori pe magistrala
Serial.print("Caut senzori de temperatura DS…");
Serial.print("Gasit ");
Serial.print(senzori.getDeviceCount(), DEC);
Serial.println(" senzori.");
// raporteaza eventuala utilizare a alimentarii parazite – varianta de alimentare pentru DS18B20
Serial.print("Alimentarea parazita este: ");
if (senzori.isParasitePowerMode()) Serial.println("activata");
else Serial.println("dezactivata");
// metoda de detectie: dupa indexul senzorului
40
if (!senzori.getAddress(st1, 0)) Serial.println("Nu gasesc adresa senzorului 1");
if (!senzori.getAddress(st2, 1)) Serial.println("Nu gasesc adresa senzorului 2");
if (!senzori.getAddress(st3, 2)) Seri al.println("Nu gasesc adresa senzorului 3");
if (!senzori.getAddress(st4, 3)) Serial.println("Nu gasesc adresa senzorului 4");
// Afisare adrese gasite pe magistrala OneWire
Serial.print("Addresa senzorului 1: ");
printAddress(st1);
Serial.println();
Serial.print("Addresa senzorului 2: ");
printAddress(st2);
Serial.println();
Serial.print("Addresa senzorului 3: ");
printAddress(st3);
Serial.println();
Serial.print("Addresa senzorului 4: ");
printAddress(st4);
Serial.println();
// setarea rezolutiei senzorilor pe 10 bit (poate fi 9, 10 sau 12)
senzori.setResolution(st1, precizie);
senzori.setResolution(st2, precizie);
senzori.setResolution(st3, precizie);
senzori.setResolution(st4, precizie);
// cerere de citire a senzorilor gasiti pe magistrala
Serial.print("Se solicita temperaturile…");
senzori.requestTemperatures();
Serial.println("GATA");
t1 = senzori.getTempC(st1);
t2 = senzori.getTempC(st2);
t3 = senzori.getTempC(st3);
41
t4 = senzori.getTempC(st4);
Serial.print("Temperatura senzor 1: ");
Serial.print(t1);
Serial.println(" grade Celsius");
Serial.print("Temperatura senzor 2: ");
Serial.print(t2);
Serial.println(" grade Celsius");
Serial.print("Temperatura senzor 3: ");
Serial.print(t3);
Serial.println(" grade Celsius");
Serial.print("Temperatura senzor 4: ");
Serial.print(t4);
Serial.println(" grade Celsius");
//inceputul comunicarii cu serverul Cayenne
Cayenne.begin(username, password, clientID, ssid, wifiPassw ord);
}
// functia de tiparire a adreselor senzorilor
void printAddress(DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i < 4; i++)
{
if (deviceAddress[i] < 16) Serial.print("0");
Serial.print(deviceAddress[i], HEX);
}
}
//inceput bucla executie
void loop() {
Cayenne.loop();
//Se publica informatia odata la 15s (15000 ms). Aceasta valoare se stabileste de catre utilizator.
if (millis() – lastMillis > asteptare) {
Serial.print("Se solicita temperatrile..");
senzori.requestT emperatures();
42
Serial.println("GATA");
t1 = senzori.getTempC(st1);
t2 = senzori.getTempC(st2);
t3 = senzori.getTempC(st3);
t4 = senzori.getTempC(st4);
Serial.print("Temperatura senzor 1: ");
Serial.print(t1);
Serial.println(" grade Celsius");
Serial.print("Temperatura senzor 2: ");
Serial.print(t2);
Serial.println(" grade Celsius");
Serial.print("Temperatura senzor 3: ");
Serial.print(t3);
Serial.println(" grade Celsius");
Serial.print("Temperatura senzor 4: ");
Serial.print(t4);
lastMillis = millis();
Cayenne.celsiusWrite(0, t1); //Trimitere valoare temperatura citita de senzorul 1, pe canalul 0
Cayenne.celsiusWrite(1, t2); //Trimitere valoare temperatura citita de senzorul 2, pe canalul 1
Cayenne.celsiusWrite(2, t3); //Trimitere valoare temperatura citita de senzorul 3, pe canalul 2
Cayenne.celsiusWrite(3, t4); //Trimitere valoare temperatura citita de senzorul 4, pe canalul 3
Cayenne.virtualWrite(4,digitalRead(SW1)); //Trimiter e stare buton 1 pe canalul 4.
Cayenne.virtualWrite(5,digitalRead(SW2)); //Trimitere stare buton 2 pe canalul 5.
Cayenne.virtualWrite(6,digitalRead(SW3)); //Trimitere stare buton 3 pe canalul 6.
Cayenne.virtualWrite(7,digitalRead(SW4)); //Trimit ere stare buton 4 pe canalul 7.
}
} // sfarsit bucla de executie
43
Anexa 2 .
Schema electrică, completă a sistemului
44
DECLARAȚIE DE AUTENTICITATE
A
PROIECTULUI DE FINALIZARE A STUDIILOR
Titlul proiectului _____________________________________________________
___________________________________________________________________
___________________________________________________________________
Autorul proiectului _____________________________________________
Proiectul de finalizare a studiilor este elaborat în vederea susținerii examenului
de finalizare a studiilor organizat de către Facultatea
_______________I.E.T.I._________________________ din cadrul Universității din
Oradea, sesiunea________iulie_______ __ a anului universitar __201 9___________.
Prin prezenta, subsemnatul (nume, prenume, CNP)_____________________
__________________________________________________________________,
declar pe proprie răspundere că aceast proiect a fost scris de către mine, f ără nici un
ajutor neautorizat și că nici o parte a proiectului nu conține aplicații sau studii de caz
publicate de alți autori.
Declar, de asemenea, că în proiect nu există idei, tabele, grafice, hărți sau alte
surse folosite fără respectarea legii român e și a convențiilor internaționale privind
drepturile de autor.
Timisoara,
Data Semnătura
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: FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI [615748] (ID: 615748)
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.
