DASDUINO CONNECT SLEEP MODE

CRODUINO NOVA SLEEP MODE-Uncategorized

Početnik si s Dasduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM! Kako Koristiti Module (KKM) je serija blog tutorijala tvrtke soldered na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Dasduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu.

UVOD

Kada radimo neki projekt rijetko razmišljamo o potrošnji svih modula, ali kada taj projekt trebamo prebaciti na baterijsko napajanje onda vidimo da nam je potrošnja samih modula vrlo bitna. Kada projekt napajamo s baterijama onda nam je bitan svaki mA koji modul može potrošiti, te uvijek tražimo način kako smanjiti potrošnju. Ako imamo manju potrošnju to znači da će sustav(projekt) raditi duže s jednim punjenjem što nam je jako bitno. Kako bi omogućili dugotrajan rad sustavu s Dasduino Connect u ovom tutorijalu pokazat ćemo kako Connect možemo „uspavati“ kada ne treba ništa raditi ( npr. mjeri temperaturu svakih sat vremena) i kako ga probuditi. Da bi znali „uspavati“ i „probuditi“ Connect moramo prvo znati koje sve modove rada imamo, pa najprije krenimo s upoznavanjem modova rada.

MODOVI RADA

Dasduino Connect ima 4 vrste moda rada koji se razlikuju prema tome koji dijelovi pločice rade, te naravno prema potrošnji, pa krenimo s upoznavanjem koji su to modovi rada.

Prvi mod rada u kojemu rade svi dijelovi je Normalni rad i u njemu Dasduino Connect ne spava, nego normalno radi sve zadatke, te je uvijek spreman, naravno onda i najviše troši.

Drugi mod rada je MODEM-SLEEP te je on zadani mod rada i on je dostupan jedino kada se Dasduino Connect povezuje na pristupnu točku. U njemu se jedino isključuje WiFi kada god je to moguće (između DTIM Beacon intervala koji su postavljeni unutar rutera).

Treći mod rada je LIGHT-SLEEP mod u kojemu Dasduino Connect gasi WiFi i sistem clock koji kontrolira procesor, te procesor radi, ali ne obavlja nikakav zadatak( prazan hod). U ovom modu Dasduino troši puno manje nego u MODEM-SLEEP modu.

Zadnji mod u kojemu „uspavljujemo“ Dasduino Connect je DEEP SLEEP (duboki san) mod s kojim gasimo sve sustave, osim RTC(real time clock) te je u njemu potrošnja 17uA(3,3 V napajanje), odnosno 50uA( 5V s regulatorom i pull-up otpornicima) što je jako malo te je vrlo prihvatljivo za projekte koji se napajanju s baterijom.
Za smanjenje potrošnje do uA potrebno je skinuti CH340 USB driver, kao i punjač za bateriju s pločice, svakako prije skidanja CH340 čipa potrebno je prebaciti kod na pločicu jer kasnije to neće biti moguće.
Prikaz potrošnje za Normalan rad i DEEP sleep prikazan je u tablici(5V napajanje).

DEEP SLEEP

Kao što smo napisali ovo je jedini mod u kojemu Dasduino Connect „spava“ odnosno u kojemu se isključuju svi njegovi sustavi osim RTC(real time clock) te je ovaj mod najštedljiviji i koristi se kada trebamo značajno smanjiti potrošnju, a nije nam potreban konstantan rad mikrokontrolera.
Ovaj mod rada se koristi kada imamo senzore koji nešto mjere u određenim vremenskim intervalima, te podatke šalju na Internet (ili server). Prvo izmjerimo neke vrijednosti te ih pošaljemo te ugasimo mikrokontroler na određeno vrijeme (vrijeme je u mikrosekundama) najduže na 70 minuta, te ponovimo proces (ponovno uključimo mikrokontroler, izmjerimo , pošaljemo te ga ugasimo).
Kako bi se mikrokontroler mogao probuditi potrebno je pin 16 spojiti na reset pin. Pin 16 ima jednu posebnu funkciju za buđenje mikrokontrolera. kada prođe zadano vrijeme pin 16 se postavlja na LOW te resetira mikrokontroler te on krene izvršavanje programa isto kao kada ga resetiramo s reset tipkom.

ARDUINO KOD

Pogledajmo sada jednostavan kod u kojemu ćemo svake minute očitati temperaturu te ju poslati na Serial monitor. U kodu za gašenje mikrokontrolera koristimo ESP.deepSleep() funkciju kojoj predajemo vrijeme u mikrosekundama( 1s= 1000000 us = 1e6).

//uključujemo biblioteku za DHT senzor
#include<DHT.h>
//definiramo na kojemu pinu je spojen DHT senzor te koju vrstu senzora koristimo(DHT11 ili DHT22)
#define DHTPIN 4
#define DHTTYPE DHT11
//kreiramo konstruktor za DHT biblioteku
DHT senzor_temp(DHTPIN,DHTTYPE);
void setup() {
 //započinjemo serijsku komunikaciju(115200 bauda)
Serial.begin(115200);
//započinjemo komunikaciju sa senzorom
senzor_temp.begin();
//ispisujemo poruku da je Croduino budan i temperaturu na Serial monitor
Serial.println();
Serial.println("Croduino je upaljen i ocitava temperaturu");
Serial.print(senzor_temp.readTemperature());
Serial.println(" °C");
//DEEP SLEEP
Serial.println("Gasimo Croduino na jednu minutu");
ESP.deepSleep(60e6); // gasimo Croduino na 60 sekundi
}
void loop() {
}