rd
B.TECH CSE(IoT) 3 Year
Iot Based Smart Blind Stick
Submitted To- Mr. Gautam
Members:- Ayush Pandey (2101321550025) Ritesh
Tiwari (2101321550048) Rohit Rishu (2101321550050)
ULTRASONIC SENSOR (Circuit Diagram & Code)
Abstract:
This paper presents the design and implementation of an Internet of Things (IoT)-based
smart blind stick aimed at improving navigation and safety for visually impaired
individuals. The proposed system integrates various sensors and IoT technologies to
provide real-time feedback and assistance to users during navigation. Key components of
the smart blind stick include ultrasonic sensors for obstacle detection, GPS module for
location tracking, and a microcontroller for data processing and communication. The
system utilizes cloud computing to store and analyze sensor data, enabling personalized
navigation assistance and remote monitoring capabilities. Furthermore, the
incorporation of machine learning algorithms enhances the stick's ability to adapt to
diverse environments and user preferences over time. A user-friendly mobile application
is developed to provide a seamless interface for users to receive alerts, navigate routes,
and access additional features. Experimental results demonstrate the effectiveness and
reliability of the proposed smart blind stick in enhancing the mobility and independence
of visually impaired individuals, thus contributing to their overall quality of life.
#define ECHO_PIN 2
#define TRIG_PIN 3
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
float readDistanceCM()
{ digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW); int
duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
void loop() { float distance =
readDistanceCM(); bool isNearby =
distance < 100;
digitalWrite(LED_BUILTIN, isNearby);
Serial.print("Measured distance: ");
Serial.println(readDistanceCM());
delay(100);
BUZZER (Circuit Diagram & Code)
const int buzzer = 9; void
setup(){ pinMode(buzzer,
OUTPUT);
} void loop()
{ tone(buzzer,
1000);
delay(1000);
noTone(buzzer);
delay(1000);
VIBRATION MOTOR (Circuit Diagram & Code)
int motorPin = 3; //motor transistor is connected to pin 3
void setup()
pinMode(motorPin, OUTPUT);
} void
loop()
{ digitalWrite(motorPin, HIGH); //vibrate
delay(1000); // delay one second
digitalWrite(motorPin, LOW); //stop vibrating
delay(1000); //wait 50 seconds.
LED (Circuit Diagram & Code)
void setup() {
// put your setup code here, to run once:
pinMode(8,HIGH);
} void loop()
// put your main code here, to run repeatedly: digitalWrite(8,
HIGH);
FINAL CIRCUIT DIAGRAM WITH CODE
const int pingTrigPin = A4; //Trigger connected to PIN 7
const int pingEchoPin = A5; //Echo connected yo PIN 8
const int ledPin = 12; int buz=13; //Buzzer to PIN 4 int
buz1=9; void setup() {
Serial.begin(9600);
pinMode(buz, OUTPUT); pinMode(buz1,
OUTPUT); pinMode(ledPin, OUTPUT);
} void loop() { long duration, cm;
pinMode(pingTrigPin, OUTPUT);
digitalWrite(pingTrigPin, LOW);
delayMicroseconds(2);
digitalWrite(pingTrigPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingTrigPin, LOW);
pinMode(pingEchoPin, INPUT); duration =
pulseIn(pingEchoPin, HIGH); cm =
microsecondsToCentimeters(duration);
if(cm<=100 && cm>0)
{ int d = map ( cm, 1, 100, 20, 2000
); digitalWrite(buz, HIGH);
digitalWrite(buz1, HIGH);
delay(50); digitalWrite(buz, LOW);
digitalWrite(buz1, LOW); delay(d);
digitalWrite(ledPin, HIGH);
} else
{ digitalWrite(ledPin,
LOW);
Serial.print(cm);
Serial.print("cm"); Serial.println(); delay(40); } long
microsecondsToCentimeters(long microseconds)
{ return microseconds / 29 /
2;