Autorul poate fi contactat la adresa: Login pentru adresa
ID zona ID nod Nivel Lumina Nivel IR (lux) Nivel Radiatii UV (UV Index Scale) Nivel Umiditate (% Umiditate Relativa) Temperatura (C);
1 transmitter 1 receiver
Nodul Transmitter trimite informatii odata la 1 secunda, pachete de tipul celor descrise mai sus, iar Nodul Receiver primeste la 0.5 secunde. Fiecare nod foloseste un microcontroller Atmel 128RFA1 ce contine un Transciever Radio in banda de frecventa 2.4GHz, transmitand datele pe canalul 11.
Nodul Receiver implementeaza CRC folosind paritatatea bitilor din bufferul de primire. Implementarea se afla in biblioteca sparrowradio.zip. De aceea in codul receiver-ului trebuie verificat intotdeauna daca operatia de receive s-a executat cu succes. (return code == SUCCESS)
Partea dificila a reprezentat-o implementarea modului de SLEEP pentru microcontrollere pentru a reduce consumul. Am reusit sa reduc consumul de la 22mA la 19mA, insa am intampinat probleme atunci cand doream trimiterea transcieverului radio in sleep. Folosind registrul PRR0, cand trezeam Trascieverul din Sleep acesta efectua un Reset la Microcontroller.
Sleep Transciever:
Agregarea datelor in Cloud, prin trimiterea seriala de catre un Nod Gateway catre Raspberry Pi, care foloseste un API DeviceHub pentru trimiterea datelor.
ATENTIE !
Am intampinat o problema in momentul in care configuram registrele OCR2A si TCR2A deoarece in modul asincron schimbarile nu se reflecta imediat. Aceste registre au niste registre temporare din care sunt transferati octetii la urmatorul front crescator al ceasului asincron. Schimbarile se pot valida facand polling pe registrul ASSR (Asynchronous Status Register)