This shows you the differences between two versions of the page.
pm:prj2023:danield:smart-lights [2023/05/29 12:37] 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'' se initializeaza modulul nRF cu parametrii precum canalul si pipe-ul pe care se desfasoara comunicatia. | * In functia ''setup'' se initializeaza modulul nRF cu parametrii precum canalul si pipe-ul pe care se desfasoara comunicatia. | ||
<code> | <code> | ||
Line 75: | Line 76: | ||
</code> | </code> | ||
- | Modulul 2: | + | **Modulul 2**: |
* In functia ''setup'' este setat modulul nRF similar cu setarea acestuia pentru modulul 1. | * In functia ''setup'' este setat modulul nRF similar cu setarea acestuia pentru modulul 1. | ||
* In functia ''loop'' se verifica primirea datelor prin bluetooth sau prin RF. | * In functia ''loop'' se verifica primirea datelor prin bluetooth sau prin RF. | ||
Line 87: | Line 88: | ||
} | } | ||
</code> | </code> | ||
- | * Culoarea led-ului RGB este setata folosind functia analogWrite in functia setColor. | + | * Culoarea led-ului RGB este setata folosind functia ''analogWrite'' in functia ''setColor''. |
<code> | <code> | ||
void setColor(int R, int G, int B) { | void setColor(int R, int G, int B) { | ||
Line 96: | Line 97: | ||
</code> | </code> | ||
- | <note tip> | + | **Modulul 3**: |
- | Descrierea codului aplicaţiei (firmware): | + | * Pentru LCD este folosita biblioteca ''LiquidCrystal_I2C.h''. Pentru DHT11 se foloseste biblioteca ''dht11.h''. |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * In functia ''setup'' este initializat lcd-ul si este efectuata o prima masuratoare si afisare. |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * 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. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | <code> |
- | * (etapa 3) surse şi funcţii implementate | + | int chk = DHT11.read(DHT11PIN); |
- | </note> | + | 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-uri, resurse 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 (DHT11, LCD): | ||
+ | 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> | ||