Proiectarea și realizarea unui HMI – web pentru urmarit la distanța habitate cu cerințe speciale de eliminare a poluarii electromagnetice COORDONATOR… [303126]

MINISTERUL EDUCAȚIEI ȘI CERCETĂRII ȘTIINȚIFICE

UNIVERSITATEA „1 DECEMBRIE 1918” [anonimizat] a poluarii electromagnetice

COORDONATOR ȘTIINȚIFIC ABSOLVENT: [anonimizat]

2016

Cuprins

CAPITOLUL 1 3

INTRODUCERE 3

CAPITOLUL 2 3

FUNDAMENTAREA TEORETICĂ 3

2.1 Studiul implementarii aplicatiilor client server 3

2.2 Studiul principalelor tehnologii utilizate 3

2.3 Studiul posibilitatilor de implementare hardware a sistemului de monitorizare 3

CAPITOLUL 3 4

NUMEE CAPITOL 4

3.1 Nume subcapitol 4

CAPITOLUL 4 4

NUMEEEEE CAPITOL 4

4.1 Proiectarea arhitecturii (toate componentele) 4

4.2 Proiectarea bazei de date 4

4.3 Proiectarea interfețelor 4

4.4 Proiectarea sistemelor de securitate 4

4.5 Proiectarea fluxului de testare a [anonimizat] 4

CAPITOLUL 5 4

NUMEEE CAPITOL 4

5.1˘Realizarea tuturor elementelor proiectate 4

CAPITOLUL 6 4

TESTARE 4

6.1 Testarea componentelor 5

6.2 Testarea aplicației 5

CAPITOLUL 7 5

CONCLUZII FINALE 5

7.1 Rezultate 5

7.2 Concluzii 5

7.3 Dezvoltari ulterioare 5

CAPITOLUL 1

INTRODUCERE

În aceasta lucrare am descris modul de transmitere a [anonimizat], catre o baza de date si anume un senzor DHT11 care masoara temperatura si umiditatea si un alt senzor BMP280 GY care masoara presiunea atmosferica si altitudinea. [anonimizat] W5100 [anonimizat], [anonimizat]-site.

Pentru aceasta lucrare am flosit cunoștiințele dobândite pe parcursul acestor trei de ani de facultate. Sistemul proiectat reprezintă rezultatul unei munci depuse având fonduri reduse și pe o perioadă limitată de timp. Bineînteles că procesul de realizare a proiectului nu a [anonimizat] a găsi soluția optimă.

Am ales această temă pentru proiectul de licență doarece are un impact important pe plan personal. În lucrarea de față este prezentată doar o machetă a produsului final. [anonimizat] o formă finală ce ar putea fi utilizată în producție.

[anonimizat], [anonimizat], [anonimizat] a-i ajuta în luarea dciziilor și pentru a puncta momentele în care trebuie acționat.

[anonimizat], sistemul Bee Hive Monitor îți permite acces zilnic la rezultatele măsurătorilor de la stupul monitorizat.
Deciziile corecte luate la momentul oportun duc la maximizarea cantităților de miere recoltate și a sănătății familiilor de albine.

Obiectivele acestui proiect de licență sunt:

Realizarea unei aplicații web unde sunt afisate informatii preluate de la dipozitive periferice de intrare cu ajutorul microcontrolerului și a Shield-ului Ethernet.

CAPITOLUL 2

[anonimizat] controler ("controller" – un termen de origine anglo-saxonă, cu un domeniu de cuprindere foarte larg) reprezintă o structură electronică folosită pentru controlul general al unui proces sau al unei interacțiuni între un proces și mediul exterior , fără a fi necesară intervenția operatorului uman.

Primele astfel de controlere apărute au fost fabricate prin tehnologii analogice folosindu-se diverse componente electronice si electromagnetice. Totuși perfecționarea controllerelor ținea de transferul lor în mediul tehnicii numerice moderne . Realizarea acestora a fost la început greoaie pentru că s-a recurs la implementarea lor pe baza unor circuite numerice standard corelată cu anumite informații de electronică analogică foarte complexă. Datorită acestor decizii primele controlere aparute aveau ca principal dezavantaj dimensiunea foarte mare precum și o lipsă de siguranță în funcționare.

Putem spune că un pas important în realizarea microcontrollerelor l-a reprezentat și posibilitatea oricărui utilizator de rând, de a utiliza un microprocesor. Această dezvoltare în domeniul microprocesoarelor a dus la o reducere drastică a tuturor dezavantajelor pe care le impunea anterior un controller. Apariția microprocesoarelor de uz general a dus către o reducere a costurilor , consumului de energie dar nu în ultimul timp a reușit reducerea dimensiunilor unui microcontroller precum și creșterea fiabilitații lui.

Realizările privind miniaturizarea procesoarelor nu s-a oprit odată cu atingerea unui prag considerat decent , ci a continuat către posibilitatea de a realiza o structură care să integreze toate componentele necesare într-un singur chip.

Structura interna a unui microcontroler de tip standard este formată din:

– o unitate centrală de procesare (CPU Central Processing Unit), care să conțină un oscilator intern utilizat pentru ceasul de sistem,

– IN/OUT (I/O) , porturi de intrare și ieșire,

– o memorie de tip FLASH / EPROM / PROM / ROM, folosită pentru programe și pentru operațiile cu parametrii,

– o memorie de tip RAM, folosită pentru stocarea datelor,

– un port serial de tip sincron și/sau asincron programabil,

– un sistem de timere-temporizatoare / numărătoare programabile.

Aparut ca o inovație în domeniul electronicii și nu numai , un microcontroller realizează o serie impresionantă de acțiuni pentru care până la apariția lui era nevoie de un număr crescut de integrate si o intervenție bine definită a omului. Printre aplicațiile numeroase care se bucură de intervenția unui microcontroller putem enumera următoarele:

– citește dispozitive periferice de intrare ca de exemplu senzori, butoane etc.

– procesează date sau informații preluate dintr-un mediu extern si le transmite către un alt mediu,

– controlează anumite dispozitive electronice putând stabili chiar intensitatea cu care sunt controlate acestea. Ex: becuri , display-uri , motoare etc.

Figura 2.1.1 Microcntroler Atmega328P

SENZORI

Ce este senzorul? Trebuie spus că nu există o definiție unitară și necontestată a „senzorului”, motiv care lasă mult spațiu pentru interpretări, ambiguități și confuzii. Mulți autori preferă să folosească sintagma „senzori și traductoare”, în cadrul căreia, fie pun pe picior de egalitate senzorul și traductorul, utilizând, alternativ sau preferențial, unul dintre termeni, fie consideră că unul reprezintă o categorie ierarhică superioară, incluzându-l pe celălalt. De multe ori se mai utilizează și noțiunea de „captor”, care amplifică semnele de întrebare, întrucât în limba franceză, termenul „capteur” este utilizat pentru a desemna elementele tehnice, care în această carte au fost numite „senzor”.

Senzorul este un dispozitiv tehnic care reacționează calitativ sau cantitativ prin proprii mărimi măsurabile, la anumite proprietăți fizice sau chimice ale mediului din preajma lui. Ca parte componentă a unui aparat sau sistem tehnic detector poate măsura sau înregistra de exemplu presiunea, umiditatea, presiunea, câmpul magnetic, altitudinea, accelerația, forța, intensitatea sonoră, radiații etc. Termenul de senzor provine din latina: sensus = simț.

Senzorul măsoară o mărime fizică (masă, presiune, temperatură, umiditate etc.) și o transformă într-un semnal care poate fi citit de către un observator printr-un instrument sau poate fi prelucrat.

Nivelul de dezvoltare a capacităților senzoriale ale unui sistem mecatronic se determină, în general, după modul în care acesta reușește să realizeze funcții de recunoaștere similare cu cele ale omului. Între sistemele de recunoaștere ale omului si ale unui sistem mecatronic există însă două mari deosebiri:

– omul are posibilități multiple de recunoaștere, fiind dotat cu organe de simț complexe, care îi asigură capacitățile de vedere, auz, miros, gust și percepție tactilă; la un sistem mecatronic acest lucru nu este nici necesar și nici posibil, tinzându-se spre limitarea funcțiilor senzoriale la cele strict necesare impuse de utilizările concrete ale acestuia;

– un sistem mecatronic poate fi dotat cu facilități senzoriale pe care nu le întâlnim la om, asigurate, de exemplu, de senzorii de proximitate inductivi, capacitivi, fluidici, sau cei de investigare, bazați pe radiații ultrasonice sau radiații laser și funcționând pe principiul radarului.

Senzorii (traductoarele) au rolul de a transforma anumiți parametri ai sistemului în mărimi de altă natură. Parametrul de transformat formează semnalul de intrare al traductorului, iar cel transformat semnal de ieșire.

Alegerea și aprecierea unui anumit tip de senzor are la bază o serie întreagă de parametri dintre cei mai diferiți, cum ar fi: dimensiunile, greutatea, costul, gradul de protecție electrică, domeniul de măsurare, consumul de energie, natura semnalelor de ieșire și complexitatea lanțului de prelucrare a acestora, sensibilitatea, rezoluția, precizia.

Figura 2.2.1 Recepția unui semnal cu ajutorul unui senzor

HTML

HyperText Markup Language (HTML) este un limbaj de marcare utilizat pentru crearea paginilor web ce pot fi afișate într-un browser (sau navigator). HTML este un limbaj de markup. El permite crearea layout-ului paginilor și a formularelor, dar nimic mai mult. Cu ajutorul CSS-ului (Cascading Style Sheets) si a JavaScript-urilor acesta construiește interfețe intuitive și sofisticate.

O pagină web dinamică este o pagină care interacționează cu utilizatorul astfel încât fiecare utilizator care vizitează această pagină vede informațiile personalizate. Conținutul acestor pagini este generat de informațiile provenite din baza de date sau surse externe. Sintaxa limbajului provine din C, Java și este ușor de învățat pentru oricine are cunoștințe minime de programare. PHP rulează pe mai multe platforme și poate fi folosit ca un program executabil sau ca un modul pentru o mulțime de servere Web. Are integrat suport pentru baza de date, XML, IMAP, Java, numeroase protocoale pentru internet și pentru manipularea datelor și poate fi extins prin intermediul interfețelor.

Este permanent dezvoltat de o echipă talentată formată din membri din întreaga lume. Acest lucru înseamnă ca bug-urile sunt reparate imediat ce sunt semnalate, iar noua versiune este disponibilă fără nici un cost suplimentar. Sunt disponibile numeroase pachete pentru tot felul deutilizatori ale acestuia (de ex. Conectarea la un server MSSQL).PHP oferă o soluție simplă și universală pentru crearea de pagini web dinamice. Interfața intuitivă permite programatorilor să includă comenzi PHP chiar în pagina HTML.

Design-ul său elegant face ca PHP-ul să fie mai ușor de întreținut șide dezvoltat ulterior comparativ cu celelalte limbaje de scripting.

PHP

PHP (acronim recursiv pentru PHP: Hypertext Preprocessor) este un limbaj de scripting de uz general, open source și server-side, existând versiuni disponibile pentru majoritatea web serverelor și pentru toate sistemele de operare. Inițial este folosit pentru a produce pagini web dinamice, dar de asemenea este folosit pe scară largă în dezvoltarea paginilor și aplicațiilor web. Se folosește în principal înglobat în codul HTML.

MySQL

MySQL este un sistem de gestiune a bazelor de date relaționale, produs de compania suedeza MySQL AB și distribuit sub Licența Publică Generală GNU. Este cel mai popular SGBD (sistem de gestiune a bazelor de date) open-source la ora actuală, fiind o componentă integrată a platformelor LAMP sau WAMP (Linux/Windows-Apache-MySQL-PHP/Perl/Python). Popularitatea sa ca aplicație web este strâns legată de cea a PHP-ului care este adesea combinat cu MySQL și denumit Duo-ul Dinamic.

Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum ar fi: C, C++, C#, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip specific API .

Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcare de pe internet, o interfață grafică: MySQL Administrator și MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicația gratuită, scrisă în PHP, phpMyAdmin.

PHP și MySQL

Un exemplu de request făcut către o bază de date aflată pe un server se face cu ajutorul limbajului PHP și este prezentată in figura 2.5.1

Figura 2.5.1 Request făcut către o bază de date

Javascript

JavaScript (JS) este un limbaj de programare orientat obiect bazat pe conceptul prototipurilor. Este folosit mai ales pentru introducerea unor funcționalități în paginile web, codul Javascript din aceste pagini fiind rulat de către browser.

În ciuda numelui și a unor similarități în sintaxă, între JavaScript și limbajul Java nu există nicio legătură. Ca și Java, JavaScript are o sintaxă apropiată de cea a limbajului C, dar are mai multe în comun cu limbajul Self decât cu Java.

Limbajul este binecunoscut pentru folosirea sa în construirea site-urilor web, dar este folosit și pentru accesul la obiecte încorporate (embedded objects) în alte aplicații. A fost dezvoltat inițial de către Brendan Eich de la Netscape Communications Corporation sub numele de Mocha, apoi LiveScript, și denumit în final JavaScript.

Cea mai des întâlnită utilizare a JavaScript este în scriptarea paginilor web. Programatorii web pot îngloba în paginile HTML script-uri pentru diverse activități cum ar fi verificarea datelor introduse de utilizatori sau crearea de meniuri și alte efecte animate.

Microsoft a implementat limbajul JavaScript sub numele de JScript, cu o serie de modificări și extensii față de implementarea Netscape. Pe platforma Windows, JScript este unul din limbajele executabile de către Windows Script și, deci, poate fi folosit pentru scriptarea aplicațiilor ce suportă Windows Script, de exemplu Internet Explorer, sau chiar sistemul de operare Windows.

Browserele rețin în memorie o reprezentare a unei pagini web sub forma unui arbore de obiecte și pun la dispoziție aceste obiecte script-urilor JavaScript, care le pot citi și manipula. Arborele de obiecte poartă numele de Document Object Model sau DOM.

Browserele moderne pun la dispozitie standardul W3C pentru DOM, oferind premiza scrierii de script-uri portabile, care să funcționeze pe toate celelalte browsere.

În practică, însă, standardul W3C pentru DOM este incomplet implementat. Deși tendința browserelor este de a se alinia standardului W3C, unele din acestea încă prezintă riscuri și incompatibilități majore, cum este cazul Internet Explorer.

JSON

JSON este un acronim în limba engleză pentru JavaScript Object Notation, și este un format de reprezentare și interschimb de date între aplicații informatice.

Este un format text, inteligibil pentru oameni, utilizat pentru reprezentarea obiectelor și a altor structuri de date și este folosit în special pentru a transmite date structurate prin rețea, procesul purtând numele de serializare. JSON este alternativa mai simplă, mai facilă decât limbajul XML.

Formatul JSON a fost creat de Douglas Crockford și standardizat prin RFC 4627.

Eleganța formatului JSON provine din faptul că este un subset al limbajului JavaScript (ECMA-262 3rd Edition), fiind utilizat alături de acest limbaj.

Tipul de media pe care trebuie să îl transmită un document JSON este application/json. Extensia fișierelor JSON este .json.

Avantaje JSON:

– ofera o modalitate automata de a serializa / deserializa obiecte JavaScript, folosind linii minime de cod. In comparatie, developerii trebuie sa scrie cod JavScript pentru serializare in XML.

– este sustinut de toate browserele, parsarea intre browsere la XML se poate dovedi dificila

– ofera un format concis, datorita abordarii bazate pe perechea nume-valoare. XML ofera un format mai complex din cauza tag-urlor si namespace-urilor

– deserializare rapida a obiectelor in JavaScript

– sustinut de mute toolkit-uri Ajax si biblioteci JavaScript

– API-uri simple, disponibile pentru JavaScript si alte limbaje de programare

Dezavantaje JSON:

– nu are sustinere pentru namespace, deci o extensibilitate redusa in comparatie cu XML

– suport limitat pentru unele unelte de dezvoltare

– nu are sustinere la toate produsele legate de serviciile web.

CAPITOLUL 3

INSTALAREA ȘI CONFIGURAREA DIFERITOR UNELTE PENTRU DEZVOLTAREA APLICAȚIEI

Ca orice aplicație web de urmarit la distanta, are nevoie de niște instrumente pentru a putea fi dezvoltata, rulata si utilizata. Codul propriu zis a fost scris în popularul editor Sublime Text.

Alte instrumente folosite au fost: XAMPP (apache + mysql-phpmyadmin), iar pentru programarea microcontrolerelor, Arduino vine cu un mediu de dezvoltare (IDE) bazat pe proiectul Processing, care include suportpentru limbajele de programare C și C++.

3.1 Sublime Text

Sublime Text este un editor de text gratuit pentru mai multe platforme, dezvoltat de Jon Skinner. Programul permite editarea codului sursă specific unui număr mare de limbaje de programare, precum C, C++, Pascal, Cobol, HTML, PHP și altele.

Facilități remarcabile sunt:

– Colorare sintactică pentru 48 de limbaje de programare;

– Tipărirea color a codului sursă (WYSIWYG);

– Autocompletare = deducerea și întregirea automată a cuvântului de cod din biblioteca utilizată;

– Interfață cu mai multe fișiere;

– Suport pentru expresii regulate;

– Suport pentru macroinstrucțiuni.

3.2 Pachetul XAMPP

Este un pachet de programe free software, open source și cross-platform web server, care constă în Apache HTTP Server, MySQL database și interpretoare pentru scripturile scrise în limbajele de programare PHP și Perl.

Numele XAMPP este un acronim pentru:

– X (de la "cross", care înseamnă cross-platform)

– Apache HTTP Server

– MySQL

– PHP

– Perl

Acest program este lansat sub termenii licenței GNU și acționează ca un web server capabil de a servi pagini dinamice. XAMPP este disponibil pentru Microsoft Windows, Linux, Solaris, și Mac OS X, și este utilizat în principal pentru dezvoltarea proiectelor web. Acest software este util pentru crearea paginilor dinamice, utilizând limbaje de programare ca PHP, JSP, Servlets.

Arduino Desktop IDE

Proiectul Arduino oferă un mediu integrat de dezvoltare (IDE), care este o aplicație cross-platform, scrisă în Java. Acesta își are originile în mediul de dezvoltare pentru limbajul de programare Processing și în proiectul Wiring. Este proiectat pentru a introduce programarea în lumea artiștilor și a celor nefamiliarizați cu dezvoltarea software. Include un editor de cod cu funcții ca evidențierea sintaxelor, potrivirea acoladelor și spațierea automată și oferă mecanisme simple cu un singur click, pentru a compila și a încărca programele în plăcuța Arduino. Un program scris în IDE pentru Arduino se numește sketch.

Arduino IDE suportă limbajele de programare C și C++ folosind reguli speciale de organizare a codului. 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ă instalare interfața principală a programului este prezentată în figura 3.3.1.

Figura 3.1.1 Interfata Arduino IDE

CAPITOLUL 4

STRUCTURAREA ȘI PROIECTAREA APLICAȚIEI

Diagrama bloc a sistemului

Figura 4.1.1 Schema bloc a sistemului

Design-ul general

După un studiu amanuntit asupra componentelor prezentate in capitolele anterioare am ajuns si la partea de proiectare a acestora. În general, întregul sistem prezentat mai sus se bazează pe recepționarea unor date din exterior, prelucrarea acestora de către placa de dezvoltare și trimitere acestora catre baza de date unde urmeaza a fi salvate.

La plăcuța de dezvoltare sunt conectate dispozitivele periferice, adică senzorul DHT11, care este un senzor de temperatura si umiditate și senzorul BMP280 GY, cu ajutorul caruia preluam informatii despre presiunea atmosferica si altitudine. Senzorul DHT11 măsoară temperatura și umiditatea din interiorul familiei de albine, iar cu senzorul BMP280 GY masuram pesiune atmosferica și altitudinea, pe care le transmitem către microcontroler, unde se prelucreaza datele, apoi cu ajutorul shield-ului Ethernet W5100 transmitem datele catre baza de date, de unde v-or putra fi prelucrate ma departe.

Microcontroler Atmega328P

Atmega328 face parte din familia procesoarelor ARM, cu o arhitectură RISC. Această linie de procesoare a fost proiectată pentru uzul industrial, dar și aplicații ale consumatorilor care au nevoie de un nivel mare de integrare si performanță, memorii încapsulate și un set bogat de periferice. Acesta functioneaza la frecventa de 200 Mhz.

A fost ales deoarece, poate fi folosit pe orice sistem de operare (Linux, Windows sau MacOS). Majoritatea plcilor de dezvoltare care vin cu acest microcontroler fiind limitate la sistemul de operare Windows.

Alte criterii care au dus la utilizarea acestui microprocesor sunt capabilitatea lui bogată de a interfața cu o multime de periferice, dar și datorită prețului scăzut cu care a fost achiziționat de pe piața locală.

Acesta are rolul de a recepționa informații de la perifericele de intrare ( senzorul de temperatură și umiditate, senzorul de presiune atmosferică si altitudine), să le convertească în semnal digital, iar apoi să prelucreze informația trimițând un rezultat către baza de date.

Informația recepționată de la senzorul de temperatură și umiditate și de la senzorul de presiune atmosferică si altitudine prin intermediul pinilor D2 și A4, A5 este convertită cu ajutorul unui ADC pe 12 biți din semnal analogic în semnal digital. Acesta face verificările impuse de algoritmul implementat special pentru acest sistem de măsurare iar în momentul în care condiția este respectată el trimite informațiile către baza de date.

Figura 4.2.1 Placa de dezvoltare cu Microconrolerul Atmega328P

Shield Ethernet W5100

Cu ajutorul acestui shield-ului Ethernet W5100 se pot proiecta cu ușurință circuite conectate la rețea. Este bazat pe controller-ul ethernet W5100 care oferă o implementare a stivei de rețea (IP) cu capacitate TCP și UDP.

A fost ales deoarece, este usor de folosit, iar prin usor folosit ma refer la faptul ca acestă plăcuta este proiectată astfel încât se potrivește perfect cu placa de dezvoltare prezentata in Figura 4.2.1 și nu trebuie decât să le îmbinați pentru a le conecta.

Alte criterii care au dus la utilizarea acestui shield se datoreaza vitezei de conexiune de 10/100Mbps și comunică cu placa de dezvoltare prin protocolul SPI, dar și a prețului scăzut cu care a fost achiziționat.

Daca se foloseste o versiune Arduino IDE 1.0 sau mai nouă ceastă versiune a software-ului a construit suport DHCP și nu necesită configurarea manuală a unei adrese IP.

Pentru a afla ce adresa IP a fost atribuită plăcii de dezvoltare, deschideți schița DhcpAddressPrinter. Acesta poate fi găsit la: Fișier -> Exemple -> Ethernet -> DhcpAddressPrinter.

Cu ajutorul acestiua se poate creea un web server sau web client sau chiar amândoua in acelasi timp de ce nu avand doar grija la resursele pe care le utilizam in sketch-ul nostru. Pentru aceasta aplicatie am aflat adresa IP atribuita placii de dezvoltare folosind DhcpAddressPrinter și am creat un web client, prin intermediul caruia transmitem informațiile de la senzori in baza de date.

Figura 4.3.1 Shield Ethernet W5100

Senzorul DHT11

Acesta este un senzor de temperatură si umidiate, reprezentand o componentă periferică ce este conectată la placa de dezvoltare.

Temperatura este măsurată de un NTC(Negative Temperature Coefficient ), iar umiditatea relativă este măsurată folosind un senzor capacitiv. Aceste elemente sunt pre-calibrate, iar ieșirea este oferită ca semnal digital.

Am ales senzorul de temperatură și umiditate DHT11 deoarece este foarte convenabil, oferind precizie bună, simplitate în utilizare și dimensiuni reduse la un preț mic.

Senzorul poate măsura umiditatea în intervalul 20% – 90% cu o precizie de 5% și temperatura în intervalul 0 – 50 ˚C cu o precizie de 2 ˚C.

Pentru a prelua temperatura și umiditatea am conectat senzorul la placa de dezvoltare. Pentru a putea folosi senzorul este necesara descărcarea librariei DHT. Dupa descarcarea librariei aceasta se include accesând Sketch -> Include Library -> Add. ZIP Library din softul Arduino IDE. Pasul următor a fost alimentarea acestuia cu 3.3V și conectarea pinul-ui de output la pinul digital D2 de pe placa de dezvoltare.

Figura 4.3.1 Senzorul DHT11

Senzorul BMP280 GY

Acesta este un senzor barometric, cu ajutorul cariua putem afla informatii despere presiunea atmosferică. Pentru că presiunea se schimbă cu altitudinea și masuratorile presiunii sunt foarte precise, putem folosi acest senzor și ca altimetru cu ±1 metru acuratețe.

Am ales acest senzor deoarece are o precizie a presiunii de până la ±1 hPa și este cel mai accesibil.

Pentru a prelua presiunea atmosferica și altitudinea am conectat senzorul la placa de dezvoltare. Pentru a putea folosi senzorul este necesara descărcarea librariei SparkFun_BME280_Arduino_Library-master. Dupa descarcarea librariei aceasta se include accesând Sketch -> Include Library -> Add. ZIP Library din softul Arduino IDE. Pasul următor a fost alimentarea acestuia cu 5V și conectarea pinilor SDA/SCL la pinii analogici A4 și A5 de pe placa de dezvoltare.

Figura 4.5.1 Senzorul BMP280 GY

Breadboard

Un breadboard este o bază de construcție pentru prototipuri de electronică. Am utilizat un breadbord doarece aveam nevoie de construirea rapidă și ușoară a unui circuit. Acesta este o placă de plastic cu găuri și contacte metalice în interior ce permite conectarea prin fire a elementelor de circuit, fără a mai fi nevoie să le lipim.

Cu ajutorul acestuia am conectat toate componentele (senzorii DHT11 și BMB280 GY) la placa de dezvoltare, pentru a putea testa și implementa softul necesar aplicației.

Figura 4.6.1 Breadboard

CAPITOLUL 5

REALIZAREA HARDWARE ȘI SOFTWARE A SISTEMULUI

Realizarea tuturor elementelor proiectate

Prima etapă în construirea sistemul a fost comandarea pieselor. După o cercetare amănunțită am ajuns la concluzia că piesele deschise mai sus au performanțele necesare pentru a putea realiza întreaga machetă.

După ce am reușit să strâng toate componentele prezentate anterior, am trecut la partea efectivă de construcție a sistemului prin conectarea componentelor între ele.

Primele piese care au ajuns au fost placa de dezvoltare și senzorul DHT11. Am asamblat aceste doua componente și apoi am trecut la interfațarea acestora.

Pentru a funcționa un sistem are nevoie atât de o parte fizică, hardware, cât și de o parte logică, software. Componenta software asigură interconectarea tuturor celorlalte componente ale sistemului, transformându – le într-o entitate.

Apoi rând pe rând au început să vină piesele, fiecare a fost conectată la sistem, și pentru fiecare componentă există o parte de cod ce îi asigură funcționalitatea în sistem.

Un sistem de monitorizare, mai ales pentru albine, este necesar să aibă o formă cât mai compactă pentru a putea fi cât mai ușor de manevrat. In principm-am axat doar pe partea de asamblare a tuturor componentelor dar și functionare corecta a acestora. Pentru aceasta am utilizat Fritzing

CAPITOLUL 6

TESTARE

6.1 Testarea componentelor

6.2 Testarea aplicației

CAPITOLUL 7

CONCLUZII FINALE

7.1 Rezultate

Concluzii

În urma conectării tuturor componentelor descrise în capitolele anterioare am reușit să realizez un sistem stabil de monitorizare a greutății stupilor. Proiectul de față reprezintă o machetă a unui produs ce poate fi utilizat în producție. Având în vedere că programele folosite la dezvoltarea logică a sistemului sunt gratuite, costul de producție este minim, având un atu față de programele ce rulează pe piață sub diverse licențe. Acest sistem construit îndeplinește toate facilitățile gândite inițial. Cu ajutorul microcontrolerului am reușit să dezvolt partea logică a proiectului, să conetez toate perifericele adiacente și să primesc într-un final infomațiile dorite in browser. Contribuția personală constă în realizarea acestei machete, deoarece nu există un produs pe piață care să aibă funcționalitatea implementă de mine.

Dezvoltari ulterioare

M-am gândit și la unele îmbunătățiri ale proiectului ce pot fi implementate intr-un viitor proiect de dizertație. Una din îmbunătățiri ar putea fi conectarea unui modul GPS, care ne-ar oferi informații despre locația sistemul, având o utilitate foarte importantă în cazul în care se comite un furt.

Similar Posts