This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
proiecte:programarea-sparrow-din-arduino [2014/02/01 00:58] alexandru.marin |
proiecte:programarea-sparrow-din-arduino [2015/09/28 17:48] (current) alex.marin |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Programarea nodului senzorial Sparrow v3 folosind Arduino IDE ====== | ====== Programarea nodului senzorial Sparrow v3 folosind Arduino IDE ====== | ||
- | Marin Alexandru Gabriel - Master AAC1 | + | Marin Alexandru-Gabriel - Master AAC1 |
===== Introducere ===== | ===== Introducere ===== | ||
Line 18: | Line 19: | ||
==== Sparrow v3 ==== | ==== Sparrow v3 ==== | ||
- | Sparrow v3 este nodul senzorial folosit în cadrul laboratorului de Wireless Sensor Networks şi este echipat cu trei tipuri de senzori: temperatură, | + | Sparrow v3 este nodul senzorial folosit în cadrul laboratorului de //Wireless Sensor Networks// şi este echipat cu trei tipuri de senzori: temperatură, |
==== Zigduino ==== | ==== Zigduino ==== | ||
Line 29: | Line 30: | ||
Pentru a introduce suportul de Zigduino în Arduino IDE este nevoie să se urmeze paşii de mai jos: | Pentru a introduce suportul de Zigduino în Arduino IDE este nevoie să se urmeze paşii de mai jos: | ||
- | 1. Se instalează Arduino IDE: http:// | + | 1. Se instalează Arduino IDE: http:// |
2. Se descarcă arhiva Zigduino-1.0: | 2. Se descarcă arhiva Zigduino-1.0: | ||
Line 42: | Line 43: | ||
După aceşti paşi ar trebui să fie vizibile doua intrări pentru Zigduino în // | După aceşti paşi ar trebui să fie vizibile doua intrări pentru Zigduino în // | ||
+ | |||
Notă: Daca IDE-ul era pornit, va fi nevoie de un restart. | Notă: Daca IDE-ul era pornit, va fi nevoie de un restart. | ||
Line 103: | Line 105: | ||
3. Se schimbă extensia fişierului .c în .cpp; | 3. Se schimbă extensia fişierului .c în .cpp; | ||
- | După aceşti paşi se va putea importa header-ul sht21.h în proiectul Arduino: #include " | + | După aceşti paşi se va putea importa header-ul sht21.h în proiectul Arduino: |
Notă: Dacă IDE-ul era pornit, va fi nevoie de un restart. | Notă: Dacă IDE-ul era pornit, va fi nevoie de un restart. | ||
===== Proiect low power de monitorizare senzorială ===== | ===== Proiect low power de monitorizare senzorială ===== | ||
- | Folosind mediul de dezvoltare Arduino IDE modificat conform paşilor prezentaţi anterior s-a creat un proiect de monitorizare senzorială bazat pe comunicare radio între mai multe noduri Sparrow v3, pornind de la scheletul de cod oferit în laboratorul doi. | + | Folosind mediul de dezvoltare Arduino IDE modificat conform paşilor prezentaţi anterior s-a creat un proiect de monitorizare senzorială bazat pe comunicare radio între mai multe noduri Sparrow v3, pornind de la scheletul de cod oferit în laboratorul doi, secţiunea //Stări de low power pentru Sparrow v3//. |
- | Topologia reţelei folosite este formată dintr-un nod-gateway, | + | Topologia reţelei folosite este formată dintr-un nod-gateway, |
Gateway-ul este singurul nod care primeşte pachete (nu există comunicare între noduri non-gateway, | Gateway-ul este singurul nod care primeşte pachete (nu există comunicare între noduri non-gateway, | ||
{{ : | {{ : | ||
- | Gatewayul aşteaptă să primească un pachet integral de la unul din celelalte noduri. Acest eveniment este detectat o dată cu declanşarea excepţiei de TRX24_RX_END, | + | Gatewayul aşteaptă să primească un pachet integral de la unul din celelalte noduri. Acest eveniment este detectat o dată cu declanşarea excepţiei de TRX24_RX_END, |
+ | |||
+ | Aşa cum s-a menţionat anterior, înainte de a citi date de la senzori pentru a le trimite către gateway, celelalte noduri rămân într-o stare de sleep pentru o perioadă prestabilită. Această stare, caracterizată de un consum redus de energie, presupune dezactivarea tuturor senzorilor, urmată de trecerea microcontroller-ului în sleep. | ||
+ | |||
+ | Mecanismul utilizat pentru ieşirea din acestă stare este reprezentat de activarea MAC symbol counter-ului şi a întreruperii SCNT_CMP1_vect, | ||
+ | |||
+ | Proiectul este ataşat în secţiunea Resurse. | ||
+ | |||
+ | ===== Monitorizarea datelor cu Processing ===== | ||
+ | |||
+ | Pentru a monitoriza datele trimise de noduri a fost creată o interfaţă grafică în Processing, cu o coloană de butoane şi o zonă de grafice, aşa cum se poate obseva în video-ul de mai jos. Datele pentru grafice sunt citite de pe interfaţa serială, unde sunt trimise de nodul-gateway. | ||
+ | |||
+ | {{http:// | ||
+ | |||
+ | Monitorizarea începe după apăsarea butonului // | ||
+ | Cu ajutorul celorlalte butoane se poate alege unul dintre cele trei noduri precum şi modul graficelor. Se pot afişa grafice pentru valorile citite de la senzorii de temperatură, | ||
+ | |||
+ | Notă: Programul alege automat prima interfaţă COM alocată aşa că este nevoie să se asigure faptul că nodul este conectat astfel. | ||
+ | |||
+ | ===== Resurse ===== | ||
- | Aşa cum am menţionat anterior, înainte de a citi date de la senzori pentru a le trimite către gateway, nodurile non-gateway rămân într-o stare de sleep pentru o perioadă prestabilită. Această stare, caracterizată de un consum redus de energie, presupune dezactivarea tuturor senzorilor, urmată de trecerea microcontroller-ului însuşi în sleep. | + | {{: |
- | Mecanismul utilizat pentru ieşirea din acestă stare este reprezentat de activarea MAC symbol counter-ului şi a întreruperii SCNT_CMP1_vect, | + | {{: |
- | ===== Sketch Processing pentru plot-area datelor | + | ===== Bibliografie |
+ | * [1] http:// | ||
+ | * [2] http:// | ||
+ | * [3] http:// | ||