- ESP32 بلوٹوتھ کے ساتھ شروع کرنا
- بلوٹوتھ لو انرجی (BLE) اور ESP32 کلاسیکی بلوٹوتھ کو سمجھنا
- ESP32 کے لئے آرڈینوو IDE کی تیاری
- ای ایس پی 32 کے لئے سیریل بلوٹوتھ پروگرام
- ای ایس پی 32 کے ساتھ سیریل بلوٹوتھ کی جانچ ہو رہی ہے
ایچ ڈی -05 اور HC-06 جیسے بلوٹوتھ ماڈیول ترتیب دینے میں آسان ہیں اور Ardino IDE کے ساتھ استعمال کرنا تیز ہیں ، لیکن ان کی اپنی حد ہے جیسے بجلی کا زیادہ استعمال اور وہ پرانے بلوٹوت V2.0 پر کام کرتے ہیں۔ نیز ، حال ہی میں میں نے اپنے آپ کو ایک نیا ESP32 DEV کٹ حاصل کیا ، ان ماڈیولز میں خصوصیات کا ایک کارٹون ہے جیسے بلٹ میں Wi-Fi اور بلوٹوتھ ، کافی ADC اور DAC پن ، آڈیو سپورٹ ، SD کارڈ سپورٹ ، گہری نیند موڈ وغیرہ۔ IOT منصوبوں کی تعمیر کے لئے سب کچھ.
اور جس طرح کوئی بھی شوق اسے پسند کرے گا ، اسی طرح ESP32 کو اب سرکاری طور پر اردونو IDE کی مدد حاصل ہے۔ اس سے قبل ہمیں نیل کولبنس لائبریری کے ساتھ ایک بہت بڑا کام کرنا تھا ، لیکن اب اس لڑکے کی محنت سے پروگرامنگ ESP32 کی بدولت اردوینو IDE کیک کی واک بن گیا ہے۔ لہذا ، میں نے اپنے اردوینو IDE کو لانچ کیا اور کچھ مثال BLE پروگراموں میں چلا گیا ، جن کے ذریعے میں کچھ سمجھ نہیں پایا۔ سرفنگ اور یوٹیوبنگ کے طویل عرصے کے بعد میں نے محسوس کیا کہ اگر آپ کو ESP32 کا استعمال کرتے ہوئے بلوٹوتھ لو انرجی (BLE) کے ساتھ کام کرنا ہے تو سمجھنے کے لئے اور بھی بہت سی چیزیں ہیں ۔ میں نے علیحدہ مضامین میں BLE کا احاطہ کرنے کا فیصلہ کیا ہے ، لہذا ہم یہاں سمارٹ فون کا استعمال کرتے ہوئے ایل ای ڈی کو تبدیل کرنے کے لئے ESP32 کا کلاسیکی سیریل بلوٹوتھ استعمال کریں گے۔. اگر آپ BLE خصوصیات کو استعمال کرنے کے بارے میں جانچ کرنے میں دلچسپی رکھتے ہیں تو ESP32 BLE سرور اور ESP32 BLE کلائنٹ پر اس مضمون کی جانچ پڑتال کریں۔
ESP32 بلوٹوتھ کے ساتھ شروع کرنا
پہلا پروگرام جس کی میں کوشش کرنا چاہتا تھا وہ ایک سادہ پروگرام تھا جس کا استعمال کرتے ہوئے میں اچھے پرانے HC-05 دن کی طرح موبائل فون بلوٹوتھ ٹرمینل ایپلی کیشن سے ایل ای ڈی کو آن یا آف کر سکتا ہوں۔ لیکن یہ پتہ چلتا ہے کہ ، بلوٹوتھ لو انرجی (BLE) اس کے ل ind نہیں ہے۔ میں نے یہ بھی دریافت کیا کہ ESP32 ماڈیول میں دو قسم کے بلوٹوتھ ہیں ، ایک کلاسیکی بلوٹوتھ اور دوسرا BLE بلوٹوتھ لو انرجی۔ ٹھیک ہے ، لیکن کیوں؟…. ہمارے پاس بلوٹوتھ کی دو اقسام کیوں ہیں اور مجھے اپنے پروجیکٹ کے لئے کیا استعمال کرنا چاہئے؟
بلوٹوتھ لو انرجی (BLE) اور ESP32 کلاسیکی بلوٹوتھ کو سمجھنا
جیسا کہ اس نام سے ظاہر ہوتا ہے کہ بلوٹوتھ لو لو انرجی کلاسیکی بلوٹوتھ سے کم طاقت استعمال کرتی ہے۔ یہ پہلے سے طے شدہ وقتا فوقتا تازہ کاریوں کے ساتھ ضرورت کے مطابق ڈیٹا بھیج کر حاصل کیا جاتا ہے۔ لیکن کلاسک بلوٹوتھ کے برعکس یہ فائلوں یا میوزک کو منتقل کرنے کے لئے استعمال نہیں ہوتا ہے۔ کیا آپ نے کبھی سوچا ہے کہ آپ کا فون خود بخود کیسے شناخت کرتا ہے کہ آپ نے جوڑا بنایا ہوا بلوٹوتھ آلہ آڈیو ڈیوائس یا لیپ ٹاپ یا فون ہے ، آپ نے یہ بھی دیکھا ہوگا کہ وائرلیس آڈیو پلیئر یا فٹنس بینڈ میں بیٹری کی سطح خود بخود اسٹیٹس بار میں دکھائی جاتی ہے۔ آپ کا موبائل یہ سب BLE آلات کی خصوصیات سے ممکن ہیں۔ A BLE ڈیوائس کے ساتھ کام کرتا بلوٹوت V4.0 اور ایک سرور کے طور پر یا کرتا ہے جو ایک کلائنٹ کے طور پر کم طاقت کے ساتھ کام کر سکتے ہیںبیکنز ، سمارٹ گھڑیاں ، فٹنس بینڈ وغیرہ کے لئے ایک مثالی انتخاب حاصل کریں ۔
دوسری طرف کلاسیکی بلوٹوتھ صرف سیدھا سادہ سا پرانا بلوٹوتھ ہے جسے ہم فائلوں اور دیگر ڈیٹا کی منتقلی کے لئے استعمال کرتے ہیں۔ تقریبا all تمام BLE آلات میں کلاسک بلوٹوت فعالیت کا وابستہ ہوتا ہے۔ ایچ سی -05 جیسے ماڈیولز میں استعمال ہونے والا بلوٹوتھ کلاسیکی بلوٹوتھ کا ایک ورژن ہے جسے بلوٹوتھ ایس ایس پی (سیریل پورٹ پروٹوکول) کہا جاتا ہے ، یعنی بلوٹوتھ معیاری سیریل پروٹوکول کی پیروی کرتا ہے جس کی وجہ سے زیادہ ہیڈ کے بغیر ڈیٹا بھیجنا اور وصول کرنا آسان ہوجاتا ہے۔ اس ٹیوٹوریل کے آخر میں ہم ESP32 میں سیریل بلوٹوت فعالیت کو استعمال کرنے کا طریقہ سیکھیں گے۔
یہاں اس آرٹیکل میں ہم ESP32 پر سیریل بلوٹوت فنکشن کا استعمال اسے اسمارٹ فون کے ساتھ جوڑنے اور ESP32 کو کمانڈ بھیجنے اور اسی کے مطابق بورڈ ایل ای ڈی کو ٹوگل کرنے کے لئے پلے اسٹور سے موجود کوئی بلوٹوتھ ٹرمینل ایپ استعمال کریں گے۔
بعد کے مضامین میں ہم سرور کے ساتھ ساتھ موکل کے طور پر ESP32 BLE کا احاطہ کریں گے۔ BLE سرور عام طور پر BLE ڈیٹا دوسرے بلوٹوتھ ڈیوائسز کو بھیجنے کے لئے استعمال ہوتا ہے اور BLE کلائنٹ دوسرے BLE ڈیوائسز کو اسکین کرنے کے لئے استعمال ہوتا ہے اس طرح بیکن کی طرح کام کرتا ہے۔
ESP32 کے لئے آرڈینوو IDE کی تیاری
نوٹ کریں کہ ڈیفالٹ کے لحاظ سے آرڈینوو IDE ESP32 بورڈ کی حمایت نہیں کرتا ہے۔ آپ کو بورڈ مینیجر کا استعمال کرکے ان کو ڈاؤن لوڈ اور انسٹال کرنا ہوگا۔ اگر یہ ای ایس پی 32 کے ساتھ آپ کا پہلا پروگرام ہے تو پھر اپنے ابتدائینو میں ESP32 بورڈ شامل کرنے اور ٹیسٹ خاکہ اپ لوڈ کرنے کے لئے اس شروع ٹیوٹوریل کی پیروی کریں۔
مزید یہ کہ ، آپ ای ایس پی 32 کے ساتھ مزید پروجیکٹس بناسکتے ہیں ، بغیر کسی مائکروکنٹرولر کا استعمال کیے۔
ای ایس پی 32 کے لئے سیریل بلوٹوتھ پروگرام
ESP32 بلوٹوتھ کا استعمال کرتے ہوئے ایل ای ڈی کو تبدیل کرنے کا مکمل پروگرام اس صفحے کے آخر میں دیا گیا ہے۔ اس عنوان کے تحت ، کوڈ کو چھوٹے ٹکڑوں میں توڑنے دیں اور انہیں سمجھنے کی کوشش کریں۔ اگر آپ پہلے ہی HC-05 جیسے دیگر بلوٹوتھ ماڈیول استعمال کر چکے ہیں تو آپ کو یہ ESP32 بلوٹوت کلاسیکی مثال پروگرام بہت ملتا جلتا نظر آئے گا۔
پروگرام کا خیال یہ ہے کہ ESP32 کا استعمال کرتے ہوئے سیریل بلوٹوتھ کنیکشن شروع کریں اور جوڑی والے آلات سے ڈیٹا سنیں ۔ اگر آنے والا ڈیٹا '1' ہے تو ہم ایل ای ڈی کو آن کرتے ہیں اور اگر '0' ہے تو ہمیں ایل ای ڈی بند کردینا چاہئے۔ ہم ہیڈر فائل کا اضافہ کر کے ہمارے پروگرام شروع BluetoothSerial Bluetoth ایس ایس پی کے طور پر کام کرنے ESP32 بلوٹوت ہوتا ہے.
# "بلوٹوتھیرل ہچ" شامل کریں // سیریل بلوٹوتھ کے لئے ہیڈر فائل کو ، ڈیفالٹ کے ذریعہ اردوینو میں شامل کیا جائے گا
اس لائبریری کے پیچھے بہت ساری چیزیں چل رہی ہیں ، لیکن ہم نے چیزوں کو آسان رکھنے کے ل deep اس میں گہرائی میں نہ جانے کا انتخاب کیا۔ اگلی چیز جس کی ہمیں ضرورت ہے وہ ہمارے بلوٹوتھ سے متعلقہ کارروائیوں کا ایک مقصد ہے ۔ یہاں میں نے میرا نام ESP_BT رکھا ہے ، لیکن آپ کوئی بھی نام منتخب کرسکتے ہیں۔
بلوٹوتریل ای ایس پی_ بی ٹی؛ // بلوٹوتھ کے لئے آبجیکٹ
اگلا ، باطل سیٹ اپ () فنکشن کے اندر ۔ ہم سیریل مواصلات باڈ ریٹ 9600 کے ساتھ شروع کرتے ہیں اور بلوٹوتھ سگنل کو نام کے ساتھ شروع کرتے ہیں ۔ یہاں میں نے اسے "ESP32_LED_Control " کے نام سے موسوم کیا ہے ، یہ نام ہوگا جو جوڑ بنانے کی کوشش کرتے وقت ہمارے فون سے مل جائے گا۔ آخر کار میں نے اندرونی ساختہ ایل ای ڈی پن کو آؤٹ پٹ پن کے طور پر اعلان کیا ہے کیونکہ ہم بلوٹوتھ سگنل کی بنیاد پر اسے ٹوگل کرنے جارہے ہیں۔
باطل سیٹ اپ () { سیریل.بیگین (9600)؛ // 9600 ESP_BT.begin ("ESP32_LED_Control") میں سیریل مانیٹر شروع کریں ؛ // آپ کے بلوٹوتھ سگنل سیریل کا نام۔ پرنٹلن ("بلوٹوتھ ڈیوائس جوڑا تیار ہے")؛ پن موڈ (ایل ای ڈی_بلٹن ، آؤٹ پٹ)؛ // بتائیں کہ ایل ای ڈی پن آؤٹ پٹ ہے }
لامحدود باطل لوپ فنکشن کے اندر ، ہم چیک کرتے ہیں کہ آیا بلوٹوتھ ماڈیول سے کوئی ڈیٹا آنے والا ہے ، اگر ہاں تو پھر ڈیٹا پڑھ کر متغیر آنے والی جگہ میں اسٹور کیا جاتا ہے ۔ ہم یہ قدر صرف سیریل مانیٹر پر بھی چھاپتے ہیں تاکہ چیک کریں کہ آرڈینو کے ذریعہ کیا موصول ہورہا ہے۔
if (ESP_BT.available ()) // چیک کریں کہ آیا ہمیں بلوٹوتھ سے کچھ موصول ہوا ہے { آنے والی = ESP_BT.read ()؛ // پڑھیں جو ہم سیریل وصول کرتے ہیں۔ پرنٹ ("موصول ہوا:")؛ سیریل.پرنٹلن (آنے والا)؛
اب ، جو بھی ڈیٹا موصول ہوتا ہے وہ متغیر آنے والے میں محفوظ ہوجاتا ہے ، لہذا ہم اس متغیر کا براہ راست متوقع قیمت سے موازنہ کرسکیں اور مطلوبہ عمل انجام دے سکیں۔ لیکن بلوٹوتھ سے بھیجی گئی قیمت چار فارم میں ہوگی اور اڑدوینو اس چارٹ کی اعشاریہ قیمت پڑھیں گی جو فون سے بھیجی جارہی ہے۔ ہمارے معاملے میں چار '0' کے لئے اعشاریہ 48 اور چار '1' کے لئے اعشاریہ 49 کی قیمت ہوگی۔ آپ یہ سمجھنے کے لئے ASCII چارٹ کا حوالہ دے سکتے ہیں کہ ہر کردار کی اعشاریہ قیمت کیا ہوگی۔
یہاں ہم نے آنے والے متغیر کا موازنہ 48 اور 49 سے کیا ہے تاکہ بالترتیب 0 اور 1 کی جانچ ہوسکے ۔ اگر یہ 1 ہے تو ہم ایل ای ڈی کو بند کردیتے ہیں اور بلوٹوتھ پر یہ کہتے ہوئے ایک تصدیقی پیغام بھی چھاپتے ہیں کہ ایل ای ڈی بند ہے اور اس کے برعکس 0 ہے۔
اگر (آنے والی == 49) { ڈیجیٹل رائٹ (ایل ای ڈی_بلٹن ، ہائی)؛ ESP_BT.println ("ایل ای ڈی کو آن کیا")؛ } if (آنے والی == 48) { ڈیجیٹل رائٹ (LED_BUILTIN ، LOW)؛ ESP_BT.println ("ایل ای ڈی بند")؛ }
ای ایس پی 32 کے ساتھ سیریل بلوٹوتھ کی جانچ ہو رہی ہے
اپنے ESP کو اپنے اردوینو IDE سے مربوط کریں اور ٹیوٹوریل شروع کرنے کے سلسلے میں مباحثہ کے مطابق صحیح بورڈ اور پورٹ کو منتخب کریں۔ یہ ایک 3 ہے RD پارٹی بورڈ مینیجر یہ کوڈ مرتب کی اور اپ لوڈ کیا حاصل کرنے کے لئے تھوڑا سا زیادہ وقت لگ سکتا ہے. ایک بار اپ لوڈ ہونے پر سیریل مانیٹر (صرف ڈیبگنگ کے ل)) لانچ کریں اور اپنے فون پر بلوٹوتھ کی ترتیب کھولیں۔ آپ کو ایک بلوٹوتھ ڈیوائس تلاش کرنا چاہئے جس کا نام ESP32_LED_Control جوڑ ہے۔
اب آپ اپنے اسمارٹ فون پر کوئی بلوٹوتھ ٹرمینل ایپ کھول سکتے ہیں ، میں "بلوٹوتھ ٹرمینل" نامی ایک استعمال کر رہا ہوں جو گوگل ایپ اسٹور سے ڈاؤن لوڈ کیا گیا تھا۔ بلوٹوتھ ایپلی کیشن کو اس آلے سے مربوط کریں جس کی ہم نے ابھی جوڑا بنایا ہے اور 1 ٹائپ کریں اور بھیجیں دبائیں۔
ESP32 ماڈیول کو یہ وصول کرنا چاہئے اور ہمارے پروگرام کے مطابق ایل ای ڈی کو آن کرنا چاہئے اور یہ بھی بتائے کہ ایل ای ڈی کو آن اسکرین شاٹ کی طرح آن کردیا گیا ہے ۔ آپ سیریل مانیٹر کو بھی چیک کرسکتے ہیں جس میں وہ اعداد و شمار دکھائے گا جو ESP32 بلوٹوتھ کو اعشاریہ شکل میں مل رہا ہے جو آپ کا اردوینو 48 کے لئے 0 اور 49 کو 1 پر پڑھے گا جیسا کہ پہلے بتایا گیا ہے۔ میری ٹرمینل ونڈو کا سنیپ شاٹ نیچے دکھایا گیا ہے۔
اسی طرح ، آپ کو بھی موبائل ایپلی کیشن سے 0 بھیج کر ایل ای ڈی کو بند کرنے کے قابل ہونا چاہئے۔ مکمل کام نیچے ویڈیو میں دکھایا گیا ہے ۔ امید ہے کہ آپ ٹیوٹوریل کو سمجھ گئے ہوں گے اور کچھ مفید سیکھیں گے۔ اگر آپ کو کوئی شبہ ہے تو وہ آزادانہ طور پر انھیں ذیل میں تبصرہ سیکشن میں چھوڑ دیں یا دیگر تکنیکی مدد کے لئے ہمارے فورمز کا استعمال کریں۔