کوڈ تلاش کریں

ESP32 ٹیوٹوریل 27/55 - الٹراسونک سینسر سے فاصلہ ناپنا | سن فاؤنڈر کا ESP32 IoT لرننگ کٹ

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-27_ultrasonic_wiring

الٹراسونک سینسر کو ESP32 سے جوڑنے کے لیے، سینسر کے VCC پن کو ESP32 کے 5V پن سے جوڑیں۔ اگلا، سینسر کے GND پن کو ESP32 کے کسی ایک گراؤنڈ (GND) پن سے جوڑیں۔ سینسر کا ٹرگر پن (Trig) ESP32 کے GPIO 26 سے منسلک ہونا چاہیے، جبکہ ایکو پن (Echo) GPIO 25 سے منسلک ہونا چاہیے۔ یہ سیٹ اپ ESP32 کو سینسر کو سگنل بھیجنے اور فاصلہ حساب کرنے کے لیے ایکو سگنل وصول کرنے کی اجازت دیتا ہے۔

ESP32-27_الٹراسونک_اسکیمیٹک

بزر کے لیے، مثبت (لمبی) ٹانگ کو 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 فاصلے کے ساتھ عمل: بزر

تصاویر

ESP32-27_ultrasonic_wiring
ESP32-27_ultrasonic_wiring
ESP32-27_ultrasonic_schematic
ESP32-27_ultrasonic_schematic
ultrasonic_principle
ultrasonic_principle
827-ESP32 Tutorial 27/55- Arduino code for ultrasonic sensor
زبان: C++
// 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;
}

آپ کو جن چیزوں کی ضرورت ہو سکتی ہے

وسائل اور حوالہ جات

فائلیں📁

کوئی فائلیں دستیاب نہیں ہیں۔