User Tools

Site Tools


lab6

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lab6 [2014/11/11 16:41]
dan.tudose
lab6 [2018/11/08 22:13] (current)
dan.tudose
Line 1: Line 1:
 ====== Sleep, Low Power și Sincronizare ====== ====== Sleep, Low Power și Sincronizare ======
  
-Codul pentru bilbioteca ZigduinoSleep poate fi descăcat de {{::zigduinosleep.zip|aici}}.+Codul din laboratoarele anterioare transmitea periodic pachete de date în rețea dar, în intervalele de timp dintre două transmisiuni succesive, cicla inutil. Acest lucru duce la un consum de energie ridicat, ce poate avea un impact semnificativ asupra timpului de viață al nodului senzorial în cazul în care acesta este alimentat de la o baterie
  
-<code C> +Din acest motiveste preferabil ca nodurile să intre într-o stare de low-power în momentele de inactivitate. Pentru aceastaveți folosi o biblioteca SparrowSleep.
-/* +
-  Blink +
-  Turns on an LED on for one secondthen off for one secondrepeatedly. +
-  +
-  This example code is in the public domain. +
- */ +
-  +
-// Pin 13 has an LED connected on most Arduino boards. +
-// give it a name:+
  
-#include <avr/sleep.h> +Codul pentru biblioteca SparrowSleep poate fi descărcat de [[https://github.com/TheodorUngureanu/SparrowV/tree/master/SleepLibrary|aici]].
-#include <avr/interrupt.h> +
-#include <ZigduinoSleep.h>+
  
-int led = 11; +Pentru a testa modul de sleep, putem folosi exemplul de mai jos:
-int state = 0;+
  
-void setup() {                 +<code C>
-   +
-  pinMode(led, OUTPUT); +
  
 +/* This is an example for SparrowVSleep library.
 +    You need to call SparrowV_SleepInit function.
 +    The funciton has 2 params.
 +    1st param: integer (> 1 second, greater than 1 second) (represent time in seconds, how long the board will sleep)
 +    2nd param: bool (true - with data retention, false - with no data retention)
 +               In case of no data retention the board can sleep max 8 secons and it will
 +    reboot after time end.
 +*/
 +
 +#include <SparrowVsleep.h>
 +
 +void setup() {
   Serial.begin(9600);   Serial.begin(9600);
-  Serial.println("Sleep test"); 
-   
-  ZigduinoSleepInit(); 
 } }
  
 void loop() { void loop() {
-   ZigduinoSleepSet(1); +  // put your main code here, to run repeatedly: 
-   +  Serial. println("****************************")
-   //Code that is executed before sleep +  Serial.println("Start")
-   state ^= 1+  Serial.flush(); 
-   if(state == 0digitalWrite(led, HIGH);    + 
-     else digitalWrite(ledLOW); +  //sleep for 25 seconds with data retention 
-    +  SparrowV_SleepInit(25true); 
-   Serial.begin(9600); + 
-   Serial.println("Test"); +  Serial.println("Stop"); 
-   Serial.flush(); +  Serial. println("****************************"); 
-   Serial.end(); +  Serial. println(); 
-    +  Serial.flush(); 
-   //End of code +  delay(5000);
-    +
-   ZigduinoSleep(); +
-   +
 } }
 </code> </code>
 +
 +<note>**Task 0:** Rulați exemplul de mai sus.</note>
 +<note>**Task 1:** Adăugați codului de mai sus bibliotecile pentru radio și senzori folosite în laboratoarele anterioare. Nodul trebuie să trimită periodic pachete cu datele de la senzori, apoi să intre în starea de sleep.</note>
 +<note>**Task 2:** Creați un protocol simplu de sincronizare a timpilor de sleep pentru toate nodurile din laborator.</note>
lab6.1415716868.txt.gz · Last modified: 2014/11/11 16:41 by dan.tudose