Managementul Integrat al Parcarilor

Cuprins

1 Introducere 5

1.1 Domenii de abordare și obiective generale 5

1.1.1 Internetul Obiectelor Conectate (Internet of Things) 5

1.2 Contextul de realizare 6

1.2.1 Motivație 6

1.3 Specificații generale 7

1.3.1 Soluții asemănătoare 7

2 Fundamentare teoretică 9

2.1 Introducere 9

2.2 Tehnologii și concepte utilizate 9

2.2.1 Modul hardware cu senzor inteligent 9

2.2.2 Wireless Sensor Network (Rețele de senzori wireless) 14

2.2.3 Tehnologia Client – Server 16

2.3 Descriere lucrare 19

3 Specificațiile de proiectare a sistemului 21

3.1 Funcționalitate generală și cazuri uzuale 21

3.2 Funcționarea aplicației Client 21

3.3 Funcționarea aplicației Server 21

3.4 Aplicația Web 21

3.5 Stocarea datelor în baza de date 21

4 Implementarea sistemului 22

4.1 Mediul de lucru utilizat 22

4.1.1 Easy PHP 22

4.1.2 Baza de date MySQL 22

4.2 Arhitectura sistemului 23

4.3 Funcțiile sistemului 23

4.4 Componentele sistemului 23

4.4.1 Aplicația Client 23

4.4.2 Aplicația Server 23

4.4.3 Structura bazei de date 23

4.4.4 Aplicația Web – Interfața cu utilizatorul 24

4.4.5 Achiziția și prelucrarea datelor 24

5 Utilizarea și testarea sistemului 25

5.1 Utilizarea aplicației 25

5.2 Testare 25

6 Concluzii, contribuții și direcții de dezvoltare 26

6.1 Obiective realizate și contribuții personale 26

6.2 Direcții de dezvoltare 26

7 Referințe bibliografice 28

Introducere

Domenii de abordare și obiective generale

Într-o eră a progresului tehnologic, economic și social continuu, cererea pentru anumite facilități care cresc confortul oamenilor este în continuă creștere. Una dintre aceste facilități o reprezintă mobilitatea în mediul urban, care devine din ce în ce mai importantă.

Mobilitatea este strâns legată de traficul urban, care în țara noastră, dar nu numai, reprezintă una din principalele probleme cu care se confruntă autoritățile locale, dar și locuitorii din mediul urban. Fluidizarea traficului și găsirea cu ușurință a unui loc de parcare reprezintă o cerință foarte importantă pentru un oraș european prosper.

Mai mult decât jumatate din populația globului traiește acum în mediul urban, iar numărul persoanelor care își folosesc zilnic mașina personală a crescut exponențial în ultimul deceniu. Rezultatul este o povară pentru infrastructura existentă, un trafic îngreunat și congestionat, mai ales în centrele orașelor și în apropierea centrelor comerciale. În timpul orelor de vârf s-a observat că un număr foarte mare de șoferi înconjoară parcările chiar de mai multe ori, în speranța găsirii unui loc de parcare, ceea ce duce inevitabil la îngreunarea traficului, pierdere de timp, consum de carburant și creșterea emisiilor poluante în aer.

Acum avem posibilitatea să culegem informații despre mediul înconjurător și chiar despre noi și această cantitate enormă de date crează noi oportunități prin captarea, prelucrarea și stocarea ei. Acum sunt mai multe echipamente conectate la internet decât populația pe glob, iar în momentul de față nu mai interaționăm doar cu conținuturi de site-uri web, ci și cu obiecte reale.

Pentru prima dată putem trăi în orașe inteligente pline de senzori care ne ajută să ne îmbunătățim stilul de viață și lucru este posibil datorită în mare parte datorită noilor tehnologii care fac internetul „virtual” pe care îl știm cu toții să devină mai „fizic” ca niciodată, am pășit acum în era „internetului lucrurilor” (Internet of Things).

Internetul Obiectelor Conectate (Internet of Things)

„Internet of things” este rețeaua viitorului în care obiectele fizice foarte comune în viața noastră folosesc diverse echipamente și senzori și sunt conectate la internet colecționând și transmitând date. Fiecare obiect este identificat unic prin sistemul încorporat dar este capabil să interacționeze cu infrastructura rețelei de internet actuale. Termenul de „Internet of things” a fost pentru prima dată documentat de vizionarul britanic Kevin Ashton în anul 1991.

Figura 1.1 Imagine reprezentativă – Internet of Things

Contextul de realizare

Aici se vor menționa pe scurt elementele legate de contextul de realizare al

proiectului, incluzând de exemplu:

􀁹motivația realizării proiectului (de unde provine ideea proiectului, la ce va

servi proiectul după finalizare, etc.);

􀁹dacă e cazul, se poate menționa și descrie pe scurt grantul sau contractul de

cercetare în cadrul căruia se dezvoltă proiectul;

􀁹dacă e cazul, se menționează faptul că e vorba de un proiect realizat în echipă

și se prezintă pe scurt echipa de proiect;

􀁹prezentarea pe scurt a locului de desfășurare a activităților de dezvoltare

Motivație

Folosind inovațiile tehologice, infrastructura unui oraș inteligent este dezvoltată astfel încât să facă față posibilelor probleme cu care se confruntă locuitorii. In acest context, sistemul propus facilitează propagarea și accesul informației în timp real asupra disponibilității locurilor de parcare. Obținând aceste informații, șoferii pot să se îndrepte direct către locul dorit, fără să fie nevoiți să înconjoare parcarea. Se evită astfel pierderile de timp, de combustibil și în același timp îngreunarea circulației în jurul parcării.

Deseori ni se întamplă să vizităm un loc nou sau să mergem la un eveniment și să ne confruntăm cu dificultăți în găsirea unui loc de parcare, ceea ce poate deveni frustrant și deranjant. De asemenea, locațiile de parcare nu ne sunt cunoscute mereu și chiar și atunci când ne sunt cunoscute poate nu sunt cele mai apropiate de locul evenimentelor sau cele mai ieftine. În cazul evenimentelor la care participă grupuri mari de oameni sunt crește dificultatea găsirii unui loc, având în vedere numărul limitat de parcări în apropiere. Locurile de parcare mai pot avea unele resticții, fiind valabile sau indisponibile numai anumite ore din zi sau doar anumitor persoane.

Prin această lucrare îmi propun să prezint o aplicație care încearcă să fie o soluție a acestor probleme și să arăt cum tehnologiile actuale pot fi aplicate și pot influența societatea și stilul de viață. Aplicația prezintă șoferilor în căutarea unui loc de, informații relevante și în timp real despre situația parcărilor dintr-un oraș la un moment dat pentru a-i ajuta în luarea deciziilor și la găsirea locului optim de parcare. Fiind înconjurați de tehnologii performante, accesul la internet este o problemă de mult uitată, iar tendința utilizatorilor este de a accesa informații mai ales când sunt în mișcare, referitoare mai ales la locația specifică. În general acest tip de informații este disponibil și ușor de accesat pe internet. De exemplu folosind aplicația Google Maps (o aplicație populară ce folosește hărți) putem căuta adrese, restaurante, hoteluri și multe alte informații relevante pentru locația utilizatorului.

Acest lucru, din nefericire nu este atât de simplu pentru parcări, informații în acest fiind inexistente pentru cele mai multe dintre ele. De accea, una dintre avantajele acestei aplicații este prezentarea disponibilității parcărilor folosind o hartă interactivă, care să ofere înformații în timp real despre gradul de ocupabilitate al fiecărei parcări, adrese, prețuri și mai ales coordonatele GPS, aducând astfel utilizatorul cu un pas mai aproape de găsirea unui loc. Consider că având deja o infrastructură potrivită, îmi propun prin aplicația prezentă să ofer o soluție și pentru gestiunea financiară a parcărilor ce permit integrarea acestui sistem.

Specificații generale

Descrierea lucrarii si principalele specificații

Soluții asemănătoare

În acest capitol voi face o înșiruire a aplicațiilor bazate pe rețele se senzori wireless (WSN) pentru gestionarea locurilor de parcare existente. De-a lungul anilor s-au făcut numeroase cercetări asupra sistemelor de parcare pentru a le face cât mai flexibile, cât mai atomate și cu o complexitate cât se poate de scăzută. O idee în acest sens a fost conturată de către Soh Chun Khang, TeohJie Hong, Tan Saw Chin în anul 2010 și rezolvă problema șoferilor de a căuta loc de parcare trebuind să străbată toată parcarea, neavând la dispoziție un sistem de ghidare care să îi ușureze căutarea. –:: vezi referința si ceva detalii

Lee, Yoon și Ghosh au propus o abordare hibridă pentru dezvoltarea unui sistem de parcări inteligent, utilizând o combinație de senzori ultrasonici și magnetici. Ei au demonstrat cu rezultate promițătoare bazate pe experimente practice că aceste combinații sunt mai practice și mai precise. Demonstrațiile au fost făcute în parcări închise, sistemul bazându-se pe detectarea și numărarea mașinilor care intră și ies din parcare sau de pe un etaj în cazul parcărilor supraetajate.

[1] Sangwon Lee, Dukhee Yoon and Amitabha Ghosh, Intelligent Parking Lot Application Using Wireless Sensor Networks, Proceedings of IEEE conference, 978-1-4244-2249-4/08

II. RELATED WORK

This investigation results in proposal of paper on Wireless Mobile based Car Parking System using low cost SMS service by breathed first search algorithm, which enable the car drivers to receive the information regarding the available parking slots. This system is flexible to receive SMS request for assignment of new slot for parking the car [2]. This system is been replaced by a simple digital display in my paper which displays the slot number for car parking if slots are available, if not a message should be notified to the customer that the parking area is full. In a similar research done by Yuki Hirakata, Akira Nakamura, KoheiOhno, Makoto Itami (2012) on parking slots in the parking area attached to the malls. Due to the wastage of time in searching for the parking slot, navigation system in parking area by using Zigbee network is discussed in this paper. Zigbee is expected to realize low power consumption wireless system with low cost. Zigbee can be connected by 65000 nodes as it can form ad-hoc network easily. It is suitable for large parking area wherein the shortest route to the vacant parking slot is transmitted to the vehicle by the Zigbee ad-hoc network providing a typical guide to the driver [3]. This process is cost effective when compared the simple digital display used to notify regarding the parking slot in my paper. The work of E. Diaconu, H. Andrei, D. Puchianu, G. Predusca (2013) on Car parking service in urban area proposes an advanced software application for car parking. A modern thought on the solution for car drivers in order to reserve the slot in advance. This software application overcomes the time spent for finding the parking slot, reduces the traffic level and driving stress [4]. There may be a case wherein the drivers are not technically strong to use or operate this software application which may lead to much confusion.

Fundamentare teoretică

Introducere

Numărul mașinilor este în continuă creștere, raportat la numărul de locuitori, ceea ce ne trimite la întrebările, unde se vor duce aceste mașini? Cum vom face ca mobilitatea sa devina sigura si confortabilă? Este ideea de oraș „inteligent” o soluție accesibilă?

Mai ales în orașele dezvoltate, cele mai multe parcări sunt gestionate manual și ineficient. Soferii nu cunosc disponibilitatea locurilor de parcare intr-o zona dorita si in cele mai multe situații fiind forțați să piardă timp și energie in gasirea unui loc de parcare. Acest lucru duce inevitabil la ingreunarea traficului in jurul zonelor de parcare, la poluarea aerului si a consumului crescut de carburant. Statistici recente arata ca in timpul orelor de varf, traficul cauzat de cautarea unui loc de parcare in zone deja aglomerate, reprezinta pana la 40% din traficul total. -> cauta ceva statistici

Acestea sunt motivele pentru care este promovată inteligența și economia de energie în sistemele operaționale ale orașelor, iar o primă soluție pentru eficientizarea și fluidizarea traficului o reprezintă chiar un sistem inteligent, care folosind tehnologia existentă să poată veni în ajutorul șoferilor la partea banală, care uneori poate deveni chiar frustrantă, aceea de a găsi un loc de parcare. Acest sistem, ce îmbină mobilitatea cu performanța, folosește senzori pentru detectarea ocupabilității unui loc de parcare și trimite informația către sistem, care o oferă utilizatorilor în timp real. Folosind această informație șoferul va putea să conducă până la locul disponibil sau chiar rezervat pentru el, evitând astfel plimbări inutile care perturbă restul participanților la trafic.

Tehnologii și concepte utilizate

Domeniul larg al tehnologiilor implicate include senzori și dispozitive pentru controlul semnalelor, medii moderne de comunicație și terminale informatice și intersectează discipline ca de exemplu: transport, inginerie, telecomunicații, știința calculatoarelor, finanțe și comerț electronic.

Modul hardware cu senzor inteligent

Pentru implementarea acestui proiect am ales ca modul de senzor magnetic un produs dezvoltat de compania Libelum, o companie specializată pe dezvoltarea de platforme open source modulare și accesibile pentru integrarea senzorilor și de sisteme bazate pe rețele de senzori wireless. Această platformă a ajuns pe piață sub denumirea de „Waspmote” și stă la baza a numeroase aplicații inteligente din diferite domenii: medicină, agricultură, afaceri, mediu, automatizarea locuințelor, securitate și urgențe, control industrial și nu numai.

Această platformă asigură funcționarea a peste 80 de senzori, fiind o metodă modulară, eficientă și ușor de întreținut de monitorizare a anumitor parametri. În cea mai mare parte rolul ei este acela de a prelua informațiile de la senzori, de a le prelucra și transmite mai departe în rețeaua de senzori. Datele transmise în rețea sunt fi preluate de către un server și administrate, uneori stocate în baze de date sau transmise unei aplicații care le va prezenta utilizatorilor. De asemenea dispozitivul permite eventuale calibrări necesare senzorilor sau chiar reprogramarea controlerului de la distanță, după ce acesta a fost deja amplasat.

Descriere Waspmote

In continuare voi prezenta componenta fizică folosită pentru detectarea prezenței unui vehicul pe un loc de parcare. Acesta constă într-un senzor magnetic conectat la un dispozitiv de tip „Waspmote” și îl vom referi în continuare cu denumirea de senzor de parcare sau dispozitiv de detecție.

Senzorul de parcare va fi amplasat pe locul de parcare, chiar în pavamentul acestuia. Fiind un dispozitiv electronic este foarte importantă izolarea lui pentru a-i asigura o durată de viață cât mai lungă. Detectarea locurilor disponibile de parcare este posibilă datorită senzorului magnetic din componență, care detectează dacă un vehicul este poziționat deasupra lui sau nu. Următoarele specificații tehnice și imagini sunt preluate din ghidul tehnic al senzorului de parcare, pus la dispoziție de Libelum [6].

Fig.2.1. Încapsularea senzorului de parcare

Principiul de funcționare este bazat pe variația câmpului magnetic din jurul dispozitivului, cauzată de șasiul autovehiculului parcat pe locul pe care este amplasat senzorul. Schimbarea este detectată de senzorul magnetic format dintr-un aliaj de nichel și fier care se magnetizează și demagnetizează foarte ușor. Rezistența acestui material variază în funcție de câmpul magnetic prin el, iar măsurată această rezistență oferă sistemului informația de care are nevoie: dacă locul de parcare sau nu ocupat.

Specificații tehnice

Dimensiuni: 73.5 x 52 x 1.3 mm

Greutate: 20 gr

Temperatură, interval de funcționare: [-20ºC, 65ºC]

Fig.2.2. Senzor pentru câmp magnetic

Caracteristici electronice

Tensiune de alimentare placă: 5 V

Tensiune de alimentare senzor: 5 V

Curent maxim admis: 200mA

Specificații senzor

Senzor de câmp magnetic pe trei axe

Tensiune maximă de alimentare:12V

Temperatură de operare: -40 ~ 125°C

Punte de rezistență: 600 ~ 1200Ω

Tensiune de iețire: 3.5 mV/V/gauss

Consum mediu: 15mA

Consum maxim (vârf): 500mA

Procesul de măsurare. Senzorul de camp magnetic constă de fapt într-o fâșie fină de aliaj de nichel și fier a cărui rezistență este o funcție a câmpului magnetic prin el (intensitate și orientare). Această fâșie este inclusă într-o punte de rezistență cu valori între 600Ω și 1200Ω, iar între cele două terminale de ieșire ale senzorului avem o tensiune în jurul a 3,5V/V/gauss cu o tensiune de alimentare de 5V. Din moment ce senzorul este unul pe trei axe, poate să monitorizeze câmpul mgnetic în orice direcție. Ieșirea ficărei axe este amplificată și filtrată pentru a preveni eventuale impulsuri nejustificate. Ieșirile celor trei axe sunt citite direct de către convertorul analog-digital al microprocesorul. Citirea acestor ieșiri se face folosind comanda integrată readParking din librăria plăcii. La chemarea acestei funcții un puls de curent foarte mic, de 500mA, cu durata de 1 microsecundă este aplicată circuitului înainte de citirea valorii. Astfel moleculele aliajului de fier și nichel se aliniază cu liniile câmpului magnetic, eliminând astfel efecte nedorite datorate histerezei materialului.

Placa include de asemenea și un senzor de temperatură cu scopul de a compensa efectele pe care acest parametru le are asupra senzorului. Valoarea acesteia se citește cu funcția readTemperature și are rol de a calibra senzorul, folosind un algoritm prezent în EEPROM-ul plăcii. Un exemplu de funcționare este dat de următorul grafic, ce reprezintă valoarea câmpului magnetic pe un interval de 10 secunde, în care se văd patru autovehicule intrând și părăsind locul.

Asamblare. Senzorul magnetic include un modul atașat perpendicular pe placă, utilizat pentru monitorizarea câmpului magnetic pe axa verticală (z). De asemenea trebuie menținută corespondența între acesta, dispozitivul Waspmote și placa ce conține senzorul magnetic pentru axele x și y și pe cel de temperatură.

Fig.2.3. Dispozitivul de detecție asamblat

Configurarea și programarea dispozitivului

Configurarea optimă a dispozitivului este atunci când detecția are cea mai mare precizie, asta înseamnă minimizarea riscului de detecție falsă cauzată de alte autovehicule sau obiecte din apropiere sau de a nu detecta un vehicul parcat din cauza unei variații prea mici a câmpului magnetic. Configurația optimă este dependentă de poziția locului pe care vrem să îl monitorizăm, astfel că în cazul unei parcări laterale senzorul va fi plasat la mijlocul lățimii către exteriorul lungimii parcării (fig 2.2), iar pentru o parcare perpendiculară recomandarea este amplasarea către exteriorul lungimii locului (fig 2.3).

Wireless Sensor Network (Rețele de senzori wireless)

Acest capitol va oferi o descriere generală a fundamentelor și conceptelor de design care oferă funcționalitate, performanță și control rețelelor de senzori conectați wireless dintr-un sistem.

O rețea de sezori wireless (WSN) este formată din câteva până la câteva sute sau poate mii de noduri fixe sau mobile, unde fiecare nod este conectat la unul sau mai mulți senzori, așa cum este prezentat în figura 2.2[2]. Un nod al unei astfel de rețele este format din câteva elemente de bază: partea centrală se obișnuiește să fie un microcontroler cu putere de calcul mică și cu facilități de management de consum de energie, o parte electronică de detecție reprezentată de senzor, un transceiver radio cu antenă și o sursă de alimentare care poate fi o baterie și/sau un circuit care produce energie din energie solară de exemplu.

Fig.2.1. Schema bloc a unui nod într-o rețea de senzori

Dezvoltarea continuă la nivel hardware și software și rețelele wireless au contribuit la realizarea unor senzori de joasa putere, ieftini și de dimensiuni mici. Acești senzori autonomi, distribuiți pe o anumită arie geografică formează rețele care au rolul de a colecta date și de a le trimite mai departe prin rețea către un server principal. Acestea pot fi informații legate de temperatură, umiditate, defecte la anumite echipamente, cutremure, date care sunt procesate, analizate și apoi oferite utilizatorilor într-un mod interactiv. O comunicație bi-direcțională între senzori și modem permite și controlul acestora, pentru activare, calibrări sau alte operații.

Senzorii din rețelele de senzori wireless tipice împart trei cerințe comune:

forma fizica de dimensiuni reduse;

baterie cu durată de viață ridicată;

mediu de operare dinamic.

Fig. 2.3. Rețele de senzori

Față de rețelele wireless de mare trafic de date folosite în aplicațiile LAN (Local Area Network) de exemplu , rețelele de senzori wireless sunt create pentru rate de transfer mici.

Până de curând aplicațiile destinate să monitorizeze și să controleze rețele de senzori aveau o aplicabilitate redusă. În primul rând datorită considerentelor legate de design – o mulțime de conexiuni fizice erau necesare să facă legătura către un punct central de colecționare a datelor. Alt aspect este legat de instalarea și întreținerea unui astfel de sistem, ceea ce presupune costuri foarte mari, mobilitate aproape inexistentă și fezabilitate redusă[2].

Dezvoltarea rețelelor de senzori wireless a dus la dezvoltarea de servicii și aplicații care nu ar fi fost permise folosind senzori cu fir, un exemplu în acest sens fiind dispozitivele purtabile de monitorizare a semnelor vitale.

Tehnologia Client – Server

Acest model, client – server stă la baza celor mai multe aplicații de rețea. Această arhitectură presupune un mod de implementare distibuită între furnizorii de resurse sau de servicii, numiți servere și cei care solicită aceste servicii, numiți clienți. Clienții se caracterizează prin faptul că prezintă o interfață cu utilizatorul, formulează interogări, cereri sau comenzi către server și le transmite serverului. Serverul răspunde la solicitările clientului și ascunde detaliile sistemului client/server.

Deosebim două tipuri de server:

server interactiv, când cererea este tratată de server-ul care a recepționat-o;

server paralel, când procesul server invoca un alt proces pentru a trata cererea clientului.

De cele mai multe ori, serverele și clienții se află în componente hardware diferite, comunicarea făcându-se prin intermediul unei rețele de comunicație, de obicei prin internet.

Fig. 2.3. Modelul client-server

Pentru a face posibilă comunicarea între cele cele două părți, este esențial ca acestea să implementeze un set comun de reguli și să folosească același mediu (canal) de comunicație. Aceste reguli formează așa numitul protocol.

Protocolul este o descriere formală a unui set bine definit de reguli și convenții ce stau la baza comunicării între dispozitivele atașate la o rețea. Uniformitatea oferită de implementarea aceluiași protocol oferă avantajul enorm al ușurării modului de comunicare între partenerii ce folosesc rețeaua: este ca și cum toată lumea vorbește aceiași limbă. În această privință diferite organizații și comitete internaționale au lucrat la dezvoltarea și standardizarea unor protocoale folosite în întreaga lume. Protocolul determină formatul sau structura mesajelor, inițierea și terminarea sesiuniilor de transfer de date, temporizarea, ordinea și controlul erorilor în comunicație.

Calculatoarele din rețeaua de internet comunica unul cu celălalt prin protocolul TCP, Protocol de Control al Transmisiei (Transmission Control Protocol) sau UDP (User Datagram Protocol).

Modelul TCP/IP (Internet Protocol) a fost dezvoltat de către Ministerul Apărării Naționale a Statelor Unite, din necesitatea unei rețele de a supraviețui în orice condiții. Se dorea ca conexiunile să rămană intacte atâta timp cât elementul sursă și elementul destinație funcționau, indiferent dacă alte elemente ale mașinii sau linii de transmisie erau scoase din funțiune. Era nevoie de o arhitectură flexibilă, deoarece se aveau în vedere aplicații cu cerințe divergente, mergând de la transferul de fișiere până la transmiterea vorbirii în timp real.

Fig. 2.4. Nivelurile modelului TCP/IP

Nivelul Aplicație  se referă la protocoalele de nivel înalt implementate de majoritatea aplicațiilor, acestea tratează nivelurile inferioare ca o "cutie neagră" care oferă o infrastructură sigură de comunicații. Majoritatea protocoalelor de la nivelul aplicație sunt asociate cu modelul client-server. Serverele au de obicei asociate porturi fixe, atribuite de autoritatea care supervizează asignarea adreselor IP – IANA (Internet Assigned Numbers Authority): HTTP are portul 80, FTP portul 21, etc. În schimb, clienții folosesc porturi temporare.

Nivelul Transport se ocupă cu probleme legate de siguranță, control al fluxului și corecții de erori. El este proiectat astfel încât să permită conversații între entitățile pereche din gazdele sursă, respectiv, destinație. TCP este unul dintre cele două tipuri de astfel de protocoale, fiind un protocol sigur, orientat pe conexiune, care permite ca un flux de octeți transmiși de la sursă să ajungă fără erori la destinație. Acesta fragmentează fluxul de octeți în pachete pe care le trimite urmatorului nivel, nivelul Internet.

Al doilea tip de protocol capăt- la-capăt este UDP (User Datagram Protocol). Acesta este un protocol nesigur, fără conexiuni, destinat aplicațiilor care doresc să utilizeze propria lor secvențiere și control al fluxului. Protocolul UDP este de asemenea mult folosit pentru interogări rapide întrebare-răspuns, client-server și pentru aplicații în care comunicarea promptă este mai importantă decât comunicarea cu acuratețe.

Nivelul Rețea (Internet) avea ca inițial rutarea pachetelor în interiorul unei singure rețele. Odată cu apariția interconexiunii între rețele, acestui nivel i-au fost adăugate funcționalități de comunicare între o rețea sursă și o rețea destinație.

În stiva TCP/IP, protocolul IP asigură rutarea pachetelor de la o adresă sursă la o adresă destinație. Comunicarea la nivelul IP este nesigură, sarcina de corecție a erorilor fiind plasată la nivelurile superioare (de exemplu prin protocolul TCP). În IPv4, integritatea pachetelor este asigurată de sume de control.

Nivelul Acces la Rețea se ocupă cu toate problemele legate de transmiterea efectivă a unui pachet IP pe o legătură fizică, incluzând și aspectele legate de tehnologii și de medii de transmisie, adică nivelurile OSI Legătură de date și Fizic. Modelul de referință OSI (Open Systems Interconection) este o stivă de comunicație ierarhic foarte des folosit pentru a realiza o rețea de calculatoare. OSI este un standard al Organizației internaționale de standardizare, emis în 1984.

Embedded WebServer (Server web încapsulat)

Un server încapsulat este o componentă hardware a unui sistem care implementează protocolul HTTP din interfața aplicației. El poate fi folosit pentru accesarea unei aplicații sau pentru design-ul unei aplicații sau pentru achiziția și distribuirea informațiilor pe care aplicația le afișază și are avantajul că poate fi foarte ușor interfațat cu rețeaua de internet prin Ethernet [1].

Comunicare prin sockeți

Un socket este o interfață sau un punct de comunicație prin care un proces solicită sistemului de operare servicii de rețea. Cu ajutorul socketului se poate emite sau recepționa informație sub forma unui flux de bytes, fiind furnizat de o bibliotecă socket sau de sistemul de operare. Se folosește conceptul de descriptor, fiecare socket fiind tratat asemănător cu un fișier local. Acest descriptor este transmis aplicației la crearea socket-ului și apoi este utilizat ca argument în apelurile următoare.

Socketul asociază programul server cu un port hardware specific pe mașina pe care rulează, astfel că orice program client oriunde în rețea, care are un socket asociat portului respectiv poate comunica cu programul server. Un program server de obicei furnizează resurse într-o rețea, clienții trimit solicitări către acesta iar server-ul le răspunde.

Server-ul fiind atât de important într-o rețea, este esențial ca acesta să trateze mai mult de un client, iar pentru a face posibil acest lucru el trebuie să fie un program care rulează folosind mai multe fire de execuție. Un fir de execuție este o secvență de instrucțiuni care rulează independent de program sau de oricare alt fir de execuție. Pentru fiecare client conectat la server, atunci când este acceptată conexiunea, acesta va crea un fir de execuție separat și va continua să „asculte” cereri de la ceilalți clienți din rețea.

O aplicație de rețea include:

un program client care creează un socket pentru a iniția o conexiune cu o aplicație server;

un program server care așteaptă preluarea cererilor clienților.

Fig 3.2. Exemplu de folosire a interfeței socket

Descriere lucrare

Aceasta lucrare își propune să definească o soluție modernă și eficientă de management al serviciilor de parcare urbane, ceea ce presupune găsirea cu ușurință a spațiilor de parcare dorite și optimizarea folosirii lor, contribuind astfel la fluidizarea traficului, reducerea poluării și creșterea confortului și a mobilității. De asemenea, soluția oferă și o soluție de gestiune financiară on-line a parcărilor, oferind rapoarte de statistică și bilanț pentru adiministrarea acestora.

Pentru managementul eficient al spațiilor de parcare, vom avea la dispoziție informațiile on-line transmise de echipamentele hardware dedicate. Acestea vor fi prelucrate și afișate către utilizatori într-un mod interactiv și ușor de înțeles. În primul rând, informațiile vor prezenta disponibilitatea parcărilor, afișând poziția lor pe o hartă dar și gradul acestora de ocupare. Pentru administrarea și gestiunea parcărilor, informațiile vor fi prezentate și sub formă de rapoarte.

Utilizatori:

Cea mai mare parte din utilizatorii acestei aplicații vor fi șoferii unui oraș, în cazul lucrării de față, șoferii orașului Timișoara. La stabilirea destinației, șoferul poate verifica, în timp real, disponibilitatea locurilor de parcare în zona respectivă sau într-o anumită parcare. În cazul indisponibilității parcărilor în zona selectată, aplicația va fi de mare folos în găsirea celui mai apropiat spațiu de parcare disponibil. Pasul următor este selectarea parcării, acest lucru facându-se cu ușurința chiar de pe harta orașului, având la dispoziție coordonatele GPS ale parcării.

A doua categorie de utilizatori vor fi administratorii de parcări, prin gestionarea on-line a parcării pe care o administrează. Aceștia vor avea la dispoziție starea exactă a ocupabilității parcării într-un anumit moment de timp și de asemenea, vor putea genera statistici și rapoarte referitoare la istoricul încasărilor.

Partea teoretică a lucrării descrie în principiile de funcționare a sistemului, descrierea componentelor acestuia, detalii de implementare, mediile de dezvoltare și testare utilizate.

Cuvinte cheie: sistem de monitorizare, gestionare și control al parcărilor urbane, sistem de comunicare și informare on-line, proceduri și algoritmi de optimizare a procesului de parcare, bază de date.

Specificațiile de proiectare a sistemului

Funcționalitate generală și cazuri uzuale

Mecanismul de detecție

Un autovehicul este contruit dintr-un anumit tip de materiale, materiale magnetice moi cu sensibilitate magnetică ridicată, ele sunt ușor de magnetizat și demagnetizat, și materiale dure, cu inducție remanentă mare și cicluri de histerezis largi. Aceste mareriale în componența unui vehicul creează o modificare a câmpului magnetic atunci când vehiculul treze printr-o anumită zonă. Atunci când plasăm în acea zonă un dispozitiv cu senzor magnetic cu suficientă sensibilitate și rezoluție, facem posibilă detecția autovehiculuilui. Diferite vehicule creează câmp magnetic diferit, datorită dimensiunilor, materialelor și cantităților diferite din care este contruit, astfel că se poate detecta și tipul acestui, de exemplu dacă e mașină, motocicletă, camion, etc.

Funcționarea aplicației Client

Aplicația client este o aplicație Android menită să simuleze dispozitivul de detecție descris în componentele sistemului. Aplicația folosește senzorul de câmp magnetic din structura telefonului mobil pentru a detecta prezența sau înlăturarea unui metal din imediata apropiere și trimite un mesaj către server prin care notifică schimbarea. Mesajul este un șir de bytes care are în componența sa un număr de identificare care este unic pentru fiecare senzor simulat și un byte în care codifică disponibilitatea locului de parcare, astfel că valoarea 1 a acestui byte va semnaliza că spațiul de parcare a fost ocupat și valoarea 0 va semnaliza eliberarea acestuia.

Funcționarea aplicației Server

Aplicația Web

Stocarea datelor în baza de date

Implementarea sistemului

Mediul de lucru utilizat

Easy PHP

EasyPHP este un mediu de dezvoltare care simulează un server pe calculatorul personal și permite dezvoltatorilor de aplicații web să lucreze cu PHP dar și cu alte programe cum ar fi Dreamweaver, Joomla, Spip, Drupal. Pachetul EasyPHP conține partea de interpretare a limbajului php, un web server Apache, și serverul SQL, MySQL, dar și alte tool-uri de dezvoltate cum ar fi managerul de baze de date PhpMyAdmin, debugger-ul Xdebug.

Pachetul EasyPHP este foarte ușor de utilizat, configurațiile sunt deja făcute, trebuie doar instalat și folosit. Totuși se pot modifica anumite configurații cum ar fi portul folosit sau timpul de execuție, anumite extensii sau raportarea erorilor.

Toate erorile, warningurile sau semnalările legate de cele mai bune practici sau standarde pentru programarea în php sunt afișate, astfel ca atât programatorii experimentați cât și cei începători să dezvolte obiceiuri bune și să scrie cod curat și consistent.

Baza de date MySQL

Bazele de date ajută la stocarea informațiilor într-o formă ordonată în vederea furnizării și prelucrării ulterioare a acestora în funcție de solicitarile primite. Spre deosebire de fișiere, bazele de date sunt mult mai avantajoase, întrucât structura lor permite organizarea datelor în moduri ușor de înțeles și manipulat. În bazele de date, datele sunt stocate sub formă de tabele, între care sunt create anumite legături și dependințe.

 Cel mai popular sistem de gestiune de baze functional independent este MySQL, un sistem gratuit și poate fi folosit cu mai multe limbaje de programare, care ajută la filtrarea datelor și fac manevrarea lor mult mai ușoară. Aceste baze de date se numesc SQL (Structured Query Lnaguage), acesta este un limbaj simplu care ajută la o bună sortare a informațiilor după anumite condiții.

MySQL vine la pachet cu EasyPHP și este folosit pentru stocarea informațiilor legate de parcări și diponibilitatea acestora, dar și informațiile legate de utilizatorii acestui sistem, nume de identificare, parolă și adresă de email.

Arhitectura sistemului

Componentele sistemului

Funcțiile sistemului

Aplicația Client

Numărul și acuratețea senzorilor din telefoanele cu sistem de operare Android a crescut tremenduos de la primele de acest gen. În perioada curentă, este comun ca un telefon să vină la pachet cu senzori ca accelerometru, giroscop, senzor de proximitate, senzor de lumină, de presiune, magnetometru și unele chiar senzor de lumină și umiditate[33]. Dintre toți acești senzori, magnetometrul a fost cel mai puțin utilizat, deși în alte aplicații ca detecția autovehiculelor și-a găsit considerabil locul. Printre aplicațiile curente pe Google Market, cele mai multe sunt dezvoltate ca și detector de metale, busolă sau pentru simpla monitorizare a câmpului magnetic.

Aplicația creată pentru simularea senzorului de parcare folosește senzorul magnetic din componența unui telefon Android și masoară intensitatea câmpului magnetc din imediata apropiere. Pentru a face posibil acest lucru am dezvoltat o aplicație Android care pe langă preluarea și prelucrarea datelor de la senzorul telefonului, se conectează la server-ul sistemului și îi comunică acetuia rezultatul analizei. Mediul de dezvoltare folosit este Android Studio, care este mediul integrat folosit pentru dezvoltarea aplicațiilor ce rulează pe platforma Android.

Android Studio este instrumentul oficial pentru crearea acestui tip de aplicații și este disponibil gratuit tuturor dezvoltatorilor pentru această platformă. De asemenea, reprezintă soluția completă pentru creearea, testarea și simlularea aplicațiilor, fiind foarte flexibil în ceea ce privește configurarea sistemului.

Printre avantajele pe care le ofera Android Studio se numără:

posibilitatea de emulare a dispozitivelor mobile, luând în considerare diferite dimensiuni și forme;

un editor de cod inteligent, capabil de autocompletarea frazelor, de refactorizare și de analiza codului;

șabloane de codare pentru facilitarea procesului de creare a unei aplicații sau pentru introducerea componentelor predefinite din structura acesteia;

integrează GitHub și permite importarea monstrelor de cod dezvoltate.

Implementarea aplicației

Aplicația este una simplistă și scopul acesteia este strict simularea senzorului de parcare. Aceasta preia valoarile măsurate de senzorul integrat în telefonul mobil de pe cele trei axe x, y și z. Valorile măsurate în μTesla sunt afișate pe ecranul telefonului și folosind formula (3-1) calculează valoarea câmpului magnetic.

Valoarea obținută folosind formula de mai sus este comparată cu o valoare de referință care dacă este depășită presupunem că am detectat prezența unui metal. Valoarea de referință am ales-o prin testare în apropierea obiectelor metalice, undeva la 300 μTesla. La depășirea valorii de referință vom verifica dacă locul de parcare îl considerăm deja ocupat, iar dacă nu vorm trimite un mesaj către server prin care îl înștiințăm că locul corespunzător a fost ocupat. Mesajul este un string de 6 bytes, pe primii 4 bytes se codifică ID-ul senzorului, al 5-lea este un byte rezervat pentru anumite informații pe care trebuie să i le transmită senzorul serverului, iar pe ultimul byte setam valoarea 1 dacă locul a fost ocupat, respectiv valoarea 0 dacă locul a fost eliberat.

Cele mai importante aspecte legate de aplicația prezentată se referă la captarea informațiilor de la senzori și implemetarea comunicării cu serverul. Acestea două implementări sunt descrise în rândurile ce urmează.

Captarea informațiilor de la senzor

Principalele entități utilizate pentru captarea datelor măsurate de la senzori sunt:

SensorManager

SensorEventListener

SensorManager permite accesul la senzori și este punctul central de comunicație a datelor primite de la aceștia. Această clasă este folosită pentru a crea instanțe corespunzătoare serviciului de utilizare a senzorilor. Clasa oferă și anumite metode pentru accesarea și monitorizarea senzorilor și constante folosite pentru calibrare, acuratețe și stabilirea unor rate de detecție.

SensorEventListener este activitatea principală care implementează o interfață pentru a putea raspunde evenimentului onSensorChanged și pentru a putea înregistra câte un „listener” pentru senzorii de interes.

Astfel aplicația are la bază o singură clasă, clasa MainActivity care implementează interfața SensorEventListener. Pentru a avea acces la senzorul magnetic vom avea nevoie de un obiect SensorManager și de un obiect Sensor.

Pentru a identifica senzorul disponibil pe dispozitivul utilizat este necesară obținerea unei referințe a clasei SensorManager prin apelarea metodei getSystemService cu parametrul SENSOR_SERVICE. Astfel se poate detecta dacă un dispozitiv are tipul de senzor specificat, iar în cazul în care are mai mulți senzori de același tip, atunci unul dintre aceștia va fi setat implicit. De asemenea se poate obține și o listă a senzorilor disponibili, dar pentru această aplicație am folosit senzorul magnetic implicit [34 – Android user manual].

Următorul pas este monitorizarea evenimentelor detectate de senzor. Acest lucru este posibil prin implementarea a două metode cu apel invers („callback”) puse la dispoziție de către interfața SensorEventListener, onAccuracyChanged() și onSensorChanged(). Sistemul Android apelează aceste metode când are loc una dintre următoarele situații:

Senzorul raportează o nouă valoare. În acest caz este apelată metoda onSensorChanged() care oferă noile informații printr-un obiect de tipul SensorEvent. Acesta conține datele noi măsurate, informația despre acuratețe și momentul în care au fost înregistrate datele;

Acuratețea se schimbă. În acest caz sistemul va apela metoda onAccuracyChanged() care oferă informații despre senzorul care și-a schimbat acuratețea și noua valoare a acesteia, care este reprezentată de o constantă.

La acest pas datele de la senzor sunt preluate, urmează interpretarea acestora și comunicarea schimbărilor către serverul central. Mai întai voi descrie implementarea aplicației ca și client pentru server și modul în care se face comunicarea.

Am ales comunicarea să se facă prin sockeți TCP a căror funcționalitate este implementată în java.net, oferind acces la cele mai multe operații ce implică programarea în rețea. Folosirea unui socket TCP presupune comunicația între două entități:

un client care se conectează la o anumită adresă, pe un anumit port, pe care le cunoaște în prealabil;

un server care așteaptă să fie invocat, la o adresă și la un port.

În Android (ca și în cazul platformei Java), clasa de bază pentru comunicația dintre client și server este Socket. Aceasta pune la dispoziție un flux de intrare și un flux de ieșire prin intermediul cărora diferite entități, ale căror adrese IP sunt vizibile între ele, pot transmite diferite date, folosind protocolul TCP. Un socket este reprezentat de o asociere dintre o adresă și un port.

Bineînțeles, realizarea unei conexiuni în acest sens presupune conexiune la rețeaua de internet, iar în cazul sistemelor mobile la o rețea wireless, aceeași în care este conectat și serverul. Conexiunea la internet a unei aplicații Android presupune o permisiune specială în fișierul AndroidManifest.xml.

Deschiderea unui socket presupune transmiterea parametrilor de identificare a gazdei (portul și adresa IP) la constuctorul de tip Socket. Vom definii o referință a clasei socket și valorile portului și a adresei de IP pe care rulează aplicația server.

În Android, începând cu un anumit nivel nu mai este permisă comunicația prin rețea pe același fir de execuție folosit pentru interfața grafică. Acest lucru af fi afectat unele operații din cauza anumitor blocări care se produc în timpul traficului de date. Din acest motiv, orice operație ce presupune folosirea unor sockeți TCP trebuie realizată pe un fir de execuție dedicat.

Întrucât intenția aplicației este doar de a trimite date, acest lucru se realizează prin intermediul socket-ului TCP. Pentru trimiterea efectivă a datelor este necesară crearea câte unei referințe pentru clasele InputStreamReader și PrintWriter. Folosind acestea am creat metoda sendMessageToServer care primește ca parametru o valoare, reprezentând ocuparea locului de parcare pe care îl reprezintă sau eliberarea acestuia. Metoda adaugă valoarea primită ca parametru la id-ul al cărui senzor îl reprezintă și formează un mesaj standard definit pe care îl trimite către aplicația server.

Am definit metoda care pregătește mesajul pentru server și îl trimite acestuia în formatul propus. Aceasta este apelată doar atunci când este detectată prezența unui câmp magnetic peste referința aleasă, sau când valoarea scade de deasupra referinței, la o valoare mai mică decât aceasta. Metoda este apelată de o altă metodă menționată anterior, metoda updateMagnitudeInfo(), care la rândul ei este apelată de apariția unei înregistrări noi din partea senzorului, prim metoda onSensorChange().

Aplicația Server

Aplicația server este dezvoltată folosind limbajul php și asemănător aplicației client, are la bază comunicarea prin intermediul socket-urilor. Serverul așteaptă conexiuni de clienți prin intermediul acestora și cum stă la baza unei rețele de senzori este obligatoriu ca acesta să fie capabil să accepte conexiuni de la mai mulți clienți în același timp. Adresa serverului nu este furnizată, utilizându-se adresa IP a dispozitivului pe care rulează.

Pentru a putea intercepta mai mulți clienți, serverul va creea pentru fiecare dintre aceștia câte un fir de execuție separat, în timp ce el apelează metoda accept() într-o buclă în care rămâne blocat. Crearea unei aplicații server presupune următorii pași:

Crearea unui socket

Se face cu ajutorul funcției socket_create() creează un socket și returnează un descriptor care va fi folosit în următoarele comenzi de rețea. Dacă una dintre funcțiile apelate asupra socket-ului nu este finalizată cu succes, codul de eroare este returnat prin funcțiile socket_last_error and socket_strerror functions.

Crearea legăturii cu adresa și port

Acum că socketul a fost creat, urmează „legarea” acestuia de o adresă și un anumit port, date ca parametru funcției socket_bind(). Cum intenția este să avem un server multi-client vom considera adresa 0.0.0.0, în locul uneia care ar permite conexiunea doar cu un client. Prin acest lucru ne asigurăm că toate conexiunile către acel port sunt „ascultate” de către server. Portul ales are valoarea 5000.

Punerea socket-ului în modul de „ascultare”

După ce am făcut legătura server-ului cu un port îl vom pune pe acesta într-un mod de ascultare cu ajutorul funcției socket_listen() care primește ca parametri referința către socket și un număr maxim de clienți cărora să le permită conexiunea la acesta. Dacă numărul de clienți este mai mare decât numărul maxim de conexiuni permise, aceștia vor fi puși în așteptare și acceptați la eliberarea unei conexiuni.

Așteptarea pentru conexiuni

Intenția este ca server-ul creat să funcționeze fără întrerupere atâta timp cât dispozitivul pe care acesta rulează este funcțional și conectat la rețea. Pentru a face posibil acest lucru serverul așteaptă conexiuni de la clienți într-o buclă infinită. Fiecare client conectat la un moment dat necesită câte o secvență de cod pentru a trata conexiunea și a face posibilă comunicarea. Ar trebui creat câte un fir de execuție separat pentru fiecare client acceptat, doar ca php nu acceptă în mod direct crearea firelor de execuție. O soluție în acest sens o reprezintă folosirea funcției select, care verifică și observă pe rând, dacă anumite socket-uri au ceva de zis. Practic funcția monitorizează mai mulți clienți să vadă care are vreun mesaj de transmis.

Atfel se verifică fiecare client, iar când are ceva de spus, funcția socket_read() va fi apelată cu referința socketului clientului și un buffer date ca parametru. Dacă în urma unei citiri se primește o lungime nulă de date, este semnalizată deconectarea clientul respectiv. În acest caz vom închide conexiunea și vom elimina socket-ul pentru a face loc altor posibili clienți.

În continuare este prezentat cazul în care serverul interceptează un mesaj de la un client. Acesta va verifica în primul rând că formatul mesajului este cel dorit, iar mai apoi identifica id-ul clientului și va actualiza baza de date cu noua valoare primită. Pentru verificarea și actualizarea datelor din baza de date am definit funcția update_database() care primește ca parametru mesajul interceptat de la client. Dacă în urma verificării formatul și lungimea mesajului sunt cele așteptate, funcția va extrage id-ul senzorului din mesaj și valoarea ce reprezintă disponibilitatea parcării și va actualiza baza de date.

Funcția folosește un query pentru actualizarea câmpului în baza de date. Un query este mecanismul pricipal de extragere sau operare asupra informațiilor dintr-o bază de date și constă într-o solicitare pe care o face acesteia într-un format predefinit. Înainte de actualizarea informației trebuie să se creeze conexiunea la baza de date, acest lucru facându-se prin incluziunea fișierului connect.php

Structura bazei de date

În această secțiune sunt prezentate aspecte legate de proiectarea și implementarea structurii și logicii funcționale a bazei de date relaționale conținând informații privind localizarea și structura parcărilor, diponibilitatea locurilor de parcare, detalii de preț, dar și informații adiministrative și financiare.

Aplicația Web – Interfața cu utilizatorul

Mecanism de login&logout pentru administrator

Achiziția și prelucrarea datelor

Utilizarea și testarea sistemului

Utilizarea aplicației

Testare

Concluzii, contribuții și direcții de dezvoltare

În această lucrare am descris un sistem de management al parcărilor dintr-o regiune sau chiar un oraș ce include atât monitorizarea spațiilor disponibile cât și o soluție pentru gestionarea financiară a fiecărei parcări prin control on-line al acesteia.

Bazat pe cerințele pe care mi-am propus să le îndeplinesc am creat un design al arhitecturii sistemului și al componentelor sale. Am descris fiecare componentă și am și am dat o câte o soluție a acesteia din cele existente. De asemenea am realizat o simulare practică a sistemului propus, folosind resurse hardware accesibile și am dat soluții software pentru dezvoltarea și utilizarea sistemului. Acesta simulează în timp real scenariile ce pot avea loc, ceea ce ajută la înțelegerea și validarea acestui concept. Astfel am demonstrat ca soluția propusă satisface complet cerințele unui sistem de management al parcărilor eficient și accesibil și că într-adevăr rețelele de senzori wireless sunt o tehnologie promițătoare.

As a result of this project, environmental parameters can be monitored for further study as well as citizens can also know free parking slots within Santander’s city center. Furthermore, SmartSantander project is a large-scale network for experimentation that allows researchers from all over the world to test different algorithms in a real environment.

To explain this large project in detail we have written another 2 articles:

Obiective realizate și contribuții personale

Direcții de dezvoltare

Posibilă integrare într-un sistem de management al traficului prin utilizarea datelor in timp real.

Dezvoltarea unei aplicații mobile care să includa un sistem de navigație care poate interoga sistemul si oferi clientului cea mai bună solutie de parcare în zona dorită

Integrarea sistemului în sistemele de navigație din dotarea autovehiculelor, solție optimă pentru soferii care în orice moment pot primii cea mai bună solutie de parcare, având la bază un set de criterii de selecție, în funcție de distanță, cost și durata de parcare.

Referințe bibliografice

Definite prin doua stiluri.

"Referinte numerotate":

Wood, Alex. "The internet of things is revolutionising our lives, but standards are a must". theguardian.com. The Guardian. Retrieved 31 March 2015.

Sangwon Lee, Dukhee Yoon and Amitabha Ghosh, Intelligent Parking Lot Application Using Wireless Sensor Networks, Proceedings of IEEE conference, 978-1-4244-2249-4/08

A. C. Shaw, "Reasoning About Time in Higher Level Language Software", in IEEE Transactions on Software Engineering, No. 15 (7), July 1989, pp. (875-889).

***.University of Jordan, Computer Engineerinring Department, Wireless Sensor Networks, http://uojcourses.awardspace.com/Wireless%20Sensor% 20nets/index.html

Sokwoo Rhee, Sheng Liu, „Wireless Sensor Networking Source Book”, Millenial Net, MA 01824, ianuarie 2005

Douglas E. Comer. Internetworking with TCP/IP – Principles, Protocols and Architecture. ISBN 86-7991-142-9

Deepak C.Karia, Vispi Adajania Embedded Web Server Application Based Automation and Monitoring System International Conference on Signal Processing, Communication, Computing and Networking Technologies ICSCCN 2011

[4] Martinez, K, Hart, J. K. and Ong, R Deploying a Wireless Sensor Network in Iceland. Lecture Notes in Computer Science, Proc. Geosensor Networks, 131- 137(2009)

"Referinte lista nume":

[Shaw 89] A. C. Shaw, "Reasoning About Time in Higher Level Language Software", in IEEE Transactions on Software Engineering, No. 15 (7), July 1989, pp. (875-889).

Similar Posts