REȚEA DE SENZORI WIRELESS CU AFIȘAREA INFORMAȚIEI ÎN TIMP REAL PE DISPLAY CU TOUCH CONDUCĂTOR ȘTIINȚIFIC: Lt.col.conf.univ.dr.ing. Cristian MOLDER… [623530]

ROMÂNIA
MINISTERUL APĂRĂRII NAȚIONALE
ACADEMIA TEHNICĂ MILITARĂ
“FERDINAND I”

FACULTATEA DE COMUNICAȚII ȘI SISTEME ELECTRONICE
PENTRU APĂRARE ȘI SECURITATE

REȚEA DE SENZORI WIRELESS CU AFIȘAREA
INFORMAȚIEI ÎN TIMP REAL PE DISPLAY CU TOUCH

CONDUCĂTOR ȘTIINȚIFIC:
Lt.col.conf.univ.dr.ing. Cristian MOLDER

MASTERAND: [anonimizat].ing. Daniel-Cristian MUSTE

Conține ___________ file
Inventariat sub nr_______
Poziția din indicator: ____
Termen de păstrare: _____

BUCUREȘTI
2020

NECLASIFICAT
NECLASIFICAT

NECLASIFICAT
NECLASIFICAT

Abstract

Odată cu dezvoltarea accelerată și avansată a tehnologiei wireless și a
electronicii digitale, unele dispozitive de dimensiuni foarte mici au început să fie
folosite în numeroase domenii în viața de zi cu zi. Aceste dispozitive au capacități
de detectare, calcul și comunicare. În general sunt compuse din sisteme
transmisie-recepție de putere redusă, mai mulți senzori inteligenți și procesoare
integrate (CPU). Aceste dispozitive sunt folosite pentru a forma o rețea de senzori
fără fir (WSN) care este necesară pentru a furniza diferite servicii de detectare și
monitorizare.
În prezent, sistemele de monitorizare sunt integrate și utilizate în aproape
toate domeniile de activitate, de exemplu: meteorologie, agricultura, climatizare,
internetul lucrurilor (IoT) etc.. Prin urmare, această lucrare se concentrează pe
dezvoltarea unui sistem care să poată monitoriza la distanță și afișa în timp real
datele achiziționate de senzori. Sistemul propus este fundamentat pe structura
unei rețele wireless de comunicații tip Lora și urmarește variația următorilor
parametrii climatici: temperatură, umiditate, presiune și intensitatea luminii.

NECLASIFICAT
NECLASIFICAT

NECLASIFICAT
NECLASIFICAT

Cuprins

1. Introducere ……………………………………………………………………………………….. 8
1.1 Motivație …………………………………………………………………………………….. 9
1.2 Structura lucrării …………………………………………………………………………. 11
2. Proiectare ……………………………………………………………………………………….. 12
3. Considerente hardware ……………………………………………………………………… 13
3.1 Placa de dezvoltare LoPy ……………………………………………………………… 13
3.2 Modulul PySense ………………………………………………………………………… 15
3.3 Senzor de lumină ambientală LTR-329ALS-01 ……………………………….. 16
3.4 Senzor de presiune atmosferică MPL3115A2 ………………………………….. 17
3.5 Senzor de umiditate și temperatură Si7006-A20 ………………………………. 18
3.6 Raspberry Pie 3 …………………………………………………………………………… 19
4. Considerente software ………………………………………………………………………. 21
5. Rezultate experimentale ……………………………………………………………………. 28
6. Concluzii și perspective ……………………………………………………………………. 34

NECLASIFICAT
NECLASIFICAT

Tabel de figuri

Figura 1 Arhitectura rețelei de senzori wireless………………………………………….. 8
Figura 2 Sistem de monitorizare în agricultură …………………………………………… 9
Figura 3 Exemplu de Smart Home (IoT) …………………………………………………. 10
Figura 4 Schema bloc a proiectului ………………………………………………………… 12
Figura 5 Modul Lopy …………………………………………………………………………… 13
Figura 6 Diagrama pinilor …………………………………………………………………….. 14
Figura 7 Antena Lora …………………………………………………………………………… 14
Figura 8 Modulul PySense ……………………………………………………………………. 15
Figura 9 Diagrama pinilor …………………………………………………………………….. 16
Figura 10 Senzorul LTR-329ALS-01 ……………………………………………………… 17
Figura 11 Diagrama bloc a MPL3115A2 ………………………………………………… 18
Figura 12 Senzor Si7006-A20 ……………………………………………………………….. 19
Figura 13 Raspberry Pi3 Model B ………………………………………………………….. 19
Figura 14 Ecran tactil Raspberry Pi ………………………………………………………… 20
Figura 15 Terminal Visual Studio Code ………………………………………………….. 21
Figura 16 Thonny Python …………………………………………………………………….. 22
Figura 17 Structura interfeței ………………………………………………………………… 23
Figura 18 Importarea modulelor PyQt5 …………………………………………………… 23
Figura 19 Configurare LoRa …………………………………………………………………. 24
Figura 20 Diagrama de comunicație prin UART ………………………………………. 24
Figura 21 Relația de tip master-slave ……………………………………………………… 24
Figura 22 Diagrama de comunicare a protocolului I2C ……………………………… 25
Figura 23 Configurarea I2C ………………………………………………………………….. 26
Figura 24 Configurare registry LTR329ALS01 ……………………………………….. 26
Figura 25 Conversia din Pascali în milimetri coloana de mercur (mmHg) ……. 27
Figura 26 Importarea subprogramelor de achiziție ……………………………………. 27
Figura 27 Transmiterea datelor prin LoRa ………………………………………………. 27
Figura 28 Tabel interpretare Lux ……………………………………………………………. 28
Figura 29 Modul de conectare al LoPy-ului …………………………………………….. 29
Figura 30 Diferența între informația recepționată și cea transmisă ………………. 30
Figura 31 Modul de conectare al LoPy-ului la Raspberry ………………………….. 30
Figura 32 Informația transmisă ……………………………………………………………… 31
Figura 33 Informația recepționată ………………………………………………………….. 31
Figura 34 Afișarea în interfață a datelor achiziționate ……………………………….. 32
Figura 35 Ansamblul sistemului testat ……………………………………………………. 33

NECLASIFICAT
NECLASIFICAT

1.Introducere

Cu mult timp în urmă, sistemul de monitorizare tradițional cuprindea în
cea mai mare parte conexiuni realizate prin cabluri. Acest tip de arhitectură
impune un cost ridicat al investițiilor, cât și cerințe practice cu un mod de
realizare foarte complex pentru a putea obține un sistem de monitorizare
inteligent. Astfel, sistemul de monitorizare propus va avea mai multe posibilități
de piață, fiind mai sigur, mai ușor de instalat și utilizat, cât și mai scăzut în
costuri. În ultimii ani, tehnologia de comunicații wireless a fost utilizată pe
scară largă, în aproape toate aplicațiile ce presupuneau un schimb de date.
Odată cu dezvoltarea rapidă a tehnologiei wireless și a electronicii
încorporate (embedded), rețelele de senzori wireless au început să atragă
interesul cercetătorilor. O rețea de senzori wireless tipică este formată din mici
dispozitive care sunt cunoscute ca noduri. Aceste noduri includ o unitate
centrală de procesare încorporată și câțiva senzori inteligenți. Cu acești senzori,
nodurile sunt utilizate pentru a monitoriza mediul inconjurator având în vedere
factori precum umiditatea, presiunea, căldura și lumina. De obicei, un nod din
orice rețea de senzori wireless conține interfața de senzori, unitatea de calcul,
traductori și unitatea de alimentare. Aceste unități îndeplinesc sarcini cruciale
făcând noduri capabile să comunice cu gateway-ul pentru a transmite datele
obținute de senzorii lor.
De obicei, arhitectura unei rețele de senzori wireless este compusă din
următoarele 3 elemente: nod senzori, gateway și observator (utilizator). Nodul și
gateway-ul sunt interconectate prin intermediul unei rețele speciale de tip Lora.

Figura 1 Arhitectura rețelei de senzori wireless

NECLASIFICAT
NECLASIFICAT

1.1 Motivație

Motivația principală ce stă la baza realizării acestei lucrări este
importanța și utilizarea pe scară tot mai largă a rețelelor de senzori wireless,
precum și modul în care aceste rețele pot duce la crearea unor condiții de lucru
mai ușoare coroborate cu rezultate mult mai bune și procese optimizate. Un
prim exemplu ce susține cele enunțate anterior se poate constitui printr-o simpla
analiza asupra unor aspecte din domeniul agriculturii. Anterior, personalului
legumicultor caruia îi era atribuit monitorizarea și crearea unui mediu optim de
dezvoltare în interiorul unor sere, avea obligația de a vizita spațiile la un anumit
interval orar pentru a verifica în mod manual parametrii precum temperatură
sol/aer/apă, lumină, umiditate etc.. Acest tip de practică implică un consum
mare atât de timp cât și de energie, iar supravegherea unor plante ce necesită
atenție 24 de ore din 24 devin practic imposibilă.

Figura 2 Sistem de monitorizare în agricultură

De asemenea, putem să ne îndreptăm atenția și către un fenomen ce a luat
foarte multă amploare în ultimul timp, și anume internetul lucrurilor (Internet of
Things). Acest concept este fondat și funcționeaza pe baza a diferiți senzori,
specifici mediului de aplicabilitate. De exemplu, sistemele inteligente de senzori
joacă un rol important în crearea unei ambianțe plăcute și sigure în spațiile
interioare. Senzorii pot fi integrați în acest mediu și pot fi utilizați pentru a
monitoriza parametrii precum temperatura, umiditatea, scăpările de gaz, sisteme
de intruziune etc. și pot să ne ofere alarme și avertismente legate de schimbari
sau evenimente ce pot deveni o amenințare în viața de zi cu zi.

NECLASIFICAT
NECLASIFICAT

Figura 3 Exemplu de Smart Home (IoT)

În acest sens, obiectivul acestui proiect este de a realiza, atât software cât
și hardware, un sistem de senzori cu monitorizare în timp real al unor parametrii
precum: temperatură, presiune, umiditate și intensitate luminoasă, pentru a
putea fi utilizați în diferite domenii de aplicabilitate. De asemenea, importanța
acestui proiect nu se fondează strict pe senzorii utilizați, ci pe sistemul de
achiziție, transmisie și intefațare a acestor parametri, fiind posibilă adaptarea
monitorizării în funcție de nevoile mediului de lucru respectiv, și anume prin
interconectarea de senzori specifici.

NECLASIFICAT
NECLASIFICAT

1.2 Structura lucrării

Lucrarea “Rețea de senzori wireless cu afișarea informației în timp real
pe display cu touch” este structurată în 6 capitole, fiecare capitol cuprinzând
informații despre proiect atât din punct de vedere hardware, cât și software.

Capitolul 1: Introducere. Prezintă noțiunile de bază și considerentele care au
dus la elaborarea unui sistem ce cuprinde monitorizarea unei rețele de senzori
wireless.

Capitolul 2: Proiectare. Prezintă în linii mari sistemul realizat atât din punct de
vedere software cât și hardware.

Capitolul 3:Considerente hardware. Sunt prezentate componentele electronice
utilizate și caracteristicile acestora.

Capitolul 4:Considerente software. Sunt prezentate soft-urile și modul de
realizare al configurărilor.

Capitolul 5:Rezultate experimentale. Prezintă modul în care a fost testat
sistemul și rezultatele obținute.

Capitolul 6: Concluzii și perspective. Prezintă interpretarea rezultatelor și
posibilitatea de dezvoltare a sistemului.

NECLASIFICAT
NECLASIFICAT

2. Proiectare

Pentru realizarea proiectului am dezvoltat o interfață în Python pentru
vizualizarea datelor pe un dispozitiv Raspberry Pi3 cu ecran cu touch. Pentru
colectarea datelor a fost folosit un modul PySense cu senzori, aceștia
comunicând cu Lopy-ul de achiziție prin protocolul I2C (Inter Integrated
Circuit). De la Lopy-ul utilizat la colectarea datelor de la senzori s-a transmis
prin tehnologia Lora la un alt Lopy datele de interes. Prin modul serial (UART),
Lopy-ul de la recepție transmite datele către Raspberry Pi3, date ce urmeaza a fi
prelucrate și intefațate în aplicația dezvoltată.

Componentele/sistemele electronice utilizate:
 Placă de dezvoltare Lopy
 Modul PySense
 Antenă Lora
 Raspberry Pi3 și display cu touch
 Senzor de lumină Si7006-A20
 Senzor de presiune MPL3115A2
 Senzor de temperaură și umiditate LTR-329ALS-01

Figura 4 Schema bloc a proiectului

NECLASIFICAT
NECLASIFICAT

3. Considerente hardware

3.1 Placa de dezvoltare LoPy

LoPy este o rețea compactă triplă de dezvoltare compatibilă MicroPython
(LoRa, WiFi, Bluetooth). Este platforma perfectă pentru dezvoltarea de aplicații
în domeniul internetului lucrurilor (IoT-Internet of Things) cât și pentru orice alt
tip de alte aplicații bazate pe colectarea de date wireless de la senzori. Având cel
mai recent chipset Espressif ESP32, LoPy oferă o combinație perfectă de putere,
prietenie și flexibilitate.
LoPy poate acționa ca o poartă de nano LoRa și o platformă de dezvoltare
multi-purtător (LoRa,WiFi și BLE) potrivită pentru toate rețelele LoRa. Este
programabil cu MicroPython și plugin-urile Pymakr pentru o dezvoltare rapidă a
aplicațiilor necesare domeniului de dezvoltare. De asemenea, LoPy se poate
configura în modul LoRa brut pentru a realiza o comunicație directă între LoPy.

Figura 5 Modul Lopy

Caracteristici tehnice:
 CPU puternic, BLE și radio WiFi de ultimă generație;
 Se poate dubla și ca gateway Nano LoRa având MicroPython activat;
 Chipset Espressif ESP32 cu Procesor dual + Sistem radio WiFi pe cip;
 Procesorul de rețea gestionează conectivitatea WiFi și stiva IPv6;
 Un coprocesor ULP suplimentar care poate monitoriza GPIO-urile,
canalele ADC și poate controla majoritatea perifericelor interne în
modul de adormire profundă, consumând doar 25uA;
 Specificația LoRa 868 MHz (Europa) la + 14dBm maxim, intervalul
nodurilor până la 40 km și nano-gateway până la 22 km;
 2 x UART, SPI, 2 x I2C, I2S, micro SD card;

NECLASIFICAT
NECLASIFICAT

 Canalele analogice: ADC-uri de 8 × 12 biți;
 Temporizatoare: 4 × 16 biți cu PWM și captare de intrare;
 DMA pe toate perifericele;
 GPIO: Până la 24, RAM: 4 MB, Bliț extern: 8 MB;
 Posibilitate de hash / criptare: SHA, MD5, DES, AES;
 Putere: Intrare: 3.3V – 5.5V, ieșire 3v3 capabilă să furnizeze până la
400mA;

Figura 6 Diagrama pinilor

De asemenea, un lucru foarte important pentru utilizarea corectă a plăcii
de dezvoltare LoPy îl constituie utilizarea antenei Lora, în caz contrar se poate
ajunge la defectarea iremediabilă a LoPy-ului.

Figura 7 Antena Lora

NECLASIFICAT
NECLASIFICAT

3.2 Modulul PySense

Acest modul este ca o placă de expansiune compatibilă cu LoPy, care oferă
posibilitatea de utilizare a unei multitudini de senzori precum lumină ambientală,
temperatură, presiune, etc. Împreună cu posibilitățile de comunicare la distanță și
cu caracteristicile de rețelistică a LoPy-ului, aceste două sisteme creează o
simbioză perfectă dezvoltării unei rețele de senzori wireless.

Figura 8 Modulul PySense

Caracteristici generale:
 Senzor de lumină ambientală LTR-329ALS-01;
 Senzor de presiune atmosferică MPL3115A2;
 Senzor de umiditate și temperatură Si7006-A20;
 Accelerometru LIS2HH12;

NECLASIFICAT
NECLASIFICAT

 Comunicație serială pe port USB;
 Circuit de încărcare pentru acumulator LiPo;
 Slot pentru card MicroSD;
 Consum foarte mic de energie: ~1uA în modul deep sleep.

Figura 9 Diagrama pinilor

3.3 Senzor de lumină ambientală LTR-329ALS-01

Este un senzor de tensiune redusă, care utilizează protocolul I2C. Acesta
convertește intensitatea luminii într-o valoare digitală. Acesta poate fi configurat
sa funcționeze într-o gamă de la 0.01 luxi până la 64000 de luxi.

Caracteristici:
 Tensiune de alimentare de 3.3V;
 Curent maxim consumat de 220uA;
 Curent de standby de 5uA;
 Timp de startup de 100ms;
 Timp de wakeup de 10ms;
 ADC intern cu rezoluție de 16 biți;
 Comunicație I2C cu frecvență maximă de 400kHz;

NECLASIFICAT
NECLASIFICAT

 Adresă pentru citire/scriere: 0x53H / 0x52H;
 Circuit pentru compensare temperatură inclus;
 Răspuns spectral apropiat de cel al ochiului uman;
 Imun la radiație IR/UV și rejecție flicker la 50/60 Hz;
 Intensitate luminoasă între 0.01 lux și 64k lux.

Figura 10 Senzorul LTR-329ALS-01

3.4 Senzor de presiune atmosferică MPL3115A2

Acesta este un senzor piezorezistiv cu o interfață I2C și funcționează într-
o gamă de la 20kPa până la 110kPa, suficient cât să poate funcționa optim oriunde
pe suprafața pământului. Poate fi programat să funcționeze în modul economisire
energie, întreruperi și achiziție de date automată.

Caracteristici:
 Presiune măsurabilă: 20 – 110 kPa;
 Altitudine echivalentă pentru 50 kPa: -700 m;
 Interval de presiune pentru care senzorul este calibrat: 50 – 110 kPa;
 Comunicație I2C până la 400kHz;
 ADC de precizie cu rezoluție de 0.1 metri;
 Rezoluție ADC de 20 biți;
 Întreruperi programabile;
 Achiziție de date automată la un interval între o secundă și nouă ore;
 FIFO intern pentru 32 sample-uri;
 Data logging pentru până la 12 zile;
 Consum maxim de curent în timpul achiziției de date: 2mA.

NECLASIFICAT
NECLASIFICAT

Figura 11 Diagrama bloc a MPL3115A2

3.5 Senzor de umiditate și temperatură Si7006-A20

Este un CMOS IC monolitic ce integrează elementele senzorilor de
temperatură și umiditate, un convertor analog-digital, procesor de semnale,
sistem de calibrare date și o interfață I2C. Acest senzor vine precalibrat, cu
setările aferente salvate în memoria non-volatilă.

Caracteristici:
 Măsurare umiditate relativă între 0 și 90% RH;
 Eroare de maxim ± 5% RH pentru măsurare umiditate;
 Măsurare temperatură între -10°C și +85 °C;
 Eroare de maxim ±1 °C pentru măsurare temperatură;
 Consum curent de până la 150uA;
 Consum minim de curent în mod standby de 60nA;
 Calibrat din fabrică;
 Interfață de comunicație I2C;
 Heater integrat on-chip.

NECLASIFICAT
NECLASIFICAT

Figura 12 Senzor Si7006-A20

3.6 Raspberry Pie 3

Raspberry PI este cunoscut precum cel mai accesibil (raportându-ne la
calitate-preț) computer programabil din lume. Această platformă este cea mai
utilizată după Arduino. Deși aplicațiile generale ale Raspberry Pi sunt mai puține,
este foarte preferat atunci când dezvoltați aplicații avansate. De asemenea, este o
platformă open source bazată pe Linux de unde se pot obține o mulțime de
informații conexe, astfel încât sistemul să poată fi personalizat în funcție de
necesități.

Figura 13 Raspberry Pi3 Model B

Specificații:
 Procesor: Broadcom BCM2837B0;

NECLASIFICAT
NECLASIFICAT

 Arhitectură procesor: Cortex – A53, 64 biți;
 Frecvență procesor: 1.4 GHz, quad-core;
 Memorie RAM: 1GB LPDDR2 SDRAM;
 Conectivitate WiFi: 2.4GHz și 5 GHz, IEEE 802.11 b/g/n/ac;
 Conectivitate Bluetooth 4.2, BLE;
 Conectivitate Ethernet: Gigabit, maxim 300Mbps, prin HUB USB2.0;
 Porturi USB: 4 x USB 2.0;
 Header GPIO cu 40 pini (compatibil cu versiunile vechi);
 Conector HDMI;
 Conector MIPI DSI (Display Serial Interface);
 Conector MIPI CSI (Camera Serial Interface);
 Output audio stereo și video composite;
 Decodare H.264, MPEG-4 (1080p30);
 Encodare H.264 (1080p30);
 OpenGL ES 1.1, 2.0 graphics;
 Slot card microSD pentru rularea sistemului de operare și stocare date;
 Alimentare: 5V, 2.5A;
 Alimentare PoE – Power over Ethernet (cu shield separat);
 Temperatură de operare: 0 – 50 grade Celsius.

De asemenea, împreună cu Raspbery Pi 3 am utilizat un ecran tactil de 7”
creat special pentru a fi utilizat în acest scop. Acesta oferă utilizatorilor
posibilitatea de a crea proiecte integrate (all-in-one). Ecranul de 800 x 480 se
conectează printr-o placă de adaptare care gestionează conversia de putere și
semnal. Sunt necesare doar doar două la Pi, putere de la portul Pi al GPIO și un
cablu panglică care se conectează la portul DSI prezent pe toate Raspberry Pis
(cu excepția Raspberry Pi Zero și Zero W).

Figura 14 Ecran tactil Raspberry Pi

NECLASIFICAT
NECLASIFICAT

4. Considerente software

Întreaga parte de programare ce este înglobată de proiect a fost realizată în
Python. Acesta este un limbaj de programare foarte popular și un avantaj
important îl constituie faptul ca este open-source. Funcționează pe diferite
platforme precum Windows, Mac, Linux, Raspberry, etc., fapt ce îi mărește
orizontul de utilizare. De asemenea, acest limbaj de programare rulează pe un
interpretor de sistem, astfel poate fi executat din momentul în care este scris.
Partea de achiziție și realizare a comuncării între LoPy-uri a fost realizată
cu ajutorul Pymakr. Acesta este un terminal de tip console ce permite
comunicarea cu LoPy prin intermediul limbajului de programare Python, și este
oferit sub forma unei extensi pentru editoare de cod sursă cum ar fi Visual Studio
Code sau Atom.

Figura 15 Terminal Visual Studio Code
Pe sistemul Raspberry Pi3, am utilizat o aplicație preinstalată, și anume
Thonny Python pentru a putea comunica cu LoPy-ul și implicit pentru a utiliza
interfața creată în Python.

NECLASIFICAT
NECLASIFICAT

Figura 16 Thonny Python

Înterfața propriu-zisă a fost realizată din patru parți ca în final au fost
interconectate, și anume:
 maintest.py – Este main-ul aplicației, care apelează și execute toate
subprogramele realizate;
 test.py – Este practic fereastra pe care o vedem după lansare în execuție,
poziționând și achiziționând toate datele necesare din subprocese;
 testbar.py – Este subprogramul în care au fost realizate widget-urile
circulare ce sunt afișate în interfață și conversiile necesare valorilor ce
urmează a fi afișate;
 threadtest.py – Este subprogramul ce realizează achiziția de date de la
LoPy și actualizarea în timp real a valorilor recepționate.

NECLASIFICAT
NECLASIFICAT

Figura 17 Structura interfeței
De asemenea, pentru realizarea acestei interfețe a fost necesară utilizarea
plug-in-ului PyQt5, care este un software ce conține o serie de module ce
facilitează realizarea unei interfețe profesionale, avand module de grafica,
semnal, formatare, multimedia, etc..

Figura 18 Importarea modulelor PyQt5

Comunicația între modulele LoPy a fost realizată prin modulul LoRa.
Aceasta este o tehnologie de tip rețea cu putere scăzută-suprafață de acoperire
mare (low-power wide-area network ). Se bazează pe modulația semnalului în
spectru împrăștiat pentru a coda informația într-un semnal de tip chirp. Un
lucru esențial este faptul ca poate funcționa cu antene senzitive care nu sunt
ultraperformante și să aibă rata de eroare a biților redusă ( bit error rate- BER).
Comunicația se realizează nelicențiat pe frecvența de 868MHz (Europa),
frecvență liberă pentru această comunicație.

NECLASIFICAT
NECLASIFICAT

Figura 19 Configurare LoRa
Transferul de informații de la LoPy-ul de recepție și Raspberry Pi, se
realizează cu ajutorul modulului UART. Acesta este un dispozitiv hardware
computerizat utilizat pentru comunicații seriale asincrone ce convertește
fluxul datelor de intrare primite de la dispozitivul periferic. Am folosit acest
modul împreuna cu protocolul Universal Serial Bus deoarece transferul se
face fara pierderi și nu este necesară o viteza foarte mare de transmisie întru
cât dimensiunea infomațiilor este de dimensiunea biților.

Figura 20 Diagrama de comunicație prin UART
Schimbul de date dintre LoPy și modulul PySense se realizează prin pinii
de date P22 (sda) și cel de timp P21 (scl), cu ajutorul protocolului I2C.
Interfața de I2C este un tip de magistrală utiliată pentru a transmite date seriale
în modul master-slave, aceasta fiind utilizată intensive între circuite integrate
digitale.

Figura 21 Relația de tip master-slave

NECLASIFICAT
NECLASIFICAT

Comunicarea prin I2C este mult mai complex decât cu o soluție de
Universal Serial Bus (USB) sau Serial Peripheral Interface (SPI). Fiecare
magistrală este constituită din doua semnale: SDA și SCL. Semnalul de ceas este
întotdeauna generat de master. Semnalizarea trebuie să respecte un anumit
protocol pentru ca dispozitivele din magistrală să-l recunoască drept o
comunicație validă. Mesajele sunt structurate în doua parți: un cadru de adresă și
unul sau mai multe cadre de date, care sunt mesaje de 8 biți transmise de la master
la slave sau invers.
Cadrul de adrese este întotdeauna primul pe orice secvență de comunicare
nouă. Adresa este pe 7 biți, primul bit este cel mai important bit (MSB- most
significant bit), urmat de bitul de citire/ scriere (Read/Write), unde 1 este pentru
operația de citire și 0 este pentru operația de scriere. Bitul numărul 9 din cadru
(frame) este bitul de ACK/NACK. Odată ce toți cei 8 biți au fost trimiși, se va
primi confirmarea/neconfirmarea primirii cadrului prin acest bit.
După ce cadrul de adresă a fost trimis, urmează cadrul de date. Master-ul
va continua să genereze impuluri de ceas la interval regulate de timp, iar datele
vor fi puse pe SDA de master sau de slave în funcție de bitul de citire/scriere
transmis anterior. Numărul de cadre de date este arbitrar, dispozitivele de tip slave
vor incrementa registrul intern până la transmisia unui nou cadru de tip adresă.

Figura 22 Diagrama de comunicare a protocolului I2C

Pentru a putea face achiziția datelor de la PySense de către LoPy, au fost
configurați atât pinii de sda și scl, cât și interfața de I2C.

NECLASIFICAT
NECLASIFICAT

Figura 23 Configurarea I2C
De asemenea, au fost configurați toți registri senzorilor utilizați și au fost
realizate mici calibrări astfel încât funcționarea să fie optimă (Fig.24), iar
mărimea fizică rezultată sa fie cea dorită (Fig.25).

Figura 24 Configurare registry LTR329ALS01

NECLASIFICAT
NECLASIFICAT

Figura 25 Conversia din Pascali în milimetri coloana de mercur (mmHg)
Integrarea achiziție de date de la toți senzorii s-a realizat în main-ul LoPy-
ului de achiziție unde au fost apelate toate subprogramele necesare, urmând a fi
rulate secvențial și create variablele de înregistrare a valorilor primite.

Figura 26 Importarea subprogramelor de achiziție
De asemenea, în pasul urmator au fost pregatite valorile sub forma unui
singur string de date, pentru a face recepția simultană a tuturor variabilelor
provenite de la senzori, și codarea acestora într-un format specific transmiterii
prin tehnologia LoRa.

Figura 27 Transmiterea datelor prin LoRa

NECLASIFICAT
NECLASIFICAT

5. Rezultate experimentale

În scopul verificării corectitudinii datelor transmise, pentru fiecare sensor
în parte au fost utilizate urmatoarele metode sau instrumente:
 Temperatură- Am utilizat ca valore de referință termostatul din apartament,
și am urmarit modificarile de temperatură în urma utilizării unui ventilator,
sau a utilizării într-un spațiu deschis exterior, confruntând valoarea
achiziționată cu temperatura anunțată de stațiile meteo din zonă;

 Lumină- Am confruntat valorile înregistrate cu tabelul de luxi, care arata
valorile referință pentru mediul interior, exterior, ambiental, semiumbră,
etc. , și am observat concordanța dintre acestea;

Figura 28 Tabel interpretare Lux

 Presiune- Am comparat valorea indicată de sensor cu valoarea indicate de
stațiile meteo, însă valorile era sensibil diferite, fapt ce poate rezulta și din
faptul că presiunea nu este echivalent distribuită pe suprața orașului, ci sunt
mulți factori de luat în calcul, însă valorile fiind apropiate putem considera
că senzorul funcționează corespunzător;

NECLASIFICAT
NECLASIFICAT

 Umiditate- Nu a fost posibilă verificarea concretă a valorii indicate de
sensor cu valoare indicată de un alt instrument de măsură, insă se poate
observa clar variația de la umiditatea ambientală, la umiditatea obținută în
timpul utilizării unui ventilator îndreptat spre sensor sau utilizare unui
umidificator.

În prima fază, am conectat prin USB ambele LoPy-uri la un laptop, atât în
scopul alimentării acestora cât și de programare și testare a codurilor
implementate. După testarea propriu-zisă și obținerea rezultatelor dorite, am
încarcat programele realizate corespunzătoare fiecărui LoPy. Astfel, după
acest pas, nu a mai fost nevoie conectarea acestora la laptop, ci simpla
alimentare prin USB (fiind necesar un output de 5V, sursa de alimentare poate
fi variată).

Figura 29 Modul de conectare al LoPy-ului

După programarea și încarcarea codurilor pe LoPy-uri, am conectat LoPy-
ul de recepție la portul USB al Raspberry-ului pentru a-l alimenta cu 5V. În primă
instanță, am incercat să realizez comunicarea dintre Raspberry Pi și LoPy prin
serial, utilizând pinii de UART pentru transmisie si recepție ale ambelor module.
Din considerente momentan necunoscute de către mine, comunicația se făcea în

NECLASIFICAT
NECLASIFICAT

mod eronat, nefiind constantă, iar în unele momente ordinea transmisiei biților
era randomizată.

Figura 30 Diferența între informația recepționată și cea transmisă

În consecință, am realizat comuncația tot prin modul serial UART doar că
prin USB, unde rezultatele au fost foarte bune, ceea ce a fost transmis a fost
recepționat exact sub aceeași formă, fara a avea nici măcar o eroare.

Figura 31 Modul de conectare al LoPy-ului la Raspberry

NECLASIFICAT
NECLASIFICAT

După ce am alimentat cele 2 LoPy-uri, am realizat funcționarea întreg
ansmblului și am urmărit comportarea acestuia în timp și în diferite condiții de
schimbare a parametrilor mai sus menționați. Astfel pentru partea de transmisie
am rulat program de pe laptop pentru a putea urmări comparativ informația
transmisă și cea recepționată. Astfel am concatenat toate datele de la senzori și
le-am transmis sub forma următoare:

Figura 32 Informația transmisă
Datorită faptului că buffer-ul pentru descărcarea datelor este mai mare
decât informația transmisă, la recepție aceasta va apărea de două ori, urmând a
fi filtrată infomația necesară din linie de cod.

Figura 33 Informația recepționată

NECLASIFICAT
NECLASIFICAT

Partea de achiziție prezentată mai sus este cu scop demonstrativ, pentru a
ilustra formatul de recepție al datelor. În realitatea, partea de achiziție este
integrată automat în programul de interfațare și prelucrată pentru a fi afișată.
Interfața conține un buton de START și STOP pentru a porni achiziția și
implicit afișarea datelor, cât și oprirea procesului. Acest aspect facilitează
utilizarea atât permanentă, cât și utilizarea secvențială, la anumite intervale de
timp stabilite de către utilizator. A se reține faptul ca din interfață se poate porni
și opri recepția datelor, achiziția acestora se face permanent și în mod constant.

Figura 34 Afișarea în interfață a datelor achiziționate

Astfel, partea practică este completă și corect funcțională și poate
constitui un prototip pentru pentru utilizarea acestor tehnologii în
diverse domenii ce se bazează pe utilizarea senzorilor (IoT,
supraveghere, agricultură etc.).

NECLASIFICAT
NECLASIFICAT

Figura 35 Ansamblul sistemului testat

NECLASIFICAT
NECLASIFICAT

6. Concluzii și perspective

Cerințele proiectului au fost îndeplinite, aceasta parte fiind primul pas in
realizarea unui sistem de manipulare și interfațare, ce prezintă posibilitate
utilizării acestei tehnologii pentru a realiza aplicații ce au la baza monitorizarea
sau elaborarea unui factor decizional pe baza informațiilor provenite de la o rețea
de senzori.
Realizarea acestui proiect a însemnat pentru mine o provocare dar și o
oportunitate de a realiza un sistem de gestionare a unei rețele cu senzori wireless,
sistem ce poate fi dezvoltat și optimizat pentru a fi utilizat în foarte multe domenii
de aplicabilitate.
Pe viitor, ca perspective de dezvoltare se poate utiliza un LoPy cu un modul
de expansiune ce permite utilizarea unei game variate de senzori specifici
mediului de aplicabilitate. De asemenea, un factor foarte important în present îl
reprezintă securitatea informației. Astfel, pentru a asigura acest aspect, se pot
utiliza certificate de securitate, LoPy-ul având posibilitatea de a realiza o
comunicație prin SSL și posibilitatea de implementare a WPA Enterprise.
Totodată, modulul LoPy oferă posibilitatea de criptare și hash, astfel asigurându-
se atât confidențialitatea, cât și integritatea informațiilor. Un alt aspect ce poate fi
dezvoltat, este integrarea unei rețele de acest tip și anumite sisteme într-un
ansamblu, astfel încât pe baza informațiilor primite de la senzori, sistemele
respective să realizeze anumite acțiuni.

NECLASIFICAT
NECLASIFICAT

Bibliografie

1. An overview of wireless sensor networks towards internet of things
,mustafa kocakulak and ismail butun
2. Development of remote real time temperature monitoring system by
using wireless sensor network, nor suaida binti abd wahab
3. Universal wireless event monitoring system, lamyanba yambem
4. https://www.techmezine.com/technology/smart-agriculture-sensors-
helping-small-farmers-positively-impacting/ poza agricultura
5. https://pulsesmarthomes.com/pulse-blog/2017/10/26/smart-home-
infographic poza iot
6. https://cleste.ro/placa-de-dezvoltare-pycom-lopy-4-cu-lora-wifi-i-
bluetooth.html
7. pycom lopy v2 specsheet poza lopy
8. https://www.optimusdigital.ro/ro/placi-de-expansiune/3267-placa-de-
expansiune-pysense-cu-senzori-multipli-pentru-lopy.html
9. https://www.raspberrypi.org/products/
10. Datasheet si7006-a20
11. Datasheet ltr-329als-01
12. Datasheet mpl3115a2
13. Pycom pysense data sheet
14. https://docs.microsoft.com/enus/windows/win32/sensorsapi/understandin
g-and-interpreting-lux-values tabel lux
15. Raspberry pi3 datasheet

Similar Posts