Baby Alarm

Crăciun Sarah-Maria - 333CB

Introducere

Î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.

Prezentarea pe scurt a proiectului:

  • ce face

Baby Alarm-ul are rolul de a monitoriza zgomotul din camera bebelușului. Atunci când nivelul de zgomot depășește un anumit prag predefinit, dispozitivul transmite un semnal către unitatea părintelui. Aceasta declanșează o serie de indicatori vizuali și sonori pentru a alerta părinții cu privire la activitatea din camera copilului. Indicatorii includ lumina intermitentă a unui LED albastru și a unui LED roșu, precum și activarea unei alarme sonore.

  • care este scopul lui

Scopul principal al acestui dispozitiv este de a le oferi părinților un instrument eficient pentru a-și monitoriza copilul. Prin detectarea zgomotelor neobișnuite sau a oricăror perturbări din camera bebelușului, dispozitivul îi alertează pe părinți, permițându-le să reacționeze rapid și să ofere confort și siguranță copilului lor.

  • care a fost ideea de la care am pornit

Observând nevoia de supraveghere constantă a bebelușilor, am dorit să creez un dispozitiv care să le ofere părinților liniștea și confortul de a ști că pot fi alertați în cazul unor situații neașteptate din camera copilului, în timp ce pot rezolva și alte treburi casnice.

  • 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.

Descriere generală

Baby Alarm-ul utilizează două plăci ESP32 conectate prin tehnologie Bluetooth pentru a detecta și a transmite semnale în funcție de zgomotul produs în camera bebelușului. Placa aflată în camera bebelușului monitorizează nivelul de zgomot și, în cazul în care acesta depășește un anumit prag prestabilit, transmite un semnal către placa de la părinte. Acest semnal este apoi tradus într-o serie de indici vizuali și sonori, inclusiv aprinderea intermitentă a două LED-uri (unul albastru și unul roșu) și declanșarea unei alarme sonore.

Hardware Design

Listă de piese:

  • 2x ESP32
  • 1x LED albastru
  • 1x LED roșu
  • 1x microfon
  • 1x buzzer
  • 2x breadboard
  • 2x rezistori 220 ohmi
  • fire de legătură

Schemă Electrică

Modulul 1:

  • Microfon (Analog): Conectat la pinul 35 (GPIO 35)

Modulul 2:

  • 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

Mediu de dezvoltare:

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

Concluzii

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

Ținte

  • 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ă

Jurnal

  • 27.04.2024 - alegere temă proiect
  • 04.05.2024 - creare pagină ocw și completarea parțială a documentației
  • 06.05.2024 - continuarea completării documentației
  • 17.05.2024 - schema electrică
  • 22.05.2024 - finalizare hard
  • 23.05.2024 - finaliza soft
  • 25.05.2024 - finalizare pagină ocw

Grafic Gantt:

Bibliografie/Resurse

pm/prj2024/ccontasel/sarah_maria.craciun.txt · Last modified: 2024/05/27 05:44 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