45 KiB
اپنے پودے کو کلاؤڈ پر منتقل کریں
خاکہ از نیتیا نرسمہن۔ بڑی تصویر دیکھنے کے لیے تصویر پر کلک کریں۔
یہ سبق IoT for Beginners Project 2 - Digital Agriculture series کے حصے کے طور پر Microsoft Reactor میں پڑھایا گیا۔
لیکچر سے پہلے کا کوئز
تعارف
پچھلے سبق میں، آپ نے سیکھا کہ اپنے پودے کو MQTT بروکر سے کیسے جوڑیں اور مقامی طور پر چلنے والے سرور کوڈ سے ایک ریلے کو کنٹرول کریں۔ یہ وہ بنیادی نظام ہے جو انٹرنیٹ سے جڑے ہوئے خودکار آبپاشی کے نظام کے لیے استعمال ہوتا ہے، چاہے وہ گھر کے انفرادی پودوں کے لیے ہو یا تجارتی کھیتوں کے لیے۔
آپ کے IoT ڈیوائس نے ایک عوامی MQTT بروکر کے ساتھ بات چیت کی تاکہ اصولوں کو سمجھایا جا سکے، لیکن یہ سب سے زیادہ قابل اعتماد یا محفوظ طریقہ نہیں ہے۔ اس سبق میں آپ کلاؤڈ کے بارے میں سیکھیں گے اور عوامی کلاؤڈ سروسز کے ذریعے فراہم کردہ IoT صلاحیتوں کے بارے میں جانیں گے۔ آپ یہ بھی سیکھیں گے کہ اپنے پودے کو عوامی MQTT بروکر سے کلاؤڈ سروسز پر کیسے منتقل کریں۔
اس سبق میں ہم درج ذیل موضوعات کا احاطہ کریں گے:
- کلاؤڈ کیا ہے؟
- کلاؤڈ سبسکرپشن بنائیں
- کلاؤڈ IoT سروسز
- کلاؤڈ میں IoT سروس بنائیں
- IoT Hub کے ساتھ بات چیت کریں
- اپنے ڈیوائس کو IoT سروس سے جوڑیں
کلاؤڈ کیا ہے؟
کلاؤڈ سے پہلے، جب کوئی کمپنی اپنے ملازمین کو خدمات فراہم کرنا چاہتی تھی (جیسے ڈیٹا بیس یا فائل اسٹوریج)، یا عوام کو (جیسے ویب سائٹس)، تو وہ ایک ڈیٹا سینٹر بناتی اور چلاتی تھی۔ یہ ایک کمرے میں چند کمپیوٹرز سے لے کر ایک عمارت میں کئی کمپیوٹرز تک ہو سکتا تھا۔ کمپنی کو سب کچھ خود سنبھالنا پڑتا تھا، بشمول:
- کمپیوٹرز خریدنا
- ہارڈویئر کی دیکھ بھال
- بجلی اور کولنگ
- نیٹ ورکنگ
- سیکیورٹی، بشمول عمارت اور سافٹ ویئر کی حفاظت
- سافٹ ویئر کی تنصیب اور اپ ڈیٹس
یہ سب بہت مہنگا ہو سکتا تھا، مختلف مہارتوں کے حامل ملازمین کی ضرورت ہوتی تھی، اور ضرورت پڑنے پر تبدیلیاں کرنے میں بہت وقت لگتا تھا۔ مثال کے طور پر، اگر ایک آن لائن اسٹور کو مصروف تعطیلاتی سیزن کے لیے منصوبہ بندی کرنی ہوتی، تو انہیں مہینوں پہلے ہارڈویئر خریدنے، اسے ترتیب دینے، اور سیلز کے عمل کو چلانے کے لیے سافٹ ویئر انسٹال کرنے کی ضرورت ہوتی۔ تعطیلاتی سیزن کے بعد، جب فروخت کم ہو جاتی، تو وہ کمپیوٹرز جو انہوں نے خریدے تھے، اگلے مصروف سیزن تک بیکار پڑے رہتے۔
✅ کیا آپ کو لگتا ہے کہ یہ کمپنیوں کو تیزی سے کام کرنے کی اجازت دیتا؟ اگر ایک آن لائن کپڑوں کا بیچنے والا اچانک مشہور ہو جائے کیونکہ کسی مشہور شخصیت نے ان کے کپڑے پہنے، تو کیا وہ اپنے کمپیوٹنگ پاور کو اتنی جلدی بڑھا سکتے ہیں کہ آرڈرز کے اچانک اضافے کو سنبھال سکیں؟
کسی اور کا کمپیوٹر
کلاؤڈ کو اکثر مذاق میں 'کسی اور کا کمپیوٹر' کہا جاتا ہے۔ بنیادی خیال سادہ تھا - کمپیوٹر خریدنے کے بجائے، آپ کسی اور کا کمپیوٹر کرائے پر لیں۔ کوئی اور، یعنی کلاؤڈ کمپیوٹنگ فراہم کنندہ، بڑے ڈیٹا سینٹرز کا انتظام کرے گا۔ وہ ہارڈویئر خریدنے اور انسٹال کرنے، بجلی اور کولنگ کا انتظام کرنے، نیٹ ورکنگ، عمارت کی حفاظت، ہارڈویئر اور سافٹ ویئر اپ ڈیٹس، سب کچھ سنبھالیں گے۔ بطور صارف، آپ کو صرف ضرورت کے مطابق کمپیوٹر کرائے پر لینے ہوں گے، جب مانگ بڑھے تو زیادہ کرائے پر لیں، اور جب مانگ کم ہو تو کم کرائے پر لیں۔ یہ کلاؤڈ ڈیٹا سینٹرز دنیا بھر میں موجود ہیں۔
یہ ڈیٹا سینٹرز کئی مربع کلومیٹر کے رقبے پر محیط ہو سکتے ہیں۔ اوپر دی گئی تصاویر چند سال پہلے ایک مائیکروسافٹ کلاؤڈ ڈیٹا سینٹر میں لی گئی تھیں، اور ابتدائی سائز کے ساتھ ساتھ منصوبہ بند توسیع کو دکھاتی ہیں۔ توسیع کے لیے صاف کیا گیا علاقہ 5 مربع کلومیٹر سے زیادہ ہے۔
💁 یہ ڈیٹا سینٹرز اتنی بڑی مقدار میں بجلی استعمال کرتے ہیں کہ کچھ کے اپنے پاور اسٹیشنز ہوتے ہیں۔ ان کے سائز اور کلاؤڈ فراہم کنندگان کی سرمایہ کاری کی وجہ سے، یہ عام طور پر ماحولیاتی طور پر دوستانہ ہوتے ہیں۔ یہ چھوٹے ڈیٹا سینٹرز کے مقابلے میں زیادہ مؤثر ہیں، زیادہ تر قابل تجدید توانائی پر چلتے ہیں، اور کلاؤڈ فراہم کنندگان فضلہ کو کم کرنے، پانی کے استعمال کو کم کرنے، اور جنگلات کو دوبارہ اگانے کے لیے سخت محنت کرتے ہیں۔ آپ ایک کلاؤڈ فراہم کنندہ کے پائیداری کے اقدامات کے بارے میں مزید پڑھ سکتے ہیں Azure پائیداری سائٹ پر۔
✅ تحقیق کریں: مائیکروسافٹ کے Azure یا گوگل کے GCP جیسے بڑے کلاؤڈز کے بارے میں پڑھیں۔ ان کے پاس کتنے ڈیٹا سینٹرز ہیں، اور وہ دنیا میں کہاں واقع ہیں؟
کلاؤڈ کا استعمال کمپنیوں کے اخراجات کو کم رکھتا ہے، اور انہیں اپنے بنیادی کام پر توجہ مرکوز کرنے کی اجازت دیتا ہے، جبکہ کلاؤڈ کمپیوٹنگ کی مہارت فراہم کنندہ کے ہاتھ میں رہتی ہے۔ کمپنیوں کو اب ڈیٹا سینٹر کی جگہ کرائے پر لینے یا خریدنے، مختلف فراہم کنندگان کو کنیکٹیویٹی اور بجلی کے لیے ادائیگی کرنے، یا ماہرین کو ملازمت دینے کی ضرورت نہیں ہوتی۔ اس کے بجائے، وہ کلاؤڈ فراہم کنندہ کو ایک ماہانہ بل ادا کرتے ہیں تاکہ سب کچھ سنبھالا جا سکے۔
کلاؤڈ فراہم کنندہ پھر بڑے پیمانے پر معیشت کا فائدہ اٹھا کر اخراجات کو کم کر سکتا ہے، ہارڈویئر کو کم قیمت پر بڑی مقدار میں خرید سکتا ہے، دیکھ بھال کے لیے اپنے کام کے بوجھ کو کم کرنے کے لیے ٹولنگ میں سرمایہ کاری کر سکتا ہے، اور یہاں تک کہ اپنے کلاؤڈ کی پیشکش کو بہتر بنانے کے لیے اپنا ہارڈویئر ڈیزائن اور تیار کر سکتا ہے۔
مائیکروسافٹ Azure
Azure مائیکروسافٹ کا ڈویلپر کلاؤڈ ہے، اور یہی کلاؤڈ آپ ان اسباق میں استعمال کریں گے۔ نیچے دی گئی ویڈیو Azure کا مختصر جائزہ پیش کرتی ہے:
کلاؤڈ سبسکرپشن بنائیں
کلاؤڈ میں خدمات استعمال کرنے کے لیے، آپ کو کلاؤڈ فراہم کنندہ کے ساتھ سبسکرپشن کے لیے سائن اپ کرنا ہوگا۔ اس سبق کے لیے، آپ مائیکروسافٹ Azure سبسکرپشن کے لیے سائن اپ کریں گے۔ اگر آپ کے پاس پہلے سے Azure سبسکرپشن ہے تو آپ اس کام کو چھوڑ سکتے ہیں۔ یہاں بیان کردہ سبسکرپشن کی تفصیلات تحریر کے وقت درست ہیں، لیکن وقت کے ساتھ تبدیل ہو سکتی ہیں۔
💁 اگر آپ یہ اسباق اپنے اسکول کے ذریعے حاصل کر رہے ہیں، تو آپ کے پاس پہلے سے ایک Azure سبسکرپشن دستیاب ہو سکتی ہے۔ اپنے استاد سے چیک کریں۔
Azure سبسکرپشن کے دو مختلف مفت اقسام ہیں جن کے لیے آپ سائن اپ کر سکتے ہیں:
-
Azure for Students - یہ 18+ طلباء کے لیے ڈیزائن کردہ سبسکرپشن ہے۔ سائن اپ کرنے کے لیے آپ کو کریڈٹ کارڈ کی ضرورت نہیں ہوتی، اور آپ اپنے اسکول کے ای میل ایڈریس کا استعمال کرتے ہوئے تصدیق کرتے ہیں کہ آپ طالب علم ہیں۔ سائن اپ کرنے پر آپ کو کلاؤڈ وسائل پر خرچ کرنے کے لیے $100 ملتے ہیں، ساتھ ہی مفت خدمات بشمول IoT سروس کا ایک مفت ورژن۔ یہ 12 مہینے تک جاری رہتا ہے، اور آپ ہر سال جب تک طالب علم رہیں اسے تجدید کر سکتے ہیں۔
-
Azure مفت سبسکرپشن - یہ ان لوگوں کے لیے سبسکرپشن ہے جو طالب علم نہیں ہیں۔ اس سبسکرپشن کے لیے سائن اپ کرنے کے لیے آپ کو کریڈٹ کارڈ کی ضرورت ہوگی، لیکن آپ کے کارڈ سے چارج نہیں کیا جائے گا، یہ صرف اس بات کی تصدیق کے لیے استعمال ہوتا ہے کہ آپ ایک حقیقی انسان ہیں، نہ کہ بوٹ۔ آپ کو پہلے 30 دنوں میں کسی بھی سروس پر استعمال کرنے کے لیے $200 کا کریڈٹ ملتا ہے، ساتھ ہی Azure خدمات کے مفت درجے۔ ایک بار جب آپ کا کریڈٹ ختم ہو جاتا ہے، تو آپ کے کارڈ سے چارج نہیں کیا جائے گا جب تک کہ آپ اسے پے ایز یو گو سبسکرپشن میں تبدیل نہ کریں۔
💁 مائیکروسافٹ 18 سال سے کم عمر طلباء کے لیے Azure for Students Starter سبسکرپشن پیش کرتا ہے، لیکن تحریر کے وقت یہ کسی بھی IoT سروسز کی حمایت نہیں کرتا۔
کام - مفت کلاؤڈ سبسکرپشن کے لیے سائن اپ کریں
اگر آپ 18+ عمر کے طالب علم ہیں، تو آپ Azure for Students سبسکرپشن کے لیے سائن اپ کر سکتے ہیں۔ آپ کو اسکول کے ای میل ایڈریس کے ساتھ تصدیق کرنی ہوگی۔ آپ یہ دو طریقوں سے کر سکتے ہیں:
-
GitHub اسٹوڈنٹ ڈویلپر پیک کے لیے education.github.com/pack پر سائن اپ کریں۔ یہ آپ کو GitHub اور Microsoft Azure سمیت ٹولز اور آفرز تک رسائی فراہم کرتا ہے۔ ڈویلپر پیک کے لیے سائن اپ کرنے کے بعد، آپ Azure for Students آفر کو فعال کر سکتے ہیں۔
-
براہ راست Azure for Students اکاؤنٹ کے لیے azure.microsoft.com/free/students پر سائن اپ کریں۔
⚠️ اگر آپ کے اسکول کے ای میل ایڈریس کو تسلیم نہیں کیا گیا، تو اس ریپو میں مسئلہ اٹھائیں اور ہم دیکھیں گے کہ کیا اسے Azure for Students کی اجازت کی فہرست میں شامل کیا جا سکتا ہے۔
اگر آپ طالب علم نہیں ہیں، یا آپ کے پاس درست اسکول ای میل ایڈریس نہیں ہے، تو آپ Azure مفت سبسکرپشن کے لیے سائن اپ کر سکتے ہیں۔
- Azure مفت سبسکرپشن کے لیے azure.microsoft.com/free پر سائن اپ کریں۔
کلاؤڈ IoT سروسز
آپ جو عوامی ٹیسٹ MQTT بروکر استعمال کر رہے ہیں وہ سیکھنے کے دوران ایک بہترین ٹول ہے، لیکن تجارتی ماحول میں استعمال کے لیے اس میں کئی خامیاں ہیں:
- قابل اعتماد نہیں - یہ ایک مفت سروس ہے جس کی کوئی ضمانت نہیں، اور کسی بھی وقت بند کی جا سکتی ہے۔
- غیر محفوظ - یہ عوامی ہے، اس لیے کوئی بھی آپ کے ٹیلیمیٹری کو سن سکتا ہے یا آپ کے ہارڈویئر کو کنٹرول کرنے کے لیے کمانڈ بھیج سکتا ہے۔
- کارکردگی - یہ صرف چند ٹیسٹ پیغامات کے لیے ڈیزائن کیا گیا ہے، اس لیے یہ بڑی تعداد میں پیغامات کو سنبھال نہیں سکتا۔
- دریافت - یہ معلوم کرنے کا کوئی طریقہ نہیں کہ کون سے ڈیوائسز جڑے ہوئے ہیں۔
کلاؤڈ میں IoT سروسز ان مسائل کو حل کرتی ہیں۔ یہ بڑی کلاؤڈ فراہم کنندگان کے ذریعے برقرار رکھی جاتی ہیں جو قابل اعتماد ہونے میں بھاری سرمایہ کاری کرتے ہیں اور کسی بھی مسئلے کو حل کرنے کے لیے دستیاب ہوتے ہیں۔ ان میں سیکیورٹی شامل ہوتی ہے تاکہ ہیکرز آپ کے ڈیٹا کو نہ پڑھ سکیں یا جعلی کمانڈ نہ بھیج سکیں۔ یہ اعلیٰ کارکردگی کی حامل ہوتی ہیں، روزانہ لاکھوں پیغامات کو سنبھال سکتی ہیں، اور ضرورت کے مطابق کلاؤڈ کا فائدہ اٹھا کر توسیع کر سکتی ہیں۔
💁 اگرچہ آپ ان فوائد کے لیے ماہانہ فیس ادا کرتے ہیں، زیادہ تر کلاؤڈ فراہم کنندگان اپنی IoT سروس کا ایک مفت ورژن پیش کرتے ہیں جس میں روزانہ پیغامات کی محدود تعداد یا جڑنے والے ڈیوائسز کی حد ہوتی ہے۔ یہ مفت ورژن عام طور پر ڈویلپر کے لیے سروس کے بارے میں سیکھنے کے لیے کافی ہوتا ہے۔ اس سبق میں آپ ایک مفت ورژن استعمال کریں گے۔
IoT ڈیوائسز کلاؤڈ سروس سے یا تو ڈیوائس SDK (ایک لائبریری جو سروس کی خصوصیات کے ساتھ کام کرنے کے لیے کوڈ فراہم کرتی ہے) یا براہ راست کسی مواصلاتی پروٹوکول جیسے MQTT یا HTTP کے ذریعے جڑتی ہیں۔ ڈیوائس SDK عام طور پر سب سے آسان راستہ ہوتا ہے کیونکہ یہ سب کچھ آپ کے لیے سنبھالتا ہے، جیسے کہ کون سے موضوعات پر شائع کرنا یا سبسکرائب کرنا، اور سیکیورٹی کو کیسے سنبھالنا۔
آپ کا ڈیوائس پھر آپ کی ایپلیکیشن کے دوسرے حصوں کے ساتھ اس سروس کے ذریعے بات چیت کرتا ہے - بالکل اسی طرح جیسے آپ نے MQTT کے ذریعے ٹیلیمیٹری بھیجی اور کمانڈز وصول کیں۔ یہ عام طور پر سروس SDK یا اسی طرح کی لائبریری کا استعمال کرتے ہوئے کیا جاتا ہے۔ پیغامات آپ کے ڈیوائس سے سروس تک آتے ہیں جہاں آپ کی ایپلیکیشن کے دوسرے اجزاء انہیں پڑھ سکتے ہیں، اور پیغامات آپ کے ڈیوائس کو واپس بھیجے جا سکتے ہیں۔
یہ سروسز سیکیورٹی کو نافذ کرتی ہیں، یہ جان کر کہ کون سے ڈیوائسز جڑ سکتے ہیں اور ڈیٹا بھیج سکتے ہیں، یا تو ڈیوائسز کو سروس کے ساتھ پہلے سے رجسٹر کر کے، یا ڈیوائسز کو خفیہ کلیدیں یا سرٹیفکیٹس دے کر تاکہ وہ پہلی بار سروس سے جڑنے پر خود کو رجسٹر کر سکیں۔ نامعلوم ڈیوائسز جڑ نہیں سکتیں، اگر وہ کوشش کریں تو سروس کنکشن کو مسترد کر دیتی ہے اور ان کے بھیجے گئے پیغامات کو نظر انداز کر دیتی ہے۔
✅ تحقیق کریں: ایک کھلی IoT سروس رکھنے کا کیا نقصان ہے جہاں کوئی بھی ڈیوائس یا کوڈ جڑ سکتا ہو؟ کیا آپ ایسے مخصوص مثالیں تلاش کر سکتے ہیں جہاں ہیکرز نے اس کا فائدہ اٹھایا ہو؟
آپ کی ایپلیکیشن کے دوسرے اجزاء IoT سروس سے جڑ سکتے ہیں اور تمام جڑے ہوئے یا رجسٹرڈ ڈیوائسز کے بارے میں جان سکتے ہیں، اور ان کے ساتھ براہ راست یا اجتماعی طور پر بات چیت کر سکتے ہیں۔ 💁 آئی او ٹی سروسز اضافی صلاحیتیں بھی فراہم کرتی ہیں، اور کلاؤڈ فراہم کنندگان کے پاس اضافی سروسز اور ایپلیکیشنز موجود ہوتی ہیں جنہیں اس سروس کے ساتھ منسلک کیا جا سکتا ہے۔ مثال کے طور پر، اگر آپ تمام ڈیوائسز کی طرف سے بھیجے گئے ٹیلیمیٹری پیغامات کو ایک ڈیٹا بیس میں محفوظ کرنا چاہتے ہیں، تو عام طور پر کلاؤڈ فراہم کنندہ کے کنفیگریشن ٹول میں صرف چند کلکس کی ضرورت ہوتی ہے تاکہ سروس کو ڈیٹا بیس کے ساتھ منسلک کیا جا سکے اور ڈیٹا کو اسٹریم کیا جا سکے۔
کلاؤڈ میں IoT سروس بنائیں
اب جب کہ آپ کے پاس Azure سبسکرپشن ہے، آپ IoT سروس کے لیے سائن اپ کر سکتے ہیں۔ Microsoft کی IoT سروس کو Azure IoT Hub کہا جاتا ہے۔
نیچے دی گئی ویڈیو Azure IoT Hub کا مختصر جائزہ پیش کرتی ہے:
🎥 ویڈیو دیکھنے کے لیے اوپر دی گئی تصویر پر کلک کریں
✅ کچھ وقت نکالیں اور Microsoft IoT Hub دستاویزات میں IoT Hub کا جائزہ پڑھیں۔
Azure میں دستیاب کلاؤڈ سروسز کو ویب پر مبنی پورٹل یا کمانڈ لائن انٹرفیس (CLI) کے ذریعے ترتیب دیا جا سکتا ہے۔ اس کام کے لیے، آپ CLI استعمال کریں گے۔
کام - Azure CLI انسٹال کریں
Azure CLI استعمال کرنے کے لیے، پہلے اسے آپ کے PC یا Mac پر انسٹال کرنا ہوگا۔
-
Azure CLI دستاویزات میں دی گئی ہدایات پر عمل کریں تاکہ CLI انسٹال کیا جا سکے۔
-
Azure CLI متعدد ایکسٹینشنز کو سپورٹ کرتا ہے جو Azure سروسز کی وسیع رینج کو منظم کرنے کی صلاحیتیں شامل کرتی ہیں۔ IoT ایکسٹینشن انسٹال کرنے کے لیے، اپنے کمانڈ لائن یا ٹرمینل سے درج ذیل کمانڈ چلائیں:
az extension add --name azure-iot
-
اپنے کمانڈ لائن یا ٹرمینل سے درج ذیل کمانڈ چلائیں تاکہ Azure CLI سے اپنی Azure سبسکرپشن میں لاگ ان کریں۔
az login
ایک ویب صفحہ آپ کے ڈیفالٹ براؤزر میں لانچ ہوگا۔ اس اکاؤنٹ سے لاگ ان کریں جو آپ نے اپنی Azure سبسکرپشن کے لیے سائن اپ کرنے کے لیے استعمال کیا تھا۔ لاگ ان ہونے کے بعد، آپ براؤزر ٹیب کو بند کر سکتے ہیں۔
-
اگر آپ کے پاس متعدد Azure سبسکرپشنز ہیں، جیسے اسکول کی فراہم کردہ سبسکرپشن اور اپنی Azure for Students سبسکرپشن، تو آپ کو وہ سبسکرپشن منتخب کرنے کی ضرورت ہوگی جسے آپ استعمال کرنا چاہتے ہیں۔ درج ذیل کمانڈ چلائیں تاکہ آپ کے پاس موجود تمام سبسکرپشنز کی فہرست حاصل کی جا سکے:
az account list --output table
آؤٹ پٹ میں، آپ کو ہر سبسکرپشن کا نام اور اس کا
SubscriptionId
نظر آئے گا۔➜ ~ az account list --output table Name CloudName SubscriptionId State IsDefault ---------------------- ----------- ------------------------------------ ------- ----------- School-subscription AzureCloud cb30cde9-814a-42f0-a111-754cb788e4e1 Enabled True Azure for Students AzureCloud fa51c31b-162c-4599-add6-781def2e1fbf Enabled False
وہ سبسکرپشن منتخب کرنے کے لیے جسے آپ استعمال کرنا چاہتے ہیں، درج ذیل کمانڈ استعمال کریں:
az account set --subscription <SubscriptionId>
<SubscriptionId>
کو اس سبسکرپشن کے Id سے تبدیل کریں جسے آپ استعمال کرنا چاہتے ہیں۔ اس کمانڈ کو چلانے کے بعد، اپنے اکاؤنٹس کی فہرست دوبارہ حاصل کریں۔ آپ دیکھیں گے کہIsDefault
کالم اس سبسکرپشن کے لیےTrue
کے طور پر نشان زد ہوگا جسے آپ نے ابھی سیٹ کیا ہے۔
کام - ریسورس گروپ بنائیں
Azure سروسز، جیسے IoT Hub انسٹینسز، ورچوئل مشینز، ڈیٹا بیسز، یا AI سروسز، کو ریسورسز کہا جاتا ہے۔ ہر ریسورس کو ایک ریسورس گروپ میں رہنا ہوتا ہے، جو ایک یا زیادہ ریسورسز کا منطقی گروپ ہوتا ہے۔
💁 ریسورس گروپس استعمال کرنے کا مطلب ہے کہ آپ ایک ساتھ متعدد سروسز کو منظم کر سکتے ہیں۔ مثال کے طور پر، ایک بار جب آپ اس پروجیکٹ کے تمام اسباق مکمل کر لیں، تو آپ ریسورس گروپ کو حذف کر سکتے ہیں، اور اس میں موجود تمام ریسورسز خود بخود حذف ہو جائیں گے۔
-
دنیا بھر میں متعدد Azure ڈیٹا سینٹرز ہیں، جو علاقوں میں تقسیم کیے گئے ہیں۔ جب آپ Azure ریسورس یا ریسورس گروپ بناتے ہیں، تو آپ کو یہ بتانا ہوتا ہے کہ آپ اسے کہاں بنانا چاہتے ہیں۔ درج ذیل کمانڈ چلائیں تاکہ مقامات کی فہرست حاصل کی جا سکے:
az account list-locations --output table
آپ کو مقامات کی ایک فہرست نظر آئے گی۔ یہ فہرست طویل ہوگی۔
💁 اس وقت، آپ 65 مقامات پر تعینات کر سکتے ہیں۔
➜ ~ az account list-locations --output table DisplayName Name RegionalDisplayName ------------------------ ------------------- ------------------------------------- East US eastus (US) East US East US 2 eastus2 (US) East US 2 South Central US southcentralus (US) South Central US ...
اپنے قریب ترین علاقے کے
Name
کالم سے قدر نوٹ کریں۔ آپ Azure جغرافیائی صفحہ پر نقشے پر علاقوں کو تلاش کر سکتے ہیں: Azure جغرافیائی صفحہ۔ -
درج ذیل کمانڈ چلائیں تاکہ
soil-moisture-sensor
نامی ریسورس گروپ بنایا جا سکے۔ ریسورس گروپ کے نام آپ کی سبسکرپشن میں منفرد ہونے چاہئیں۔az group create --name soil-moisture-sensor \ --location <location>
<location>
کو اس مقام سے تبدیل کریں جو آپ نے پچھلے مرحلے میں منتخب کیا تھا۔
کام - IoT Hub بنائیں
اب آپ اپنے ریسورس گروپ میں IoT Hub ریسورس بنا سکتے ہیں۔
-
درج ذیل کمانڈ استعمال کریں تاکہ آپ کا IoT Hub ریسورس بنایا جا سکے:
az iot hub create --resource-group soil-moisture-sensor \ --sku F1 \ --partition-count 2 \ --name <hub_name>
<hub_name>
کو اپنے ہب کے لیے نام سے تبدیل کریں۔ یہ نام عالمی طور پر منفرد ہونا چاہیے - یعنی کسی اور کے بنائے گئے IoT Hub کا نام ایک جیسا نہیں ہو سکتا۔ یہ نام ایک URL میں استعمال ہوتا ہے جو ہب کی طرف اشارہ کرتا ہے، اس لیے منفرد ہونا ضروری ہے۔ کچھ ایسا استعمال کریں جیسےsoil-moisture-sensor-
اور آخر میں ایک منفرد شناخت کنندہ شامل کریں، جیسے کچھ بے ترتیب الفاظ یا آپ کا نام۔--sku F1
آپشن اسے مفت درجے کے طور پر استعمال کرنے کے لیے کہتا ہے۔ مفت درجے میں روزانہ 8,000 پیغامات اور مکمل قیمت والے درجے کی زیادہ تر خصوصیات شامل ہیں۔🎓 Azure سروسز کے مختلف قیمتوں کے درجے کو درجے کہا جاتا ہے۔ ہر درجے کی مختلف قیمت ہوتی ہے اور مختلف خصوصیات یا ڈیٹا کی مقدار فراہم کرتا ہے۔
💁 اگر آپ قیمتوں کے بارے میں مزید جاننا چاہتے ہیں، تو آپ Azure IoT Hub قیمتوں کی گائیڈ دیکھ سکتے ہیں۔
--partition-count 2
آپشن یہ بتاتا ہے کہ IoT Hub کتنے ڈیٹا اسٹریمز کو سپورٹ کرتا ہے، زیادہ پارٹیشنز ڈیٹا بلاکنگ کو کم کرتی ہیں جب متعدد چیزیں IoT Hub سے پڑھتی اور لکھتی ہیں۔ پارٹیشنز ان اسباق کے دائرہ کار سے باہر ہیں، لیکن مفت درجے کا IoT Hub بنانے کے لیے اس قدر کو سیٹ کرنا ضروری ہے۔💁 آپ کی سبسکرپشن میں صرف ایک مفت درجے کا IoT Hub ہو سکتا ہے۔
IoT Hub بنایا جائے گا۔ اس میں ایک یا دو منٹ لگ سکتے ہیں۔
IoT Hub کے ساتھ بات چیت کریں
پچھلے سبق میں، آپ نے MQTT استعمال کیا اور مختلف موضوعات پر پیغامات بھیجے اور وصول کیے، جن کے مختلف مقاصد تھے۔ مختلف موضوعات پر پیغامات بھیجنے کے بجائے، IoT Hub کے پاس ڈیوائس اور ہب کے درمیان بات چیت کے لیے کئی متعین طریقے ہیں۔
💁 اندرونی طور پر، IoT Hub اور آپ کے ڈیوائس کے درمیان یہ بات چیت MQTT, HTTPS یا AMQP استعمال کر سکتی ہے۔
-
ڈیوائس سے کلاؤڈ (D2C) پیغامات - یہ پیغامات ہیں جو ڈیوائس سے IoT Hub کو بھیجے جاتے ہیں، جیسے ٹیلیمیٹری۔ پھر آپ کے ایپلیکیشن کوڈ کے ذریعے IoT Hub سے پڑھے جا سکتے ہیں۔
🎓 اندرونی طور پر، IoT Hub ایک Azure سروس استعمال کرتا ہے جسے Event Hubs کہا جاتا ہے۔ جب آپ ہب کو بھیجے گئے پیغامات پڑھنے کے لیے کوڈ لکھتے ہیں، تو انہیں اکثر ایونٹس کہا جاتا ہے۔
-
کلاؤڈ سے ڈیوائس (C2D) پیغامات - یہ پیغامات ایپلیکیشن کوڈ سے، IoT Hub کے ذریعے IoT ڈیوائس کو بھیجے جاتے ہیں۔
-
ڈائریکٹ میتھڈ درخواستیں - یہ پیغامات ایپلیکیشن کوڈ سے IoT Hub کے ذریعے IoT ڈیوائس کو بھیجے جاتے ہیں تاکہ ڈیوائس کچھ کرے، جیسے ایکچوایٹر کو کنٹرول کرنا۔ ان پیغامات کو جواب کی ضرورت ہوتی ہے تاکہ آپ کا ایپلیکیشن کوڈ بتا سکے کہ آیا یہ کامیابی سے پروسیس ہوا۔
-
ڈیوائس ٹوئنز - یہ JSON دستاویزات ہیں جو ڈیوائس اور IoT Hub کے درمیان ہم آہنگ رکھی جاتی ہیں، اور ان کا استعمال سیٹنگز یا دیگر پراپرٹیز کو ذخیرہ کرنے کے لیے کیا جاتا ہے جو ڈیوائس کے ذریعے رپورٹ کی گئی ہوں، یا IoT Hub کے ذریعے ڈیوائس پر سیٹ کی جانی چاہئیں (جسے مطلوبہ کہا جاتا ہے)۔
IoT Hub پیغامات اور ڈائریکٹ میتھڈ درخواستوں کو ایک قابل ترتیب مدت کے لیے ذخیرہ کر سکتا ہے (ڈیفالٹ ایک دن)، لہذا اگر ڈیوائس یا ایپلیکیشن کوڈ کنکشن کھو دیتا ہے، تو یہ دوبارہ کنیکٹ کرنے کے بعد آف لائن ہونے کے دوران بھیجے گئے پیغامات کو دوبارہ حاصل کر سکتا ہے۔ ڈیوائس ٹوئنز IoT Hub میں مستقل طور پر رکھے جاتے ہیں، لہذا کسی بھی وقت ڈیوائس دوبارہ کنیکٹ کر سکتا ہے اور تازہ ترین ڈیوائس ٹوئن حاصل کر سکتا ہے۔
✅ کچھ تحقیق کریں: ان پیغام کی اقسام پر مزید پڑھیں ڈیوائس سے کلاؤڈ کمیونیکیشن گائیڈنس، اور کلاؤڈ سے ڈیوائس کمیونیکیشن گائیڈنس IoT Hub دستاویزات میں۔
اپنے ڈیوائس کو IoT سروس سے کنیکٹ کریں
ایک بار ہب بن جانے کے بعد، آپ کا IoT ڈیوائس اس سے کنیکٹ کر سکتا ہے۔ صرف رجسٹرڈ ڈیوائسز سروس سے کنیکٹ کر سکتی ہیں، لہذا آپ کو پہلے اپنے ڈیوائس کو رجسٹر کرنا ہوگا۔ جب آپ رجسٹر کرتے ہیں تو آپ کو ایک کنکشن اسٹرنگ واپس مل سکتی ہے جسے ڈیوائس کنیکٹ کرنے کے لیے استعمال کر سکتا ہے۔ یہ کنکشن اسٹرنگ ڈیوائس مخصوص ہے، اور اس میں IoT Hub، ڈیوائس، اور ایک خفیہ کلید کے بارے میں معلومات شامل ہوتی ہیں جو اس ڈیوائس کو کنیکٹ کرنے کی اجازت دیتی ہے۔
🎓 کنکشن اسٹرنگ ایک عمومی اصطلاح ہے جو ایک ٹیکسٹ کے ٹکڑے کے لیے استعمال ہوتی ہے جس میں کنکشن کی تفصیلات شامل ہوتی ہیں۔ یہ IoT Hubs, ڈیٹا بیسز اور بہت سی دیگر سروسز سے کنیکٹ کرنے کے وقت استعمال ہوتی ہیں۔ یہ عام طور پر سروس کے لیے ایک شناخت کنندہ پر مشتمل ہوتی ہیں، جیسے ایک URL، اور سیکیورٹی معلومات جیسے ایک خفیہ کلید۔ یہ سروس سے کنیکٹ کرنے کے لیے SDKs کو دی جاتی ہیں۔
⚠️ کنکشن اسٹرنگز کو محفوظ رکھنا چاہیے! سیکیورٹی پر مزید تفصیل سے ایک آئندہ سبق میں بات کی جائے گی۔
کام - اپنے IoT ڈیوائس کو رجسٹر کریں
آپ کے IoT ڈیوائس کو Azure CLI استعمال کرتے ہوئے آپ کے IoT Hub کے ساتھ رجسٹر کیا جا سکتا ہے۔
-
درج ذیل کمانڈ چلائیں تاکہ ڈیوائس رجسٹر کیا جا سکے:
az iot hub device-identity create --device-id soil-moisture-sensor \ --hub-name <hub_name>
<hub_name>
کو اس نام سے تبدیل کریں جو آپ نے اپنے IoT Hub کے لیے استعمال کیا تھا۔یہ
soil-moisture-sensor
کے ID کے ساتھ ایک ڈیوائس بنائے گا۔ -
جب آپ کا IoT ڈیوائس IoT Hub سے SDK استعمال کرتے ہوئے کنیکٹ ہوتا ہے، تو اسے ایک کنکشن اسٹرنگ استعمال کرنی ہوتی ہے جو ہب کے URL کے ساتھ ایک خفیہ کلید فراہم کرتی ہے۔ درج ذیل کمانڈ چلائیں تاکہ کنکشن اسٹرنگ حاصل کی جا سکے:
az iot hub device-identity connection-string show --device-id soil-moisture-sensor \ --output table \ --hub-name <hub_name>
<hub_name>
کو اس نام سے تبدیل کریں جو آپ نے اپنے IoT Hub کے لیے استعمال کیا تھا۔ -
آؤٹپٹ میں دکھائی گئی کنکشن اسٹرنگ کو محفوظ کریں کیونکہ آپ کو بعد میں اس کی ضرورت ہوگی۔
کام - اپنے IoT ڈیوائس کو کلاؤڈ سے کنیکٹ کریں
اپنے IoT ڈیوائس کو کلاؤڈ سے کنیکٹ کرنے کے لیے متعلقہ گائیڈ پر کام کریں:
کام - ایونٹس کی نگرانی کریں
فی الحال، آپ اپنے سرور کوڈ کو اپ ڈیٹ نہیں کریں گے۔ اس کے بجائے آپ Azure CLI استعمال کر سکتے ہیں تاکہ اپنے IoT ڈیوائس سے ایونٹس کی نگرانی کی جا سکے۔
-
یقینی بنائیں کہ آپ کا IoT ڈیوائس چل رہا ہے اور مٹی کی نمی کے ٹیلیمیٹری ویلیوز بھیج رہا ہے۔
-
اپنے کمانڈ پرامپٹ یا ٹرمینل میں درج ذیل کمانڈ چلائیں تاکہ آپ کے IoT Hub کو بھیجے گئے پیغامات کی نگرانی کی جا سکے:
az iot hub monitor-events --hub-name <hub_name>
<hub_name>
کو اس نام سے تبدیل کریں جو آپ نے اپنے IoT Hub کے لیے استعمال کیا تھا۔آپ دیکھیں گے کہ پیغامات آپ کے IoT ڈیوائس کے ذریعے بھیجے جانے پر کنسول آؤٹپٹ میں ظاہر ہوں گے۔
Starting event monitor, use ctrl-c to stop... { "event": { "origin": "soil-moisture-sensor", "module": "", "interface": "", "component": "", "payload": "{\"soil_moisture\": 376}" } }, { "event": { "origin": "soil-moisture-sensor", "module": "", "interface": "", "component": "", "payload": "{\"soil_moisture\": 381}" } }
payload
کے مواد آپ کے IoT ڈیوائس کے ذریعے بھیجے گئے پیغام سے میل کھائیں گے۔اس وقت،
az iot
ایکسٹینشن Apple Silicon پر مکمل طور پر کام نہیں کر رہا ہے۔ اگر آپ Apple Silicon ڈیوائس استعمال کر رہے ہیں، تو آپ کو پیغامات کی نگرانی کسی مختلف طریقے سے کرنی ہوگی، جیسے Azure IoT Tools for Visual Studio Code استعمال کرتے ہوئے۔ -
ان پیغامات میں خود بخود کئی پراپرٹیز منسلک ہوتی ہیں، جیسے وہ وقت جب انہیں بھیجا گیا تھا۔ انہیں annotations کہا جاتا ہے۔ تمام پیغام کی annotations دیکھنے کے لیے درج ذیل کمانڈ استعمال کریں:
az iot hub monitor-events --properties anno --hub-name <hub_name>
<hub_name>
کو اس نام سے تبدیل کریں جو آپ نے اپنے IoT Hub کے لیے استعمال کیا تھا۔آپ دیکھیں گے کہ پیغامات آپ کے IoT ڈیوائس کے ذریعے بھیجے جانے پر کنسول آؤٹپٹ میں ظاہر ہوں گے۔
Starting event monitor, use ctrl-c to stop... { "event": { "origin": "soil-moisture-sensor", "module": "", "interface": "", "component": "", "properties": {}, "annotations": { "iothub-connection-device-id": "soil-moisture-sensor", "iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}", "iothub-connection-auth-generation-id": "637553997165220462", "iothub-enqueuedtime": 1619976150288, "iothub-message-source": "Telemetry", "x-opt-sequence-number": 1379, "x-opt-offset": "550576", "x-opt-enqueued-time": 1619976150277 }, "payload": "{\"soil_moisture\": 381}" } }
annotations میں وقت کی قدریں UNIX time میں ہوتی ہیں، جو 1 جنوری 1970 کی آدھی رات سے سیکنڈز کی تعداد کو ظاہر کرتی ہیں۔
جب آپ کام مکمل کر لیں تو ایونٹ مانیٹر سے باہر نکلیں۔
کام - اپنے IoT ڈیوائس کو کنٹرول کریں
آپ Azure CLI استعمال کرتے ہوئے اپنے IoT ڈیوائس پر ڈائریکٹ میتھڈز کو کال کر سکتے ہیں۔
-
اپنے کمانڈ پرامپٹ یا ٹرمینل میں درج ذیل کمانڈ چلائیں تاکہ IoT ڈیوائس پر
relay_on
میتھڈ کو کال کیا جا سکے:az iot hub invoke-device-method --device-id soil-moisture-sensor \ --method-name relay_on \ --method-payload '{}' \ --hub-name <hub_name>
<hub_name>
کے ساتھ جو آپ نے اپنے IoT Hub کے لیے استعمال کیا ہے۔
یہ method-name
کے ذریعے دی گئی طریقہ کار کی درخواست بھیجتا ہے۔ ڈائریکٹ طریقے ایک payload لے سکتے ہیں جو طریقہ کار کے لیے ڈیٹا پر مشتمل ہو، اور یہ JSON کے طور پر method-payload
پیرامیٹر میں دیا جا سکتا ہے۔
آپ دیکھیں گے کہ ریلے آن ہو جائے گا، اور آپ کے IoT ڈیوائس سے متعلقہ آؤٹ پٹ نظر آئے گا:
Direct method received - relay_on
```
1. اوپر والے مرحلے کو دہرائیں، لیکن `--method-name` کو `relay_off` پر سیٹ کریں۔ آپ دیکھیں گے کہ ریلے آف ہو جائے گا اور IoT ڈیوائس سے متعلقہ آؤٹ پٹ نظر آئے گا۔
---
## 🚀 چیلنج
IoT Hub کا مفت ٹائر روزانہ 8,000 پیغامات کی اجازت دیتا ہے۔ آپ کا لکھا ہوا کوڈ ہر 10 سیکنڈ میں ٹیلیمیٹری پیغامات بھیجتا ہے۔ ہر 10 سیکنڈ میں ایک پیغام روزانہ کتنے پیغامات بنتے ہیں؟
سوچیں کہ مٹی کی نمی کی پیمائش کتنی بار بھیجی جانی چاہیے؟ آپ اپنے کوڈ کو کیسے تبدیل کر سکتے ہیں تاکہ مفت ٹائر کے اندر رہیں اور جتنی بار ضرورت ہو چیک کریں لیکن زیادہ بار نہ کریں؟ اگر آپ ایک دوسرا ڈیوائس شامل کرنا چاہتے ہیں تو کیا ہوگا؟
## لیکچر کے بعد کا کوئز
[لیکچر کے بعد کا کوئز](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/16)
## جائزہ اور خود مطالعہ
IoT Hub SDK Arduino اور Python دونوں کے لیے اوپن سورس ہے۔ GitHub پر کوڈ ریپوز میں مختلف IoT Hub فیچرز کے ساتھ کام کرنے کے لیے کئی نمونے موجود ہیں۔
* اگر آپ Wio Terminal استعمال کر رہے ہیں، تو [GitHub پر Arduino کے نمونے](https://github.com/Azure/azure-iot-pal-arduino/tree/master/pal/samples) دیکھیں۔
* اگر آپ Raspberry Pi یا ورچوئل ڈیوائس استعمال کر رہے ہیں، تو [GitHub پر Python کے نمونے](https://github.com/Azure/azure-iot-sdk-python/tree/master/azure-iot-hub/samples) دیکھیں۔
## اسائنمنٹ
[کلاؤڈ سروسز کے بارے میں جانیں](assignment.md)
---
**ڈسکلیمر**:
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔