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:// | ||