- nRF24L01 RF ماڈیول
- سرکٹ ڈایاگرام
- پروگرامنگ راسبیری پائی کو پیغام بھیجنے کیلئے nRF24l01 کا استعمال کرتے ہوئے
- پروگرامنگ Ardino UNO nRF24l01 کا استعمال کرتے ہوئے پیغام موصول کرنے کے لئے
ڈیزائنرز بلوٹوتھ لو انرجی (BLE 4.0) ، زیگبی ، ESP8266 وائی فائی ماڈیولز ، 433 میگا ہرٹز آر ایف ماڈیولز ، لورا ، این آر ایف وغیرہ جیسے بہت سے وائرلیس مواصلاتی نظام استعمال کرتے ہیں اور میڈیم کا انتخاب اس پر منحصر ہوتا ہے کہ اس میں کس طرح کی ایپلی کیشن استعمال کی جارہی ہے۔ سب ، مقامی نیٹ ورک مواصلات کے لئے ایک مقبول وائرلیس میڈیم nRF24L01 ہے ۔ یہ ماڈیول 2.4GHz (ISM بینڈ) پر چلتے ہیں جس میں 250KBS سے 2Mbps تک کی شرح ہوتی ہے جو بہت سے ممالک میں قانونی ہے اور اسے صنعتی اور طبی استعمال میں لایا جاسکتا ہے۔ یہ دعویٰ بھی کیا جاتا ہے کہ مناسب اینٹینا کے ذریعہ یہ ماڈیولز ان کے درمیان 100 میٹر کی دوری تک سگنل منتقل اور حاصل کرسکتے ہیں۔ ہم پہلے سرو موٹر کو کنٹرول کرنے اور چیٹ روم بنانے کے ل create آرڈینو کے ساتھ nRF24L01 استعمال کرتے تھے۔
ان کے درمیان وائرلیس مواصلت قائم کرنے کے لئے ہم یہاں آرڈوینو یو این او اور راسبیری پائی کے ساتھ NRF24L01 - 2.4GHz RF ٹرانسیور ماڈیول استعمال کریں گے۔ راسبیری پائی ٹرانسمیٹر کا کام کرے گی اور آرڈوینو یونو راسبیری پائی سنیں گے اور رسبری پائی کے ذریعہ بھیجے گئے پیغام کو 16x2 LCD پر nRF24L01 کا استعمال کرکے پرنٹ کریں گے۔ nRF24L01 میں BLE صلاحیتوں کی انبلٹ بھی ہے اور یہ BLE کا استعمال کرتے ہوئے بھی وائرلیس طور پر بات چیت کرسکتا ہے۔
سبق دو حصوں میں تقسیم کیا گیا ہے۔ پہلے حصے میں آرڈوینو کے ساتھ وصول کنندہ کی حیثیت سے کام کرنے کے لئے این آر ایف 24 ایل01 کی انٹرفیسنگ شامل ہوگی اور دوسرے حصے میں ٹرانسمیٹر کے طور پر کام کرنے کے لئے راسبیری پائی کے ساتھ این آر ایف 24 ایل01 کی انٹرفیسنگ شامل ہوگی۔ ورکنگ ویڈیو والے دونوں سیکشن کے لئے مکمل کوڈ اس ٹیوٹوریل کے آخر میں منسلک ہوگا۔
nRF24L01 RF ماڈیول
nRF24L01 ماڈیولز ہیں ٹرانسیور ماڈیولز ہر ماڈیول، جس کا مطلب یہ کر سکتے ہیں دونوں بھیجیں اور اعداد و شمار حاصل ہے لیکن وہ کر رہے ہیں کے بعد سے نصف دوید وہ یا تو بھیج یا ایک وقت میں اعداد و شمار حاصل کر سکتے ہیں. ماڈیول میں نورڈک سیمی کنڈکٹرس کی عام این آر ایف 24 ایل01 آئی سی ہے جو اعداد و شمار کی ترسیل اور استقبال کے لئے ذمہ دار ہے۔ آئی سی نے ایس پی آئی پروٹوکول کا استعمال کرتے ہوئے بات چیت کی ہے اور اسی وجہ سے کسی بھی مائکروکنٹرولر کے ساتھ آسانی سے انٹرفیس کیا جاسکتا ہے۔ یہ ارودوینو کے ساتھ بہت آسان ہوجاتا ہے چونکہ لائبریری آسانی سے دستیاب ہوتی ہیں۔ ایک معیاری nRF24L01 ماڈیول کے pinouts ذیل میں دکھایا جاتا ہے
ماڈیول میں 1.9V سے 3.6V (عام طور پر 3.3V) آپریٹنگ وولٹیج موجود ہے اور عام آپریشن کے دوران صرف 12mA کا بہت کم استعمال ہوتا ہے جس کی وجہ سے یہ بیٹری کو موثر بناتا ہے اور اسی وجہ سے سکے کے خلیوں پر بھی چل سکتا ہے۔ اگرچہ آپریٹنگ وولٹیج 3.3V ہے لیکن زیادہ تر پن 5V روادار ہیں اور اسی وجہ سے آرڈوینو جیسے 5V مائکروقابو کنٹرولرز کے ساتھ براہ راست انٹرفیس کیا جاسکتا ہے۔ ان ماڈیولز کو استعمال کرنے کا ایک اور فائدہ یہ ہے کہ ، ہر ماڈیول میں 6 پائپ لائنز ہوتی ہیں۔ مطلب ، ہر ماڈیول ڈیٹا منتقل کرنے یا موصول کرنے کے لئے 6 دوسرے ماڈیول کے ساتھ بات چیت کرسکتا ہے۔ یہ ماڈیول کو IOT ایپلی کیشنز میں اسٹار یا میش نیٹ ورک بنانے کے ل suitable موزوں بنا دیتا ہے۔ نیز ان کے پاس ایڈریس کی وسیع رینج 125 انفرادک ID ہے ، لہذا ایک بند علاقے میں ہم ان ماڈیولز میں سے 125 کو ایک دوسرے کے ساتھ مداخلت کیے بغیر استعمال کرسکتے ہیں۔
سرکٹ ڈایاگرام
ارڈینو کے ساتھ nRF24L01:
آرڈوینو کے ساتھ nRF24L01 کو مربوط کرنے کے لئے سرکٹ ڈایاگرام آسان ہے اور اس میں زیادہ اجزاء نہیں ہیں۔ NRF24l01 ایس پی آئی انٹرفیس کے ذریعہ منسلک ہوگا اور 16x2 LCD انٹرفیس کے ساتھ I2C پروٹوکول ہے جو صرف دو تاروں کا استعمال کرتا ہے۔
راسبیری پائی کے ساتھ nRF24L01:
راسبیری پائی کے ساتھ این آر ایف 24 ایل01 کو مربوط کرنے کے لئے سرکٹ ڈایاگرام بھی بہت آسان ہے اور راسبیری پائی اور این آر ایف 24l01 کو مربوط کرنے کے لئے صرف ایس پی آئی انٹرفیس استعمال کیا جاتا ہے۔
پروگرامنگ راسبیری پائی کو پیغام بھیجنے کیلئے nRF24l01 کا استعمال کرتے ہوئے
راسبیری پائی کا پروگرامنگ پاتھون 3 کا استعمال کرتے ہوئے کیا جائے گا۔ آپ C / C ++ کو Ardino کے بطور بھی استعمال کرسکتے ہیں۔ لیکن آیتھن میں این آر ایف 24l01 کے لئے پہلے سے لائبریری موجود ہے جسے گیتھب پیج سے ڈاؤن لوڈ کیا جاسکتا ہے۔ نوٹ کریں کہ ازگر کا پروگرام اور لائبریری ایک ہی فولڈر میں ہونی چاہئے یا ازگر کا لائبریری لائبریری نہیں ڈھونڈ سکے گا۔ لائبریری ڈاؤن لوڈ کرنے کے بعد صرف نکالیں اور ایک فولڈر بنائیں جہاں تمام پروگراموں اور لائبریری کی فائلیں اسٹور ہوں گی۔ جب لائبریری کی تنصیب ہو جاتی ہے تو ، صرف پروگرام لکھنا شروع کریں۔ اس پروگرام کا آغاز لائبریریوں کو شامل کرنے کے ساتھ کیا گیا ہے جس میں راسبیری پِی GPIOs تک رسائی اور درآمدی وقت کے لئے درآمد GPIO لائبریری جیسے کوڈ میں استعمال کیا جائے گا۔ وقت سے متعلقہ افعال تک رسائی کے ل. اگر آپ راسبیری پائی میں نئے ہیں تو پھر راسبیری پائی کے ساتھ شروع کرنے پر واپس گریں۔
GPIO طور درآمدی RPi.GPIO درآمد وقت درآمد spidev lib_nrf24 درآمد NRF24 سے
" براڈ کام ایس او سی چینل" میں GPIO وضع طے کریں ۔ اس کا مطلب یہ ہے کہ آپ "براڈ کام ایس او سی چینل" نمبر کے ذریعہ پنوں کا حوالہ دے رہے ہیں ، یہ "جی پی آئی او" کے بعد نمبر ہیں (مثال کے طور پر جی پی آئی او01 ، جی پی آئی او02…)۔ یہ بورڈ نمبر نہیں ہیں۔
GPIO.setmode (GPIO.BCM)
اگلا ہم اسے پائپ ایڈریس مرتب کریں گے ۔ ایردوینو وصول کنندہ سے بات چیت کرنے کے لئے یہ پتہ ضروری ہے۔ پتہ ہیکس کوڈ میں ہوگا۔
پائپس = ،]
GPIO08 کو CE اور GPIO25 کے بطور CSN پن استعمال کرکے ریڈیو کا آغاز کریں۔
ریڈیو.بیگین (0 ، 25)
پے لوڈ کا سائز 32 بٹ ، چینل ایڈریس 76 ، ڈیٹا کی شرح 1 ایم بی پی ایس اور بجلی کی سطح کو کم سے کم مقرر کریں۔
radio.setPayloadSize (32) Radio.setChannel (0x76) radio.setDataRate (NRF24.BR_1MBPS) radio.setPALevel (NRF24.PA_MIN)
اعداد و شمار لکھنا شروع کرنے کے ل Open پائپس کھولیں اور این آر ایف 24 ایل01 کی بنیادی تفصیلات پرنٹ کریں۔
radio.openWritingPype (پائپ) ریڈیو.پرنٹ ڈیٹل ()
اسٹرنگ فارم میں میسج تیار کریں۔ یہ پیغام اردوینو یو این او کو بھیجا جائے گا۔
بھیجیں میسج = فہرست ("ہائے..آرڈینو یو این او") جبکہ لین ( بھیجیں میسج) <32: सेंڈ میسج.اپینڈ (0)
ریڈیو کو لکھنا شروع کریں اور ریڈیو دستیاب ہونے تک مکمل سٹرنگ لکھتے رہیں۔ اس کے ساتھ ہی ، وقت کو نوٹ کریں اور مسیج کی ترسیل کا ڈیبگ بیان چھاپیں۔
جبکہ سچ ہے: start = time.time () radio.writ (sendMessage) پرنٹ ("میسج بھیج دیا گیا: {.". فارمیٹ ( सेंڈ میسیج)) بھیجیں red.startListening ()
اگر سٹرنگ مکمل ہوچکی ہے اور پائپ بند ہے تو پھر ٹائم آؤٹ کا ڈیبگ میسج پرنٹ کریں۔
جبکہ radio.available نہیں (0) time.sleep (1/100) time.time () تو - شروع کریں> 2: پرنٹ ریڈیو منقطع یا اب کام نہیں ہے تو ("ٹائم آؤٹ ہو گیا.") # پرنٹ غلطی پیغام کو توڑنے
ریڈیو سننا بند کریں اور مواصلات کو بند کریں اور دوسرا پیغام بھیجنے کے لئے 3 سیکنڈ کے بعد مواصلات کو دوبارہ شروع کریں۔
radio.stopListening () # قریبی ریڈیو ٹائم۔ نیند (3) # 3 سیکنڈ کی تاخیر سے دے
راسبیری پروگرام سمجھنے کے لئے آسان ہے اگر آپ ازگر کی بنیادی باتیں جانتے ہو۔ ٹیوٹوریل کے آخر میں مکمل ازگر پروگرام دیا گیا ہے۔
راسبیری پائی میں ازگر کے پروگرام کا اجراء:
مندرجہ ذیل مراحل پر عمل کرنے کے بعد پروگرام پر عمل کرنا بہت آسان ہے۔
- ایک ہی فولڈر میں ازگر پروگرام اور لائبریری کی فائلوں کو محفوظ کریں۔
- میرے پروگرام مرسل کے لئے فائل کا نام nrfsend.py ہے اور ہر فائلیں ایک ہی فولڈر میں ہیں
- راسبیری پائ کے کمانڈ ٹرمینل پر جائیں۔ اور "سی ڈی" کمانڈ استعمال کرکے ازگر پروگرام فائل کو تلاش کریں۔
- اس کے بعد فولڈر کھولیں اور کمانڈ لکھیں " sudo python3 your_program.py " اور انٹر کو دبائیں۔ آپ nRf24 کی بنیادی تفصیلات دیکھ سکیں گے اور ریڈیو ہر 3 سیکنڈ کے بعد پیغامات بھیجنا شروع کردے گا۔ میسج ڈیبگ بھیجنے کے بعد دکھائے گا تمام بھیجے گئے کرداروں کے ساتھ۔
اب ہم وہی پروگرام دیکھیں گے جو وصول کنندہ کے طور پر ارڈینوو یو این او میں ہوگا۔
پروگرامنگ Ardino UNO nRF24l01 کا استعمال کرتے ہوئے پیغام موصول کرنے کے لئے
ارڈینوو یو این او پروگرامنگ راسبیری پائی کو پروگرام کرنے کے مترادف ہے۔ ہم اسی طرح کے طریقوں پر عمل کریں گے لیکن پروگرامنگ کی مختلف زبان اور اقدامات کے ساتھ۔ ان اقدامات میں nRF24l01 کا پڑھنے والا حصہ شامل ہوگا۔ Ardino کے لئے nRF24l01 کے لئے لائبریری کو گیتھب پیج سے ڈاؤن لوڈ کیا جاسکتا ہے۔ ضروری لائبریریاں شامل کرنے کے ساتھ شروع کریں۔ ہم I2C شیلڈ کا استعمال کرتے ہوئے 16x2 LCD استعمال کررہے ہیں لہذا Wire.h لائبریری بھی شامل کریں اور NRF24l01 بھی ایس پی آئی کے ساتھ انٹرفیس کیا گیا ہے لہذا ایس پی آئی لائبریری بھی شامل کریں۔
# شامل کریں
RF24 اور LCD افعال تک رسائی کے ل. RF24 اور LCD لائبریری شامل کریں۔
# شامل کریں
I2C کے لئے LCD ایڈریس 27 ہے اور یہ ایک 16x2 LCD ہے لہذا اسے فنکشن میں لکھیں۔
لیکویڈ کرسٹل_ آئی 2 سی ایل سی ڈی (0 ایکس 27 ، 16 ، 2)؛
RF24 پن 9 میں سی ای کے ساتھ معیاری ایس پی آئی پنوں اور پن 10 میں سی ایس این کے ساتھ جڑا ہوا ہے۔
آر ایف 24 ریڈیو (9 ، 10)؛
ریڈیو شروع کریں ، بجلی کی سطح مرتب کریں اور چینل کو 76 پر سیٹ کریں۔ پائپ ایڈریس بھی راسبیری پائی کی طرح مقرر کریں اور پڑھنے کے لئے پائپ کھولیں۔
ریڈیو.بیگین ()؛ ریڈیو.سیٹ پیالویل (آر ایف 24_PA_MAX)؛ ریڈیو.سیٹ چینل (0x76)؛ کونٹ uint64_t پائپ = 0xE0E0F1F1E0LL؛ ریڈیو.وپن ریئرنگ پائپ (1 ، پائپ)؛
I2C مواصلات کا آغاز کریں اور LCD ڈسپلے کا آغاز کریں۔
تار.بیگین ()؛ lcd.begin ()؛ lcd.home ()؛ lcd.print ("وصول کرنے کے لئے تیار ہیں")؛
آنے والے پیغامات کے ل the ریڈیو کو سننا شروع کریں اور پیغام کی لمبائی 32 بائٹس مقرر کریں۔
radio.startListening ()؛ چار موصولہ پیغام = {0}
اگر ریڈیو منسلک ہے تو میسج کو پڑھنا شروع کریں اور اسے محفوظ کریں۔ سیریل مانیٹر پر میسج پرنٹ کریں اور اگلا میسج آنے تک ڈسپلے پرنٹ کریں۔ سننے کے لئے ریڈیو کو روکیں اور کچھ وقفہ کے بعد دوبارہ کوشش کریں۔ یہاں یہ 10 مائیکرو سیکنڈ ہے۔
اگر (ریڈیو.ایویلبل ()) { ریڈیو.ریڈ (وصول شدہ میسج ، سائز آف (وصول شدہ میسج))؛ سیریل.پرنٹلن (وصول شدہ پیغام)؛ سیریل.پرنٹلن ("ریڈیو بند کر رہا ہے۔")؛ radio.stopListening ()؛ سٹرنگ سٹرنگ میسج (وصول شدہ میسج)؛ lcd.clear ()؛ تاخیر (1000)؛ lcd.print (stringMessage)؛ }
ارڈینو یو این او کے آخر میں دیا ہوا مکمل کوڈ اپ لوڈ کریں اور پیغام موصول ہونے کا انتظار کریں۔
اس میں رسبری پائی & nRf24l01 کا استعمال کرکے اور ارڈینو یو این او & nRF24l01 کا استعمال کرتے ہوئے اسے بھیجنے کے بارے میں مکمل ٹیوٹوریل مکمل ہوتا ہے۔ اس پیغام کو 16x2 LCD پر چھاپ دیا جائے گا۔ پائپ پتے دونوں اردوینو یو این او اور راسبیری پائی دونوں میں بہت اہم ہیں۔ اگر آپ کو اس پروجیکٹ کو کرتے ہوئے کسی قسم کی پریشانی کا سامنا کرنا پڑتا ہے تو براہ کرم ذیل میں تبصرہ کریں یا مزید تفصیلی گفتگو کیلئے فورم پر پہنچیں۔
ذیل میں مظاہرے کی ویڈیو بھی چیک کریں ۔