ESP32 ٹیوٹوریل 27/55 - الٹراسونک سینسر سے فاصلہ ناپنا | سن فاؤنڈر کا ESP32 IoT لرننگ کٹ
اس ٹیوٹوریل میں، ہم سیکھیں گے کہ ESP32 کے ساتھ الٹراسونک فاصلہ سینسر کیسے استعمال کریں تاکہ فاصلے ناپ سکیں اور نتائج کو اسکرین پر دکھا سکیں۔ ہم یہ بھی دریافت کریں گے کہ جب کسی مخصوص رینج میں کوئی چیز دریافت ہو تو بزر کو کیسے فعال کریں۔ یہ پروجیکٹ ESP32 مائیکروکنٹرولر کی استعداد کو نمایاں کرتا ہے، جو وائی-فائی اور بلوٹوتھ صلاحیتوں کو مربوط کرتا ہے، جس سے یہ مختلف IoT ایپلیکیشنز کے لیے موزوں ہے۔
اس گائیڈ کے دوران، آپ کو ہارڈویئر اجزاء، وائرنگ ہدایات، اور کوڈ سنیپٹس کی وضاحتیں ملیں گی تاکہ آپ پروجیکٹ کو کامیابی سے نافذ کر سکیں۔ مزید وضاحت کے لیے، براہ کرم ویڈیو (ویڈیو میں 00:00 پر) دیکھیں۔
ہارڈویئر کی وضاحت
اس پروجیکٹ کے بنیادی اجزاء میں ESP32 مائیکروکنٹرولر، الٹراسونک سینسر (HC-SR04)، اور ایک بزر شامل ہیں۔ الٹراسونک سینسر دو اہم حصوں پر مشتمل ہے: ایک ٹرانسمیٹر جو الٹراسونک لہریں خارج کرتا ہے اور ایک ریسیور جو منعکس شدہ لہروں کو سنتا ہے۔ لہروں کو واپس آنے میں لگنے والے وقت کی پیمائش کرکے، ہم کسی چیز تک فاصلے کا حساب لگا سکتے ہیں۔
ESP32 مرکزی کنٹرولر کے طور پر کام کرتا ہے، الٹراسونک سینسر سے ڈیٹا پر کارروائی کرتا ہے اور ناپے گئے فاصلے کی بنیاد پر بزر کو کنٹرول کرتا ہے۔ جب دریافت شدہ فاصلہ ایک متعین حد سے کم ہو تو بزر بجے گا، جو اس بات کی نشاندہی کرتا ہے کہ کوئی چیز بہت قریب ہے۔
ڈیٹاشیٹ تفصیلات
| کارخانہ دار | HC-SR04 |
|---|---|
| پارٹ نمبر | HC-SR04 |
| لاجک/آئی او وولٹیج | 5 V |
| سپلائی وولٹیج | 5 V |
| آؤٹ پٹ کرنٹ (فی چینل) | 16 mA |
| پیک کرنٹ (فی چینل) | … |
| PWM فریکوئنسی رہنمائی | … |
| ان پٹ لاجک تھریشولڈز | … |
| وولٹیج ڈراپ / RDS(on) / سیچوریشن | … |
| تھرمل حدود | … |
| پیکیج | … |
| نوٹس / مختلف اقسام | پیمائش کی رینج: 2 سینٹی میٹر سے 400 سینٹی میٹر |
- سینسر کے لیے 5 V کی مناسب بجلی فراہمی یقینی بنائیں۔
- مداخلت سے بچنے کے لیے الٹراسونک لہروں کے لیے صاف راستہ برقرار رکھیں۔
- سگنل میں تاخیر اور شور کو کم کرنے کے لیے چھوٹی تاریں استعمال کریں۔
- غلط مواصلت سے بچنے کے لیے پن کنکشن درست یقینی بنائیں۔
- درستگی جانچنے کے لیے سینسر کو مختلف ماحول میں آزمائیں۔
وائرنگ ہدایات

الٹراسونک سینسر کو ESP32 سے جوڑنے کے لیے، سینسر کے VCC پن کو ESP32 کے 5V پن سے جوڑیں۔ اگلا، سینسر کے GND پن کو ESP32 کے کسی ایک گراؤنڈ (GND) پن سے جوڑیں۔ سینسر کا ٹرگر پن (Trig) ESP32 کے GPIO 26 سے منسلک ہونا چاہیے، جبکہ ایکو پن (Echo) GPIO 25 سے منسلک ہونا چاہیے۔ یہ سیٹ اپ ESP32 کو سینسر کو سگنل بھیجنے اور فاصلہ حساب کرنے کے لیے ایکو سگنل وصول کرنے کی اجازت دیتا ہے۔
بزر کے لیے، مثبت (لمبی) ٹانگ کو ESP32 کے GPIO 12 سے اور منفی (چھوٹی) ٹانگ کو GND سے جوڑیں۔ یقینی بنائیں کہ تمام کنکشن مضبوط ہیں تاکہ آپریشن کے دوران کوئی ڈھیلا تار نہ ہو۔ اگر بریڈ بورڈ استعمال کر رہے ہیں تو، بزر کنکشن کو مناسب طریقے سے سیدھ میں رکھیں تاکہ غلط وائرنگ سے بچا جا سکے۔ وائرنگ کی تصدیق کے لیے ویڈیو ضرور دیکھیں (ویڈیو میں 05:12 پر)۔
کوڈ مثالیں اور واک تھرو
کوڈ الٹراسونک سینسر کے لیے پنز کو ابتدائی کرتا ہے اور سیریل کمیونیکیشن قائم کرتا ہے۔ مرکزی فنکشن، readSensorData()، ٹرگر سگنل بھیجنے اور ایکو پن سے رسپانس ٹائم کی پیمائش کرنے کے لیے ذمہ دار ہے۔
const int echoPin = 25;
const int trigPin = 26;
void setup() {
Serial.begin(115200);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.println("الٹراسونک سینسر:");
}
کوڈ echoPin اور trigPin کو الٹراسونک سینسر سے منسلک پنز کے لیے مستقل کے طور پر متعین کرتا ہے۔ setup() فنکشن میں، ہم سیریل کمیونیکیشن شروع کرتے ہیں اور پن موڈز کو اس کے مطابق سیٹ کرتے ہیں۔
float readSensorData() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long microsecond = pulseIn(echoPin, HIGH);
float distance = microsecond / 29.00 / 2;
return distance;
}
یہ اقتباس readSensorData() فنکشن دکھاتا ہے، جو ٹرگر پن پر 10 مائیکرو سیکنڈ کی پلس بھیجتا ہے۔ یہ پھر ایکو پن کو سگنل واپس حاصل کرنے میں لگے وقت کی پیمائش کرتا ہے، فاصلے کا حساب لگاتا ہے، اور یہ قدر واپس کرتا ہے۔
آخر میں، لوپ فنکشن مسلسل فاصلہ پڑھتا ہے اور اسے سیریل مانیٹر پر پرنٹ کرتا ہے۔ اگر فاصلہ 20 سینٹی میٹر سے کم ہے تو، بزر فعال ہو جائے گا۔
ڈیموسٹریشن / کیا توقع کریں
جب آپ پروگرام چلاتے ہیں تو، ESP32 ناپے گئے فاصلے کو سینٹی میٹر میں سیریل مانیٹر پر دکھائے گا۔ اگر کوئی چیز سینسر کے 20 سینٹی میٹر کے اندر آتی ہے تو، بزر بجے گا۔ اس رویے کو سینسر کے سامنے مختلف فاصلوں پر اشیاء رکھ کر آزمایا جا سکتا ہے۔ قطبی الٹ سے محتاط رہیں اور یقینی بنائیں کہ کنکشن مخصوص طریقے سے بنائے گئے ہیں تاکہ آپریشن کے دوران کسی مسئلے سے بچا جا سکے (ویڈیو میں 08:00 پر)۔
ویڈیو ٹائم اسٹیمپس
- 00:00 آغاز
- 1:46 الٹراسونک سینسر کا تعارف
- 6:02 وائرنگ کی وضاحت
- 7:37 ESP32 آرڈوینو کوڈ کی وضاحت
- 11:33 آرڈوینو آئی ڈی ای میں ESP32 بورڈ اور COM پورٹ کا انتخاب
- 13:15 فاصلہ ناپنے کا مظاہرہ
- 16:43 فاصلے کے ساتھ عمل: بزر
// Define pins for the ultrasonic sensor
const int echoPin = 25;
const int trigPin = 26;
// Function prototype for reading sensor data
float readSensorData();
void setup() {
// Begin serial communication at 115200 baud rate
Serial.begin(115200);
// Set echoPin as input and trigPin as output
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
// Print sensor information to the serial monitor
Serial.println("Ultrasonic sensor:");
}
void loop() {
// Read distance from the ultrasonic sensor
float distance = readSensorData();
// Print the measured distance to the serial monitor
Serial.print(distance);
Serial.println(" cm");
// Delay between readings
delay(200);
}
// Function to read data from the ultrasonic sensor
float readSensorData() {
// Trigger a low signal before sending a high signal
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Send a 10-microsecond high signal to the trigPin
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
// Return to low signal
digitalWrite(trigPin, LOW);
// Measure the duration of the high signal on the echoPin
unsigned long microsecond = pulseIn(echoPin, HIGH);
// Calculate the distance using the speed of sound (29.00µs per centimeter)
float distance = microsecond / 29.00 / 2;
// Return the calculated distance
return distance;
}
Common Course Links
Common Course Files
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ای بے
-
بینگوڈPurchase HC-SR04 Ultrasonic Sensor from Banggoodbanggood.com
وسائل اور حوالہ جات
-
دستاویزاتESP32 Tutorial 27/55 - SunFounder doc page for ultrasonic distance sensordocs.sunfounder.com
-
باہرونیHC-SR04 Ultrasonic Library from the Arduino official websiteplayground.arduino.cc
فائلیں📁
کوئی فائلیں دستیاب نہیں ہیں۔