- BLE (بلوٹوتھ لو توانائی) سے متعلق اصطلاحات
- ہارڈ ویئر کی تیاری
- GATT سروس کا استعمال کرتے ہوئے بیٹری لیول اشارے کیلئے پروگرامنگ ESP32
- ESP32 BLE پر اپنی GATT سروس کی جانچ کر رہا ہے
وائرلیس ہیڈ فون ، فٹنس بینڈ ، بلوٹوت اسپیکر ، کان میں ہیڈ فون ، موبائل فون ، لیپ ٹاپ… ہمارے آس پاس بہت سارے بلوٹوتھ ڈیوائسز موجود ہیں اور ان میں سے بیشتر بیٹریوں سے چلنے والے ہیں۔ کیا آپ نے کبھی سوچا ہے کہ ، جب آپ بلوٹوتھ ڈیوائس کو اپنے موبائل فون سے مربوط کرتے ہیں تو یہ خود بخود کیسے سمجھ جاتا ہے کہ منسلک ڈیوائس کمپیوٹر یا آڈیو ڈیوائس یا موبائل فون ہے؟ کچھ آلات کے ل our ہمارا فون نوٹیفیکیشن بار پر منسلک ڈیوائس کی بیٹری فیصد بھی خود بخود ظاہر کرتا ہے۔ یہ سب خود ہی کیسے ہوتا ہے؟ فون اور بلوٹوتھ ڈیوائس کے مابین کچھ مشترکہ پروٹوکول مشترکہ ہونا چاہئے!
دلچسپ رہیں ، جب آپ مقبول ESP32 ماڈیول کے ساتھ بلوٹوتھ لو انرجی (مختصر طور پر BLE) کو سمجھنے کی کوشش کریں گے تو آپ کو ان سوالات کے جوابات ملیں گے ۔ ESP32 میں کلاسیکی بلوٹوت کے برخلاف BLE صرف تب چلتا ہے جب مواصلات چالو ہوجاتے ہیں اور نیند کے موڈ میں رہتے ہیں بصورت دیگر ، اس سے یہ بیٹری سے چلنے والے ایپلی کیشنز کا انتخاب کرتا ہے۔ BLE میش نیٹ ورکس بھی تشکیل دے سکتا ہے اور بیکنز کی طرح بھی کام کرسکتا ہے۔ عام طور پر ایک BLE ماڈیول یا تو سرور کے طور پر یا کلائنٹ کے طور پر کام کرتا ہے ، یہاں ہم ESP32 BLE کو بطور سرور استعمال کریں گے۔
یہاں ہم نے سمجھنے میں آسانی کے ل complete مکمل ESP32 بلوٹوتھ کو تین حصوں میں تقسیم کیا ہے۔
1. موبائل فون سے ESP32 ٹوگلنگ ایل ای ڈی پر سیریل بلوٹوتھ
2 . BLE سرور GATT سروس کا استعمال کرتے ہوئے موبائل فون پر بیٹری لیول کا ڈیٹا بھیجنے کے لئے
3. BLE کلائنٹ BLE آلات کے لئے اسکین کریں اور بیکن کے طور پر کام کریں۔
ہم پہلے ہی مضمون کو شامل کر چکے ہیں۔ اس مضمون میں ہم سیکھیں گے کہ ESP32 BLE کو سرور کے طور پر کام کرنے کے ل make اور بیٹری کی سطح کی معلومات بھیجنے کے لئے GATT سروس کا استعمال کیسے کریں ۔ جانچ کے مقصد کے لئے ، ہم ESP32 سے ہارڈ کوڈ شدہ اقدار کو BLE GATT سروس کے ذریعہ اپنے موبائل فون پر بیٹری فیصد کے طور پر بھیجیں گے ، اس طرح ہمارا موبائل یہ سمجھے گا کہ ESP32 ایک بیٹری سے چلنے والا بلوٹوتھ ڈیوائس ہے جو اپنی بیٹری کی فیصد کو بھیجنے کی کوشش کر رہا ہے۔ تفصیل میں جانے سے پہلے ہم بلوٹوتھ لو کم توانائی سے متعلق کچھ اصطلاحات کو کم کردیں گے۔
BLE (بلوٹوتھ لو توانائی) سے متعلق اصطلاحات
BLE سرور: جیسا کہ پہلے بتایا گیا ہے کہ BLE کو بطور سرور یا ایک مؤکل کی حیثیت سے کام کرنے کا پروگرام بنایا جاسکتا ہے۔ جب سرور کے طور پر کام کرتے ہو تو BLE صرف ڈیٹا مہیا کرسکتا ہے وہ کنکشن شروع نہیں کرسکتا۔ مثال کے طور پر فٹنس بینڈ ہوگا۔ سرور صرف اس وقت معلومات بھیج سکتا ہے جب مؤکل اس کے لئے درخواست کرے۔
عام طور پر ESP32 کا BLE سرور استعمال ہوتا ہے۔ ہر سرور کے اندر ایک یا ایک سے زیادہ سروس ہوگی اور اسی طرح ہر خدمت میں اس سے وابستہ ایک یا زیادہ خصوصیات ہوں گی۔ ایک خصوصیت اس کے اندر صفر ہوسکتی ہے ، ایک یا ایک سے زیادہ ڈسکرپٹر۔ ہر خدمت ، خصوصیت یا ڈسکرپٹر کی اپنی ایک پہلے سے طے شدہ انوکھی ID ہوگی جسے UUD کہا جاتا ہے۔
BLE کلائنٹ: موکل اسکرین کر سکتے ہیں اور بلوٹوتھ کے دیگر آلات کو سن سکتے ہیں۔ ایک مثال آپ کا موبائل فون ہوگا۔ نوٹ کریں کہ بی ایل ای کے بیشتر ہارڈویئر آلات سرور اور کلائنٹ کے طور پر کام کرسکتے ہیں ، یہ ایسا سافٹ ویئر ہے جو آلہ کے کردار کا فیصلہ کرتا ہے۔
پیریفرل ڈیوائس / سنٹرل ڈیوائس: BLE نیٹ ورک میں صرف ایک سنٹرل ڈیوائس ہوسکتی ہے ، لیکن ضرورت کے مطابق اس میں زیادہ سے زیادہ پیریفرل ڈیوائسز ہوسکتی ہیں۔ سنٹرل ڈیوائس بیک وقت تمام پردیی آلات سے منسلک ہوسکتی ہے ، لیکن پردیی آلہ صرف سینٹرل ڈیوائس سے ہی جڑ سکتا ہے ، اس طرح کوئی دو پردیی آلہ ایک دوسرے کے ساتھ ڈیٹا شیئر نہیں کرسکتا ہے۔ سنٹرل ڈیوائس کے لئے ایک عمدہ مثال ہمارے سمارٹ فون ہوں گے اور پیریفرل ڈیوائس کے لئے ہمارے بلوٹوت ایئر فون یا فٹنس بینڈ ہوں گے۔
BLE ایڈورٹائزنگ: ایک BLE ایڈورٹائزنگ ایک مضحکہ خیز اصطلاح ہے جو بلوٹوتھ ڈیوائس کو سب کے لئے مرئی ہونے کی ہدایت کرتی ہے تاکہ یہ جوڑا جوڑ کر اور کنیکشن قائم کرسکے ۔یہ ایک طرفہ مواصلات کے طور پر سمجھا جاسکتا ہے۔ یہاں سرور ایڈورٹائزنگ ڈیٹا کو جاری رکھتا ہے جس کی توقع میں اسے سرور ملتا ہے۔ BLE بیکن BLE کی ایک قسم ہے۔
یو یو ای ڈی (یونیورسل انوکھا شناخت کنندہ): جب پروگرامر کے ذریعہ پروگرام کیا جاتا ہے تو ہر BLE بلوٹوتھ ڈیوائس کو یونیورسل منفرد شناخت کنندہ نمبر دیا جاتا ہے۔ آپ اس شناخت کنندہ کو نمبروں کی ترتیب کے طور پر سوچ سکتے ہیں جو BLE آلہ کی فعالیت / کردار کی نمائندگی کرتا ہے۔ ایک بار پھر UID کی دو قسمیں ہیں۔ ایک سروس یو یو یو ہے اور دوسرا خصوصیات یو یو یو ۔
جی اے ٹی ٹی سروس: جی اے ٹی ٹی کا مطلب ہے جینیریک اٹریبیٹ پروفائل؛ اس سے کچھ معیاری طریقوں کی وضاحت ہوتی ہے جس کا استعمال کرتے ہوئے دو BLE ڈیوائسز کو ہمیشہ بات چیت کرنی چاہئے۔ یہ اٹریبیٹ (اے ٹی ٹی) پروٹوکول پہلے سے طے شدہ ہے اور تمام BLE ڈیوائسز کے لئے عام ہے لہذا اس طرح سے کوئی بھی دو BLE ڈیوائس ایک دوسرے کو شناخت کرسکتے ہیں۔ تو GATT ہمارے پچھلے سوال کا جواب تھا۔
جس تکنیک کا استعمال کرتے ہوئے دو BLE ڈیوائس کو آگے اور آگے ڈیٹا بھیجنا چاہئے اس کی تعریف خدمات اور خصوصیات کے نام سے ہوتی ہے۔
BLE سروس / BLE کی خصوصیت: سروس UID ہمیں بتاتا ہے کہ BLE آلہ کس قسم کی خدمت انجام دے رہا ہے اور خصوصیت کا UID بتاتا ہے کہ اس خدمت کے ذریعہ کون سے پیرامیٹرز یا افعال انجام دیئے جائیں گے۔ لہذا ہر خدمت میں ان کے تحت ایک یا زیادہ خصوصیات ہوں گی۔ ٹھیک ہے! پروگرامر کو یہ UID کہاں سے ملتا ہے؟ ہر یو یو ای ڈی GATT (جنریک اٹریبیٹ پروفائل) کے ذریعہ پہلے ہی بیان کیا گیا ہے آپ ان کی ویب سائٹ پر جاسکتے ہیں اور منصوبے کے لئے درکار UID کو منتخب کرسکتے ہیں۔ میں جانتا ہوں کہ اس نے ہمارے سر پر تھوڑا سا اچھال لیا ہے۔ آئیے اسے مثال کے ساتھ سمجھنے کی کوشش کریں۔
آئیے کسی آڈیو پلیئر کا BLE ڈیوائس مان لیں۔ ابتدا میں جب آپ اسے اپنے فون کے ساتھ جوڑیں تو آپ کا فون اسے آڈیو ڈیوائس کے طور پر شناخت کرتا ہے اور اسٹیٹس بار پر بیٹری کی سطح بھی ظاہر کرتا ہے۔ لہذا ، اس کے ل the آڈیو پلیئر کو کسی نہ کسی طرح آپ کے فون کو بتانا ہوگا کہ وہ اس بیٹری میں بیٹری کی سطح اور اس کے چارج کی فیصد کو بتانا چاہتا ہے۔ یہ UID کا استعمال کرتے ہوئے کیا جاتا ہے ، وہاں ایک مخصوص UID موجود ہے جس میں بتایا گیا ہے کہ BLE نرد اس UID میں بیٹری کی سطح کے بارے میں تفصیلات فراہم کرنے جارہا ہے جو کہ سروس کی نوعیت کو UU کہا جاتا ہے ، پھر بھی بہت سارے پیرامیٹرز ہوسکتے ہیں۔ کسی خدمت کو مکمل کرنے کے لئے اس طرح بدلا جاتا ہے جیسے بیٹری کی قیمت اس طرح کے پیرامیٹر پر ہوتی ہے ، ہر پیرامیٹر کا اپنا یو یو ڈی ہوگا اور ان کو خصوصیت پسند یو یو ڈی کہا جاتا ہے ۔ایک خصوصیت کے ذریعہ انجام دی جانے والی عام تقریب پڑھنا ، لکھنا ، مطلع کرنا اور اشارہ کرنا ہے۔
BLE وضاحتی: وضاحت کرنے والا ایک اختیاری وصف ہے جو خصوصیت کے اندر موجود ہے۔ ایک وضاحت کنندہ عام طور پر یہ واضح کرتا ہے کہ خصوصیت تک کیسے پہونچنا ہے۔
BLE بیکن: ایک بلوٹوتھ بیکن زیادہ قربت والے سوئچ کی طرح ہوتا ہے جو صارف کی حدود میں ہونے کے بعد کچھ قریب سے متعین عمل انجام دیتا ہے (قریب تر) یہ ہر وقت اپنی شناخت کا اشتہار دیتا ہے اور اس لئے ہمیشہ جوڑا بنانے کے لئے تیار رہتا ہے۔
BLE2902: میں اب بھی اس چیز کے بارے میں شکوک و شبہات کا شکار ہوں ، لیکن آپ اسے کلائنٹ سائڈ پر سوفٹ ویئر کے ایک ٹکڑے کے طور پر سوچ سکتے ہیں جو سرور کو نوٹیفکیشن کو آن یا آف کرنے کی اطلاع دیتا ہے اس سے بجلی کی بچت میں ہماری مدد ہوگی
امید ہے کہ آپ کو کوئی معقول اندازہ ہو گیا ہے ، اچھ thatی بات یہ ہے کہ ہمیں زیادہ جاننے کی ضرورت نہیں ہے کیونکہ لائبریریوں کے باوجود ہمارے لئے تمام ہینڈ ورک پہلے ہی انجام دے چکے ہیں۔
ہارڈ ویئر کی تیاری
پروجیکٹ کے لئے ہارڈویئر سیٹ اپ کی ضرورت نہیں ہے لیکن اس بات کو یقینی بنائیں کہ آپ نے اپنے اردوینو IDE پر ESP32 بورڈ کی تفصیلات شامل کی ہیں اور یہ جانچنے کے لئے کم سے کم نمونہ پلک پروگرام کی کوشش کی ہے کہ آیا ہر چیز توقع کے مطابق کام کر رہی ہے۔ آپ کو یہ کرنا ہے کہ اس کے بارے میں شکوک و شبہات ہے کہ آپ یہی کر سکتے ہو ارڈینو ٹیوٹوریل کے ساتھ ای ایس پی 32 کے ساتھ شروع کرنا بھی پیروی کرسکتے ہیں۔
BLE خدمات کی جانچ کرنے کے لئے ہم اپنے موبائل پر NRF android ایپلی کیشن استعمال کریں گے جو براہ راست پلے اسٹور سے ڈاؤن لوڈ کی جاسکتی ہے۔ یہ آئی فون صارفین کے لئے آئی ٹیونز اسٹور میں بھی دستیاب ہے۔ اگر آپ BLE کے ساتھ طویل عرصے تک کام کرنے کا سوچ رہے ہیں تو ، یہ ایبیکیشن ڈیبگنگ کے مقاصد کے لئے واقعی کارآمد ہوگی۔
GATT سروس کا استعمال کرتے ہوئے بیٹری لیول اشارے کیلئے پروگرامنگ ESP32
اس وقت تک میں فرض کرتا ہوں کہ آپ کو GATT کی خدمت اور اس کو سروس اور خصوصیت کے نمونوں کا استعمال کرتے ہوئے کس طرح نافذ کیا جاتا ہے اس کے بارے میں ٹھیک اندازہ ہے۔ اب ، آئیے پروگرام میں ڈوکی لگائیں کہ یہ Erd32 میں ارودوینو IDE کا استعمال کرتے ہوئے کیسے نافذ کیا جاتا ہے۔ اس سے پہلے کہ ہم جاری رکھیں میں انڈیسیس جاسوس کو اپنے ویڈیو BLE پر شکریہ ادا کرنے کے ل this اس جگہ کا استعمال کرنا چاہتا ہوں جس نے میری طرف سے معاملات کو بہت واضح کردیا۔
ہم اپنے خاکہ میں مطلوبہ لائبریریوں کو درآمد کرکے پروگرام کا آغاز کرتے ہیں۔ امید ہے کہ ESP32 کی BLE فعالیت کو استعمال کرنے کے لئے ترتیب دینے کے لئے بہت ساری چیزیں ہیں اگرچہ نیل کولبن کا شکریہ جنہوں نے پہلے ہی ہمارے لئے سخت محنت کی ہے اور لائبریریوں کی فراہمی کی ہے۔ اگر آپ لائبریریوں کی فعالیت کو سمجھنا چاہتے ہیں تو آپ گیتب پیج پر اس کی دستاویزات کا حوالہ دے سکتے ہیں۔
# شامل کریں
اگلا ہمیں اپنے بلوٹوتھ ڈیوائس کیلئے سرور کال بیک فنکشن کی وضاحت کرنی ہوگی۔ اس سے پہلے کہ سمجھے کہ BLE میں کال بیک فنکشن کیا ہے۔
BLE میں کال بیک فنکشن کیا ہے؟
جب BLE سرور کی حیثیت سے کام کررہا ہے تو سرور کال بیک فنکشن کی وضاحت ضروری ہے۔ بی ایل ای کے ساتھ بہت ساری قسم کی کال بیکس منسلک ہیں لیکن اس کو آسان الفاظ میں سمجھنے کے ل you آپ ان کو ایک اعتراف کے طور پر سمجھتے ہیں کہ اس بات کا یقین کرنے کے لئے کہ عمل مکمل ہوچکا ہے۔ سرور کال بیک کا استعمال اس بات کو یقینی بنانے کے لئے کیا جاتا ہے کہ مؤکل اور سرور کے مابین کامیابی سے رابطہ قائم ہو ۔
ہم سرور کال بیک کو انجام دینے کے لئے درج ذیل کوڈز کا استعمال کرتے ہیں۔
bool _BLEClientConnected = غلط؛ کلاس MyServerCallbacks : عوامی BLEServerCallbacks oid باطل آن کنیکٹ (BLEServer * pServer) { _BLEClientConnected = true؛ }؛ باطل onDisconnect (BLEServer * pServer) { _BLEClientConnected = false؛ } }؛
باطل سیٹ اپ فنکشن کے اندر ، ہم ڈیبگنگ کے لئے 115200 پر سیریل مواصلات کا آغاز کرتے ہیں اور پھر انبیبل فنکشن کے ذریعہ بلوٹوتھ ڈیوائس کو شروع کرتے ہیں۔
باطل سیٹ اپ () { سیریل.بیگین (115200)؛ سیریل.پرنٹلن ("بیٹری لیول انڈیکیٹر - بی ایل ای")؛ ابتدا ()؛ }
initBLE جگہ جہاں تمام جادو ہوتا ہے. ہمیں بلوٹوتھ سرور بنانا ہے اور بیٹری لیول سروس کو یہاں استعمال کرنا ہے۔ لیکن اس سے پہلے ہمیں بیٹری لیول کو پڑھنے کے لئے یو یو ڈی فار سروس ، خصوصیت اور وضاحتی وضاحت کرنا ہوگی۔ تمام UID بلوٹوتھ GATT سروس ویب سائٹ سے حاصل کیے جاسکتے ہیں۔ ہمارے معاملے کے لئے ہم بیٹری سروس استعمال کرنے کی کوشش کر رہے ہیں اور UID اس کی وضاحت 0X180F ہے جیسا کہ ذیل میں دکھایا گیا ہے۔
اگلا ، ہمیں اس خدمت سے وابستہ خصوصیت جاننے کی ضرورت ہے ۔ یہ جاننے کے لئے کہ صرف بیٹری سروس پر کلک کریں اور آپ کو سروس کی خصوصیات کے صفحے پر لے جایا جائے گا ، جہاں یہ ذکر کیا گیا ہے کہ بیٹری لیول خصوصیات کا نام ہے اور اس کی قیمت 0 سے 100 تک لی جاتی ہے۔ یہ بھی نوٹ کریں کہ ہم صرف دو کارکردگی کا مظاہرہ کرسکتے ہیں اس خصوصیت کے حامل اقدامات ، ایک کو پڑھنا ہے جو کرنا لازمی ہے اور دوسرا مطلع جو اختیاری ہے۔ لہذا ہمیں کلائنٹ (فون) پر بیٹری کی قیمت بھیجنی ہے جو لازمی ہے اور اگر ضرورت ہو تو ہم فون کو مطلع کرسکتے ہیں جس کے بارے میں اختیاری ہے۔
لیکن انتظار کرو ہمیں پھر بھی خصوصیت کی بیٹری کی سطح کیلئے یو یو ڈی کی قیمت نہیں ملی ۔ اس کے ل the ، بیٹری کی خصوصیت والے صفحے میں جاو اور بیٹری لیول کے نام کو تلاش کرو تو آپ کو اس کا UID 0X2A19 کے بطور ملے گا ، اس کا اسنیپ شاٹ نیچے دکھایا گیا ہے۔
اب جب کہ ہمارے پاس ساری قدریں ہیں ، آئیے ہم اسے نیچے پروگرام کے مطابق رکھتے ہیں۔ بیٹریسریوس ، بیٹری لیول چیریکٹرسٹک اور بیٹری لیول ڈیسک اسکرپٹر کا نام صارف کی وضاحت کردہ متغیرات ہیں جو خدمت ، خصوصیت اور ڈسکرپٹر کا حوالہ دیتے ہیں جو ہم پروگرام میں استعمال کررہے ہیں۔ جب قدر کی قیمت 8 بٹ ہوتی ہے تو اسکرپٹر 0X2901 کے لئے قدر استعمال کی جاتی ہے ، مزید معلومات ڈسکرپٹر ڈسریکٹر پیج پر مل سکتی ہیں۔
# ڈیفائن بیٹریسروس بلیوئڈ ((uint16_t) 0x180F)
BLECharacteristic BatteryLevelCharacteristic (BLEUUID ((uint16_t) 0x2A19)، BLECharacteristic :: PROPERTY_READ - BLECharacteristic :: PROPERTY_NOTIFY)؛ BLEDescriptor BatteryLevelDescriptor (BLEUUID ((uint16_t) 0x2901))؛
initBLE فنکشن میں واپس جانا ۔ ہمیں پہلے BLE سرور شروع کرنا ہے اور اسے نام کے ساتھ اشتہار دینا ہے۔ درج ذیل سطور سرور کے طور پر BLE شروع کرنے کے لئے استعمال ہوتے ہیں. میں نے اپنے BLe سرور کو جو نام دیا ہے وہ ہے "BLE Battery" ، لیکن آپ خود ہی منتخب کرسکتے ہیں۔
BLEDevice:: init ("BLE بیٹری")؛ // BLE سرور BLEServer بنائیں * pServer = BLEDevice:: createServer ()؛ pServer-> setCallbacks (نئے مائی سرور سرورز) ())
اگلا ہمیں GATT سروس شروع کرنی ہوگی کیونکہ ہم نے پہلے ہی یو یو ڈی کی وضاحت کردی ہے لہذا ہم نیچے کی لائن کا استعمال کرتے ہوئے خدمت کو آسانی سے شروع کرسکتے ہیں۔
// BLE سروس BLES सर्विस بنائیں * pBattery = pServer-> createService (BatteryService)؛
ایک بار سروس شروع ہونے کے بعد ہم وضاحتی خصوصیات کو خصوصیات سے جوڑ سکتے ہیں ، اور اقدار کا تعین کرسکتے ہیں ۔ BLE2902 سروس بھی یہاں شامل کی گئی ہے۔
pBattery-> addCharacteristic (& BatteryLevelCharacteristic)؛ بیٹری لیول ڈیسکرپٹر.سیٹ ویلیو ("فیصد 0 - 100")؛ بیٹری لیول چیراٹرسٹیٹیکل ڈاٹ اسکرپٹٹر (اور بیٹری لیول ڈیسک اسکرپٹر)؛ بیٹری لیولچاریکٹرسٹک ڈاٹ اسکرپٹٹر (نیا BLE2902 ())؛
آخر میں سب کچھ سیٹ ہوچکا ہے ، اب صرف اتنا باقی ہے کہ ESP32 کو اشتہار دینے کے لئے کہیں تاکہ ہمارے فون جیسے دوسرے آلات اسے دریافت کرسکیں اور اس سے رابطہ قائم کرسکیں ، اور جب کسی موکل سے منسلک ہوتا ہے تو اسے بیٹری سروس شروع کرنی چاہئے جو کیا جاسکتا ہے اگرچہ مندرجہ ذیل لائنوں
pServer-> getAdvertising () -> addS سروUUID (بیٹریسروس)؛ pBattery-> start ()؛ // ایڈورٹائزنگ شروع کریں pServer-> getAdvertising () -> start ()؛
اب تک یہ بہت اچھا ہے ، آخری مرحلہ یہ ہے کہ تفصیل کار کو بتانا ہے کہ بیٹری کی فی صد میں کیا قیمت ہے جو کلائنٹ (فون) کو بھیجی جانی چاہئے ۔ یہ قیمت 0 -100 کی ہوسکتی ہے جیسا کہ ہم پہلے پڑھتے ہیں ، چیزوں کو آسان رکھنے کے ل I ، میں نے بیٹری کی قیمت 57 ہونے کے ل simple آسان سے کوڈ کیا ہے اور پھر اس میں ہر 5 سیکنڈ میں اضافہ ہوتا ہے اور ایک بار 100 تک پہنچنے کے بعد 0 سے شروع ہوجاتا ہے۔ کرنے کا کوڈ جو نیچے دکھایا گیا ہے۔ نوٹ کریں کہ جو قدر بھیجی جارہی ہے وہ یونٹ 8_t کی شکل میں ہے۔
uint8_t سطح = 57؛ باطل لوپ () { BatteryLevelCharacteristic.setValue (& سطح ، 1)؛ BatteryLevelCharacteristic.notify ()؛ تاخیر (5000)؛ سطح ++؛ سیریل.پرنٹلن (انٹ (سطح))؛ اگر (انٹ (سطح) == 100) سطح = 0؛ }
ESP32 BLE پر اپنی GATT سروس کی جانچ کر رہا ہے
مذکورہ بالا مکمل کوڈ صفحہ کے آخر میں دیا گیا ہے ۔ کوڈ کو اپنے ESP32 بورڈ میں اپ لوڈ کریں۔ ایک بار اپ لوڈ کرنے کے بعد آپ کے فون کو بلوٹوتھ آلہ دریافت کرنا چاہئے جس کے ساتھ "BLE Battery" جوڑا کہتے ہیں۔
پھر این آر ایف android ایپلی کیشن انسٹال کریں اور اسے کھولیں اور BLE بیٹری BLE ڈیوائس سے جڑیں۔ بیٹری سروس سیکشن کو وسعت دیں اور آپ کو مندرجہ ذیل اسکرین ملنی چاہئے۔
جیسا کہ آپ دیکھ سکتے ہیں کہ ایپلی کیشن نے خود بخود اس کی نشاندہی کی ہے کہ BLE بیٹری سروس مہیا کرتا ہے اور اس میں UID کی وجہ سے بیٹری لیول کی خصوصیات موجود ہیں جو ہم نے پروگرام میں استعمال کیا تھا۔ آپ یہ بھی دیکھ سکتے ہیں کہ بیٹری کی موجودہ قیمت جو 67٪ ہے 5 سیکنڈ تک انتظار کرتے ہیں اور آپ اس میں اضافہ ہوتا ہوا بھی دیکھ سکتے ہیں۔
BLE کے استعمال کے بارے میں عمدہ بات یہ ہے کہ اب BLE کے ساتھ کام کرنے والی کوئی بھی درخواست سوچے گی کہ آپ کا ESP32 BLE ڈیوائس ہے جو بیٹری کی سطح کو اطلاع دیتا ہے۔ اسے آزمانے کے لئے میں نے ایپلی کیشن کا استعمال بٹن کے نام سے کیا اور اس ایپلی کیشن نے ESP32 کو بیٹری سے چلنے والے بلوٹوتھ آلہ کے طور پر شناخت کیا اور میرے فون پر فیصد کی اطلاع اس طرح دی۔
ٹھنڈا !! ٹھیک ہے؟ میں نے نیچے ویڈیو میں مکمل کام کرنا بھی دکھایا ہے ۔ اب ، کہ آپ نے ESP32 کے ساتھ BLE بیٹری خدمات کا استعمال سیکھنا سیکھا ہے ، آپ GATT کی دیگر خدمات بھی آزما سکتے ہیں جو پلس ریٹ ، HID ، دل کی شرح وغیرہ جیسے بہت دلچسپ ہیں۔