Tutorials
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;
}