Differences

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

Link to this comparison view

pm:prj2023:danield:smart-lights [2023/05/26 03:55]
mihai.stoica2205 [Software Design]
pm:prj2023:danield:smart-lights [2023/05/29 13:34] (current)
mihai.stoica2205 [Software Design]
Line 61: Line 61:
 </​code>​ </​code>​
   * Modulele ce comunica prin RF (1 si 2), au implementata o structura numita ''​Package''​ cu doua campuri: ''​state''​ - indica starea senzorului de miscare (1 atunci cand detecteaza miscarea, 0 atunci cand nu o detecteaza) si ''​id''​ - folosit pentru a identifica pachetele trimise.   * Modulele ce comunica prin RF (1 si 2), au implementata o structura numita ''​Package''​ cu doua campuri: ''​state''​ - indica starea senzorului de miscare (1 atunci cand detecteaza miscarea, 0 atunci cand nu o detecteaza) si ''​id''​ - folosit pentru a identifica pachetele trimise.
-  * O biblioteca Arduino(()), ''​LowPower.h'',​ este utilizata pentru a face ca modulul 1 si modulul 3 sa transmita date o data la 8 secunde, iar in rest sa intre in modul ''​powerDown'',​ cu scopul de a economisi putere.+  ​* Modulele bluetooth au fost setate cu rol de master/​slave folosind comenzi AT. 
 +  ​* O biblioteca Arduino, ''​LowPower.h'',​ este utilizata pentru a face ca modulul 1 si modulul 3 sa transmita date o data la 8 secunde, iar in rest sa intre in modul ''​powerDown'',​ cu scopul de a economisi putere.
  
-Modulul 1: +**Modulul 1**
-  * In functia ''​setup''​+  * In functia ''​setup'' ​se initializeaza modulul nRF cu parametrii precum canalul si pipe-ul pe care se desfasoara comunicatia. 
 +<​code>​ 
 +     ​myRadio.begin(); ​  
 +     ​myRadio.setChannel(115);​  
 +     ​myRadio.openWritingPipe(pipe);​ 
 +</​code>​ 
 +  * In functia ''​loop''​ se citesc datele de pe pin-ul senzorului de miscare, se introduc in structura creata si se trimit catre celalalt modul. Se trimite doar atunci cand apare o schimbare in starea pinului, iar dupa ce s-a detectat miscare, placuta Arduino intra in modul low power pentru 8 secunde. 
 +<​code>​ 
 +     ​LowPower.powerDown(SLEEP_8S,​ ADC_OFF, BOD_OFF); 
 +</​code>​
  
-<note tip+**Modulul 2**: 
-Descrierea codului aplicaţiei ​(firmware): +  * In functia ''​setup''​ este setat modulul nRF similar cu setarea acestuia pentru modulul 1. 
-  * mediu de dezvoltare ​(if any) (e.gAVR Studio, CodeVisionAVR+  * In functia ''​loop''​ se verifica primirea datelor prin bluetooth sau prin RF. 
-  * librării şi surse 3rd-party (e.gProcyon AVRlib) +<code
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +     if (myRadio.available()) { 
-  * (etapa 3surse şi funcţii implementate +         myRadio.read(&data, sizeof(data)); 
-</note>+     } 
 +   
 +     if(Serial.available() > 0) { 
 +         value = Serial.read()
 +     } 
 +</​code>​ 
 +  * Culoarea led-ului RGB este setata folosind functia ''​analogWrite''​ in functia ''​setColor''​. 
 +<​code>​ 
 +    void setColor(int R, int G, int B) { 
 +        analogWrite(red,​ R); 
 +        analogWrite(green,​ G); 
 +        analogWrite(blue,​ B); 
 +    } 
 +</​code>​ 
 + 
 +**Modulul 3**: 
 +  * Pentru LCD este folosita biblioteca ''​LiquidCrystal_I2C.h''​. Pentru DHT11 se foloseste biblioteca ''​dht11.h''​
 +  * In functia ''​setup''​ este initializat lcd-ul si este efectuata o prima masuratoare si afisare. 
 +  * In functia loop se citeste temperatura masurata de catre DHT folosind functia ''​DHT11.read'',​ iar apoi este afisata pe LCD. Este trimisa valoarea masurata prin bluetooth, folosind interfata seriala, iar dupa trimiterea unei valori Arduino intra in modul low power pentru 8 secunde, folosind functia ''​powerDown''​ de mai sus. 
 +<​code>​ 
 +    int chk = DHT11.read(DHT11PIN)
 +    lcd.clear();​ 
 +    lcd.setCursor(0,​0);//​ set the cursor on the first row and column 
 +    lcd.print("​Humidity:​ "); 
 +    lcd.print(DHT11.humidity);​ // print the humidity 
 +    lcd.print("​%"​);​ 
 +    lcd.setCursor(0,​1);​ // set the cursor on the second row and first column 
 +    lcd.print("​Temperature:​ "); 
 +    lcd.print(DHT11.temperature);​ // print the temperature 
 +    lcd.print((char)223);​ // degree symbol 
 +</code>
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +https://​youtu.be/Mroa0k1NPPg
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</note>+
  
-===== Concluzii =====+===== Concluzii ​si sugestii imbunatatire ​=====
  
-===== Download =====+Sistemul distribuit permite amplasarea modulelor in diferite pozitii ale camerei, la distante ce depind de specificatiile hardware ale modulelor nRF si bluetooth.
  
-<note warning>​ +Consumul ​de putere a fost minimizat prin utilizarea bibliotecii Arduino mentionate in descrierea implementarii.
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script ​de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă ​fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Functionalitatea proiectului poate fi imbunatatita prin adaugarea unui senzor ​de intesitate luminoasa si reglarea luminii led-ului in functie de acesta.
-</​note>​+
  
-===== Jurnal ​=====+Pentru a obtine luminozitate mai buna, pot fi adaugate mai multe led-uri sau alte tipuri de led. 
 +===== Download ​===== 
 + 
 +{{:​pm:​prj2023:​danield:​smart-lights.zip|}}
  
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
-</​note>​ 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +  * Modul 1 (Motion sensor): 
-Listă cu documente, datasheet-uriresurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +https://​www.circuitmagic.com/​arduino/​pir-motion-sensor-with-arduino/​ \\ 
-</note>+https://​www.electronicwings.com/​sensors-modules/​pir-sensor \\ 
 +https://​www.circuitmagic.com/​arduino/​pir-motion-sensor-with-arduino/​ 
 + 
 +  * Modul 3 (DHT11LCD): 
 +https://​projecthub.arduino.cc/​arcaegecengiz/​12f621d5-055f-41fe-965d-a596fcc594f6 \\ 
 +https://​www.instructables.com/​Arduino-Temp-and-Humidity-DHT11-LCD-1602A-KY-015-S/​ \\ 
 +https://​github.com/​johnrickman/​LiquidCrystal_I2C 
 + 
 +  ​nRF: 
 +https://​www.electronics-lab.com/​project/​communication-between-two-arduinos-using-nrf24l01/​ 
 +https://​github.com/​nRF24/​RF24 
 + 
 +  ​Bluetooth:​ 
 +https://​www.hackster.io/​embeddedlab786/​how-to-configure-and-pair-two-hc-05-bluetooth-modules-fa8ce2 \\ 
 +https://​howtomechatronics.com/​tutorials/​arduino/​how-to-configure-pair-two-hc-05-bluetooth-module-master-slave-commands/​ \\ 
 +https://​www.youtube.com/​watch?​v=I2qFXSe0W3w&​ab_channel=AcedInventor 
 + 
 +  ​Led: 
 +https://​www.circuitstoday.com/​interface-common-anode-and-common-cathode-rgb-leds-with-arduino 
 + 
 +  ​Low Power: 
 +https://​learn.sparkfun.com/​tutorials/​reducing-arduino-power-consumption \\ 
 +https://​www.gammon.com.au/​forum/?id=11497
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/danield/smart-lights.1685062507.txt.gz · Last modified: 2023/05/26 03:55 by mihai.stoica2205
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0