Projects

Blind Assistant

/*
Date: 12/06/2024
project: blind assistant device
*/

//DF player start
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

// Initialize software serial on pins 10 and 11
SoftwareSerial mySoftwareSerial(6, 5);  // RX, TX
DFRobotDFPlayerMini myDFPlayer;

//DF player End

const int led = 11;
const int buzzer = 10;

// ultrasonic sensor start
const int trig_pin = 8;
const int echo_pin = 9;

long duration;
// int distance;
// ultrasonic sensor end

const int vibrator = 7;

void setup() {
//DF player start 

  // Serial communication with the module
  mySoftwareSerial.begin(9600);
  // Initialize Arduino serial
  Serial.begin(115200);
  // Check if the module is responding and if the SD card is found
  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini"));
  Serial.println(F("Initializing DFPlayer module ... Wait!"));

  if (!myDFPlayer.begin(mySoftwareSerial)) {
    Serial.println(F("Not initialized:"));
    Serial.println(F("1. Check the DFPlayer Mini connections"));
    Serial.println(F("2. Insert an SD card"));
    while (true)
      ;
  }
  Serial.println();
  Serial.println(F("DFPlayer Mini module initialized!"));
  // Initial settings
  myDFPlayer.setTimeOut(500);  // Serial timeout 500ms
  myDFPlayer.volume(30);       // Volume 5
  myDFPlayer.EQ(0);            // Normal equalization

  //DF player end

  // ultrasonic sensor start
  pinMode(trig_pin, OUTPUT);  //sets trigger pin as output
  pinMode(echo_pin, INPUT);   //sets echo pin as input
  // ultrasonic sensor end

  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);

  pinMode(vibrator, OUTPUT);
  digitalWrite(vibrator, LOW);

  digitalWrite(buzzer, LOW);
}

void loop() {
  int distance = check_distance();
  Serial.print("Distance: ");
  Serial.println(distance);

  if (distance <= 60) {
    Serial.print(distance);
    digitalWrite(led, HIGH);
    digitalWrite(vibrator, HIGH);
    digitalWrite(buzzer, HIGH);
    delay(1000);
    digitalWrite(buzzer, LOW);

      myDFPlayer.play();
      delay(2000);

  } else {
    digitalWrite(buzzer, LOW);
    digitalWrite(led, LOW);
    digitalWrite(vibrator, LOW);
  }

  delay(200);
}

int check_distance() {
  int current_distance = 0;
  digitalWrite(trig_pin, LOW);
  delayMicroseconds(2);
  digitalWrite(trig_pin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig_pin, LOW);
  duration = pulseIn(echo_pin, HIGH);
  current_distance = duration * 0.034 / 2;

  return current_distance;
}

Leave a Reply

Your email address will not be published. Required fields are marked *