تکنولوژی BLE مربوط به بلوتوث بوده و کاربردهای مختلفی دارد. این تکنولوژی علاوه بر مصرف انرژی بهینه، سرعت تبادل قابل توجهی دارد. در این آموزش قصد داریم به بررسی تکنولوژی BLE در بردهای ESP32 بپردازیم همچنین دو پروژه با این محوریت انجام خواهیم داد. در ادامه مفاهیم مربوط به BLE و نحوه راه اندازی و استفاده از آن در بردهای ESP32 را شرح خواهم داد. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
بلوتوث BLE کممصرف
تکنولوژی بلوتوث BLE با عنوان Bluetooth4.0 در سال ۲۰۰۱ برای اولین بر معرفی شد و از نظر کلی تفاوتی که با مفهوم پیشین بلوتوث دارد، مصرف توان کمتر می باشد. بلوتوث BLE بیشترین استفاده را در اینترنت اشیا دارد زیرا در دیوایس های اینترنت اشیا یکی از چالش های موجود مصرف توان دستگاه ها می باشد که می توان برای مدت طولانی در یک مکان ثابت با یک باتری از آن ها استفاده کرد؟! خب BLE با این نظر که اگر تبادل اطلاعاتی صورت نگیرد در واقع غیر فعال یا خاموش می شود توان بسیار کمتری مصرف می کند و با یک باتری تا چندین ماه قابل استفاده خواهد بود.
معماری بلوتوث BLE کم مصرف
۱- لایه کاربرد یا APPS این لایه شامل منطق، رابط کاربری و مدیریت داده میشود.
۲- لایه HOST عبارتست از
- پروفایل دسترسی عمومی
- پروفایل مشخصات عمومی
- کنترل لینک منطقی و پروتکل سازگاری
- پروتکل مشخصه
- مدیر امنیت
- رابط کنترلکننده و هاست
۳- لایه کنترلکننده “Controller” عبارتست از
- رابط کنترلکننده هاست
- لایه ارتباط
- لایه فیزیکی
بلوتوث Bluetooth
بلوتوث (Bluetooth) نام یک استاندارد فناوری بیسیم با برد کم برای فرستادن پیام، عکس یا هر اطلاعات دیگر است که از لقب یک پادشاه منطقه اسکاندیناوی به نام هارالد بلاتند گرفته شده است. ارتباط ماژول های بلوتوث با فرکانسهای رادیویی صورت می پذیرد، هر ماژول بلوتوث دارای یک تراشه فرستنده یا گیرنده مربعیشکل است که در باند فرکانسی GHz ۲٫۴ تا GHz ۲٫۴۸ کار میکند. این فرکانس از این لحاظ انتخاب شده، که در سراسر جهان بهطور رایگان در دسترس است و محدودیتهای داشتن مجوز را ندارد.
برد ESP32 با بلوتوث BLE
تراشه ESP32 نسل پیشرفته ESP8266 است. یکی از تفاوتهای آن بلوتوث داخلیاش است. همچنین دارای هسته وایفای ۲,۴ گیگا هرتزی و بلوتوث داخلی تولید شده با تکنولوژی ۴۰ نانومتری شرکت TSMC است. این ماژول دارای بهترین پرفورمنس در مصرف انرژی بوده و با کمترین مصرف انرژی بهترین نتیجه را برای ما به همراه دارد. اگر بخواهیم دقیقتر به این برد نگاه کنیم باید بگوییم، یک chip است که پلتفرم NodeMCU در اون پیاده سازی شده که به این نوع چیپها System on a chip microcontrollers هم گفته میشود. دارای چندین پایه GPIO برای ارتباط با سخت افزارهای مختلف است. در زیر نمایی از این برد خارق العاده را مشاهده میکنید.
شرح پروژه بلوتوث BLE
در این آموزش دو نمونه پروژه را تست خواهیم کرد، در یکی از پروژه ها با استفاده از برد ESP32 یک دستگاه BLE می سازیم که توسط دیگر دستگاه ها از جمله موبایل هوشمند قابل شناسایی است و در دومین پروژه، قادر خواهیم بود دستگاه های اطراف که از BLE استفاده می کنند را تشخیص داد و همچنین مک آدرس های آن ها را به نمایش درآورد.
نصب افزونه ESP32 در Arduino IDE
در این آموزش از برد ESP32 استفاده می کنیم، در ادامه مراحل را برای نصب این برد در نرم افزار آردوینو دنبال کنید:
- ابتدا در نرم افزار Arduino IDE به مسیر File> Preferences بروید.
- لینک زیر را در بخش مشخص شده قرار دهید.
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
- سپس به مسیر Tools > Board > Boards Manager بروید.
- در بخش board manager کلمه ESP32 را سرچ کنید و بر روی install کلیک کنید.
مثال ۱ : دیوایس BLE
با آپلود این کد در برد ESP32، در واقع یک دیوایس BLE قابل شناسایی توسط سایر دستگاه ها ساخته ایم که اولین گام برای کار با BLE می باشد.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
- در نهایت ESP32 شما در جستجوی دستگاه های دیگر به شکل زیر به نمایش در خواهد آمد.
مثال ۲ : اسکن دیوایس های BLE اطراف
در این مثال پس از آپلود کد و باز کردن سریال مانیتور در Arduino IDE، مک آدرس دستگاه های BLE اطراف برای شما به نمایش در خواهند آمد همچنین اطلاعی مانند نام دستگاه و قدرت ارسال سیگنال نیز در دسترس خواهد بود.
- در این قسمت کتابخانه های مورد نیاز را به کد اضافه کرده ایم.
#include <BLEDevice.h> #include <BLEUtils.h> #include <BLEScan.h> #include <BLEAdvertisedDevice.h>
- در این قسمت متغیر های مورد نیاز را تعریف می کینم.
String knownBLEAddresses[] = {"aa:bc:cc:dd:ee:ee", "54:2c:7b:87:71:a2"}; int RSSI_THRESHOLD = -55; bool device_found; int scanTime = 5; //In seconds BLEScan* pBLEScan;
- کد کامل پروژه
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
- پس از آپلود کد و باز کردن سریال مانیتور در نرم افزار Arduino IDE، نتیجه به شکل زیر خواهد بود.
وسایل مورد نیاز
جمع بندی
بی شک تکنولوژی BLE یکی از تاثیر گذاترین راه های ارتباطی در اینترنت اشیا می باشد که بدلیل مصرف توان بسیار محدود می تواند بسیار کاربردی و مفید برای پروژه های iot ما باشد.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
یکی از عامل هایی که هیچوقت به فارسی سرچ نمیکنم امثال شما هستید.
۱.کمی توی مطالبی که میزارید حرفه ای تر باشید و جزئیات بیشتری رو بیان کنید
۲. حداقل اگه حرفه ای نیستید دسترسی رو آزاد تر بزارید که آدم خودش بفهمه تو کدتون چکار کردید نه که برا هر بخشش لازم باشه عضو سایت بشی و پول بدی.
به شخصه لینک وبسایتتون رو هرجا ببینم باز نمیکنم.
با سلام
به نظر شما کاربری هستید که با این فضا تازه آشنا شدهاید. دیجی اسپارک بیش از ۳ هزار آموزش تخصصی منتشر کرده است و در حدود ۵۰ هزار کاربر در آن به تبادل و رفع عیب پرداختهاند. در صورتی که تمایل به یادگیری دارید، روال کاری ما مشخص است و میتوانید اقدام کنید.
با تقدیم احترام