Differences

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

Link to this comparison view

pm:prj2024:ccontasel:sarah_maria.craciun [2024/05/27 05:03]
sarah_maria.craciun [Software Design]
pm:prj2024:ccontasel:sarah_maria.craciun [2024/05/27 05:44] (current)
sarah_maria.craciun [Rezultate Obţinute]
Line 5: Line 5:
 În această documentație,​ voi prezenta proiectul meu - Baby Alarm, un dispozitiv creat pentru a oferi un nivel de siguranță și confort părinților care au copii cu vârta cuprinsă între 0-12 luni. Proiectul este conceput să ofere o soluție simplă și eficientă pentru supravegherea bebelușilor. În această documentație,​ voi prezenta proiectul meu - Baby Alarm, un dispozitiv creat pentru a oferi un nivel de siguranță și confort părinților care au copii cu vârta cuprinsă între 0-12 luni. Proiectul este conceput să ofere o soluție simplă și eficientă pentru supravegherea bebelușilor.
  
-<note tip> 
 Prezentarea pe scurt a proiectului:​ Prezentarea pe scurt a proiectului:​
  
Line 19: Line 18:
   * de ce cred că este util   * de ce cred că este util
 Baby Alarm-ul este util pentru părinți, deoarece le oferă liniștea de a ști că își pot monitoriza copilul chiar și atunci când nu sunt în aceeași încăpere. Acesta poate reduce anxietatea și stresul legat de supravegherea constantă a bebelușilor,​ permițându-le părinților să se relaxeze mai mult în timpul nopții sau în timpul altor activități. Pentru mine, acest proiect reprezintă o oportunitate de a aplica cunoștințele pe care le-am dobândit și de a crea un produs care să aducă beneficii reale. Baby Alarm-ul este util pentru părinți, deoarece le oferă liniștea de a ști că își pot monitoriza copilul chiar și atunci când nu sunt în aceeași încăpere. Acesta poate reduce anxietatea și stresul legat de supravegherea constantă a bebelușilor,​ permițându-le părinților să se relaxeze mai mult în timpul nopții sau în timpul altor activități. Pentru mine, acest proiect reprezintă o oportunitate de a aplica cunoștințele pe care le-am dobândit și de a crea un produs care să aducă beneficii reale.
-</​note>​ 
  
 ===== Descriere generală ===== ===== Descriere generală =====
Line 38: Line 36:
   * 1x buzzer   * 1x buzzer
   * 2x breadboard   * 2x breadboard
 +  * 2x rezistori 220 ohmi
   * fire de legătură   * fire de legătură
  
Line 63: Line 62:
  
 **Cod:** **Cod:**
 +https://​github.com/​SarahCraciun/​PM_Baby_Alarm.git
  
 **Implementare:​** **Implementare:​**
Line 70: Line 70:
 1. înainte de setup() 1. înainte de setup()
  
-Import biblioteci: #include <​BluetoothSerial.h>​ pentru a permite comunicarea Bluetooth.+  * Import biblioteci: #include <​BluetoothSerial.h>​ pentru a permite comunicarea Bluetooth.
  
-Declarații obiect și variabile:​ +  * Declarații obiect și variabile: 
-  ​BluetoothSerial SerialBTș pentru a crea un obiect Bluetooth serial. + 
-  ​const int micPin = 35; definește pinul unde este conectat microfonul. +  ​BluetoothSerial SerialBTș pentru a crea un obiect Bluetooth serial. 
-  ​const int threshold = 100; definește pragul de detecție a sunetului. + 
-  ​int read_mic_value() este o funcție pentru citirea și media valorilor de la microfon.+  ​const int micPin = 35; definește pinul unde este conectat microfonul. 
 + 
 +  ​const int threshold = 100; definește pragul de detecție a sunetului. 
 + 
 +  ​int read_mic_value() este o funcție pentru citirea și media valorilor de la microfon.
  
 2. setup() 2. setup()
  
-Inițializarea serialului: Serial.begin(115200);​ pentru debug prin USB.+  * Inițializarea serialului: Serial.begin(115200);​ pentru debug prin USB. 
  
-Inițializarea Bluetooth: SerialBT.begin("​ESP32_MIC"​);​ pentru a seta numele dispozitivului Bluetooth.+  * Inițializarea Bluetooth: SerialBT.begin("​ESP32_MIC"​);​ pentru a seta numele dispozitivului Bluetooth.
  
-Configurarea pinului microfonului:​ pinMode(micPin,​ INPUT);.+  * Configurarea pinului microfonului:​ pinMode(micPin,​ INPUT);.
  
-Așteptare client Bluetooth: Un ciclu while pentru a aștepta conectarea unui client Bluetooth, cu mesaje de status.+  * Așteptare client Bluetooth: Un ciclu while pentru a aștepta conectarea unui client Bluetooth, cu mesaje de status.
  
 3. loop() 3. loop()
  
-Verificare conexiune Bluetooth: if (SerialBT.hasClient()) pentru a verifica dacă există un client conectat.+  * Verificare conexiune Bluetooth: if (SerialBT.hasClient()) pentru a verifica dacă există un client conectat.
  
-Citirea valorilor microfonului:​ Citirea valorilor de la microfon folosind read_mic_value().+  * Citirea valorilor microfonului:​ Citirea valorilor de la microfon folosind read_mic_value().
  
-Trimiterea mesajului: Dacă valoarea depășește pragul, trimite mesajul "​X"​ către client.+  * Trimiterea mesajului: Dacă valoarea depășește pragul, trimite mesajul "​X"​ către client.
  
-Așteptare reconectare:​ Dacă clientul se deconectează,​ așteaptă reconectarea acestuia.+  * Așteptare reconectare:​ Dacă clientul se deconectează,​ așteaptă reconectarea acestuia.
  
 //Plăcuța 2// //Plăcuța 2//
Line 102: Line 106:
 1. înainte de setup() 1. înainte de setup()
  
-Import biblioteci: #include <​BluetoothSerial.h>​ pentru a permite comunicarea Bluetooth.+  * Import biblioteci: #include <​BluetoothSerial.h>​ pentru a permite comunicarea Bluetooth.
  
-Declarații obiect și variabile:​ +  * Declarații obiect și variabile: 
-  ​BluetoothSerial SerialBT; pentru a crea un obiect Bluetooth serial. + 
-  ​const int redLedPin = 2; definește pinul pentru LED-ul roșu. +  ​BluetoothSerial SerialBT; pentru a crea un obiect Bluetooth serial. 
-  ​const int blueLedPin = 4; definește pinul pentru LED-ul albastru. + 
-  ​const int buzzerPin = 18; definește pinul pentru buzzer. +  ​const int redLedPin = 2; definește pinul pentru LED-ul roșu. 
-  ​uint8_t serverMAC[6] = {0xa0, 0xa3, 0xb3, 0x96, 0x5c, 0xee}; adresa MAC a serverului Bluetooth.+  
 +  ​const int blueLedPin = 4; definește pinul pentru LED-ul albastru. 
 + 
 +  ​const int buzzerPin = 18; definește pinul pentru buzzer. 
 + 
 +  ​uint8_t serverMAC[6] = {0xa0, 0xa3, 0xb3, 0x96, 0x5c, 0xee}; adresa MAC a serverului Bluetooth.
  
 2. setup() 2. setup()
  
-Inițializarea serialului: Serial.begin(115200);​ pentru debug prin USB.+  * Inițializarea serialului: Serial.begin(115200);​ pentru debug prin USB.
  
-Inițializarea Bluetooth: SerialBT.begin("​ESP32_ALERT",​ true); pentru a seta numele dispozitivului Bluetooth în modul master.+  * Inițializarea Bluetooth: SerialBT.begin("​ESP32_ALERT",​ true); pentru a seta numele dispozitivului Bluetooth în modul master.
  
-Configurarea pinurilor: Configurarea pinurilor LED-urilor și buzzer-ului ca ieșiri.+  * Configurarea pinurilor: Configurarea pinurilor LED-urilor și buzzer-ului ca ieșiri.
  
-Resetare ieșiri: Oprește toate ieșirile la început.+  * Resetare ieșiri: Oprește toate ieșirile la început.
  
-Conectare Bluetooth: Un ciclu while pentru a încerca conectarea la serverul Bluetooth specificat prin adresa MAC, cu mesaje de status.+  * Conectare Bluetooth: Un ciclu while pentru a încerca conectarea la serverul Bluetooth specificat prin adresa MAC, cu mesaje de status.
  
 3. loop() 3. loop()
  
-Verificare conexiune Bluetooth: if (SerialBT.connected()) pentru a verifica dacă este conectat la server.+  * Verificare conexiune Bluetooth: if (SerialBT.connected()) pentru a verifica dacă este conectat la server.
  
-Recepționare date: Dacă există date disponibile,​ le citește și verifică dacă a primit mesajul "​X"​.+  * Recepționare date: Dacă există date disponibile,​ le citește și verifică dacă a primit mesajul "​X"​.
  
-Control LED-uri și buzzer: Dacă mesajul "​X"​ este primit, controlează LED-urile și buzzer-ul pentru a simula o alarmă.+  * Control LED-uri și buzzer: Dacă mesajul "​X"​ este primit, controlează LED-urile și buzzer-ul pentru a simula o alarmă
 + 
 +  * Reconectare:​ Dacă conexiunea se pierde, încearcă reconectarea automată la server. 
 + 
 +**Concepte:​** 
 + 
 +1. GPIO (General Purpose Input/​Output) 
 +Configurare pini: pinMode(pin,​ mode) este folosit pentru a seta pinul în mod INPUT sau OUTPUT. 
 +  * În plăcuța 1, pinul microfonului este configurat ca INPUT: pinMode(micPin,​ INPUT). 
 +  * În plăcuța 2, pinii LED-urilor și buzzer-ului sunt configurați ca OUTPUT: pinMode(redLedPin,​ OUTPUT), pinMode(blueLedPin,​ OUTPUT), pinMode(buzzerPin,​ OUTPUT). 
 +Scriere digitală: digitalWrite(pin,​ value) este folosit pentru a seta starea unui pin digital la HIGH sau LOW. 
 +Controlul LED-urilor și buzzer-ului:​ digitalWrite(redLedPin,​ HIGH), digitalWrite(blueLedPin,​ LOW), digitalWrite(buzzerPin,​ HIGH). 
 + 
 +2. ADC (Analog-to-Digital Converter) 
 +Citire analogică: analogRead(pin) este folosit pentru a citi valoarea de tensiune de pe un pin analogic. 
 +  * În plăcuța 1, valoarea microfonului este citită de pe pinul micPin (GPIO 35): analogRead(micPin). 
 + 
 +3. Bluetooth Serial Communication 
 +Biblioteca BluetoothSerial:​ Utilizată pentru comunicarea serială Bluetooth între cele două plăcuțe ESP32. 
 +Inițializarea Bluetooth: SerialBT.begin("​DeviceName"​). 
 +Verificarea conexiunii: SerialBT.hasClient() pentru a verifica dacă un client este conectat (plăcuța 1). 
 +Conectarea la un server: SerialBT.connect(serverMAC) pentru a stabili conexiunea (plăcuța 2). 
 +Trimiterea datelor: SerialBT.print("​X"​) pentru a trimite un mesaj (plăcuța 1). 
 +Citirea datelor: SerialBT.read() pentru a citi mesajele primite (plăcuța 2). 
 + 
 +4. PWM (Pulse Width Modulation) 
 +Generarea semnalelor audio: tone(pin, frequency) și noTone(pin) sunt folosite pentru a genera semnale PWM pe pinul buzzer pentru a produce sunete la frecvențe diferite. 
 +  * În plăcuța 2, buzzer-ul este activat folosind: tone(buzzerPin,​ frequency) și oprit cu: noTone(buzzerPin).
  
-- Reconectare:​ Dacă conexiunea se pierde, încearcă reconectarea automată la server. 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +{{:​pm:​prj2024:​ccontasel:​baby_alarm_microfon_neimpachetat.jpg?​300|}}
 +{{:​pm:​prj2024:​ccontasel:​baby_alarm_microfon_impachetat.jpg?​300|}}
 +{{:​pm:​prj2024:​ccontasel:​baby_alarm_alarm_neimpachetat.jpg?​300|}}
 +{{:​pm:​prj2024:​ccontasel:​baby_alarm_alarm_impachetat.jpg?​300|}}
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Realizarea acestui proiect a fost o experiență educativă și satisfăcătoare. 
 +  
 +Am apreciat eficiența comunicării Bluetooth și versatilitatea plăcuțelor ESP32.
  
 +Am întâmpinat provocări, cum ar fi decuparea cartoanelor :). 
 +
 +Proiectul are potențial de scalabilitate și aplicații viitoare interesante în diverse domenii.
 +===== Download =====
 +https://​github.com/​SarahCraciun/​PM_Baby_Alarm.git
 ===== Ținte ===== ===== Ținte =====
-<note tip> 
   * obținerea unui timp cât mai scurt de la momentul în care bebelușul începe să plângă până la alertarea părinților prin alerte vizuale și sonore   * obținerea unui timp cât mai scurt de la momentul în care bebelușul începe să plângă până la alertarea părinților prin alerte vizuale și sonore
   * împachetarea proiectului într-o formă cât mai estetică, gata de a fi vândută   * împachetarea proiectului într-o formă cât mai estetică, gata de a fi vândută
-</​note>​ 
  
 ===== Jurnal ===== ===== Jurnal =====
Line 147: Line 191:
   * 04.05.2024 - creare pagină ocw și completarea parțială a documentației   * 04.05.2024 - creare pagină ocw și completarea parțială a documentației
   * 06.05.2024 - continuarea completării documentației   * 06.05.2024 - continuarea completării documentației
-  * 17.05.2024 - scmea electrica+  * 17.05.2024 - schema electrică 
 +  * 22.05.2024 - finalizare hard 
 +  * 23.05.2024 - finaliza soft 
 +  * 25.05.2024 - finalizare pagină ocw
  
  
Line 155: Line 202:
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +
 +  * https://​www.espressif.com/​sites/​default/​files/​documentation/​esp32_technical_reference_manual_en.pdf
 +  * https://​www.espressif.com/​sites/​default/​files/​documentation/​esp32_technical_reference_manual_en.pdf
  
pm/prj2024/ccontasel/sarah_maria.craciun.1716775435.txt.gz · Last modified: 2024/05/27 05:03 by sarah_maria.craciun
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