This shows you the differences between two versions of the page.
pm:prj2024:ccontasel:sarah_maria.craciun [2024/05/26 14:43] sarah_maria.craciun [Hardware 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ă | ||
**Schemă Electrică** | **Schemă Electrică** | ||
- | **Modulul 1:** | + | //__Modulul 1:__// |
{{:pm:prj2024:ccontasel:s_e_1_smc.png?600|}} | {{:pm:prj2024:ccontasel:s_e_1_smc.png?600|}} | ||
- | **Modulul 2:** | + | * Microfon (Analog): Conectat la pinul 35 (GPIO 35) |
+ | |||
+ | //__Modulul 2:__// | ||
{{:pm:prj2024:ccontasel:s_e_2_smc.png?600|}} | {{:pm:prj2024:ccontasel:s_e_2_smc.png?600|}} | ||
+ | |||
+ | * LED Roșu: Conectat la pinul 2 (GPIO 2) | ||
+ | * LED Albastru: Conectat la pinul 4 (GPIO 4) | ||
+ | * Buzzer: Conectat la pinul 18 (GPIO 18) | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | |||
+ | **Mediu de dezvoltare:** | ||
+ | * https://app.diagrams.net/ - realizarea schemei bloc | ||
+ | * Arduino IDE 2.3.2 - dezvoltarea codului și încărcarea lui pe ESP32 | ||
+ | |||
+ | **Cod:** | ||
+ | https://github.com/SarahCraciun/PM_Baby_Alarm.git | ||
+ | |||
+ | **Implementare:** | ||
+ | |||
+ | //Plăcuța 1// | ||
+ | |||
+ | 1. înainte de setup() | ||
+ | |||
+ | * Import biblioteci: #include <BluetoothSerial.h> pentru a permite comunicarea Bluetooth. | ||
+ | |||
+ | * 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. | ||
+ | |||
+ | * 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() | ||
+ | |||
+ | * Inițializarea serialului: Serial.begin(115200); pentru debug prin USB. | ||
+ | |||
+ | * Inițializarea Bluetooth: SerialBT.begin("ESP32_MIC"); pentru a seta numele dispozitivului Bluetooth. | ||
+ | |||
+ | * 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. | ||
+ | |||
+ | 3. loop() | ||
+ | |||
+ | * 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(). | ||
+ | |||
+ | * 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. | ||
+ | |||
+ | //Plăcuța 2// | ||
+ | |||
+ | 1. înainte de setup() | ||
+ | |||
+ | * Import biblioteci: #include <BluetoothSerial.h> pentru a permite comunicarea Bluetooth. | ||
+ | |||
+ | * 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. | ||
+ | |||
+ | * 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() | ||
+ | |||
+ | * 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. | ||
+ | |||
+ | * Configurarea pinurilor: Configurarea pinurilor LED-urilor și buzzer-ului ca ieșiri. | ||
+ | |||
+ | * 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. | ||
+ | |||
+ | 3. loop() | ||
+ | |||
+ | * 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". | ||
+ | |||
+ | * 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). | ||
===== 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 67: | 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 75: | 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 | ||