آموزش ESP32 27/55 - اندازهگیری فاصله با حساس(حس کننده) اولتراسونیک | کیت یادگیری اینترنت اشیا ESP32 سانفاندرد
در این آموزش، یاد میگیریم چگونه از یک حساس(حس کننده) فاصله اولتراسونیک با ESP32 برای اندازهگیری فواصل و نمایش نتایج روی صفحه استفاده کنیم. همچنین بررسی خواهیم کرد که چگونه یک زنگ هشدار را زمانی که شیئی در محدوده مشخصی شناسایی میشود، فعال کنیم. این پروژه توانمندیهای میکروکنترلر ESP32 را که قابلیتهای Wi-Fi و Bluetooth را ادغام میکند، به نمایش میگذارد و آن را برای کاربردهای مختلف IoT مناسب میسازد.
در طول این راهنما، شما توضیحات مربوط به اجزای سختافزاری، دستورالعملهای سیمکشی و قطعات شِفر (کود) را پیدا خواهید کرد تا به شما در اجرای موفق پروژه کمک کند. به منظور وضوح بیشتر، لطفاً به ویدیو مراجعه کنید (در ویدیو در 00:00).
تجهیزات توضیح داده شده
اجزای اصلی این پروژه شامل میکروکنترلر ESP32، حساس(حس کننده) اولتراسونیک (HC-SR04) و یک بوق است. حساس(حس کننده) اولتراسونیک از دو بخش اصلی تشکیل شده است: یک فرستنده که امواج اولتراسونیک را منتشر میکند و یک گیرنده که به امواج بازتابیده گوش میدهد. با اندازهگیری زمانی که طول میکشد تا امواج برگردند، میتوانیم فاصله تا یک شیء را محاسبه کنیم.
ESP32 به عنوان کنترلر مرکزی عمل میکند، دادهها را از حساس(حس کننده) اولتراسونیک پردازش میکند و بر اساس فاصله اندازهگیری شده، زنگ را کنترل میکند. زنگ زمانی به صدا درخواهد آمد که فاصله شناسایی شده کمتر از یک آستانه تعریف شده باشد که نشاندهنده این است که یک شیء خیلی نزدیک است.
جزئیات دیتاشیت
| تولید کننده | HC-SR04 |
|---|---|
| شماره قطعه | HC-SR04 |
| ولتاژ منطقی/ورودی و خروجی | ۵ ولت |
| ولتاژ تغذیه | ۵ ولت |
| جریان خروجی (در هر کانال) | 16 میلیآمپر |
| جریان اوج (به ازای هر کانال) | ... |
| راهنمای فرکانس PWM | ... |
| آستانههای منطق ورودی | ... |
| کاهش ولتاژ / RDS(on)/ اشباع | ... |
| محدودیتهای حرارتی | ... |
| بسته | روی متن کلیک کنید. |
| یادداشتها / واریانتها | دامنه اندازهگیری: ۲ سانتیمتر تا ۴۰۰ سانتیمتر |
- تضمین تأمین برق مناسب ۵ ولتی برای حساس(حس کننده).
- مسیر واضحی برای امواج اولتراسونیک حفظ کنید تا از تداخل جلوگیری شود.
- از سیمهای کوتاه استفاده کنید تا تاخیر سیگنال و اغتشاش (نویز) را به حداقل برسانید.
- اطمینان حاصل کنید که اتصالات پایه صحیح باشند تا از بروز مشکلات ارتباطی جلوگیری شود.
- حساس(حس کننده) را در محیطهای مختلف آزمایش کنید تا دقت آن را بررسی کنید.
دستورالعملهای سیمکشی

برای اتصال حساس(حس کننده) اولتراسونیک به ESP32، پایه VCC حساس(حس کننده) را به پایه 5 ولت روی ESP32 متصل کنید. سپس، پایه GND حساس(حس کننده) را به یکی از پایههای زمین (GND) روی ESP32 متصل کنید. پایه تریگر (Trig) از حساس(حس کننده) باید به GPIO 26 روی ESP32 متصل شود، در حالی که پایه اکو (Echo) باید به GPIO 25 متصل شود. این تنظیمات به ESP32 اجازه میدهد که سیگنالی به حساس(حس کننده) ارسال کرده و سیگنال اکو را برای محاسبه فاصله دریافت کند.
برای بیزر، پای مثبت (بلند) را به GPIO 12 روی ESP32 و پای منفی (کوتاه) را به 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("Ultrasonic sensor:");
}
شِفر (کود) تعریف میکند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()تابع که یک پالس ۱۰ میکروثانیهای به پایانهی تریگر ارسال میکند. سپس زمان صرف شده برای دریافت سیگنال بازگشتی توسط پایانهی اکو را اندازهگیری کرده، فاصله را محاسبه کرده و این مقدار را برمیگرداند.
در نهایت، تابع حلقه بهطور مداوم فاصله را میخواند و آن را در نمایشگر مسلسل چاپ میکند. اگر فاصله کمتر از 20 سانتیمتر باشد، بزن فعال خواهد شد.
مظاهرات / چه انتظاری باید داشته باشیم
زمانی که برنامه را اجرا میکنید، ESP32 فاصله اندازهگیری شده را به سانتیمتر در نمایشگر مسلسل نمایش خواهد داد. اگر جسمی در فاصله ۲۰ سانتیمتری حساس(حس کننده) وارد شود، زنگ هشدار به صدا در میآید. این رفتار را میتوان با قرار دادن اجسام در فاصلههای مختلف در مقابل حساس(حس کننده) آزمایش کرد. مراقب قطبیت معکوس باشید و اطمینان حاصل کنید که اتصالات بهصورت مشخص شده انجام شدهاند تا از بروز مشکلات در کارکرد (در ویدیو در ۰۸:۰۰) جلوگیری شود.
برچسبهای زمانی ویدئو
- ۰۰:۰۰ شروع
- 1:46 مقدمهای بر حساس(حس کننده) اولتراسوند
- ۶:۰۲ توضیحاتی درباره سیمکشی
- شِفر (کود) آردوینو ESP32 در ساعت ۷:۳۷ توضیح داده شده است
- 11:33 انتخاب برد ESP32 و پورت COM در Arduino IDE
- ۱۳:۱۵ نمایش اندازهگیری فاصله
- عملیات تیک با فاصله: بوق
Common Course Links
Common Course Files
مواردی که ممکن است به آنها نیاز داشته باشید
-
ایبی
-
بنگ گود
منابع و مراجع
-
مستنداتآموزش ESP32 27/55- صفحه مستندات SunFounder برای حساس(حس کننده) فاصله اولتراسونیکdocs.sunfounder.com
-
خارجیکتابخانه اولتراسونیک HC-SR04 از وبسایت رسمی آردوینوplayground.arduino.cc
فایلها📁
هیچ فایلی موجود نیست.