- راسبیری پائی پر ازگر کے لئے AWS IOT آلہ SDK انسٹال کرنا:
- سرکٹ ڈایاگرام:
- آپ کی رسبری پائی کو پروگرام کرنا:
- شیل ونڈو کے ذریعے ازگر کے پروگرام کی جانچ کرنا:
- کام کرنا:
راسبیری پِی آئی او ٹی پر مبنی ایپلی کیشنز تیار کرنے کے لئے ہمیشہ پہلی پسند رہا ہے اگر کسی حد تک حساب کتاب شامل ہو۔ ازگر اور مضبوط ڈویلپر برادری کی لچک کے ساتھ ، پائ کا استعمال کرتے ہوئے ڈیٹا کا ایک مجموعہ جمع کرنا ، لاگ ان کرنا ، تجزیہ کرنا یا اس کی اطلاع دینا بہت آسان ہے۔ اس ٹیوٹوریل میں ہم سیکھیں گے کہ راسبیری پائی کی طاقت کو ایمیزون اے ڈبلیو ایس سروس کی مدد سے کیسے ڈیٹا انٹرنیٹ پر آن لائن شائع کرنے کے لئے ملایا جائے ۔
اس ٹیوٹوریل میں ، ہم درجہ حرارت اور نمی کی قیمت پڑھنے کے لئے DHT11 سینسر کا استعمال کریں گے ، پھر AWS IOT سروس سے مربوط ہوں گے اور AWS IOT SDK کا استعمال کرتے ہوئے سینسر کی اقدار کو اپ ڈیٹ کریں گے ۔ اس کے بعد اس ڈیٹا کو ایمیزون IOT کنسول میں تصور کیا جاسکتا ہے تاکہ یہ یقینی بنایا جا سکے کہ ہم انٹرنیٹ پر شائع شدہ ڈیٹا حاصل کررہے ہیں۔
آپ ان سینسر ویلوں کو بازیافت کرنے اور اسے ڈیٹا بیس میں اسٹور کرنے کیلئے AWS لچکدار سرچ سروس کا استعمال بھی کرسکتے ہیں اور پھر سینسر ڈیٹا کو صاف پلاٹ گراف کے بطور تصور کرنے کے لئے کیبنا ڈیش بورڈ سروس کا استعمال کرسکتے ہیں ۔ دلچسپ کافی ہے؟ !!! تو ، آئیے شروع ہوتے ہیں…
پیشگی شرائط:
اس ٹیوٹوریل نے فرض کیا ہے کہ آپ نے اپنا مفت AWS اکاؤنٹ پہلے ہی تشکیل دے دیا ہے اور AWS IOT سروس کے بارے میں بنیادی باتوں کو جانتے ہو جیسے کوئی چیز ، سرٹیفکیٹ ، پالیسی بنانا اور اس کا استعمال کرتے ہوئے اقدار کو شائع کرنا۔ اگر بصورت دیگر درج ذیل سبق پڑھیں۔
- ایم کیوٹی ٹی ڈاٹ ایف ایکس کے ساتھ ایمیزون اے ڈبلیو ایس آئوٹ کے ساتھ شروعات کرنا
اس سے یہ بھی فرض ہوتا ہے کہ آپ راسبیری پائی کو ایل سی ڈی اور ڈی ایچ ٹی 11 سینسر کا انٹرفیس کرنے کا طریقہ جانتے ہیں اور ایسا کرنے کے ل libra لائبریریاں پہلے ہی آپ کے پائ پر نصب ہیں۔ اگر نہیں تو ، نیچے دیئے گئے سبق کے ساتھ آگے بڑھیں۔
- راسبیری پائی کے ساتھ انٹرفیسنگ ڈی ایچ ٹی 11
مذکورہ سبق کے اختتام پر آپ نے AWS-IOT پر کوئی چیز بنائی ہو گی اور آپ کو اپنی چیز کے لئے بروکر ایڈریس بھی ہونا چاہئے جس کے ساتھ اپنی چیز تک رسائی کے ل needed ضروری سرٹیفکیٹ بھی ہوں۔ ہم یہ بھی فرض کرتے ہیں کہ آپ کا راسبیری پائ پہلے ہی ایک OS کے ساتھ ترتیب دیا ہوا ہے اور انٹرنیٹ سے جڑا ہوا ہے۔ ان کی جگہ پر ٹیوٹوریل کے ساتھ آگے بڑھیں۔ اگر آپ راسبیری پائی کے لئے نئے ہیں تو پہلے راسبیری پائی سے شروعات کریں۔
راسبیری پائی پر ازگر کے لئے AWS IOT آلہ SDK انسٹال کرنا:
پائ پر AWS سروس استعمال کرنے کے ل we ، ہم دونوں SDKs میں سے کسی ایک کو انسٹال کرسکتے ہیں۔ ایک جاوا اسکرپٹ ایس ڈی کے ہے جو جاوا اسکرپٹ کو پروگرامنگ لینگویج کے طور پر استعمال کرتا ہے اور دوسرا ازگر ایس ڈی کے ہے جو واضح طور پر اسگرگ کو پروگرامنگ لینگویج کے طور پر استعمال کرتا ہے۔ ہم یہاں ازگر کو اپنا SDK منتخب کر رہے ہیں چونکہ ہم جاوا اسکرپٹ سے زیادہ ازگر سے زیادہ آرام دہ ہیں۔
AWS IOT SDK سے متعلق مکمل معلومات اس کے گٹ ہب پیج پر دستیاب ہے۔
مرحلہ 1: اپنے PI پر SDK انسٹال کرنے کے لئے ، ٹرمینل کھولیں جس پر درج ذیل کمانڈ ٹائپ کریں
گٹ کلون
مرحلہ 2: اس کو آپ کے پائ پر اوسس ڈائرکٹری نصب کرنا چاہئے تھی ، اب مندرجہ ذیل کمانڈ کا استعمال کرکے اس میں نیویگیٹ کریں۔
سی ڈی AWS - IOT -device- SDK -python
مرحلہ 3: ڈائریکٹری کے اندر نیچے لائن کا استعمال کرتے ہوئے سیٹ اپ فائل انسٹال کریں
ازگر سیٹ اپ.پی انسٹال کریں
سرکٹ ڈایاگرام:
ہارڈ ویئر کی طرف ہمارے پاس ایک راسبیری پائی ہے جو DHT11 سینسر اور LCD اسکرین سے جڑا ہوا ہے ۔ درجہ حرارت اور نمی کی قدر حاصل کرنے کے لئے DHT11 استعمال کیا جاتا ہے اور LCD کو قدروں اور ڈی بگنگ کی معلومات کو ظاہر کرنے کے لئے استعمال کیا جاتا ہے۔ اس کے لئے سرکٹ ڈایاگرام نیچے دکھایا گیا ہے۔
دونوں LCD اور DHT11 سینسر + 5V فراہمی کے ساتھ کام کرتے ہیں لہذا ہم راسبیری پائی پر 5V پنوں کو دونوں کو طاقت میں استعمال کرتے ہیں۔ DHT11 سینسر کے آؤٹ پٹ پن پر ویلیو 1K کا ایک پل اپ ریزٹر استعمال ہوتا ہے ، اگر آپ ماڈیول استعمال کررہے ہیں تو آپ اس ریزسٹر سے بچ سکتے ہیں۔
ایل سی ڈی کے برعکس سطح پر قابو پانے کے لئے ایل سی ڈی کے وی پن میں 10 ک کا ایک ٹرمر برتن شامل کیا جاتا ہے۔ اس کے علاوہ تمام رابطے بالکل سیدھے آگے ہیں۔ لیکن ایک نوٹ بنائیں کہ آپ کون سے GPIO پنوں کو پنوں کو مربوط کرنے کے لئے استعمال کررہے ہیں چونکہ ہمیں ہمارے پروگرام میں ضرورت ہوگی۔ نیچے دیئے گئے چارٹ میں آپ کو GPIO پن نمبر معلوم کرنے کی اجازت دینی چاہئے۔
چارٹ کا استعمال کریں اور سرکٹ آریگرام کے مطابق اپنے رابطے بنائیں۔ میں نے اپنے روابط بنانے کے لئے بریڈ بورڈ اور جمپر تاروں کا استعمال کیا۔ چونکہ میں نے ایک ماڈیول استعمال کیا ہے میں نے اسے براہ راست راسبیری پائی پر لگایا۔ میرا ہارڈویئر نیچے کی طرح دکھائی دے رہا تھا
آپ کی رسبری پائی کو پروگرام کرنا:
ہمارے ازگر کے پروگرام میں ہمیں درجہ حرارت اور نمی کی قیمت کو پڑھنا ہے ، اسے LCD اسکرین پر ڈسپلے کرنا ہے اور دونوں اقدار کو ایمیزون IOT چیز پر بھی شائع کرنا ہے جو ہم پہلے ہی ٹیوٹوریل میں تیار کر چکے ہیں۔ لہذا یہ یقینی بنائیں کہ آپ نے چیز بنائی ہے اور آپ کے پاس جو بھی چیزیں بنائی ہیں ان میں آپ کو تینوں کلیدی فائلیں اور بروکر ایڈریس موجود ہیں۔
ہمارے ازگر کے پروگرام میں ہمیں تین کلیدی فائلوں کو جوڑنا ہے تاکہ راسبیری پائی ہماری چیز پر قدریں شائع کرنے کے ل access رسائی حاصل کر سکے۔ لہذا ان تینوں کلیدی فائلوں کو کاپی کریں اور اسے اپنے راسبیری پائی کے ڈیسک ٹاپ پر چسپاں کریں کیونکہ ہمیں اپنے پروگرام میں ان کے راستے کے پتے کی ضرورت ہوگی۔
مکمل ازگر پروگرام اس صفحے کے نچلے حصے میں پایا جا سکتا ہے، آپ کو آپ کی تخلیق کردہ چیز کے مطابق بروکر ایڈریس اور راہ ڈائریکٹریز میں ترمیم کے بعد پروگرام کا استعمال کر سکتے ہیں. مزید سلامی میں نے اس کوڈ کو چھوٹے ٹکڑوں میں بیان کیا ہے۔
ہم اپنے منصوبے کے لئے درکار لائبریریوں کو درآمد کرکے شروع کرتے ہیں ۔ تین اہم لائبریری AWS SDK ، LCD لائبریری اور DHT لائبریری ہیں ، اس بات کو یقینی بنائیں کہ آپ نے اپنی تینوں PI انسٹال کی ہیں۔ وقت اور DATETIME لائبریری ڈیفالٹ کی طرف سے نصب کیا جائے گا.
سے AWS-IOT لائبریری AWSIoTPythonSDK.MQTTLib درآمد AWSIoTMQTTClient # درآمد سے درآمد کا وقت # بنانے کیلئے تاخیر سے DATETIME درآمد تاریخ، تریخ ویلہ #To تاریخ اور وقت ملے LCD # درآمد LCD لائبریری کے طور پر درآمد Adafruit_CharLCD سینسر کے لئے درآمد Adafruit_DHT # درآمد DHT لائبریری
اگلی لائن میں ہمیں چیز کی تفصیلات جیسے بروکر ایڈریس ، مؤکل کا نام اور سرٹیفکیٹ اور کلیدی فائلوں کا راستہ فراہم کرنا ہے ۔ یہاں میں نے کلائنٹ کا نام بطور new_Client استعمال کیا ہے آپ اپنی پسند کا وہی یا کوئی نام استعمال کرسکتے ہیں۔ آپ کی تخلیق کردہ چیز کے پتے پر بروکر کا پتہ تبدیل کرنا چاہئے اور راستہ ڈائرکٹری بھی آپ کی چیز کے مطابق تبدیل کی جانی چاہئے۔ ان 2 چیزوں کے علاوہ آپ کو مندرجہ ذیل لائنوں میں کچھ تبدیل نہیں کرنا ہوگا۔
myMQTTClient = AWSIoTMQTTClient ("new_Client") myMQTTClient.configureEndpoint ("qwert1234567yuio89.iot.us-east-2.amazonaws.com"، 8883) myMQTTClient.configureCredentials ("/ گھر / PI / ڈیسک ٹاپ / ESP32_Thing سرٹیفکیٹ / CA.pem"، "/ گھر / پی / ڈیسک ٹاپ / ای ایس پی 32_ٹیفنگ سرٹیفکیٹ / نجی.پییم.کی" ، "/ ہوم / پی آئی / ڈیسک ٹاپ / ای ایس پی 32_ٹیگ سرٹیفکیٹ / سرٹیفکیٹ.پییم سی آر ٹی") myMQTTClient.configureOfflinePublishQueueing (-1) # لامحدود آف لائن شائع کریں MyMQTTClient۔ تشکیل ڈرائیننگ فریکوئینسی (2) # ڈرائنگ : 2 ہرٹز مائی ایم کیوٹی ٹی سیلیئینٹ کوگ فگگر کنیکٹ ڈسکنیکٹ ٹائم آؤٹ (10) # 10 سیکنڈ # MQTTClient.configureMQTTOperationTimeout (5) # 5 سیکنڈ
اگلا ہمیں اپنے کنکشن کی پن کی تفصیلات بتانا ہوں گی ۔ ہر پن کا GPIO پن نمبر اس کے متعلقہ نام پر مختص کیا جاتا ہے۔ یہاں ہم نے پن 17 پر ڈی ایچ ٹی سینسر اور 4 بٹ موڈ میں LCD استعمال کیا ہے۔ اس کے لئے کوڈ ذیل میں دکھایا گیا ہے
سینسر_ نام = اڈافٹ_ڈی ایچ ٹی۔ ڈی ایچ ٹی 11 # ہم ڈی ایچ ٹی 11 سینسر کا استعمال کر رہے ہیں سینسر_پین = 17 # سینسر پی سی ایل سی ڈی_سر پر جی پی آئی او 17 سے منسلک ہے۔ PI پر lcd_d4 = LCD کے 25 # D4 PI پر GPIO 25 سے منسلک ہے lcd_d5 = 24 LCD کے # D5 PI پر GPIO 24 سے منسلک ہے lcd_d6 = 23 LCD کے # D6 PI پر GPIO 23 سے منسلک ہے lcd_d7 = 18 # کے D7 LCD PI پر GPIO 18 سے منسلک ہے lcd_backlight = 0 #LED منسلک نہیں ہے لہذا ہم 0 کو تفویض کرتے ہیں
پھر ہم LCD کی ابتدا کرتے ہیں اور LCD اسکرین پر ایک چھوٹا تعارف پیغام ظاہر کرتے ہیں ۔ اس کے بعد ہم بروکر ایڈریس اور اوپر درج کلیدی فائلوں کا استعمال کرتے ہوئے AWS چیز سے رابطہ کرنے کی کوشش کریں گے ۔ اگر کنکشن کامیاب ہے تو LCD " AWS چیز سے منسلک " دکھائے گا یا یہ 10 سیکنڈ تک کوشش کرے گا اور اگر یہ ناکام ہوا تو یہ خرابی کا پیغام ظاہر کرے گا۔ اگر آپ کو غلطی کا پیغام موصول ہوتا ہے تو یقینی بنائیں کہ آپ نے کامیابی کے ساتھ چیز بنائی ہے اور اسے کوڈ کے ساتھ صحیح طریقے سے جوڑ دیا ہے۔ آپ ہمیشہ یہ جاننے کے لئے پچھلے ٹیوٹوریل پر واپس جاسکتے ہیں کہ آیا آپ نے AWS میں چیز کو مناسب طریقے سے بنایا ہے یا نہیں۔
اگر ٹائم ٹائم () <متصل_ وقت: # کوشش 10 سیکنڈ کے لئے اے ڈبلیو ایس سے منسلک ہے ۔ lcd.message ('AWS چیز سے منسلک') # اگر اور منسلک : پرنٹ کریں "خرابی: پروگرام میں اپنی AWS کی تفصیلات چیک کریں" lcd.message ('خرابی: \ n غیر قانونی تفصیلات') # اگر منسلک نہیں ہے
ایک بار جب کنکشن کو کامیابی سے قائم ہے، ہم لامحدود میں داخل جبکہ لوپ وقت، ایک پیلوڈ کے درجہ حرارت اور نمی کی قدر کو شائع. یہاں پے لوڈ ہمیشہ JSON فارمیٹ میں سٹرنگ ہونا چاہئے۔ لہذا پہلے ہم موجودہ تاریخ اور وقت کو پڑھ کر اور نیچے والی لائنوں کا استعمال کرکے اسے متغیر میں بچا رہے ہیں
اب = ڈیٹ ٹائم ڈاٹ ٹی کوؤ () # گیٹ کی تاریخ اور وقت موجودہ_ وقت = اب
پھر ہم پڑھتے ہیں کہ نمی اور درجہ حرارت کی اقدار DHT11 سینسر کی تشکیل کرتی ہیں اور اسے LCD اسکرین پر ظاہر کرتے ہیں۔ متغیر نمی اور درجہ حرارت بالترتیب نمی اور درجہ حرارت کی قدر کو برقرار رکھے گا
نمی ، درجہ حرارت = Adaf پھلوں_DHT.read_retry (سینسر_ نام ، سینسر_پن) # سینسر سے پڑھیں
اور درجہ حرارت اور نمی کے مختلف مقامات میں متعلقہ اقدار کو بچائیں
lcd.clear () # LCD اسکرین کو صاف کریں lcd.message ('Temp =٪.1f C'٪ درجہ حرارت) # درجہ حرارت کی قیمت دکھائیں lcd.message ('H nHum =٪.1f٪٪'٪ نمی) # ڈسپلے کریں نمی کے وقت کی قدر۔ نیند (2) # 2 سیکنڈ کا انتظار کریں پھر اقدار کو اپ ڈیٹ کریں
جیسا کہ پہلے بتایا گیا ہے کہ پے لوڈ اس کے گرد گھوبگھرالی خطوط کے ساتھ تار کی شکل میں ہونا چاہئے ہم متغیر کو ڈور میں تبدیل کرنے کے بعد تاریخ ، وقت ، درجہ حرارت اور نمی کی قیمت جوڑ دیتے ہیں۔
# prereare paylines in string format payload = 'time "ٹائم اسٹیمپ": "' + موجودہ_ٹائم + '"، "درجہ حرارت":' + str (درجہ حرارت) + '، "نمی": + + (نمی) +'} '
آخر کار ایک بار جب پے لوڈ تیار ہوجائے تو ہمیں اسے ایم کیوٹی ٹی کلائنٹ پر شائع کرنا ہوگا۔ یہ myMQTTclient.publish کمانڈ استعمال کرکے کیا جاسکتا ہے ۔ کسی چیز کو شائع کرتے وقت ہمیں اسے ایک نام بھی دینا چاہئے ، یہاں میں نے اس کا نام ڈی ایچ ٹی 11 / ڈیٹا رکھا ہے لیکن آپ اس کا نام کسی بھی چیز پر ڈال سکتے ہیں۔ لیکن یہ یقینی بنائیں کہ آپ کو نام یاد ہے کیوں کہ ہمیں اعداد و شمار دیکھنے کے لئے اپنی چیز سے سبسکرائب کرنے کی ضرورت ہوگی۔
شیل ونڈو کے ذریعے ازگر کے پروگرام کی جانچ کرنا:
ایک بار جب پروگرام تیار ہوجائے تو اپنی پسند کا انتخاب کرکے اسے لانچ کریں۔ میں نے پروگرام کو شیل ونڈو پر لانچ کرنے کے لئے ازگر IDE استعمال کیا ہے۔ اگر سب کچھ ٹھیک ہے تو آپ کو میسج کنیکشن کامیاب ہونا چاہئے اور تمام پے لوڈ ونڈو پر آویزاں ہونا چاہئے۔ آپ جانچ سکتے ہیں کہ آیا درجہ حرارت اور نمی کی قدریں صحیح طرح سے پڑھی جارہی ہیں۔ پے لوڈ ہر 5 سیکنڈ کے لئے اپ ڈیٹ ہوجائے گا۔ شیل ونڈو نیچے کچھ اس طرح نظر آئے گی
اگر آپ کو کوئی پریشانی ہو تو یقینی بنائیں کہ آپ نے صحیح کلیدی تفصیلات اور بروکر ایڈریس دیا ہے ، یہ بھی چیک کریں کہ اگر اس بات کو ایم کیوٹی ٹی ایف ایف سافٹ ویئر کے استعمال سے منسلک کیا جاسکتا ہے۔ اگر شیل ایم کیوٹی ٹی کلائنٹ کنکشن کی کامیابی دکھاتا ہے اور وہاں پھانسی دیتا ہے تو ، اس کا مطلب یہ ہے کہ اگر آپ نے درست پن سے منسلک کیا ہے اور سینسر فعال ہے تو ، ڈی ایچ ٹی 11 سینسر جانچ کا جواب نہیں دے رہا ہے۔
کام کرنا:
ایک بار جب آپ پروگرام لانچ کرتے ہیں اور شیل ونڈو پر مذکورہ بالا تفصیلات حاصل کرتے ہیں تو اس کا مطلب یہ ہوتا ہے کہ پروگرام مناسب طریقے سے جواب دے رہا ہے اور ایمیزون اے ڈبلیو ایس سرور پر اقدار اپ لوڈ ہو رہی ہیں ۔ آپ LCD ڈسپلے کو یہ چیک کرنے کے ل notice بھی دیکھ سکتے ہیں کہ آیا یہ ذیل میں دکھائے جانے والے ہر 5 سیکنڈ میں AWS-IOT پر شائع ہوتا ہے۔
ہم ایم کیوٹی ٹی ایف ایف ایپلی کیشن میں جاسکتے ہیں اور ڈی ایچ ٹی 11 / ڈیٹا ٹاپک کو سبسکرائب کرسکتے ہیں ۔ تب ہمیں راسبیری پائ کے ذریعہ شائع ہونے والے تمام ڈیٹا کو حاصل کرنے کے قابل ہونا چاہئے۔ اس ڈیٹا کو ہر 5 سیکنڈ کے لئے بھی اپ ڈیٹ کیا جائے گا۔ آپ کی ایم کیوٹی ٹی اسکرین کچھ اس طرح نظر آئے گی
جیسا کہ آپ دیکھ سکتے ہیں کہ ایم کیوٹی ٹی سافٹ ویئر پر نیلے رنگ میں روشنی ڈالی جانے پر پے لوڈ وصول ہو رہا ہے۔ پروجیکٹ کے کام کے بارے میں جاننے کے لئے آپ نیچے دی گئی ویڈیو بھی دیکھ سکتے ہیں ۔ چونکہ اب ہمارے پاس انٹرنیٹ پر ہمارے ڈیٹا موجود ہیں ہم اسے ایمیزون کے ذریعہ فراہم کردہ دوسرے ٹولز جیسے لچکدار تلاش اور لیمبڈا کے ساتھ استعمال کرسکتے ہیں تاکہ ڈیٹا بیس میں موجود ڈیٹا کو محفوظ کیا جاسکے یا پھر گراف پر دیکھیں۔ ہمیں اور اعداد و شمار سے فائدہ اٹھانا ہے اس کی بنیاد پر بہت ساری ایپلی کیشنز موجود ہیں۔
امید ہے کہ آپ ٹیوٹوریل کو سمجھ گئے ہوں گے اور کچھ ایسی ہی تعمیر کرنے میں لطف اندوز ہوں گے ، اگر آپ کو یہ کام کرنے میں کوئی پریشانی ہو تو ، اسے نیچے کمنٹ سیکشن پر پوسٹ کریں یا تکنیکی مدد کے لئے فورمز کا استعمال کریں۔