- ضرورت سے پہلے کی چیزیں
- ضروری سامان
- ہارڈ ویئر
- سرور کا اپنا بلوٹوتھ ایڈریس (فٹنس بینڈ کا پتہ) حاصل کریں
- سرور اور سروس کی خصوصیت سے متعلق UID حاصل کرنا
- قربت سوئچ ایپلی کیشن کے مؤکل کی حیثیت سے کام کرنے کے لئے ESP32 پروگرامنگ
- ورکنگ اور ٹیسٹنگ
گھر میں داخل ہوتے ہی خود بخود لائٹس کو چالو کرنا اور آپ کے جانے کے بعد اسے دوبارہ آف کرنا کتنا ٹھنڈا ہوگا! ہاں ، ایک آسان درخواست آپ کے ل. کر سکتی ہے۔ یہاں اس پروجیکٹ میں ، ہم BLE سرور کے بطور BLE کلائنٹ اور فٹنس بینڈ ESP32 کا استعمال کریں گے ، لہذا جب بھی فٹنس بینڈ پہنے ہوئے کوئی شخص ESP32 بلوٹوتھ کی حد میں آتا ہے ، ESP32 نے اسے پکڑ لیا اور لائٹ آن کریں۔ کوئی بھی بلوٹوتھ ڈیوائس جس میں BLE سرور کی صلاحیتیں ہیں وہ ESP32 کا استعمال کرتے ہوئے کسی بھی گھریلو آلات کو کنٹرول کرنے کے لئے ٹرگر ڈیوائس کے طور پر استعمال ہوسکتے ہیں ۔
ہم نے پہلے ہی ESP32 ماڈیول کی BLE (بلوٹوت لو انرجی) کی خصوصیات کی کھوج کی ہے اور میں اس سے بہت پرجوش ہوں۔ ایک recap دینے کے لئے ، اس ماڈیول میں کلاسک بلوٹوتھ اور بلوٹوتھ لو لو انرجی (BLE) دونوں شامل ہیں ، کلاسیکی بلوٹوتھ کو گانے یا فائلوں کی منتقلی کے لئے استعمال کیا جاسکتا ہے اور BLE آپشن بیٹری کی مرضی کے مطابق ایپلی کیشنز جیسے بلوٹوتھ بیکنز ، فٹنس بینڈ ، قربت کے لئے استعمال کیا جاسکتا ہے ، وغیرہ۔ آسان مائکرو قابو پانے والے منصوبوں کے لئے HC-05 یا HC-06 ماڈیولز جیسے سیریل بلوٹوتھ کے طور پر بھی استعمال کرنا ممکن ہے۔
جیسا کہ آپ جانتے ہیں کہ ESP32 BLE دو مختلف طریقوں سے کام کرسکتا ہے۔ ایک سرور موڈ ہے جس کی بیٹری لیول انڈیکیٹر سروس کو نقل کرنے کے لئے ہم نے GATT سروس کو بروئے کار لا کر بات کی ہے۔ اس مشق میں ، ESP32 نے سرور کی حیثیت سے کام کیا اور ہمارے موبائل فون نے ایک مؤکل کی حیثیت سے کام کیا۔ اب ، آئیے ESP32 کو بطور کلینٹ چلائیں اور اسے دوسرے BLE سرورز جیسے میرے فٹنس بینڈ سے مربوط کرنے کی کوشش کریں ۔
میرے فٹنس بینڈ سمیت تمام BLE سرور مستقل اشتہاری موڈ میں ہیں وہ یہ ہے کہ جب کسی موکل کے ذریعہ اسکین کیا جاتا ہے تو وہ ہمیشہ دریافت ہوسکتے ہیں۔ اس خصوصیت کا فائدہ اٹھاتے ہوئے ہم ان فٹنس بینڈ کو قربت سوئچ کے بطور استعمال کرسکتے ہیں ، یعنی یہ فٹنس بینڈ ہمیشہ صارف کے ہاتھ سے بندھے ہوئے ہیں اور بینڈ کے لئے اسکین کرکے ہم یہ معلوم کرسکتے ہیں کہ آیا فرد حد کے اندر ہے یا نہیں۔ اس مضمون میں ہم بالکل ایسا ہی کرنے جارہے ہیں۔ ہم ESP32 کو BLE مؤکل کی حیثیت سے کام کرنے اور BLE ڈیوائسز کی اسکیننگ جاری رکھنے کا پروگرام بنائیں گے ۔ اگر ہمیں فٹنس بینڈ رینج میں مل جاتا ہے تو ہم اس سے رابطہ قائم کرنے کی کوشش کریں گے اور اگر یہ کنکشن کامیاب ہے تو ہم ESP32 پر GPIO پنوں میں سے کسی ایک کو ٹوگل کرکے لائٹ بلب کو متحرک کرسکتے ہیں ۔ طریقہ قابل اعتماد ہے کیونکہ ہر BLE سرور ہے(فٹنس بینڈ) کے پاس ایک انوکھا ہارڈویئر ID ہوگا لہذا کوئی دو BLE سرور آلات ایک جیسے نہیں ہوں گے۔ دلچسپ ہے نا؟ !!! اب ، عمارت بنائیں
ضرورت سے پہلے کی چیزیں
اس مضمون میں ، میں فرض کرتا ہوں کہ آپ ESP32 بورڈ ESP32 سبق کے ساتھ شروع کرنے میں پیچھے نہیں گرتے ہیں تو ، ارڈوینو IDE کے ساتھ ESP32 بورڈ کو کس طرح استعمال کریں اس کے بارے میں آپ پہلے ہی واقف ہیں۔
ہم نے سمجھنے میں آسانی کے لئے مکمل ESP32 بلوٹوتھ کو تین حصوں میں تقسیم کیا ہے۔ لہذا اس سے شروع کرنے سے پہلے پہلے دو سبق حاصل کرنے کی سفارش کی جاتی ہے۔
- موبائل فون سے ESP32 ٹوگلنگ ایل ای ڈی پر سیریل بلوٹوتھ
- BLE سرور GATT سروس کا استعمال کرتے ہوئے موبائل فون پر بیٹری لیول کا ڈیٹا بھیجنے کے لئے
- BLE مؤکل BLE آلات کے لئے اسکین کریں اور ایک بیکن کی طرح کام کریں۔
ہم پہلے ہی سبق آموز پہلے دو سبقوں کا احاطہ کر چکے ہیں ، یہاں ہم ESP32 کو BLE مؤکل کی حیثیت سے بیان کرنے کے لئے آخری ایک کے ساتھ آگے بڑھ رہے ہیں۔
ضروری سامان
- ای ایس پی 32 ڈویلپمنٹ بورڈ
- AC بوجھ (چراغ)
- ریلے ماڈیول
ہارڈ ویئر
اس ESP32 BLE کلائنٹ پروجیکٹ کے لئے ہارڈ ویئر بہت سادہ ہے کیونکہ زیادہ تر جادو کوڈ کے اندر ہوتا ہے۔ جب بلوٹوتھ سگنل دریافت ہوتا ہے یا گم ہو جاتا ہے تو ESP32 کو AC لیمپ (لوڈ) ٹوگل کرنا پڑتا ہے۔ اس بوجھ کو بدلنے کے ل we ہم ایک ریلے کا استعمال کریں گے ، اور چونکہ ESP32 کے GPIO پن صرف 3.3V کے مطابق ہیں ہمیں ریلے ماڈیول کی ضرورت ہے جو 3.3V کے ذریعہ چلائی جاسکتی ہے۔ ذرا چیک کریں کہ ریلے ماڈیول میں کیا ٹرانجسٹر استعمال ہوتا ہے اگر یہ BC548 ہے تو آپ بہتر ہیں کہ اپنے سرکٹ کو نیچے سرکٹ ڈایاگرام پر عمل کرکے بنائیں۔
انتباہ: سرکٹ میں براہ راست 220V AC مین وولٹیج کا سودا ہے۔ زندہ تاروں سے محتاط رہیں اور یہ یقینی بنائیں کہ آپ شارٹ سرکٹ نہیں بناتے ہیں۔ آپ کو متنبہ کیا جاتا ہے.
بی سی 574 کو بی سی 547 یا 2 این 2222 پر استعمال کرنے کے پیچھے کی وجہ یہ ہے کہ ان میں کم بیس امیٹر وولٹیج ہے جو صرف 3.3V کے ذریعہ متحرک ہوسکتی ہے۔ یہاں استعمال ہونے والا ریلے ایک 5V ریلے ہے ، لہذا ہم اسے ون پن سے طاقت دیتے ہیں جس سے 5V کی طاقت کیبل بنتی ہے۔ گراؤنڈ پن سرکٹ کی زمین سے جڑا ہوا ہے۔ Resistor کے R1 1K ایک بنیاد موجودہ محدد رزسٹر کے طور پر استعمال کیا جاتا ہے. فیز وائر ریلے کے NO پن سے جڑا ہوا ہے اور ریلے کا کامن پن بوجھ سے منسلک ہے اور بوجھ کا دوسرا سر نیوٹرل سے منسلک ہے۔ آپ فیز اور نیوٹرل کی پوزیشن کو تبدیل کر سکتے ہیں لیکن اس بات کا خیال رکھیں کہ آپ انہیں براہ راست مختصر نہ کریں۔ موجودہ ہمیشہ بوجھ (بلب) سے گزرنا چاہئے ۔میں نے چیزوں کو آسان رکھنے کے لئے ریلے ماڈیول کا استعمال کیا ہے اور یہاں بوجھ ایک فوکس ایل ای ڈی لیمپ ہے۔ میرا سیٹ اپ کچھ اس طرح لگتا ہے
اگر آپ ابھی کے لئے ہارڈ ویئر کو چھوڑنا چاہتے ہیں تو ، آپ ESP32 پر بورڈ ایل ای ڈی کو تبدیل کرنے کے لئے GPIO 13 پن کی بجائے GPIO 2 پن استعمال کرسکتے ہیں۔ اس طریقہ کار کی سفارش نوبت کرنے والوں کے لئے کی جاتی ہے۔
سرور کا اپنا بلوٹوتھ ایڈریس (فٹنس بینڈ کا پتہ) حاصل کریں
جیسا کہ پہلے بتایا گیا ہے کہ ہم ای ایس پی 32 کو کلائنٹ (فون کی طرح) کی حیثیت سے کام کرنے اور ایسے سرور سے منسلک کرنے جا رہے ہیں جو میرا فٹنس بینڈ (لینووو ایچ ڈبلیو 01) ہے۔ کسی کلائنٹ کے لئے سرور سے رابطہ قائم کرنے کے لئے اسے سرور کا بلوٹوتھ پتہ جاننا ہوتا ہے۔ یہاں میرے فٹنس بینڈ کی طرح ہر بلوٹوتھ سرور کا اپنا الگ بلوٹوتھ ایڈریس ہوتا ہے جو مستقل ہے۔ آپ اس کا تعلق اپنے لیپ ٹاپ یا موبائل فون کے میک ایڈریس سے کرسکتے ہیں۔
اس ایڈریس فارم کو حاصل کرنے کے ل we ہم ایپلی کیشن کا استعمال کرتے ہیں جسے این آر ایف کہتے ہیں نورڈک سیمی کنڈکٹرس سے رابطہ کریں جو ہم پہلے ہی اپنے پچھلے سبق کے لئے استعمال کرچکے ہیں۔ یہ آئی او ایس اور اینڈرائیڈ صارفین دونوں کے لئے مفت میں دستیاب ہے۔ آس پاس ڈاؤن لوڈ ، ایپلی کیشن لانچ کریں اور قریب ہی بلوٹوتھ ڈیوائسز کیلئے اسکین کریں۔ ایپلیکیشن میں ان تمام BLE آلات کی فہرست دی جائے گی جو اسے ملتے ہیں۔ میرا نام HW-01 کا نام دیا گیا ہے اس کے نام کے نیچے صرف دیکھو اور آپ کو سرور کا ہارڈ ویئر ایڈریس مل جائے گا جیسا کہ ذیل میں دکھایا گیا ہے۔
تو میرے فٹنس بینڈ کا ESP32 BLE ہارڈویئر ایڈریس C7: F0: 69: F0: 68: 81 ہے ، آپ کو ایک ہی فارمیٹ میں نمبروں کا مختلف سیٹ ہوگا۔ بس اس کا ایک نوٹ بنائیں کیونکہ جب ہم اپنے ESP32 کو پروگرام کریں گے تو ہمیں ضرورت ہوگی۔
سرور اور سروس کی خصوصیت سے متعلق UID حاصل کرنا
ٹھیک ہے ، اب ہم نے BLE ایڈریس کا استعمال کرتے ہوئے اپنے سرور کی نشاندہی کی ہے لیکن اس کے ساتھ بات چیت کرنے کے لئے ہمیں سروس اور خصوصیات کی زبان بولنے کی ضرورت ہے ، جو آپ کو سمجھ آجاتا کہ اگر آپ نے پچھلا سبق پڑھا ہوتا۔ اس ٹیوٹوریل میں میں اپنے سرور کے لکھنے کی خصوصیت (فٹنس بینڈ) کو اس کے ساتھ جوڑنے کے لئے استعمال کر رہا ہوں۔ لہذا اس آلہ کے ساتھ جوڑی بنانے کے لئے ہمیں خدمت کے اشتہار کی خصوصیت یو یو ڈی کی ضرورت ہے جو ہم دوبارہ اسی ایپلی کیشن کے ذریعہ حاصل کرسکتے ہیں۔
بس اپنی درخواست پر کنیکٹ کے بٹن پر کلک کریں اور لکھنے کی کچھ خصوصیات کو تلاش کریں ، جہاں ایپلی کیشن سروس UID اور خصوصیت سے UID دکھائے گی۔ میرا نیچے دکھایا گیا ہے
یہاں میرا سروس یو یو یو ڈی اور خصوصیت پسندی یو یو ڈی ایک جیسا ہے ، لیکن یہ ایک جیسا ہونا ضروری نہیں ہے۔ اپنے سرور کا یو یو ای ڈی نوٹ کریں۔ میرے طور پر نیچے نوٹ کیا گیا تھا
سروس یو یو یو ڈی: 0000فی7-0000-1000-8000-00805f9b34fb خصوصیت UID: 0000fi7-0000-1000-8000-00805f9b34fb
لکھنے کی خصوصیات کو استعمال کرنا لازمی نہیں ہے۔ آپ اطلاق میں دکھائے جانے والے سرور کی کوئی بھی درست سروس اور خصوصیت والا UID استعمال کرسکتے ہیں۔
قربت سوئچ ایپلی کیشن کے مؤکل کی حیثیت سے کام کرنے کے لئے ESP32 پروگرامنگ
پروگرام کا خیال یہ ہے کہ ESP32 کو ایک کلائنٹ کے طور پر کام کرنے کے ل that بنایا جا that جو بلوٹوتھ آلات کی اسکیننگ کرتا رہتا ہے جب اسے ہمارے سرور (فٹنس بینڈ) کا پتہ چلتا ہے جب یہ ہارڈ ویئر کی شناخت کی تصدیق کرتا ہے اور یہ GPIO پن 13 کے ذریعہ روشنی ٹوگل کرے گا۔ ٹھیک ہے ٹھیک ہے! ! ، لیکن اس کے ساتھ ایک مسئلہ ہے۔ تمام BLE سرورز کی حد 10 میٹر ہوگی جو تھوڑا بہت زیادہ ہے۔ لہذا اگر ہم کسی دروازے کی روشنی کو روشنی کے لئے قربت سوئچ بنانے کی کوشش کر رہے ہیں تو یہ حد بہت زیادہ ہے۔
BLE سرور کی حد کو کم کرنے کے ل we ہم جوڑا اختیار کا استعمال کرسکتے ہیں۔ BLE سرور اور مؤکل کی جوڑی صرف اسی صورت میں بنائی جائے گی جب دونوں 3-4 میٹر کے فاصلے پر ہوں۔ یہ ہماری درخواست کے لئے بہترین ہے۔ لہذا ، ہم ESP32 کو نہ صرف BLE سرور دریافت کرنے کے ل make بلکہ اس سے مربوط ہونے کے ل make بھی بناتے ہیں اور یقینی بناتے ہیں کہ اگر یہ جوڑا بنی ہوئی ہے تو۔ جب تک ان کی جوڑی تیار ہوجائے گی AC لیمپ برقرار رہے گا ، جب جوڑی کی حد سے تجاوز ہوجائے گی اور چراغ آف ہوجائے گا ۔ ایسا کرنے کے لئے مکمل ESP32 BLE مثال پروگرام اس صفحے کے آخر میں دیا گیا ہے۔ ذیل میں ، میں اس کوڈ کو چھوٹے ٹکڑوں میں توڑ کر سمجھاؤں گا۔
ہیڈر فائل کو شامل کرنے کے بعد ، ہم ESP32 کو BLE ایڈریس ، سروس اور خصوصیت سے متعلق UID کے بارے میں آگاہ کرتے ہیں جو ہمیں حاصل ہوا ہے حالانکہ مذکورہ بالا عنوانات میں وضاحت کے مطابق NRF کنیکٹ ایپلی کیشن ہے۔ کوڈ نیچے کی طرح لگتا ہے
جامد BLEUUID serviceUUID ("0000fee7-0000-1000-8000-00805f9b34fb")؛ // سروس بینڈ کے فٹنس بینڈ کا این یو ایف کے ذریعے حاصل کیا گیا درخواست مستحکم بلیئڈ چاریوڈ ("0000fee7-0000-1000-8000-00805f9b34fb")؛ // این آر ایف کنیکٹ ایپلی کیشن کے ذریعے حاصل کردہ فٹنس بینڈ کا خصوصیت سے متعلق یو یو ڈو اسٹرنگ My_BLE_Address = "c7: f0: 69: f0: 68: 81"؛ // میرے فٹنس بینڈ کا ہارڈ ویئر بلوٹوتھ میک ، این آر ایف کنیکٹ ایپلی کیشن کے ذریعہ حاصل کردہ ہر بینڈ کے لئے مختلف ہوگا
اس کے بعد اس پروگرام میں ہمارے پاس کنیکٹ ٹوسرور اور مائی ایڈورٹائزڈ ڈیوائس کال بیک موجود ہے جو ہم بعد میں ملیں گے۔ پھر سیٹ اپ فنکشن کے اندر ، ہم سیریل مانیٹر کی ابتدا کرتے ہیں اور ڈیوائس کو اسکین کرنے کے لئے ESP پر BLE بناتے ہیں ۔ اسکین مکمل ہونے کے بعد ہر BLE ڈیوائس نے دریافت کیا فنکشن MyAdvertisedDiviceCallbacks کہا جاتا ہے۔
ہم فعال اسکین کو بھی اہل بناتے ہیں کیونکہ ہم ESP32 کو مینز پاور سے طاقت دے رہے ہیں ، بیٹری کی ایپلی کیشن کیلئے موجودہ کھپت کو کم کرنے کے لئے بند کردیا گیا ہے۔ ریلے ٹرگر پن ہمارے ہارڈ ویئر میں GPIO 13 سے منسلک ہے ، لہذا ہم یہ بھی اعلان کرتے ہیں کہ GPIO پن 13 کو آؤٹ پٹ کے طور پر۔
باطل سیٹ اپ () { سیریل.بیگین (115200)؛ // سیریل مانیٹر اسٹارٹ Serial.println ("ESP32 BLE سرور پروگرام")؛ // انٹرو پیغام BLEDevice:: init ("")؛ pBLEScan = BLEDevice:: getScan ()؛ // new اسکین بنائیں pBLEScan-> setAdvertisedDiviceCallbacks (new MyAdvertisedDiviceCallbacks ())؛ // pBLEScan-> setActiveScan (سچ) سے اوپر بیان شدہ کلاس کو کال کریں ۔ // فعال اسکین زیادہ طاقت کا استعمال کرتا ہے ، لیکن تیزی سے نتائج حاصل کریں پن موڈ (13 ، آؤٹ پٹ)؛ // اندرونی ساختہ ایل ای ڈی پن کو آؤٹ پٹ کے طور پر اعلان کریں }
مائی ایڈورٹائزڈ ڈیوائسکیل بیکس فنکشن کے اندر ، ہم لائن پرنٹ کرتے ہیں جس میں BLE ڈیوائسز کے نام اور دیگر معلومات کی فہرست دی جائے گی جو دریافت ہوئے تھے۔ ہمیں دریافت شدہ BLE ڈیوائس کی ہارڈ ویئر ID کی ضرورت ہے تاکہ ہم اس کا موازنہ مطلوبہ سے کرسکیں۔ لہذا ہم متغیر سرور_بلے_ایڈریس کا استعمال کرتے ہوئے آلہ کا پتہ حاصل کرتے ہیں اور پھر اسے BLEAddress قسم سے سٹرنگ میں تبدیل کرنے کے ل. بھی۔
کلاس MyAdvertisedDeviceCallbacks: عوامی BLEAdvertisedDeviceCallbacks { باطل onResult (BLEAdvertisedDevice advertisedDevice) { Serial.printf:؛ ("اسکین نتیجہ٪ s ہے \ n"، advertisedDevice.toString () c_str ().) سرور_بلے_ایڈریس = نیا BLEAddress (ایڈورٹائزڈ ڈیوائس.بیٹ ایڈریس ())؛ اسکین شدہ_بیلی_ایڈریس = سرور_بیلی_ایڈریس-> ٹاسٹرنگ (). c_str ()؛ } }؛
لوپ فنکشن کے اندر ، ہم 3 سیکنڈ کے لئے اسکین کرتے ہیں اور اس کا نتیجہ فاؤنڈیشنس کے اندر ڈال دیتے ہیں جو BLEScanResults کی طرف سے ایک شے ہے۔ اگر ہمیں سکیننگ کے ذریعہ ایک یا ایک سے زیادہ ڈیوائس مل جاتی ہے تو ، ہم یہ چیک کرنا شروع کرتے ہیں کہ آیا دریافت شدہ BLE ایڈریس اس پروگرام سے میل کھاتا ہے جو ہم نے پروگرام میں داخل کیا ہے۔ اگر میچ مثبت ہے اور ڈیوائس کی جوڑی نہیں بنائی گئی ہے تو ہم کنیکٹوٹسرور فنکشن کا استعمال کرکے اس سے جدا کرنے کی کوشش کرتے ہیں۔ ہم نے مقصد کے سمجھنے کے لئے کچھ سیریل بیانات بھی استعمال کیے ہیں۔
جبکہ (foundDevices.getCount ()> = 1) { if (Scaned_BLE_Address == My_BLE_Address && جوڑی == جھوٹی) { Serial.println ("ڈیوائس ملا: -)… بطور موکل سرور سے منسلک")؛ اگر (متصل ٹوسرور (* سرور_بی ایل ای_ ایڈریس)) {
کنیکٹوٹسرور فنکشن کے اندر ہم BLE سرور (فٹنس بینڈ) کے ساتھ جوڑا بنانے کیلئے UID کا استعمال کرتے ہیں ۔ سرور سے مربوط ہونے کے لئے ، ESP32 کو ایک مؤکل کی حیثیت سے کام کرنا ہوگا ، لہذا ہم createClient () فنکشن کا استعمال کرکے ایک کلائنٹ بناتے ہیں اور پھر BLE سرور کے پتے سے رابطہ قائم کرتے ہیں۔ پھر ہم UID اقدار کا استعمال کرتے ہوئے خدمت اور خصوصیت کو تلاش کرتے ہیں اور اس سے رابطہ قائم کرنے کی کوشش کرتے ہیں۔ جب کنکشن کامیاب ہوجاتا ہے تو فنکشن ایک سچائی لوٹاتا ہے اور اگر نہیں تو یہ جھوٹ واپس کرتا ہے۔ نوٹ کریں کہ سرور کے ساتھ جوڑا جوڑنے کے لئے خدمت اور خصوصیت والا UID ہونا لازمی نہیں ہے ، یہ صرف آپ کی سمجھ بوجھ کے ل is کیا جاتا ہے۔
بول کنیکٹٹوسور (BLEAddress pAddress) { BLEClient * pClient = BLEDevice:: createClient ()؛ سیریل.پرنٹلن ("- تخلیق کردہ مؤکل")؛ // BLE سرور سے جڑیں۔ pClient-> कनेक्ट (pAdress)؛ سیریل.پرنٹلن ("- فٹنس بینڈ سے منسلک")؛ // ریموٹ BLE سرور میں ہمارے بعد کی خدمت کا حوالہ حاصل کریں۔ BLERemoteService * pRemoteS सर्विस = pClient-> getService (serviceUUID)؛ if (pRemoteService! = nullptr) { Serial.println ("- ہماری خدمت ملا")؛ سچ لوٹنا؛ } ورنہ واپسی جھوٹے؛ // ریموٹ BLE سرور کی خدمت میں خصوصیت کا حوالہ حاصل کریں۔ pRemoteCharacteristic = pRemoteService->getCharacteristic (charUID)؛ if (pRemoteCharacteristic! = nullptr) Serial.println ("- ہماری خصوصیات ملا")؛ سچ واپس لو؛ }
اگر کنکشن کامیاب ہے تو GPIO پن 13 کو اونچا کردیا جاتا ہے اور بریک اسٹیٹمنٹ کو استعمال کرکے کنٹرول لوپ کے باہر بھیجا جاتا ہے۔ بولین متغیر جوڑا بھی درست ثابت ہوا ہے۔
اگر (connectToserver (* Server_BLE_Address)) { جوڑ بنانے سچا =؛ سیریل.پرنٹلن ("******************** ایل ای ڈی آن ********************** ** ")؛ ڈیجیٹل رائٹ (13 ، ہائی)؛ توڑ }
جوڑی کامیاب ہونے کے بعد اور GPIO پن آن ہونے کے بعد ہمیں یہ چیک کرنا ہوگا کہ آیا ابھی بھی ڈیوائس رینج میں ہے یا نہیں۔ چونکہ ، اب یہ آلہ جوڑا ہے ، BLE اسکین سروس اب اسے دیکھنے کے قابل نہیں ہوگی۔ ہمیں اسے تبھی ملے گا جب صارف علاقے سے نکل جائے گا۔ لہذا ہمیں صرف BLE سرور کے لئے اسکین کرنا پڑتا ہے اور اگر ہمیں پتہ چلتا ہے کہ ہمیں GPIO پن نیچے رکھنا ہے جیسا کہ ذیل میں دکھایا گیا ہے۔
(Scaned_BLE_Address == My_BLE_Address && جوڑا لگے ہوئے == صحیح) اگر { سیریل. پرنٹ ایلن ("ہمارا آلہ رینج سے باہر ہو گیا")؛ جوڑا = غلط؛ سیریل پرنٹلن ("******************** ایل ای ڈی او او ایف ایف ایف ایف ************************")؛ ڈیجیٹل رائٹ (13 ، کم)؛ ESP.restart ()؛ توڑ }
ورکنگ اور ٹیسٹنگ
ایک بار جب آپ پروگرام اور ہارڈ ویئر سیٹ اپ کے ساتھ تیار ہوجائیں تو ، ESP32 پر کوڈ اپلوڈ کریں اور نیچے دیئے گئے پورے سیٹ اپ کا بندوبست کریں۔
آپ کو ESP32 کے ساتھ فٹنس بینڈ (سرور) کے جوڑ جوڑ ہوتے ہی لیمپ کو آن ہونے کا نوٹس دیکھنا چاہئے ۔ آپ فٹنس بینڈ پر کنکشن بلوٹوتھ کی علامت کو دیکھ کر بھی اس کی جانچ کر سکتے ہیں۔ ایک بار جوڑا بنانے کے بعد صرف ESP32 سے دور چلنے کی کوشش کریں اور جب آپ 3-4- cross میٹر کو عبور کریں گے تو آپ دیکھیں گے کہ گھڑی کا بلوٹوتھ علامت غائب ہو گیا ہے اور کنکشن کھو گیا ہے۔ اب ، اگر آپ چراغ کو دیکھیں گے تو اسے آف کر دیا جائے گا۔ جب آپ آلہ میں واپس چلتے ہیں تو دوبارہ جوڑا لگ جاتا ہے اور لائٹ آن ہوجاتی ہے۔ پروجیکٹ کا مکمل کام نیچے دی گئی ویڈیو میں پایا جاسکتا ہے۔
امید ہے کہ آپ نے پروجیکٹ سے لطف اندوز ہوئے ہوں گے اور راستے میں کچھ نیا سیکھا ہوگا۔ اگر آپ کو اس کے کام کرنے میں کوئی پریشانی کا سامنا کرنا پڑا تو ، بلا جھجھک اس فورم کو یا نیچے تبصرہ والے حصے پر بھی پوسٹ کریں