- nRF52 ڈویلپمنٹ کٹ:
- سیگر ایمبیڈڈ اسٹوڈیو
- NRF52DK کے ساتھ DHT11
- بلوٹوتھ لو انرجی (BLE) کے ساتھ کیسے کام کریں؟
- BLE سروس / خصوصیات ڈایاگرام
- nRF52 BLE پروگرام کی وضاحت
- این آر ایف کنیکٹ کا استعمال کرکے ہمارے پروگرام کی جانچ کر رہا ہے
فٹنس بینڈ ، اسمارٹ واچز اور دیگر پہننے کے قابل آلات کے ساتھ بلوٹوتھ 5 / بلوٹوتھ لو انرجی کا استعمال تیزی سے مقبول ہورہا ہےمواصلات کے معیارات کو بڑے پیمانے پر اپنایا جارہا ہے۔ بی ایل ای ہماری مدد کرتا ہے بہت کم طاقت سے تھوڑے فاصلے پر اعداد و شمار کا تبادلہ کرنے میں ، جو بیٹری سے چلنے والے آلات جیسے ویئیربل کے لئے بہت ضروری ہے۔ یہ ہمیں وائرلیس BLE میش نیٹ ورکس کو قائم کرنے میں بھی مدد کرتا ہے ، یہ خصوصیت گھریلو آٹومیشن آلات کے لئے کارآمد ہے جہاں بند ماحول میں متعدد آلات کو ایک دوسرے کے ساتھ بات چیت کرنا پڑتی ہے۔ ہم نے پہلے ہی کچھ بنیادی BLE افعال انجام دینے کے لئے راسبیری پیئ کے ساتھ BLE اور ESP32 کے ساتھ BLE استعمال کیا ہے۔ انجینئرز پورٹیبل وائرلیس ڈیوائسز کے ڈیزائن کے لئے BLE پر تجربہ کر رہے ہیں جو چھوٹی بیٹریاں پر طویل عرصے تک چل سکتے ہیں اور ، BLE کے ساتھ کام کرنے کے لئے ایک سے زیادہ ترقیاتی کٹس دستیاب ہیں۔ ایردوینو نینو 33 پر ہمارے حالیہ جائزے میں ، ہم نے یہ بھی دیکھا کہ بورڈ میں BLE صلاحیتوں کے ساتھ NRF52840 ہے۔
اس ٹیوٹوریل میں ، ہم ایک اور دلچسپ اور مقبول ڈویلپمنٹ بورڈ کو تلاش کریں گے جسے BR کا استعمال کرتے ہوئے درجہ حرارت اور نمی کی پیمائش کرنے کے لئے nRF52 DK کہا جاتا ہے ۔ پہلے سے طے شدہ طور پر ، BLE ماحولیاتی سینسنگ پروفائلز ماحولیاتی پیرامیٹرز کی ایک وسیع رینج کی حمایت کرتے ہیں لیکن یہ سبق صرف درجہ حرارت اور نمی کی اقدار تک ہی محدود ہے۔ یہ حل بلوٹوتھ کم توانائی سے زیادہ اسمارٹ فون کے ساتھ مربوط ہوتا ہے اور ماحولیاتی پیرامیٹرز یعنی درجہ حرارت ، نمی سے متعلق بار بار اپ ڈیٹ فراہم کرتا ہے۔ ہم DHT1 سینسر کا استعمال کریں گے اور درجہ حرارت کی پیمائش 0.01 ڈگری سینٹی گریڈ کی قرارداد کے ساتھ کی جائے گی اور نمی کی پیمائش 0.01 فیصد کی قرارداد کے ساتھ کی جائے گی۔
nRF52 ڈویلپمنٹ کٹ:
nRF52DK بلوٹوتھ لو لو انرجی اور 2.4 گیگا ہرٹز وائرلیس انٹرنیٹ آف ٹنگس ایپلی کیشن کا ایک مکمل پروٹو ٹائپنگ پلیٹ فارم ہے۔ ڈویلپمنٹ کٹ مختلف معیاری نورڈک ٹولچینز جیسے اوپن سورس ، جی سی سی اور کمرشل انٹیگریٹڈ ڈویلپمنٹ ماحول جیسے کیل ، آئی اے آر اور سیگر ایمبیڈڈ اسٹوڈیو ، وغیرہ کی تائید کرتی ہے۔ نورڈک بھی این آر ایف 52 کے لئے ایک سافٹ ویئر ڈویلپمنٹ کٹ مہیا کرتا ہے ، جس میں این آر ایف 52 ڈی کے کے لئے مکمل سپورٹ شامل ہے۔
nRF52DK nRF52832 ARM Cortex-M4F مائکروکونٹرولر کے ساتھ طاقتور ہے ، جو فلیش میمور کے 512Kbytes اور SRAM کے 64 Kbytes کو مربوط ہے۔ nRF52DK میں ایک مربوط سیگر جے لنک آن بورڈ ڈیبگر ہے ، جو بیرونی / اضافی jtag ڈیبگ آلات کے بغیر آسان اور تیز تر ڈیبگنگ فراہم کرتا ہے۔ اس میں ارڈینوو یونو ریو 3 موافقت پذیر بھی شامل ہے ، جو مائکرو پروسیسر کے ساتھ ینالاگ اور ڈیجیٹل آدانوں کو انٹرفیس کرنے کی حمایت کرتا ہے اور اس میں معیاری مواصلات کے پروٹوکول ، I2C (انٹر انٹیگریٹڈ سرکٹ) ، ایس پی آئی (سیریل پیریفرل انٹرفیس) اور یو آر ٹی (یونیورسل ایسینکرونس وصول اور ٹرانسمیٹر) بھی شامل ہیں۔ یہ ترقیاتی کٹ مربوط ان بلٹ پی سی بی اینٹینا کے ساتھ ڈیزائن کی گئی ہے جو اسمارٹ فون ، لیپ ٹاپس اور ٹیبلٹس کے ساتھ رابطہ قائم کرنے کے لئے بلوٹوتھ لو انرجی کا استعمال کرتے ہوئے قلیل رینج وائرلیس مواصلات فراہم کرتا ہے۔
سیگر ایمبیڈڈ اسٹوڈیو
ڈویلپمنٹ بورڈ کو پروگرام کرنے کے لئے ، ہم سی آرگر ایمبیڈڈ اسٹوڈیو کو nRF52 کے ساتھ استعمال کریں گے ۔ سیگر ایمبیڈڈ اسٹوڈیو ایک طاقتور C / C ++ مربوط ترقیاتی ماحول (IDE) ہے جو خاص طور پر ایمبیڈڈ سسٹم کی نشوونما کے لئے نشانہ ہے۔ یہ مکمل طور پر ایک مکمل حل فراہم کرتا ہے جس میں ایمبیڈڈ سی پروگرامنگ ، ترقی اور ڈیبگنگ کے لئے درکار ہر چیز کی ضرورت ہوتی ہے۔ اس میں ایمبیڈڈ سسٹم پروگرامنگ اور ڈویلپمنٹ کے لئے مکمل ورک فلو شامل ہے جس میں پروجیکٹ مینجمنٹ ، ایڈیٹر ، ڈیبگر سپورٹ اے آر ایم کارٹیکس آلات شامل ہیں۔ یہ طاقتور اور استعمال میں آسان IDE مکمل لائسنس والے نورڈک صارفین کے لئے بغیر کسی کوڈ سائز کی پابندی کے مکمل طور پر مفت ہے۔ IDE نیچے دیئے گئے لنک سے ڈاؤن لوڈ کیا جاسکتا ہے ،
سیگر ایمبیڈڈ اسٹوڈیو ڈاؤن لوڈ کریں
NRF52DK کے ساتھ DHT11
ڈی ایچ ٹی 11 ایک مکمل خصوصیات والا درجہ حرارت اور نمی کا سینسر ہے جس میں مزاحمتی قسم نمی کی پیمائش کے اجزاء اور این ٹی سی قسم کا درجہ حرارت کی پیمائش کا جز ہے۔ یہ بہترین معیار ، تیز ردعمل ، اور قیمت پر تاثیر پیش کرتا ہے۔ پہلے سے طے شدہ طور پر ، تمام DHT11 سینسر لیب میں کیلیریٹڈ ہوتے ہیں جو انتہائی درستگی اور وشوسنییتا کی طرف جاتا ہے۔ یہ سنگل وائر سیریل انٹرفیس سسٹم کا استعمال کرتے ہوئے بات چیت کرتا ہے اور دیگر خصوصیات نیچے دی گئیں ہیں
ڈی ایچ ٹی 11 کی وضاحتیں:
- نمی کی حد: 20 - 90٪ RH
- درجہ حرارت کی حد: 0 - 50 ڈگری سیلسیس
- نمی کی درستگی: ± 5 % RH
- درجہ حرارت کی درستگی: ± 2 ℃
ڈی ایچ ٹی 11 کا وقت ڈایاگرام:
ڈی ایچ ٹی 11 سینسر سے اعداد و شمار کو پڑھنا ، اوپر دکھائے گئے وقت کے آراگرام کا استعمال کرتے ہوئے نسبتا simple آسان ہے۔ طریقہ کار کسی بھی کنٹرولر کی طرح ہے اور ہم پہلے ہی اس سینسر کو دوسرے ترقیاتی پلیٹ فارم جیسے استعمال کر چکے ہیں
- راسبیری پائ کے ساتھ ڈی ایچ ٹی 11 سینسر
- PIC16F877A کے ساتھ ڈی ایچ ٹی 11 سینسر
- STM32F103C8 کے ساتھ ڈی ایچ ٹی 11 سینسر
- نوڈیم سی یو کے ساتھ ڈی ایچ ٹی 11 سینسر
DRT5 درجہ حرارت اور نمی سینسر کو NRF52 ڈویلپمنٹ کٹ سے انٹرفیس کرنے کے لئے ، ذیل میں دیئے گئے کنکشن آریگرام پر عمل کریں۔
میں سینسر کو اپنے بورڈ سے مربوط کرنے کے لئے کنیکٹر ماڈیول استعمال کر رہا ہوں ، لہذا میرا حتمی سیٹ اپ اس طرح لگتا ہے
ڈی ایچ ٹی 11 کے ساتھ بات چیت کرنے کے لئے فلو چارٹ:
ذیل کا بہاؤ چارٹ پروگرام کے منطقی بہاؤ کی وضاحت کرتا ہے جسے ہم nRF52DK اور DHT11 کے درمیان بات چیت کرنے کے لئے استعمال کریں گے۔
ڈیٹا فارمیٹ:
بلوٹوتھ لو انرجی (BLE) کے ساتھ کیسے کام کریں؟
BLE خصوصیت کو استعمال کرنے کا طریقہ سمجھنے کے ل we ، ہمیں کچھ بنیادی اصطلاحات کو سمجھنا ہوگا جن کی ذیل میں وضاحت کی گئی ہے ، آپ BLE کے بارے میں مزید جاننے کے لئے ESP32 BLE مضمون بھی پڑھ سکتے ہیں۔
عام رسائی پروفائل (GAP)
عام رسائی پروفائل BLE پردیی اور وسطی آلات کے مابین رابطے کے ل the رابطے قائم کرنے کی مکمل ذمہ داری عائد کرتا ہے ۔ جی اے پی مختلف طریقہ کار بھی مہی includingا کرتا ہے جس میں ڈیوائس اسکیننگ / دریافت ، لنک لیئر کنکشن اسٹیبلشمنٹ ، لنک ٹرمینیشن ، سیکیورٹی فیچرس کی مصافحہ اور آلہ کی مکمل تشکیل شامل ہیں۔ GAP مندرجہ ذیل آلہ ریاستوں میں کام کرتا ہے
GAP اسٹیٹس |
تفصیل |
تیار |
دوبارہ ترتیب دینے پر آلہ کی ابتدائی حالت |
اشتہاری |
اعداد و شمار کے ساتھ آلہ کا اشتہار جو ابتدائی اسکیننگ میں مدد کرتا ہے |
اسکینر |
وصول کرتا ہے اور اشتہار کو اسکین درخواست بھیجتا ہے |
شروع کرنے والا |
لنک قائم کرنے کے لئے کنکشن کی درخواست بھیجتا ہے |
غلام / ماسٹر |
کنکشن پر ، آلہ بطور غلام اگر اشتہاری ، ماسٹر اگر کوئی ابتدائی |
عام انتشار پروفائل پروفائل (GATT)
GATT Generic Attribute پروفائيل Layer کے لئے مختصر کھڑا ہے ، یہ دو BLE ڈیوائسز (پیریفیریل اور سنٹرل) کے مابین ڈیٹا مواصلات کے لئے ذمہ دار ہے۔ ڈیٹا مواصلات خصوصیات کی شکل میں ہوتے ہیں ، جو ڈیٹا کو بات چیت اور ذخیرہ کرتے ہیں۔ BLE آلہ ذیل میں دیئے گئے آلہ مواصلات کے لئے دو مختلف کردار ادا کرتا ہے ،
- GATT سرور میں خصوصیات کی معلومات ہوتی ہے جو پڑھنے اور لکھنے کے لئے استعمال ہوگی۔ ہمارے سبق میں ، DHT11 سینسر ، اور دیو۔ کٹ ہمارا GATT سرور ہے۔
- GATT کلائنٹ GATT سرور سے / تک ڈیٹا کو پڑھ اور لکھتا ہے۔ اسمارٹ فون ایک جی اے ٹی ٹی کلائنٹ ہے جو ہمارے سینسر بورڈ میں ڈیٹا کو پڑھ اور لکھتا ہے۔
بلوٹوتھ سگ
بلوٹوتھ اسپیشل انٹرسٹ گروپ (سی ای جی) ایک ایسی معیاری تنظیم ہے جو بلوٹوتھ کے معیار کی ترقی اور بلوٹوتھ ٹکنالوجیوں کے لائسنسنگ پر نظر رکھتی ہے۔ سگ گروپ کوئی بلوٹوتھ مصنوعات تیار یا فروخت نہیں کرتا ہے۔ یہ بلوٹوت تصریح اور معیاری کاری کی وضاحت کرتا ہے۔ وہ بلوٹوتھ کم توانائی والے پروفائل اور متعلقہ خصوصیات کے لئے منفرد شناخت کار کی وضاحت کرتے ہیں ۔ GATT پروفائل کی وضاحتیں نیچے دیئے گئے لنک پر مل سکتی ہیں
GATT پروفائل کی وضاحتیں
مندرجہ بالا لنک میں دیئے گئے GATT تفصیلات کی بنیاد پر ، ہم نے اپنے پروجیکٹ کے لئے درکار انوکھے شناخت کار اکٹھے کیے ہیں جو نیچے ٹیبلٹ میں دیئے گئے ہیں۔
پروفائل / خصوصیات |
یو یو ای ڈی |
جی اے پی (عام رسائی) |
0x1800 |
GATT (عمومی صفت) |
0x1801 |
ESS (ماحولیاتی احساس) |
0x181A |
درجہ حرارت |
0x2A6E |
نمی |
0x2A6F |
BLE سروس / خصوصیات ڈایاگرام
BLE UIDs
یو یو ای ڈی |
16 بٹ ویلیو |
128 بٹ یو یو ای ڈی |
ESS سروس |
0x181A |
0000181A-0000-0000-0000-00000000000 |
عارضی چار |
0x2A6E |
00002A6E-0000-0000-0000-00000000000 |
نمی چار |
0x2A6F |
00002A6F-0000-0000-0000-00000000000 |
درجہ حرارت کی خصوصیات
پراپرٹی |
تفصیل |
یونٹ |
ڈگری سیلسیس جس کی قرارداد 0.01 ڈگری ہے |
فارمیٹ |
sint16 |
یو یو ای ڈی |
0x2A6E |
اعشاریہ نقصان دہ |
2 |
پڑھیں |
لازمی |
نمی کی خصوصیات
پراپرٹی |
تفصیل |
یونٹ |
فیصد 0.01 فیصد کی قرارداد کے ساتھ |
فارمیٹ |
uint16 |
یو یو ای ڈی |
0x2A6F |
اعشاریہ نقصان دہ |
2 |
پڑھیں |
لازمی |
nRF52 BLE پروگرام کی وضاحت
ہم اپنی NRF52 ڈویلپمنٹ کٹ کو پروگرام کرنے کے لئے nRF5 SDK استعمال کریں گے ۔ این آر ایف 5 ایس ڈی کے ایک مکمل سوفٹویر ڈویلپمنٹ کٹ ہے جو متعدد بلوٹوتھ لو انر پروفائلز ، جی اے ٹی ٹی سیریلائزر اور این آر ایف 5 سیریز ایس سی ایس پر موجود سبھی فریموں کے لئے ڈرائیور سپورٹ کے ساتھ مربوط ہے۔ یہ ایس ڈی کے ڈویلپروں کو nRF52 اور مائکروکنوٹرالروں کی nRF51 سیریز کے ساتھ مکمل خصوصیات والے ، قابل اعتماد اور محفوظ بلوٹوتھ لو کم ایپلی کیشنز کی تعمیر میں مدد کرتا ہے۔ مکمل پروگرام یہاں سے ڈاؤن لوڈ کیا جاسکتا ہے ، کوڈ کی وضاحت مندرجہ ذیل ہے۔
DHT11 ڈیٹا پن کو ان پٹ کے بطور NRF52 پر پل اپ ان کے قابل بنائیں۔ پن کی حیثیت اس بات کی تصدیق کرنے کے ل high اعلی ہونی چاہئے کہ NRF52 DHT11 ڈیٹا پن کے لئے مناسب پل اپ فراہم کرتا ہے
/ * ان پٹ پر سیٹ کریں اور چیک کریں کہ آیا سگنل کھینچ جاتا ہے * / / Data_SetInput ()؛ DelayUSec (50)؛ اگر (ڈیٹا_گٹ وال () == 0) D واپس DHT11_NO_PULLUP؛ }
NRF52 مائکروقابو کنٹرولر سے اسٹارٹ سگنل تیار کریں اور اعتراف سگنل کی جانچ کریں۔
/ * اسٹارٹ سگنل بھیجیں * / ڈیٹا_سیٹ آؤٹ پٹ ()؛ ڈیٹا_کلر وال ()؛ DelayMSec (20)؛ / * کم از کم 18 ایم ایس * / ڈیٹا_سیٹ ان پٹ () کیلئے سگنل کو کم رکھیں۔ DelayUSec (50)؛ / * اعتراف سگنل کی جانچ پڑتال کریں * / اگر (ڈیٹا_ گیٹ وال ()! = 0) {/ * سگنل کو سینسر کے ذریعہ کم ہونا چاہئے * / واپس DHT11_NO_ACK_0؛ or / * سینسر کی طرف سے ack سگنل کے لئے زیادہ سے زیادہ 100 انتظار کریں * / cntr = 18؛ جبکہ (ڈیٹا_ گیٹ وال () == 0) signal / * سگنل کے اوپر جانے تک انتظار کریں * / DelayUSec (5)؛ اگر (--cntr == 0) {واپس DHT11_NO_ACK_1؛ / * signal / * * ACK کے لئے یہاں سگنل لگانا چاہئے جب تک کہ یہ دوبارہ نیچے نہ آجائے ، اک کی ترتیب کا اختتام * / cntr = 18؛ جبکہ (ڈیٹا_ گیٹ وال ()! = 0) signal / * سگنل کے نیچے آنے تک انتظار کریں * / DelayUSec (5)؛ اگر (--cntr == 0) {واپس DHT11_NO_ACK_0؛ / * سگنل دوبارہ یہاں صفر پر ہونا چاہئے * /}}
اب ڈیٹا کے 40 بٹس پڑھیں جس میں درجہ حرارت کے 2 بائٹس ، نمی کے 2 بائٹس اور چیکسم کا 1 بائٹ ہوتا ہے۔
/ * اب 40 بٹ ڈیٹا پڑھیں * / i = 0؛ ڈیٹا = 0؛ لوپ بٹس = 40؛ do {cntr = 11؛ / * انتظار میں زیادہ سے زیادہ 55 ہمیں * / جبکہ (ڈیٹا_ گیٹ وال () == 0) lay DelayUSec (5)؛ اگر (--cntr == 0) {واپس DHT11_NO_DATA_0؛ ؛ nt cntr = 15؛ / * انتظار میں زیادہ سے زیادہ 75 ہمیں * / جبکہ (ڈیٹا_گٹ وال ()! = 0) {DelayUSec (5)؛ if (--cntr == 0) {واپس DHT11_NO_DATA_1؛ }} ڈیٹا << = 1؛ / * اگلا ڈیٹا بٹ * / اگر (سی این ٹی آر <10) {/ * ڈیٹا سگنل اعلی> 30 ہمیں ==> ڈیٹا بٹ 1 * / ڈیٹا - = 1؛ } if ((loopBits & 0x7) == 1) * / * اگلا بائٹ * / بفر = ڈیٹا؛ میں ++؛ ڈیٹا = 0؛ }} جبکہ (- لوپ بٹس! = 0)؛
چیکسم کی مدد سے ڈیٹا کو درست کریں۔
/ * ٹیسٹ CRC * / if ((uint8_t) (بفر + بفر + بفر + بفر)! = بفر)) واپس DHT11_BAD_CRC؛ }
درجہ حرارت اور نمی میں ہیرا پھیری اور ذخیرہ کریں
کالر * / نمی = ((int) بفر) * 100 + بفر کے لئے / * اسٹور ڈیٹا ویلیوز۔ درجہ حرارت = ((int) بفر) * 100 + بفر؛
این آر ایف 5 ایس ڈی کے لاگر سروس کو شروع کریں۔ nRF52 SDK لاگنگ کنٹرول انٹرفیس کے ساتھ شامل ہے جس کو nrf_log کہتے ہیں اور معلومات لاگ ان کرنے کے لئے پہلے سے طے شدہ پسدید کا استعمال کرتے ہیں۔ پہلے سے طے شدہ پسدید ایک سیریل پورٹ ہوگا۔ یہاں ہم دونوں nrf_log کنٹرول انٹرفیس اور nrf_log ڈیفالٹ بیک اپ بھی شروع کرتے ہیں۔
ret_code_t غلط_ کوڈ = NRF_LOG_INIT (NULL)؛ APP_ERROR_CHECK (غلطی کوڈ)؛ NRF_LOG_DEFAULT_BACKENDS_INIT ()؛
nRF52 SDK میں ایپلی کیشن ٹائمر کی فعالیت ہے ۔ ایپلیکیشن ٹائمر ماڈیول RTC1 پردیی پر مبنی متعدد ٹائمر مثالوں کو تخلیق کرنے کے قابل بناتا ہے۔ یہاں ہم این آر ایف 5 ایپلیکیشن ٹائمر ماڈیول کی ابتدا کرتے ہیں۔ اس حل میں ، دو ایپلیکیشن ٹائمر استعمال کیے جاتے ہیں اور ڈیٹا اپ ڈیٹ وقفہ کے لئے۔
ریٹ_ کوڈ_ٹ غلط_کوڈ = ایپ_ٹائمر_نیت ()؛ APP_ERROR_CHECK (غلطی کوڈ)؛
NRF52 SDK کے پاس فل فیچر پاور مینجمنٹ ماڈیول ہے کیونکہ BLE آلات کو سکے سیل بیٹری پر ایک سے زیادہ مہینوں تک کام کرنے کی ضرورت ہے۔ BLE ایپلی کیشنز میں پاور مینجمنٹ اہم کردار ادا کرتا ہے۔ nRF52 پاور مینجمنٹ ماڈیول مکمل طور پر اسی کو سنبھالتا ہے۔ یہاں ہم nRF5 SDK کے پاور مینجمنٹ ماڈیول کو شروع کرتے ہیں
ریٹ_ کوڈ_ٹ غلط_کوڈ؛ غلطی_کوڈ = nrf_pwr_mgmt_init ()؛ APP_ERROR_CHECK (غلطی کوڈ)؛
nRF52 SDK میں ایک بلٹ نورڈک سافٹ ڈیوائس فرم ویئر ہیکس فائل ہے ، جس میں بلوٹوتھ لو کم توانائی کا وسطی اور پردیی اسٹیک ہے۔ اس انتہائی کوالیفائیڈ پروٹوکول اسٹیک میں جی اے ٹی ٹی ، جی اے پی ، اے ٹی ٹی ، ایس ایم ، ایل 2 سی اے پی ، اور لنک لیئر شامل ہیں۔ یہاں ہم ابتداء کی ترتیب کی پیروی کرتے ہیں ، جس نے این آر ایف 5 بی ایل ای ریڈیو اسٹیک (نورڈک سافٹ ڈیوائس) کو شروع کیا ہے
ریٹ_ کوڈ_ٹ غلط_کوڈ؛ غلطی_کوڈ = nrf_sdh_enable_request ()؛ APP_ERROR_CHECK (غلطی کوڈ)؛ // ڈیفالٹ سیٹنگوں کا استعمال کرتے ہوئے BLE اسٹیک کو تشکیل دیں۔ // ایپلی کیشن رام کا ابتدائی پتہ حاصل کریں۔ uint32_t ram_start = 0؛ غلطی_کوڈ = nrf_sdh_ble_default_cfg_set (APP_BLE_CONN_CFG_TAG ، اور رام_ اسٹارٹ)؛ APP_ERROR_CHECK (غلطی کوڈ)؛ // BLE اسٹیک کو فعال کریں۔ غلطی_ کوڈ = nrf_sd_ble_enable (& ram_start)؛ APP_ERROR_CHECK (غلطی کوڈ)؛ // BLE واقعات کیلئے ہینڈلر کا اندراج کریں۔ NRF_SDH_BLE_OBSERVER (m_ble_observer، APP_BLE_OBSERVER_PRIO، ble_evt_handler، NULL)؛
جی اے پی آلہ کی اسکیننگ / دریافت ، لنک اسٹیبلشمنٹ ، لنک ٹرمینیشن ، سیکیورٹی کی خصوصیات کی شروعات اور تشکیل کے لئے ذمہ دار ہے۔ جی اے پی میں کنکشن وقفہ ، غلامی میں تاخیر ، نگرانی کا وقت ختم ہونا وغیرہ جیسے اہم کنکشن پیرامیٹرز کے ساتھ شامل کیا گیا ہے۔
ret_code_terr_code؛ ble_gap_conn_params_tgap_conn_params؛ ble_gap_conn_sec_mode_t سیکنڈ_موڈ؛ BLE_GAP_CONN_SEC_MODE_SET_OPEN (& سیکنڈ_موڈ)؛ غلطی_ کوڈ = ایس ڈی_بل_ گیپ_ڈیوائس_یوم_سیٹ (& سیکنڈ_موڈ ، (کونٹ uint8_t *) DEVICE_NAME ، تار (DEVICE_NAME))؛ APP_ERROR_CHECK (غلطی کوڈ)؛ میمسیٹ (& gap_conn_params، 0، سائز آف (گیپ_کون_پیریموں))؛ gap_conn_params.min_conn_interval = MIN_CONN_INTERVAL؛ گیپ_کون_پیمرس.میکس_کون_انٹروال = MAX_CONN_INTERVAL؛ gap_conn_params.slave_latency = SLAVE_LATENCY؛ گیپ_کون_پیراسمکون_سپ_ٹائم آؤٹ = CONN_SUP_TIMEOUT؛ غلطی_ کوڈ = ایس ڈی_بل_ گیپ_پی سی پی_سیٹ (& فرق_کون_پیرمز)؛ APP_ERROR_CHECK (غلطی کوڈ)؛
GATT BLE پردیی اور مرکزی آلات کے درمیان ڈیٹا مواصلات کے لئے ذمہ دار ہے۔ زیادہ سے زیادہ ATT_MTU سائز پر بات چیت اور ٹریک رکھنے کے لئے nRF52 GATT ماڈیول مددگار ہے۔ یہاں ہم nRF52 SDK جنریک اٹریبیٹ ماڈیول کو شروع کرتے ہیں ،
ret_code_t غلطی_کوڈ = nrf_ble_gatt_init (& m_gatt، NULL)؛ APP_ERROR_CHECK (غلطی کوڈ)؛
GATT خدمات اور خصوصیات کی شکل میں ڈیٹا مواصلات کرتا ہے۔ یہاں ہم GATT ماحول سے متعلق خدمات کو شروع کرتے ہیں ، جس میں درجہ حرارت اور نمی جیسی خصوصیات کی ابتدا بھی شامل ہے۔
ret_code_terr_code؛ nrf_ble_qwr_init_t qwr_init = {0}؛ // قطار میں لکھنے کے ماڈیول کو شروع کریں۔ qwr_init.error_handler = nrf_qwr_error_handler؛ غلطی_کوڈ = nrf_ble_qwr_init (& m_qwr ، & qwr_init)؛ APP_ERROR_CHECK (غلطی کوڈ)؛ m_ess.notif_write_handler = ble_ess_notif_write_handler؛ غلطی_کوڈ = ble_ess_init (& m_ess)؛ APP_ERROR_CHECK (غلطی کوڈ)؛
BLE درخواست ماحول میں اشتہاری اہم کردار ادا کرتا ہے۔ پیکٹوں میں پتہ کی قسم ، اشتہاری قسم ، اشتہاری ڈیٹا ، آلہ کارخانہ دار سے متعلق مخصوص ڈیٹا ، اور اسکین رسپانس ڈیٹا کی معلومات شامل ہیں۔ nRF52 SDK ایک اشتہاری ماڈیول کے ساتھ نمایاں ہے۔ یہاں ہم پیرامیٹرز کے ساتھ ایڈورٹائزنگ ماڈیول کی ابتدا کرتے ہیں۔
ret_code_terr_code؛ ble_advdata_t advdata؛ ble_advdata_t srdata؛ ble_uuid_t adv_uuids = {{ESS_UUID_SERVICE، BLE_UUID_TYPE_BLE}}؛ // اشتہاری ڈیٹا بنائیں اور سیٹ کریں۔ میمسیٹ (& ایڈڈاٹا ، 0 ، سائز آف (ایڈڈاٹا))؛ advdata.name_type = BLE_ADVDATA_FULL_NAME؛ advdata.incolve_appearance = true؛ advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE؛ میمسیٹ (& سارڈاتا ، 0 ، سائز آف (سارڈاتا))؛ srdata.uuids_complete.uuid_cnt = sizeof (adv_uuids) / sizeof (adv_uuids)؛ srdata.uuids_complete.p_uuids = adv_uuids؛ غلطی_کوڈ = ble_advdata_encode (& ایڈڈٹا ، m_adv_data.adv_data.p_data ، & m_adv_data.adv_data.len)؛ APP_ERROR_CHECK (غلطی کوڈ)؛ غلطی_کوڈ = ble_advdata_encode (& srdata، m_adv_data.scan_rsp_data.p_data، & m_adv_data.scan_rsp_data.len)؛ APP_ERROR_CHECK (غلطی کوڈ)؛ ble_gap_adv_params_t adv_params؛ // ایڈورٹائزنگ پیرامیٹرز۔ میمسیٹ (& ایڈ_پیرمز ، 0 ، سائز (ایڈ_پیرمز))؛ adv_params.primary_phy = BLE_GAP_PHY_1MBPS؛ adv_params.duration = APP_ADV_DURATION؛ adv_params.properties.type = BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED؛ adv_params.p_peer_addr = NULL؛ adv_params.filter_policy = BLE_GAP_ADV_FP_ANY؛ adv_params.interval = APP_ADV_INTERVAL؛ غلطی_ کوڈ = ایس ڈی_بل_ گیپ_اڈوی_سیٹ_کیفگیر (& ایم_اڈوی_ ہینڈل ، اور ایم_اڈوی_ڈیٹا ، اور ایڈ_پیمرس)؛ APP_ERROR_CHECK (غلطی کوڈ)؛
بی ایل ای کنکشن کو مختلف کنیکشن پیرامیٹرز کی طرح سنبھالا اور نگرانی کی جائیگی جیسے پہلے کنکشن پیرامیوں کی تازہ کاری میں تاخیر ، اگلے مسلسل تاخیر ، اپ ڈیٹ گنتی ، کنکشن ایونٹ ہینڈلر کال بیک فنکشن اور کنکشن ایرر کال بیک ایونٹ ہینڈلر۔ یہاں ہم کنکشن کے واقعات اور غلطی کے واقعات کیلئے بی ایل ای کنکشن اسٹیبلشمنٹ پیرامیٹرز اور کال بیک ایونٹ ہینڈلر شروع کرتے ہیں۔
ret_code_terr_code؛ ble_conn_params_init_t cp_init؛ میمسیٹ (& cp_init، 0، sizeof (cp_init))؛ cp_init.p_conn_params = NULL؛ cp_init.first_conn_params_update_delay = FIRST_CONN_PARAMS_UPDATE_DELAY؛ cp_init.next_conn_params_update_delay = NEXT_CONN_PARAMS_UPDATE_DELAY؛ cp_init.max_conn_params_update_count = MAX_CONN_PARAMS_UPDATE_COUNT؛ t_on_notify_cccd_handle = BLE_GATT_HANDLE_INVALID؛ cp_init.disconnect_on_fail = غلط؛ cp_init.evt_handler = on_conn_params_evt؛ cp_init.error_handler = conn_params_error_handler؛ غلطی_ کوڈ = ble_conn_params_init (& cp_init)؛ APP_ERROR_CHECK (غلطی کوڈ)؛
سسٹم کی ابتداء کی تکمیل کے بعد ، ہم یہاں BLE ڈیوائس کے نام اور اہلیت کی معلومات کی تشہیر کرتے ہیں۔ یہاں سے ، اس پردیی کو اسمارٹ فون بلی اسکین فہرست میں دیکھا جاسکتا ہے۔
ret_code_terr_code؛ غلطی_ کوڈ = ایس ڈی_بل_ گیپ_ ای ڈی وی_ اسٹارٹ (ایم_اڈ وی_ ہینڈل ، اے پی پی_بلئ_کون__کیف جی_ٹیگ)؛ APP_ERROR_CHECK (غلطی کوڈ)؛
مرکزی لوپ 2 سیکنڈ کے وقفے سے چلتا ہے ، پڑھیں یا نوٹیفکیشن کا استعمال کرتے ہوئے درجہ حرارت اور نمی اور مربوط سمارٹ آلہ پر اپ ڈیٹ پڑھیں۔
کے لئے (؛؛) { uint16_t درجہ حرارت، نمی؛ DHTxx_ErrorCode dhtErrCode؛ idle_state_handle ()؛ if (updatetmrexp) { dhtErrCode = DHTxx_Read (& درجہ حرارت ، اور نمی)؛ if (dhtErrCode == DHT11_OK) { NRF_LOG_INFO ("درجہ حرارت:٪ d نمی:٪ d \ n"، درجہ حرارت، نمی)؛ اگر (temp_notif_en सक्षम) { ble_ess_notify_temp (m_conn_handle ، & m_ess ، درجہ حرارت)؛ } دوسری { ble_ess_update_temp (& m_ess ، درجہ حرارت)؛ } اگر (humid_notif_en सक्षम) { ble_ess_notify_humid (m_conn_handle ، & m_ess ، نمی)؛ } دوسری { ble_ess_update_humid (& m_ess ، نمی)؛ } } updtmrexp جھوٹے =؛ } }
این آر ایف کنیکٹ کا استعمال کرکے ہمارے پروگرام کی جانچ کر رہا ہے
این آر ایف کنیکٹ ایک طاقتور بلوٹوتھ لو کم توانائی کا آلہ ہے جو BLE فعال کردہ پردے کو اسکین اور دریافت کرنے کی سہولت دیتا ہے۔ موبائل کے لئے NRF کنیکٹ متعدد بلوٹوتھ SIG نے اپنایا معیاری پروفائلز کی حمایت کرتا ہے۔ ہم اپنے پروگرام کو اس کا استعمال کرکے تصدیق کرسکتے ہیں ، ایپ کو انسٹال کرنے کے بعد ہم اپنے فون کے ساتھ این آر ایف 52 بورڈ کو ایپ میں موجود بی ایل ای ڈیوائسز کے لئے اسکین کرکے جوڑ سکتے ہیں۔ ماحولیاتی سینسنگ وصف کے اندر ، ہم درج pictures حرارت اور نمی کی قدروں کو اپ ڈیٹ ہوتے ہوئے دیکھ سکتے ہیں جیسا کہ ذیل کی تصویروں میں دکھایا گیا ہے۔
ہریہارن ویرپپن ایک آزاد مشیر ہے جس میں سرایت شدہ مصنوعات کی نشوونما میں 15 سال سے زیادہ کا تجربہ ہے۔ وہ ایمبیڈڈ فرم ویئر / لینکس کی ترقی میں مشاورتی خدمات فراہم کرتا ہے ، وہ کارپوریٹ اور آن لائن تربیت بھی فراہم کرتا ہے۔ ہریہارن نے اپنے مضامین اور سبق کے ذریعہ الیکٹرانکس اینڈ کمیونیکیشن انجینئرنگ کے شعبہ میں بیچلر آف انجینئرنگ کی ڈگری حاصل کی ہے ، وہ اپنے تجربات اور خیالات سرکٹ ڈائیجسٹ کے قارئین کے ساتھ بانٹتے ہیں۔