Reteaua Radio de Senzori cu Comanda Distanta
Cuprins
Listă de figuri
Figura 2.1 Caseta de dialog pentru inserarea legendei6
Figura 2.2 Evoluția ghidului de absolvire7
Listă de acronime
PWM –
APL –
MAC-
PAN-
RX-
TX-
ROM-
LS-
MS-
Introducere
Permanentul progres tehnologic a dus la dezvoltarea din ce în ce mai pronunțată a utilajelor, echipamentelor electronicelor și în general a tuturor lucrurilor ce ne înconjoară și pe care le folosim zi de zi.
În realizarea acestor aplicații un rol deosebit in ocupa senzorii, utilizați pentru monitorizarea diverșilor parametrii, implementarea automatizărilor și asigurarea bunei funcționări. Putem astfel preconiza ca rețelele inteligente de senzori vor avea un rol din ce în ce mai important devenind chiar o necesitate. În prezent exista o gamă variată de senzori de dimensiuni reduse, cu un consum mic si foarte ieftini, ceea ce favorizează utilizarea lor in diverse aplicații și respectiv domenii: industrie, agricultura, medicina, educație etc.
Printre principalele calități ale acestor rețele de senzori se numără: precizia, fiabilitatea, costurile reduse, ușurința implementării si administrării însă cel mai important aspect ce trebuie urmărit este mobilitatea. Acest lucru este realizabil prin utilizarea tehnologiilor de comunicație fără fir.
Am ales această temă pentru proiectul de diplomă din dorința de a crea o astfel de rețea inteligentă de senzori, la o scara mai mică, utilizabilă in diverse domenii datorită caracterului general al proiectului și datorită posibilității dezvoltării la o scară mai mare și pentru un domeniu particular.
La ora actuală aceste sisteme exista si sunt folosite in multe domenii însă scopul proiectului este de a realiza un astfel de sistem cu un cost cat mai redus si cu o plaja cat mai mare de domenii in care poate fi utilizat.
Schema bloc generala
Functiile indeplinite de fiecare bloc
Modulele cu senzori
Aceste module preiau informatiile de la senzori, le prelucreaza intr-o valoare numerica ce indica temperatura si le transmit mai departe folosind modulule radio catre coordonator.
Modulul cu senzori DS18B20 contine trei senzori digitali de temperatura DS18B20 conectati intre ei prin magistrala 1-Wire si conectati la microcontroler prin portul B pinul 0 (echivalent cu pinul digital D8 de la Arduino Uno).
Microcontrolerul este conectat de asemenea si cu modulul radio Xbee folosind interfata seriala emulata pe pinii 3 si 4 ai portului D (echivaleti cu pinii digitali 3 si 4 de la Arduino Uno) si pinii 2 si 3 ai modulului Xbee (echivalenti cu pinii RX si TX).
Microcontrolerul este alimentat cu 5V pe pinul Vcc de la sursa de alimentare, modulul radio este alimentat cu 3,3V tot de la sursa de alimentare folosind un stabilizator de tensiune iar senzorii folosesc modul de alimentare parazita, folosind linia de date si pentru alimentare. Avand in vedere consumul redus de putere, intregul ansamblu poate functiona folosind o sursa de alimentare ce constra dintr-o baterie de 9V si un stabilizator de tensiune ce ofera cei 5V necesari alimentarii microcontrolerului.
Modulul cu senzor LM35 conține un senzor analogic de temperatura LM35 conectat la microcontroler prin portul C pinul 0 (echivalent cu pinul analogic A0 de la Arduino Uno).
Microcontrolerul este conectat și cu modulul radio Xbee folosind interfața emulata pe pinii 3 și 4 ai portului D ( echivalenți cu pinii digitali 3 si 4 de la Arduino Uno) și pinii 2 și 3 ai modulului Xbee (echivalenți cu pinii Rx si Tx).
Microcrontrolerul este alimentat cu 5V pe pinul Vcc de la sursa de alimentare, modulul radio este alimentat cu 3.3V tot de la sursa de alimentare folosind un stabilizator de tensiune, iar senzorul este alimentat cu 5V de la pinul Vcc al microcontrolerului. Având în vedere consumul redus de energie întregul ansamblu poate funcționa folosind o sursa de alimentare ce consta dintr-o baterie de 9V și un stabilizator de tensiune ce oferă cei 5V necesari alimentării microcrontrolerului.
Modulul central
Acest modul preia datele trimise de catre cele doua module cu senzori, le prelucreaza si le trimite mai departe pe un calculator unde vor fi adaugate intr-o baza de date si afisate pe Internet folosind un server Apache
Sursa de alimentare si modul de conectare al microcontrolerului cu modulul radio Xbee sunt asemanatoare cu cele prezentate la modulele cu senzori. Modulul central realizeaza conexiunea cu calculatorul printr-un modul ethernet W5100 de la Wiznet. Acesta se alimenteaza cu 5V si se conecteaza prin interfata SPI la microcontroler. Acest lucru presupune conectarea pinilior MOSI, MISO, SCK si SS de la modulul ethernet cu pinii cu acelasi nume de la microcontroler.
Conexiunea cu calculatorul se realizeaza printr-un cablu ethernet cu mufe RJ45.
Conectarea la internet si la baza de date
Pe calculatorul ce se conecteaza cu modulul central se foloseste programul WAMP ce realizeaza functiile de baza de date si server Apache, necesare afisarii datelor pe Internet.
Descrierea modulelor radio folosite
Alegerea modulelor wireless
Există două tipuri de bază de module radio XBee:
XBee Seria 1:
Aceste module radio folosesc un microcip făcut de Freescale pentru a oferi o comunicație simpla, bazata pe standarde punct-la-punct precum și posibilitatea implementarii retelelor de tip plasă.
XBee Seria 2:
Seria 2 folosește un microcip de la Ember Networks care permite mai multe modalitati de a crea retele bazate pe standardul de retea plasa de la ZigBee. Retelele de tip plasa reprezinta baza in crearea unor rețele de senzori robuste, sisteme ce pot genera o cantitate extrem de mare de seturi de date sau ce pot suporta interacțiuni complexe.
Seria 1 de module XBee este destul de populara in randul celor ce realizeaza proiecte individuale , în timp ce modulele seria 2 suporta protocolul complet ZigBee. Seria 1 este utila in cazul sistemelor simple, inlocuind cu usurinta cablurile in timp ce Seria 2 este gandita sa functioneze cu retele de senzori mai mari si este esențială pentru interacțiunile cu sistemele bazate pe standarde ZigBee, care sunt acum din ce in ce mai mult utilizate pe scara largă în diverse medii academice și comerciale.
Seria 2 are o raza de actiune putin mai mare și utilizează mai puțina putere decât Seria 1. Ambele ocupa același spațiu fizic și pot fi ușor schimbate intre ele, de multe ori facandu-se doar mici modificări in software-ul de bază.
Cu toate acestea, modulele din serii diferita nu pot exista in aceeasi retea. Modulele din seria 2 nu pot comunica sau interopera cu modulele din seria 1. Fiecare rețea trebuie să folosească module doar de o singura versiune.
Conectarea modulelor la microprocesor
Explicatie pini….schema cu level shifter
Protocolul de comunicatie intre module
ZigBee este protocolul de comunicatie standard pentru retelele fara fir de tip plasa si care au consum redus pe putere. Xbee este este un modul radio ce suporta o varietate de protocoale de comunicatie printre care si ZigBee, 802.15.4 si WiFi.
Nivelul de retea ce sta la baza tuturor caracteristicilor avansate ale protocolului ZigBee este IEEE 802.15.4. Acesta este un set de standarde care definesc gestionarea energiei, adresarea, corectia erorilor, formatarea mesajelor precum și alte specificatii necesare pentru buna comunicatie punct-la-punct. Radio Modulele Xbee pot fi achiziționate cu sau fără ZigBee. De exemplu, seria 1de Xbee suporta protocolul 802.15.4 în forma sa nativă. ZigBee este un set de nivele construite pe baza lui 802.15.4. Aceste nivele presupun trei lucruri importante:
Dirijarea traficului (Rutarea)
Tabelele de rutare definesc modul in care un modul radio poate sa trimita pachetele de date printr-o serie de alte module radio pana la destinatie.
Crearea de retele ad hoc
Este un process automat ce creaza o intreaga retea de module radio, fara interventia omului.
Retea de tip plasa regenerabila
Este tot un process automat ce detecteaza absenta unui modul radio din retea si reconfigureaza reteaua pentru a nu exista rute stricate.
Nivelele fizic si MAC au fost descrise succinct in partea de mai sus, ele facand parte din protocolul 802.15.4. De asemenea si nivelul de retea a fost prezentat, descriind modul in care se realizeaza rutarea informatiei dintr-un loc in altul folosindu-se topologia de retea de tip plasa.
APL definește mesaje standard pentru sarcini specifice in care protocolul ZigBee este utilizat. Prin crearea de mesaje standard, dispozitivele ZigBee create de către producători diferiti pot comunica intre ele și colabora perfect în aplicații predefinite, cum ar fi automatizari de case.
Nivelul de obiecte dispozitiv ZigBee este un profil de aplicatie ce are legatura directa cu dispozitivele radio. Acesta faciliteaza descoperirea dispozitivelor si a serviciilor dar si managementul retelei.
Securitatea retelelor
ZigBee folosește chei matematice pentru a cripta datele ce trec prin rețeaua wireless.
Există două tipuri de modele de securitate bazate pe chei, care pot fi utilizate în același timp, dacă se dorește:chei de rețea și cheile de legătură.
Cheile de rețea protejeaza pachetele de date, pe masura ce acestea trec dintr-un nod in altul. Fiecare pachet de date este criptat, trimis la următorul hop în rețea, iar înainte de a fi trimis catre urmatorul nod din retea este decriptat si apoi recriptat. Cheile de retea asigura securitatea de la hop la hop și protejează in totalitate transmisia pachetelor dintr-o rețea privata, în care toate modulele wireless sunt sub controlul unei singure entitati. Dezavantajul este ca prin criptarea și decriptarea pachetul la fiecare hop din retea se dăuga unele întârzieri de transmisie sau latenta. În plus, sunt necesari 18 octeti in plus la fiecare pachet pentru a securiza transferul, dimensiunea pachetului de date reducandu-se de la 72 la 54 de octeti. Acest lucru înseamnă ca sunt necesare mai multe pachete pentru a trimite aceeași cantitate de informație.
Cheile de legatura oferă un nivel suplimentar de protecție pentru conexiunile punct-la-punct. Datele sunt criptate de catre expeditor și rămân securizate pe masura ce strabat nodurile rețelei. Fiecare pachet este decriptat numai atunci când ajunge la destinație. Aceste chei de legatura se folosesc in cazul in care nu se doreste ca datele sa fie accesibile in nodurile retelei ci doar la destinatie, lucru util in cazul retelelor partajate unde nodurile intermediare nu pot fi verificate. Si in acest caz, folosind cheile de legatura, crește ușor latența iar dimensiunea pachetului este si ea micsorata.
Setarea securitatii pe XBee
1. Setare ATEE (Activare Criptare) la 1 pentru toate dispozitivele din rețea.
2. Setare ATNK (Cheie de rețea) la 0 doar pe coordonator. 0 este valoarea implicita și selectează o cheie aleatoare.Cheia de rețea va fi distribuit la toate nodurile din retea în mod automat. Cheile sunt pe 128 de biti iar registrul NK este doar de scriere.
3. Setare ATKY (Cheie de legatura) pe oricare din cele 16 valori hexazecimale (de la 0x0000000000000001 la 0xFFFFFFFFFFFFFFFF). Trebuie folosița aceeași cheie pentru toate dispozitivele din rețea. Aceasta cheie trebuie introdusa manual pe fiecare dispozitiv si trebuie sa corespunda cu cea de pe coordonator. Cheile de legatura sunt pe 128 de biti, iar registrul KY permite doar scrierea.
Topologia retelei
Retelele ZigBee se pot conecta împreună în diferite moduri sau topologii pentru a obtine rețeaua cu structura dorita. Aceste topologii indica modul în care modulele radio sunt conectate logic între ele iar dispunerea lor fizica, desigur, poate fi diferita. Există trei topologii ZigBee majore, ilustrate ca in figura:
Topologia pereche
Cea mai simpla retea este cea formata din doua module radio sau doua noduri. Unul dintre ele trebuie sa fie setat ca si coordonator astfel incat reteaua sa poata functiona. Celalalt poate fi router sau dispozitiv final.
Topologia stea
Acesta dispunere a rețelei este, de asemenea, destul de simpla. Un modul radio setat ca si coordonator se afla intare ATEE (Activare Criptare) la 1 pentru toate dispozitivele din rețea.
2. Setare ATNK (Cheie de rețea) la 0 doar pe coordonator. 0 este valoarea implicita și selectează o cheie aleatoare.Cheia de rețea va fi distribuit la toate nodurile din retea în mod automat. Cheile sunt pe 128 de biti iar registrul NK este doar de scriere.
3. Setare ATKY (Cheie de legatura) pe oricare din cele 16 valori hexazecimale (de la 0x0000000000000001 la 0xFFFFFFFFFFFFFFFF). Trebuie folosița aceeași cheie pentru toate dispozitivele din rețea. Aceasta cheie trebuie introdusa manual pe fiecare dispozitiv si trebuie sa corespunda cu cea de pe coordonator. Cheile de legatura sunt pe 128 de biti, iar registrul KY permite doar scrierea.
Topologia retelei
Retelele ZigBee se pot conecta împreună în diferite moduri sau topologii pentru a obtine rețeaua cu structura dorita. Aceste topologii indica modul în care modulele radio sunt conectate logic între ele iar dispunerea lor fizica, desigur, poate fi diferita. Există trei topologii ZigBee majore, ilustrate ca in figura:
Topologia pereche
Cea mai simpla retea este cea formata din doua module radio sau doua noduri. Unul dintre ele trebuie sa fie setat ca si coordonator astfel incat reteaua sa poata functiona. Celalalt poate fi router sau dispozitiv final.
Topologia stea
Acesta dispunere a rețelei este, de asemenea, destul de simpla. Un modul radio setat ca si coordonator se afla in centrul topologiei și se conectează la un cerc de dispozitive finale. Fiecare mesaj din sistem trebuie să treacă prin coordonator, care mai apoi este redirectionat prin retea catre dispozitivele dorite. Dispozitivele finale nu comunica intre ele în mod direct.
Topologia plasa
Configuratia de plasa implica folosirea nodurilor de tip router pe langa cele de tip coordonator. Aceste module radio pot transmite mesaje de-a lungul retelei la alte routere și dispozitive finale după necesitate. Coordonatorul (de fapt doar o formă specială de router) are rolul de a gestiona rețeaua si evident de a redirectiona mesaje prin retea. Dispozitivele finale po fi atașate la orice router sau coordonatorului direct. Acestea pot genera și primi informati, dar vor avea nevoie de ajutorul coordonatorului sau routereleor pentru a comunica cu celelalte noduri
.
Topologia arbore
Aceasta topologie are coordonatorul ca dispozitiv principal de la care se ramifica routerele ce pot conecta alte routere sau dispozitive finale. Nu este foarte diferita de o configurație de tip plasă.
Tipuri de noduri
Orice retea trebuie sa contina cel putin doua noduri: unul trebuie sa fie setat ca si coordinator iar celalalt dispozitiv trebuie sa fie setat ca router sau ca dispozitiv final. Trebuie retinut faptul ca intr-o retea nu pot exista doua dispozitive configurate ca si coordonator.
Coordonator
Rețele ZigBee au întotdeauna un singur dispozitiv coordonator. Acest modul radio este responsabil pentru formarea rețelei, impartirea adreselor și gestionarea altor funcții care definesc rețeaua, securizarea și pastrarea legaturilor.
Router
Un ruter este un nod ZigBee cu caracteristici complete. Se poate alătura unei rețele existente, poate trimite informații, poate primi informații și poate ruta informațiile. Rutarea inseamna a acționa ca un mesager pentru comunicațiile dintre alte dispozitive care sunt prea departe pentru a transmite informații pe cont propriu. Routere sunt de obicei conectate la o priză electrică, deoarece acestea trebuie să fie pornite tot timpul. O rețea poate avea mai multe dispozitive setate ca routere.
Dispozitiv final
Există multe situații în care un router este mult prea sofisticat pentru ceea ce un anumit nod trebuie să facă. Dispozitivele fianle sunt, în esență, niste routere cu functiuni mai putine. Ele se pot alătura rețelei si pot doar trimite și primi informații. Ele nu acționează ca mesageri între dispozitive, astfel ele sunt mai putin sofisticate din punct de vedere al modului de constructie si sunt mai puțin costisitoare. Aceste dispozitive se pot opri din functiune singure intermitent,pentru economisirea energiei prin trecerea intr-un asa numit mod de somn (sleep). Dispozitivele finale au nevoie întotdeauna de un router sau coordonator pe post de dispozitiv părinte care sa le permita comunicatia cu celelalte dispozitive din retea. Părintele mai are rolul si de a ajuta dispozitivele finale sa se alăture rețelei și stochează mesajele pentru ele atunci când acestea dorm. Rețele ZigBee poate avea orice număr de dispozitive finale. Asadar, o rețea poate fi compusa dintr-un coordonator si mai multe dispozitive finale, fara a fi nevoie neaparata de un router.
Topologia retelei create
Topologia creata este cea mai simpla varianta de topologie stea. Cele doua routere apartin modulelor cu senzori a caror functie este de a trimite informatiile catre coordonator. Acesta din urma citeste datele primite si le da mai departe microprocesorului prin porturile RX si TX pentru a fi procesate si afisate.
Adresare modulelor din retea
Daca se doreste transmiterea unui mesaj in reteaua ZigBee trebuie sa se cunoasca adresa modulului destinatie. Fiecare modul are o adresa unica si permanenta formata din 64 de biti si o adresa alocata dinamic de catre coordonator atunci cand creaza reteaua, formata din 16 biti. Aceasta adresa este unica doar in interiorul retelei in care se afla respectivul dispozitiv. Mai exista si o alta metoda de adresare a modulelor intr-o retea care consta atribuirea unui text, numit si identificator de noduri.
Adresa PAN
Fiecare retea ZigBee este recunoscuta printr-o adresa PAN pe 16 biti. Acest lucru permite crearea de 65536 de adrese de retele diferite, care pot cuprinde pana la 65536 de module radio.
Poza din XCTU cu PAN ID
Canalul de comunicatie
Chiar daca adresarea a fost facuta corect, mesajele nu pot trece prin retea daca modulele nu functioneaza pe aceeasi frecventa. Cand coordonatorul alege o adresa PAN, acesta verifica si canalele disponibile in acel moment, cel mai probabil in numar de 12 si alege unul. Pentru realizarea comunicatiei, toate modulele trebuie sa foloseasca acel canal, lucru facut automat de Xbee.
Pentru ca un mesaj sa treaca de la un nod la altul, cele doua trebuie sa foloseasca acelasi canal radio, sa aiba aceeasi adresa PAN, iar emitatorul trebuie sa cunoasca cel putin una din adresele receptorului.
Controlul fluxului in comunicatia seriala
În unele situații, conexiunile simple, TX și RX, nu sunt suficiente pentru a asigura livrarea intacta a datelor. În aceste cazuri, controlul fluxului serial poate ajuta la cresterea sigurantei că nimic nu se pierde în transmisie.Datele sunt stocate in buffere în interiorul modulului XBee pe durata procesului de emisie si receptie. Tampoanele de memorie sunt locații de memorie temporare in care datele sunt acumulate și pastrate până este posibila transmiterea lor la antena radio sau la portul serial. Ele sunt limitate ca mărime și prin urmare, uneori, trebuie să fie gestionate în mod activ pentru a preveni pierderea de date importante.
Bufferul de transmisie seriala mentine datele ce urmeaza a fi transmise prin antena in interiorul modulului Xbee. Informația se acumulează acolo până la formarea unui pachet complet si este gata pentru a fi trimisa sau a trecut suficient timp ca XBee sa decide că nu mai urmeaza alte informatii. Datele vor aștepta, de asemenea, în bufferul de transmisie, în timp ce XBee primește informații, pentru că acesta nu poate emite si receptiona in același timp.
Bufferul de receptie seriala contine informații care se așteaptă să fie trimis de la portul serial (pinul TX) la calculator sau microcontroler. Calculatoarele, de obicei, pot primi toate informațiile de la XBee insa în unele cazuri microcontrolerele nu vor putea mereu procesa datele de intrare din cauza dimensiunii limitate a bufferului sau pentru ca executa alte instructiuni.
Descrierea senzorilor folositi
Senzorul digital de temperatura DS18B20
Senzorul DS18B20 este un senzor de temperatura digital cu o precizie de masurare de 9 pana la 12 biti in grade Celsius si poate comunica pe magistrala 1-Wire cu microprocesorul, ceea ce presupune conectarea senzorilor doar printr-un singur fir de date. Acest tip de senzor are proprietatea ca se poate alimenta direct de pe linia de date (modul parazit), eliminand necesitatea unei surse de tensiune.
Fiecare senzor DS18B20 are o adresa unica pe 64 de biti ceea ce permite utilizarea mai multor senzori pe aceeasi magistrala si controlul acestora cu doar un singur microcontroler. Beneficiile aduse de acest mod de functionare face posibila utilizarea senzorilor in multe domenii precum: sisteme de ventilare si climatizare, monitorizarea temperaturii in cladiri, monitorizarea echipamentelor si masinariilor.
Caracteristici
Modul unic 1-Wire de interfatare cu microcontrolerul necesita doar un port de comunicatie;
Fiecare dispozitiv are o adresa unica pe 64 de biti memorata in memoria ROM a senzorului;
Nu necesita utilizarea altor componente electrice;
Alimentare: 3,0V – 5,5 V; se poate alimenta si direct de pe firul de date;
Masurarea temperaturilor in intervalul: -55°C pana la +125°C;
Precizie de masurare de ±0,5°C in intervalul -10°C pana la +85°C;
Rezolutie de masurare selectabile intre 9 si 12 biti;
Converteste temperatura folosind rezolutia de 12 biti in maxim 750ms;
Functie de alarma ce identifica senzorul a carui temperatura depaseste intervalul admis.
Descrierea pinilor
Vcc – alimentare optionala; acest pin trebuie pus la masa in cazul in care se doreste utilizarea modului de alimentare parazit;
Date – pin de conexiune cu microcontrolerul; poate alimenta senzorul in modul parazit;
Masa.
Masurarea temperaturii
Rezoluția senzorului de temperatură este de 9, 10, 11, sau 12 biți configurabila de utilizator, care corespunde creșteri cu 0,5°C, 0,25°C, 0,125°C și respectiv 0,0625° C. Rezoluția implicită la pornire este de 12 biti. DS18B20 într-o stare de repaus. Pentru a iniția o măsurare a temperaturii si conversia acesteia trebuie emisă o comanda Convert T [44h]. După conversie, datele sunt stocate în registrul de temperatură cu dimensiunea de 2 octeti iar senzorul revine la starea de repaus.
Temperatura la iesirea lui DS18B20 este calibrată în grade Celsius. Datele sunt stocate in registrul de temperatura ca un numar pe 16 biti, cu semn, in complementfata de doi. Biți (S) indică semnul: pentru numere pozitive S = 0 și pentru numere negative S = 1. În cazul în care DS18B20 este configurat cu rezoluție de 12 biti, toti biții din registrul de temperatură vor conține date valide; daca rezoluția este de 11 biti, bitul 0 este nedefinit; daca rezoluția este de 10 biți, biții 1 și 0 sunt nedefiniti; daca rezolutia este de 9 biti, biții 2, 1, și 0 sunt nedefiniti.
Magistrala 1-Wire
Toate tranzactiile desfasurate pe magistrala 1-Wire incep cu o secventa de initializare. Aceasta secventa consta dintr-un puls de resetare transmis de microcontroler si urmat de pulsuri de prezenta transmise de senzori. Aceste pulsuri de prezenta informeaza microcontrolerul ca senzorii se afla pe magistrala si ca sunt pregatiti sa trimita date.
Pasul urmator este ca microcontrolerul sa trimita comenzi ROM. Aceste comenzi sunt unice pentru fiecare dispozitiv de pe magistrala, in functie de adresa lor pe 64 de biti. Acest lucru permite controlul individual al senzorilor, aflarea tipului si numarului de dispozitive de pe magistrala. Exemple de comenzi ROM: SEARCH ROM, MATCH ROM, ALARM SEARCH…
Dupa ce microcontrolerul a folosit comenzile ROM pentru adresarea senzorilor cu care vrea sa comunice, acesta poate apela functiile de comanda pentru DS18B20. Aceste comenzi permit microcontrolerului sa scrie si sa citeasca din memoria senzorului, sa initieze conversii de temperatura si sa determine modul de alimentare. Exemple de functii de comanda: CONVERT T, READ/WRITE SCRATCHPAD, READ POWER SUPPLY.
Conectarea la microprocesor
Schema+detalii
Senzorul analogic de temperatura LM35
Senzorul de temperatura analogic din seria LM35 este un senzor de precizie, cu tensiunea de iesire liniar proportionala cu temperatura in grade Celsius. Acest lucru reprezinta un avantaj fata de senzorii ce sunt calibrati in grade Kelvin, neavand nevoie de procesare facuta de catre utilizator. Tot un avantaj il reprezinta si faptul ca acest senzor nu are nevoi de calibrare facuta di n exterior pentru a permite precizii de ±¼°C la temperatura camerei sau precizii de ±¾°C in intervalul -55°C si +150°C.
Caracteristici
Calibrat direct in ° Celsius;
Factor de scala liniara +10 mV/°C;
Precizie de 0.5°C la +25°C;
Functioneaza in intervalul de la −55°C la +150°C;
Potrivit pentru aplicatii distante;
Alimentare de la 4 la 30 V;
Autoincalzire slaba: 0,08°C;
Descrierea pinilor
Vcc – Alimentare (6-30V);
Vout – Tensiunea de iesire;
Masa.
Masurarea temperaturii
Avand in vedere ca factorul de scala liniara este de +10 mV/°C, la o temperatura de 20°C se va obtine Vout=20×0,01=200mV. Aceasta tensiune se obtine folosind convertorul analog-digital disponibil la pinii microprocesorului. Atmega 328 dispune de o rezolutie de 10 biti ceea ce presupune 1024 de nivele de esantionare si avand in vedere ca senzorul este alimentat cu 5V se poate folosi formula pentru determinarea temperaturii:
temperatura = (5.0 * analogRead(tempPin) * 100.0) / 1024;
Conectarea la microprocesor
Schema +detalii.
Alte variante
In aplicatii similare pot functiona impreuna sau separat o varietate de senzori cu diverse scopuri: detectia miscarii, determinarea umiditatii, a inclinatiei, a nivelului sonor, a presiunii atmosferice etc.
Conectarea statiei de baza la calculator
W5100
Descrierea microcontrolerului folosit
Caracteristici generale ATmega
Microcontrolerul ATmega 328P face parte din familia ATmega, una dintre familiile de microcontrolere pe 8 biți de la ATMEL. Această familie conține microcontrolere de uz general, cu putere de calcul mare la preț redus, având și alte beneficii, dintre care amintesc :
memoria de program tip Flash
până la 100 de pini intrare-ieșire
varietate mare de periferice .
Caracteristici ATmega 328P
Microcontroler performant pe 8 biți, cu un consum redus de energie
Arhitectură de tip RISC (reduced instruction set computing)
131 de instrucțiuni
32 de registre de uz general a câte 8 biți
Execută până la 20 MIPS la 20 MHz
Segmente de memorie performante
32 KB memorie programabilă tip Flash
1 KB memorie EEPROM
2 KB memorie SRAM
Număr ridicat de cicluri citire-scriere : 10000 pentru Flash, 100000 EEPROM
Retenția datelor : 20 ani la 85°C, 100 ani la 25°C
Protecția programului prin blocarea programării
Periferice
2x timer-numărător(T/C 0,2) pe 8 biți cu prescaler separat și mod de comparare
1x timer-numărător(T/C 1) pe 16 biți cu prescaler separat, mod de comparare și mod de captură
Numărător în timp real cu oscilator separat
Șase canale PWM
Convertoare analog-numerice pe 10 biți cu măsurarea temperaturii (ADC 0-7), (6 în capsulă DIP, 8 în capsulă TQFP)
Interfață serială USART
Interfață serială SPI
Interfață serială TWI compatibilă I2C
23 de pini programabili de intrare-ieșire
Interval de temperatură suportat : -40°C – 85°C
Interval al tensiunii de alimentare : 1,8 – 5,5 V
Schema bloc
In continuare, se va prezenta schema bloc a microcontrolerului și se vor analiza sumar cele mai importante blocuri funționale.
Unitatea centrala de procesare (CPU)
Pentru a maximima performanța și paralelismul, unitatea centrală de procesare folosește o arhitectură de tip Harvard, denumită în continuare AVR, cu memorie și magistrale de memorie separate pentru program și pentru date, permițănd accesarea simultană a memoriei de program, respectiv cea de date.
Instrucțiunile din memoria de program sunt executate pe un singur nivel. In timp ce o instrucțiune este executată, următoarea este pre-încărcată din memoria de program. Acest concept permite executarea de instrucțiuni in fiecare tact de ceas.
Organizarea memoriei
Arhitectura AVR contine două zone principale de memorie : memoria de date și memoria de program. Suplimentar, microcontrolerul în cauză conține și o memorie EEPROM pentru stocarea datelor.
Memoria de program de tip flash
In cazul microcontrolerului folosit, are dimensiunea de 32 KB și este o memorie de tip nonvolatil, păstrându-și conținutul la întreruperea alimentării. Din motive de securitate, este divizată în două spații : boot-loaderul și secțiunea aplicației de program.Are o anduranță de cel putin 10000 cicluri de citire-scriere.
Memoria de date
Aceasta memorie este implementată ca o memorie RAM statică, fiind foarte rapidă la operațiile de citire și de scriere. Aici se stochează variabilele programului în timpul rulării acestuia. Microcontrolerul ATMEL ATmega 328P deține 2 KB de memorie de date.
Memoria de tip EEPROM
Aceasta memorie folosește o tehnologie mai veche pentru implementarea unei memorii nonvolatile. In general, se folosește la stocarea unor setări sau a unor parametri între resetări ale microcontrolerului. In cazul de față, microcontrolerul folosit dispune de 1 KB de memorie EEPROM, aceasta având o anduranță de cel putin 100000 cicluri citire-scriere.
Surse de reset
ATMEL ATmega 328P are patru surse de resetare :
Resetare la pornire (POR) : microcontrolerul fiind resetat atunci când tensiunea de alimentare este sub un prag VPOT
Resetare externă : microcontrolerul se resetează la apariția unui nivel logic de zero pe pinul RESET
Resetare comandată de watchdog : microcontrolerul este resetat la expirarea perioadei timerului de veghe
Resetare la scăderea tensiunii de alimentare (BOR) : microcontrolerul fiind resetat atunci când tensiunea de alimentare scade sub un prag VBOT , detectorul de scădere a tensiunii de alimentare fiind activat
Porturile I/O
Microcontrolerul ATMEL ATmega 328P dispune de 4 porturi (A, B, C, D), dintre care pinii portului A sunt intrările in convertorul analog-numeric.
Fiecare din porturile B, C, D este controlat de 3 registre a câte 8 biți, fiecare controlând cate un pin de intrare-ieșire după cum urmează :
registrul de direcție DDRx : definește dacă un pin este intrare (1) sau ieșire (0)
registrul conținând valorea pinului PINx : citirea acestui registru returnează valoarea acestuia
registrul de setare a valorii pinului PORTx : scrierea acestui registru setează pinul la o anumită valoare
Convertorul analog-numeric
Microcontrolerul utilizat are în componența sa un convertor analog-numeric cu aproximații succesive, pe 10 biți. ADC-ul este conectat intern la un multiplexor analogic cu 8 canale, permițând existenta celor 8 intrări analogice ale portului A. In cazul utilizării microcontrolerului în capsulă DIP, există doar 6 astfel de intrări.
Convertorul analog numeric conține un circuit de oprire și eșantionare (sample and hold) care menține tensiunea de la intrarea convertorului la o valoare constantă pe durata conversiei.
Dintre specificațiile ADC-ului menționez :
rezoluție 10 biți
neliniaritate 0.5 LSB
acuratețe absolută ± 2 LSB
timp de conversie cuprins între 13 și 260 µs
până la 76.9 ksps (până la 15 ksps la rezoluție maximă)
domeniu al tensiunii de intrare : 0 – VCC
generarea unei întreruperi la terminarea conversiei
Intreruperi
Mecanismul de suspendare a firului de execuție la apariția unui anumit fenomen poartă numele de întrerupere. Acestea au fost introduse în scopul eliminării buclelor de program pe care procesorul trebuie sa le facă în asteptarea unui eveniment.
Asocierea întrerupere-rutină de program se face cu ajutorul tabelei vectorilor de întrerupere. Adresele întreruperilor sunt ordonate în funcție de prioritatea acestora.
După cum se observă, microcontrolerul folosit are 26 de surse de întrerupere, două dintre acestea fiind de origine externă (INT0 și INT1).
Timer – numerator
După cum le spune și numele, aceste module oferă facilitatea de a măsura intervale fixe de timp si de a genera întreruperi la expirarea intervalului măsurat, permițând eliminarea buclelor de așteptare din program. Registrul timer-numărător măsoară intervalele de timp și este incrementat automat cu o anumită frecvență, iar prescalerul divide frevența de ceas în funcție de nevoile aplicației.
Microcontrolerul folosit dispune de trei module de timer : două de 8 biți și unul de 16 biți ce pot funcționa în patru moduri :
modul normal : pornește de la 0 și numără până când își depășește valoarea maximă dată de numărul de biți, iar apoi începe din nou de la 0
modul de resetare a timerului la comparare (CTC) : pornește de la 0 și numără până când se atinge un prag, definit de registrul OCR
modul PWM rapid : pornește de la 0 și numără până la valoarea maximă dată de numărul de biți, pragul atingându-se pe parcursul numărătorii
modul PWM cu corecție de fază : numără crescător de la 0 până la valoarea maximă dată de numărul de biți, apoi descrescător până la 0, pragul putând fi atins în cazul incrementării dar și în cazul decrementării
Interfata SPI
Interfața serială pentru periferice (SPI) permite transfer de date sincron și de mare viteză între microcontroler și periferice sau între mai multe microcontrolere.
Dintre specificațiile SPI amintesc :
transfer de date sincron full-duplex pe trei fire
operează cu un singur dispozitiv master și unul sau mai multe dispozitive slave
transferul de date poate începe cu cel mai puțin semnificativ bit sau cu cel mai semnificativ bit
7 rate de bit programabile
generarea unei întreruperi la terminarea transmisiei
Caracteristici speciale si instructiuni
Microcontrolerul ATMEL ATmega 328P dispune de anumite caracteristici speciale pentru maximizarea performanțelor și minimizarea costurilor prin eliminarea componentelor adiționale, cum ar fi :
opțiunile de oscilator
modurile de reset
resetare la pornire
resetare externă
resetare comandată de watchdog
resetare la scăderea tensiunii de alimentare
întreruperi
protecția codului
programare serială încorporată în circuit
Microcontrolerul poate executa următoarele tipuri de instrucțiuni :
instrucțiuni de transfer
instrucțiuni aritmetice și logice
instrucțiuni de salt
intrucțiuni pentru operații pe bit
Mediul de dezvoltare integrat Arduino
Prezentul proiect folosește ca mediu integrat de dezvoltare pachetul software Arduino.
Mediul de dezvoltare integrat Arduino – cunoscut și sub numele de Arduino IDE (Arduino Integrated Development Environment) – este gratis, open source și disponibil pentru sistemele de operare Windows, Mac OS și Linux. Este o aplicație inter-platformă scrisă în limbajul Java. Conține un editor text pentru scrierea codului, o zonă pentru afișarea mesajelor, o consolă text, o bară cu butoane pentru funcțiile uzuale și o serie de alte meniuri. Acesta se conectează la hardwareul Arduino pentru a încărca programele și pentru a comunica cu ele.
Programele pentru Arduino sunt scrise în limbajele C sau C++. Utilizatorul trebuie să definească doar două funcții pentru a realiza un program ciclic rulabil:
setup () : funcție ce rulează o singură dată la începutul programului și poate fi folosită pentru a inițializa diferite setări;
loop () : funcție apelată în mod repetat până când platforma este oprită.
Mediul de dezvoltare Arduino utilizează GNU Toolchain și AVR Libc pentru compilarea programelor. Pentru încărcarea programelor pe placă utilizează avrdude.
Platforma Arduino folosește microcontrolere produse de compania Atmel. Din acest motiv pentru dezvolta programe pentru Arduino se pot folosi și mediile de dezvoltare specifice Atmel, cum ar fi AVR Studio sau Atmel Studio.
Scrierea schițelor
Programele scrise folosind mediul de dezvoltare integrat Arduino se numesc "schițe". Aceste schițe sunt scrise în editorul text. Schițele sunt salvate cu extensia .ino. Editorul text are facilități pentru tăiere/lipire, căutare/înlocuire de text. Zona pentru afișarea mesajelor oferă un feedback utilizatorului în timpul salvării și exportării fișierelor și, de asemenea, afișează mesaje de eroare. Consola afișează informațiile în format text generate de mediul Arduino, incluzând mesaje de eroare detaliate și alte informații. În colțul din dreapta jos al ferestrei sunt afișate placa de dezvoltare folosită în acel moment și portul serial la care este conectată acesta. Bara de butoane permite utilizatorului să verifice și să încarce programele, să creeze și să salveze schițele și să deschidă fereastra de monitorizare serială.
Se pot accesa comenzi adiționale prin intermediul celor cinci menuri de pe bara de menu:
Fișier
Editor
Schiță:
Verificare/Compilare
Adăugare fișier
Import librării
Instrumente
Auto formatare
Arhivare schiță
Placă
Port serial
Programator
Încarcă bootloader
Ajutor
Fereastra de monitorizare serial
Fereastra de monitorizare serială permite afișarea datelor trimise de placa de dezvoltare Arduino (prin conexiunea serială sau USB). Pentru a trimite date către placa Arduino se introduce textul dorit în fereastră și se apasă butonul „trimite” sau tasta Enter de pe tastatură. Rata de transmisie a datelor se alege în conformitate cu rata dată ca argument funcției Serial.begin în momentul apelării în cadrul schiței.
Selectarea plăcii de dezvoltare
Selectarea plăcii de dezvoltare are două efecte:
se setează parametrii (de exemplu viteza de tact a procesorului și rata de transmisie) folosiți în procesele de compilare și încărcare a schițelor;
se aleg setările pentru fișierul și fuse-ul utilizate pentru comanda de ardere a bootloaderului.
Prezentul proiect folosește ca selecție a plăcii de dezvoltare modelul Arduino Uno, însă schemele electrice și plăcuțele de circuit imprimat folosite sunt creație proprie, fiind realizate exact pe criteriile funcționale ale sistemului.
Interconectari + cod
Performante XBEE
Configurarea modulelor
Fiecare modul XBee are un microprocesor incorporat. Acest microcontroler intern ruleaza un program, cunoscut sub numele de firmware, care îndeplinește toate actiunile sale: adresare, comunicatia in sine si funcțiile de securitate. Se poate configura acest firmware cu setări diferite
care se pot referi la adresa locala, ce tip de securitate este utilizata, cine ar trebui sa trimita mesaje și modul în care aceasta ar trebui să citeasca senzorii conectați la pinii de intrare.
Programul folosit de mine este X-CTU deoarece functioneaza pe Windows, este usor de utilizat, este gratuit si totodata este si programul oficial recomandat pentru configurarea XBee-urilor.
POZE cu explicarea taburilor si despre X-CTU
Imbunatatiri
Probleme
Cum se redactează lucrarea de absolvire
Inserarea și numerotarea automată a capitolelor și subcapitolelor
Pentru inserarea capitolelor și subcapitolelor se poate folosi secțiunea de Stiluri din Tab-ul Pornire din Panglică(Ribbon). Șablonul este deja configurat pentru ca la aplicarea asupra unui text a stilurilor Titlu1, Titlu2, etc. acesta să devină parte dintr-o listă multi-nivel astfel:
Titlu 1 – corespunde capitolului principal, numerotat 1,2,3 etc.
Titlu 2-n – corespunde subcapitolelor (sub)capitolului superior ierarhic.
Inserarea legendelor figurilor și tabelelor
Pentru inserarea legendelor figurilor și tabelelor se face clic dreapta pe figură/tabel și se alege „Inserare legendă”. Va apărea o casetă de dialog(Figura 2.1) de unde se pot alege următoarele
Legendă
Etichetă
Poziție
Figura 2.1 Caseta de dialog pentru inserarea legendei (Legendă)
Se va alege, apăsând pe butonul „Numerotare”, formatul numărului figurii. La „Capitolul începe cu stilul” se va menționa Titlu 1/Heading 1, iar separatorul va fi „.” (Figura 2.2)
Figura 2.2 Alegerea formatului numerotării
Inserarea referințelor încrucișate
Pentru a se referi la o figură în text, este bine să se folosească referințe încrucișate. Acestea sunt ca niște „pointeri” către un obiect ce se află în altă locație în document. Se pot crea referințe încrucișate către titluri/headings, note de subsol, semne de carte, legende și paragrafe numerotate. În contextul lucrării de absolvire, cele mai importante sunt referințele încrucișate către tabele și figuri, și, în mai puțină măsură, către alte paragrafe .
Sunt importante pentru că, dacă autorul se decide să mute figura, paragraful, în altă parte din document, numărul corespunzător se va modifica la rândul său. Prin urmare, referința va putea fi actualizată ușor, apăsând F9 (e suficient să se selecteze tot documentul și să se apase o singură dată, se vor actualiza toate)
Pentru a insera referințe încrucișate, se apasă pe „Referință încrucișată” în secțiunea „Legende” din tab-ul „Referințe” din panglică. Se alege:
Tipul referinței: Figura/Tabelul/Element numerotat
Inserare referință la: obligatoriu „doar etichetă și număr”
Figura 2.3 Inserare referință încrucișată
Exemplu de referințe încrucișate către figură (Figura 2.4) și tabel (Tabelul 2.1), dar și către un paragraf (vezi Error: Reference source not found).
Figura 2.4 Evoluția ghidului de absolvire
Tabelul 2.1 Exemplu de tabel
Inserarea cuprinsului
Se pune cursorul acolo unde se dorește a fi plasat cuprinsul. Se merge în secțiunea „Cuprins” din tab-ul „Referințe” din panglică și se apasă „Cuprins” alegându-se tipul care se dorește.
Inserarea listei de figuri și tabele
Se pune cursorul acolo unde se dorește a fi plasată lista de figuri/tabele. Se merge în secțiunea „Legende” din tab-ul „Referințe” din panglică și se apasă „Inserare tabel de figuri”. În caseta de dialog, se alege eticheta legendei corespunzătoare (de ex: Figura, Tabelul)
Greșeli frecvente în lucrarea de absolvire
Concluzii (Heading 6)
În această parte a lucrării se regăsesc:
cele mai importante concluzii din lucrare,
opinia personală privind rezultatele obținute în lucrare,
potențiale direcții viitoare de cercetare legate de tema abordată.
Concluziile proiectului nu se numerotează ca și capitol
Bibliografie (Heading 6)
Cum arată o lucrare redactată (Heading 7)
Cum se face lucrarea (Heading 7)
Bibliografie (Heading 6)
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Reteaua Radio de Senzori cu Comanda Distanta (ID: 123595)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
