This shows you the differences between two versions of the page.
pm:prj2021:cghenea:smart_light_with_bluethooth [2021/04/29 17:52] alina_ionela.avram |
pm:prj2021:cghenea:smart_light_with_bluethooth [2021/06/02 18:59] (current) alina_ionela.avram |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====Smart light with bluethooth==== | + | ====== Smart light with bluethooth ====== |
Nume: Avram Alina Ionela \\ | Nume: Avram Alina Ionela \\ | ||
Line 5: | Line 5: | ||
Grupa: 334CA | Grupa: 334CA | ||
- | === Introducere === | + | ====== Introducere ====== |
- | Proiectul pe care l-am ales va reprezenta o lampa inteligenta. Aceasta se va aprinde automat atunci cand in camera in care se afla este intuneric si exista miscare. Totodata aceasta va putea fi controlata si prin functia de bluethooth, pentru cazul in care vrem sa aprindem lampa manual pentru un plus de lumina. | + | Proiectul pe care l-am ales va reprezenta o lampa inteligenta. Aceasta se va aprinde automat atunci cand in camera in care se afla este intuneric si exista miscare. Totodata lampa va putea fi controlata si prin functia de bluethooth, pentru cazul in care vrem sa aprindem lampa manual pentru un plus de lumina. |
- | === Descriere generală === | + | ====== Descriere generală ====== |
- | + | Pentru a realiza acest proiect ma voi folosi de un senzor de lumina si unul de miscare. Lampa va fi setata sa se aprinda doar atunci cand ambii senzori vor fi activati, altfel ledul va ramane stins. Totodata, voi putea aprinde acest led manual, cu ajutorul modulului bluetooth atunci cand imi doresc ca lampa sa se aprinda fara a tine cont de senzori. | |
- | Pentru a realiza acest proiect ma voi folosi se un senzor de lumina si unul de miscare. Lampa va fi setata sa se aprinda doar atunci cand ambii senzori vor fi activati. Cu ajutorul unui modul bluethooth ma voi putea conecta cu telefonul la acest dispozitiv, pentru a vedea diferite detalii pe care lampa le inregistreaza. | + | |
- | ===Hardware Design=== | + | ====== Hardware Design ====== |
Componente necesare: \\ | Componente necesare: \\ | ||
Led \\ | Led \\ | ||
Line 19: | Line 18: | ||
Arduino \\ | Arduino \\ | ||
Modul pir \\ | Modul pir \\ | ||
- | Convertor nivel logic I2C \\ | ||
Modul bluethooth \\ | Modul bluethooth \\ | ||
Modul senzor lumina \\ | Modul senzor lumina \\ | ||
- | {{:pm:prj2021:cghenea:capture.jpg?600|}} | + | {{:pm:prj2021:cghenea:tempsnip.png?700|}} |
+ | |||
+ | ====== Software Design ====== | ||
+ | Am folosit ARDUINO IDE. Pentru inceput am setat pinii necesari: ledul - 13, senzor pir - 2, senzor lumina - 8. Am facut setup-ul necesar si in blucla de loop am implementat logica proictului. | ||
+ | Vom citi datele transmise de senzori si in functie de acestea vom aprinde ledul. Daca atat valoarea citita de sezorul de lumina, cat si cea a senzorului PIR sunt egale cu 1, atunci setam ledul pe HIGH, altfel ledul se va stinge setandu-l pe LOW. Pentru buna functionare o bluetooth-ului citesc de la tastatura un caracter de tip char. Daca se citeste "a" (aprinde) atunci vom aprinde ledul si va ramane aprins pana cand il vom stinge prin comanda "s" (stinge). | ||
+ | {{:pm:prj2021:cghenea:capture222.jpg?200|}} {{:pm:prj2021:cghenea:capture2.jpg?200|}} | ||
+ | |||
+ | <spoiler CODUL SURSA> | ||
+ | <code> | ||
+ | |||
+ | #include <SoftwareSerial.h> | ||
+ | |||
+ | SoftwareSerial Bluetooth(0,1); | ||
+ | int led = 13; // ledul este setat la 13 | ||
+ | int sensor = 2; // senzorul PIR este setat la 2 | ||
+ | int light_sensor = 8; // senzorul de lumina setat la 8 | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(led, OUTPUT); | ||
+ | pinMode(sensor, INPUT); | ||
+ | pinMode(light_sensor,INPUT); | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | |||
+ | char light; | ||
+ | |||
+ | // functie aprindere pentr un timp in functie de timer | ||
+ | unsigned long duration = 0; | ||
+ | byte i = 0; | ||
+ | void myfun() { | ||
+ | digitalWrite(led, HIGH); | ||
+ | Serial.println("led aprins pentru "); | ||
+ | Serial.println(duration); | ||
+ | delay(duration); | ||
+ | digitalWrite(led, LOW); | ||
+ | } | ||
+ | |||
+ | |||
+ | void loop() { | ||
+ | // se citeste sensorul pir | ||
+ | int sensorval = digitalRead(sensor); | ||
+ | int temp=digitalRead(light_sensor); | ||
+ | |||
+ | Serial.println(sensorval); // printeaza val senzor pentru pir 1 = miscare 0=altfel | ||
+ | Serial.println(temp); // printeaza val senzor lumina 1 = intuneric 0 = lumina | ||
+ | |||
+ | // citim date de la bluetooth Lista: | ||
+ | // a-aprinde | ||
+ | // s-stinge | ||
+ | // t = folosim timer | ||
+ | char data= Serial.read(); | ||
+ | Serial.println(data); | ||
+ | |||
+ | if(data == 'a') { | ||
+ | light = 'a'; | ||
+ | } else if(data == 's') { | ||
+ | light = 's'; | ||
+ | } | ||
+ | // daca senzorul a fost setat aprins din blutooth atunci ledul ramane aprins | ||
+ | // sau daca este intuneric si miscare | ||
+ | // altfel | ||
+ | // daca am setat senzorul sa fie stins sau in camera este lumina sau nu este miscare | ||
+ | if ((sensorval == HIGH && temp == HIGH) || light == 'a' ) { | ||
+ | digitalWrite(led, HIGH); | ||
+ | Serial.println("led aprins"); | ||
+ | } else if (sensorval != HIGH || temp != HIGH || light == 's'){ | ||
+ | digitalWrite(led, LOW); | ||
+ | Serial.println("led stins"); | ||
+ | } | ||
+ | |||
+ | char dataArray[10]; | ||
+ | // pentru TIMER | ||
+ | Serial.println("la timer"); | ||
+ | while(Serial.available() > 0) { | ||
+ | dataArray[i] = Serial.read(); | ||
+ | Serial.println(dataArray[i]); | ||
+ | if(dataArray[i] == '#'){ | ||
+ | Serial.println(i); | ||
+ | duration = 0; | ||
+ | duration = atol(dataArray); // se converteste vectorul de char in long | ||
+ | Serial.println(duration); | ||
+ | i = 0; | ||
+ | myfun(); | ||
+ | break; | ||
+ | } | ||
+ | i++; | ||
+ | } | ||
+ | delay(1000); | ||
+ | } | ||
+ | </code> | ||
+ | </spoiler> | ||
+ | |||
+ | ====== Rezultate Obţinute ====== | ||
+ | Am obtinut rezultatul dorit. Aici este un exemplu: | ||
+ | |||
+ | |||
+ | {{:pm:prj2021:cghenea:r1.jpeg?400|}} | ||
+ | {{:pm:prj2021:cghenea:r2.jpeg?400|}} | ||
- | ===Software Design=== | + | ====== Concluzii ====== |
+ | Pentru o exemplificare mai ampla voi atasa mai jos urmatorul link catre demo: | ||
- | ===Rezultate Obţinute=== | + | [[https://www.youtube.com/watch?v=iWokTGAoYlM&ab_channel=MariaCiont%C3%AEc]] |
- | ===Concluzii=== | ||
- | ===Download== | + | ====== Bibliografie ====== |
+ | [[https://create.arduino.cc/projecthub/mayooghgirish/arduino-bluetooth-basic-tutorial-d8b737]] | ||
+ | [[https://play.google.com/store/apps/details?id=com.appsvalley.bluetooth.arduinocontroller&hl=ro&gl=US]] | ||
- | ===Jurnal=== | + | ====== Jurnal ====== |
{{:pm:prj2021:cghenea:smart_light_with_bluethooth2.pdf|}} | {{:pm:prj2021:cghenea:smart_light_with_bluethooth2.pdf|}} | ||
+ | {{:pm:prj2021:cghenea:final.pdf|}} | ||