Overview

Call Mom is a toddler-safety project designed to help parents prevent potentially hazardous situations at home for young children. Toddlers sometimes put themselves in dangerous situations at home even though their parents are in the same household. This project aims to create a safer environment for toddlers by enhancing caregivers' awareness of potential dangers in real-time.Consisted of two arduino boards, the sensor board is installed wherever in the household that’s considered as a potential hazard and the vibrator board is carried around by their parent so it could alert them.

Related Course

Ambient Interfaces

Collaborator

Solo project advised by
Tess Oldfield

Tools

Arduino
Circuitry
3D print

Timeline

2 weeks

Logic

Circuit

Code

#include <SoftwareSerial.h>

// Define pins
const int irSensorPin = 4;  // Pin connected to IR sensor output
const int buzzerPin = 5;     // Pin connected to buzzer
SoftwareSerial hc05(11, 10);  // RX, TX pins for HC-05 communication

void setup() {
  // Initialize serial communication for Arduino <-> PC (Serial Monitor)
  Serial.begin(9600);
  
  // Initialize communication between Arduino and HC-05 at 9600 baud
  hc05.begin(9600);  // Baud rate for HC-05
  
  // Initialize the IR sensor pin and buzzer pin
  pinMode(irSensorPin, INPUT);   // Set IR sensor pin as input
  pinMode(buzzerPin, OUTPUT);    // Set buzzer pin as output
  
  // Print message to Serial Monitor for user
  Serial.println("Baby Alert System Initialized");
}

void loop() {
  int sensorState = digitalRead(irSensorPin);  // Read the IR sensor state
  
  if (sensorState == HIGH) {  // If obstacle detected
    // Print to Serial Monitor (optional)
    Serial.println("Obstacle Detected - ON");

    // Send message to HC-05 via Bluetooth
    hc05.println("ON");  // This will be sent to the paired device
    
    // Activate buzzer for 3 seconds
    tone(buzzerPin, 1000);  // Play buzzer at 1000Hz frequency
    delay(3000);             // Buzzer rings for 3 seconds
    noTone(buzzerPin);       // Stop buzzer sound after 3 seconds
    
    // Optional: Add a delay between obstacle detections
    delay(1000);  // Adjust this to control how frequently you detect obstacles
  }
}

Board 1

#include <SoftwareSerial.h>

SoftwareSerial hc05(2, 3); // HC-05 TX to pin 2, RX to pin 3
int motorPin = 7; // Connect to MOSFET Gate

void setup() {
  pinMode(motorPin, OUTPUT);
  digitalWrite(motorPin, LOW); // Ensure motor is off
  hc05.begin(9600);  // Bluetooth baud rate
  Serial.begin(9600); // Serial Monitor
  Serial.println("Waiting for Bluetooth command...");
}

void loop() {
  if (hc05.available()) {
    String command = hc05.readString(); // Read Bluetooth command
    command.trim();  // Trim whitespace and newline characters from the string
    Serial.println("Received: " + command); // Print received message to Serial Monitor
    
    if (command == "ON") { // Compare the trimmed command
      Serial.println("Activating motor!"); // Print when activating motor
      digitalWrite(motorPin, HIGH); // Turn on motor
      delay(3000); // Run motor for 3 seconds
      digitalWrite(motorPin, LOW); // Turn off motor
      Serial.println("Motor turned off."); // Print when motor is turned off
    }
  }
}

Board 2

Code Test

Case

Prototyping

Test 1

Test 2

Final Prototype