- ایم کیوٹی ٹی کیا ہے؟
- راسبیری پائی پر مچھر ایم کیوٹی ٹی بروکر انسٹال کرنا
- راسبیری پائی مچرچٹو بروکر کی جانچ کر رہا ہے
- سرکٹ ڈایاگرام
- کوڈ اور وضاحت
ایم کیوٹی ٹی ایک پروٹوکول ہے جو انٹرنیٹ پر پیغامات بھیجنے اور وصول کرنے کے لئے استعمال کیا جاتا ہے۔ ہم پہلے اس پروٹوکول کو انٹرنیٹ پر ڈیٹا شائع کرنے کے لئے آئوٹ بجلی میٹر اور راسبیری پائی الیکسا میں استعمال کرتے تھے۔ اس ٹیوٹوریل میں ہم ایم کیوٹی ٹی اور اس سے متعلق شرائط کے بارے میں مزید معلومات حاصل کریں گے۔ یہاں ہم راسبیری پائی کو مقامی ایم کیوٹی ٹی بروکر کے طور پر استعمال کریں گے اور ایم کیوٹی ٹی ایپلی کیشن ڈیش بورڈ کے ذریعہ نوڈیمکیو ای ایس پی 12 ای سے منسلک ایل ای ڈی کو کنٹرول کریں گے۔ ایک ڈی ایچ ٹی 11 سینسر نوڈیم سی یو سے بھی منسلک ہے لہذا ہمیں ایم کیوٹی ٹی ڈیش بورڈ پر درجہ حرارت اور نمی کی پڑھنے کو ملتا ہے ، ایک بار پھر راسبیری پائی کو مقامی ایم کیوٹی ٹی بروکر کے طور پر استعمال کرتے ہوئے۔
تو ، آئیے ایم کیوٹی ٹی اور اس سے متعلق شرائط کو کم کرکے شروع کرتے ہیں۔
ایم کیوٹی ٹی کیا ہے؟
ایم کیو ٹی ٹی کا مطلب میسیج لائن ٹیلی میٹری ٹرانسپورٹ ہے جسے آئی بی ایم نے ڈیزائن کیا ہے۔ یہ پروٹوکول آسان اور ہلکا پھلکا ہے جو انٹرنیٹ پر پیغامات بھیجنے اور وصول کرنے کے لئے استعمال کیا جاتا ہے اور یہ ان ڈیوائسز کے لئے ڈیزائن کیا گیا ہے جن میں کم بینڈوتھ استعمال ہوتا ہے۔ آج کل یہ پروٹوکول IOT آلات میں کثرت سے سینسر کا ڈیٹا بھیجنے اور وصول کرنے کے لئے استعمال ہوتا ہے۔ اس کے علاوہ ، IOT پر مبنی ہوم آٹومیشن سسٹم میں ، یہ پروٹوکول انٹرنیٹ ڈیٹا کا زیادہ استعمال کیے بغیر آسانی سے استعمال کیا جاسکتا ہے۔
کچھ اصطلاحات ایسی ہیں جو ایم کیوٹی ٹی میں کثرت سے استعمال کی جاتی ہیں۔
- سبسکرائب کریں اور شائع کریں
- پیغام
- موضوع
- دلال
1. سبسکرائب اور شائع کریں: سبسکرائب کرنے کا مطلب ہے دوسرے آلے سے ڈیٹا حاصل کرنا ، اور دوسرے آلے پر ڈیٹا بھیجنے کا مطلب شائع کرنا ہے۔
جب آلہ 1 ڈیٹا کو ڈوائس 2 پر بھیجتا ہے تو پھر اسے پبلشر کے نام سے جانا جاتا ہے اور دوسرا سبسکرائبر اور اس کے برعکس ہوتا ہے۔
2. پیغام: پیغامات وہ معلومات ہیں جو ہم بھیج رہے ہیں اور وصول کررہے ہیں۔ یہ ڈیٹا یا کسی بھی طرح کا حکم ہوسکتا ہے۔ مثال کے طور پر ، اگر ہم بادل پر درجہ حرارت کا ڈیٹا شائع کررہے ہیں تو اس درجہ حرارت کا ڈیٹا میسج کے نام سے جانا جاتا ہے۔
Top. عنوان: آنے والے پیغامات کے ل interest آپ دلچسپی کا اندراج اسی طرح کرتے ہیں یا آپ یہ بتاتے ہیں کہ آپ کہاں پیغام شائع کرنا چاہتے ہیں۔ عنوانات کی نمائندگی تار کے ساتھ کی جاتی ہے جس میں فارورڈ سلیش سے الگ ہوتا ہے۔ ڈیٹا ایم کیوٹی ٹی کا استعمال کرتے ہوئے عنوانات پر شائع ہوتا ہے اور پھر ایم کیوٹی ٹی ڈیوائس ڈیٹا حاصل کرنے کے لئے اس ٹاپک کو سبسکرائب کرتے ہیں۔
MQ. ایم کیو ٹی ٹی بروکر: یہ چیز پبلشرز کے تمام پیغامات موصول کرنے ، پیغامات کو فلٹر کرنے اور پھر ان صارفین کو جو ان میں دلچسپی رکھتے ہیں کو پیغامات شائع کرنے کے لئے ذمہ دار ہے۔
جب یہ بروکر بادل پر ہوسٹ کیا جاتا ہے تو پھر اسے ایم کیوٹی ٹی کلاؤڈ کہا جاتا ہے ۔ کلاؤڈ پر مبنی متعدد ایم کیوٹی ٹی خدمات ہیں جیسے اڈفریٹ IO ، ایم کیوٹی ٹی۔ آئی او ، آئی بی ایم بلیکمکس ، مائیکروسافٹ ایذور ، وغیرہ۔ ایم کیوٹی ٹی کو مشہور ایمیزون اے ڈبلیو ایس کلاؤڈ کے ساتھ بھی استعمال کیا جاسکتا ہے ، جس کی وضاحت ہم نے ایمیزون اے ڈبلیو ایس ٹیوٹوریل کے ساتھ شروع کرنا میں کی ہے۔
ہم راسبیری پائی کا استعمال کرکے اپنا ایم کیوٹی ٹی بروکر بنا سکتے ہیں ۔ یہ مقامی ایم کیوٹی ٹی بروکر ہوگا یعنی آپ اپنے نیٹ ورک پر صرف اور کہیں سے بھی ڈیٹا نہیں بھیج سکتے اور وصول کرسکتے ہیں۔ لہذا یہاں ہم راسبیری پائی میں موسکیٹو ایم کیوٹی ٹی بروکر کو انسٹال کریں گے تاکہ اسے مقامی ایم کیوٹی ٹی بروکر بنایا جا and اور درجہ حرارت کا ڈیٹا نوڈیم سی یو سے ایم کیوٹی ٹی ڈیش بورڈ ایپلی کیشن پر بھیجے گا ۔ نیز ، ہم بروکر کا استعمال کرتے ہوئے نوڈیم سی سی یو سے منسلک ایل ای ڈی کو کنٹرول کریں گے۔
راسبیری پائی پر مچھر ایم کیوٹی ٹی بروکر انسٹال کرنا
اپنے راسبیری پائی میں ٹرمینل کھولیں اور بروکر کو انسٹال کرنے کے لئے درج ذیل کمانڈز ٹائپ کریں
sudo apt اپ ڈیٹ sudo اپٹ انسٹال کریں -y مچھر مچھر کلائنٹ
تنصیب ختم ہونے کا انتظار کریں۔ اب ، رسبری pi کے آغاز پر بروکر کو شروع کرنے کے لئے ، درج ذیل کمانڈ کو ٹائپ کریں
sudo systemctl مچھر. خدمت کو فعال کریں
بس ، ہم اپنے ایم کیوٹی ٹی بروکر کو لانچ کرنے کے لئے تیار ہیں۔ اس کی جانچ پڑتال کے لئے کہ یہ صحیح طریقے سے انسٹال ہے ، درج ذیل کمانڈ درج کریں
مچھر -v
یہ کمانڈ آپ کو اپنے ایم کیوٹی ٹی بروکر کا ورژن دے گا۔ یہ 1.4.x یا اس سے اوپر ہونا چاہئے۔
راسبیری پائی مچرچٹو بروکر کی جانچ کر رہا ہے
1. مندرجہ ذیل کمانڈ کا استعمال کرتے ہوئے پس منظر میں موسویٹو بروکر کو چلائیں
مچھر -d
2. اب ، ہم مندرجہ ذیل کمانڈ کا استعمال کرتے ہوئے ٹاپک کو مثال کے طور پر کسی عنوان کو سبسکرائب کریں گے
mosquitto_sub -d -t مثال ٹپوک
3. اب ، ہم مثال کے طور پر کچھ پیغام شائع کریں گے
Mosquitto_pub -d -t مثال ٹاپک - م "ہیلو ورلڈ!"
آپ کو ہیلو دنیا ملے گی! سبسکرائبر ٹرمینل میں پیغام۔
اب ، اب وقت آگیا ہے کہ کسی دوسرے آلے سے ڈیٹا کو کنٹرول کیا جائے اور ہم اپنے معاملے میں نوڈیم سی یو اور ایم کیوٹی ٹی ڈیش بورڈ ایپلی کیشن کا استعمال کر رہے ہیں ۔
- پہلے ہم ایپ کا استعمال کرکے کمانڈ بھیج کر ایل ای ڈی کو کنٹرول کریں گے لہذا اس معاملے میں نوڈیم سی یو صارف کے طور پر اور ایپ کو ناشر کے طور پر برتاؤ کرے گا۔
- پھر ESP12E میں DHT11 سینسر بھی اس سے منسلک ہے اور وہ اس درجہ حرارت کی ریڈنگ کو موبائل ایم سی ٹی ٹی ایپلی کیشن پر بھیجتا ہے لہذا اس صورت میں موبائل سبسکرائبر ہوگا اور نوڈیم سی یو پبلشر ہوگا۔ اور ان پیغامات کو متعلقہ عنوانات پر آگے بھیجنے کے لئے ، موسویٹو ایم کیوٹیٹی بروکر استعمال ہوتا ہے۔
سرکٹ ڈایاگرام
جیسا کہ آریھ میں دکھایا گیا ہے سرکٹ کو مربوط کریں۔ یہاں DHT11 درجہ حرارت کی ریڈنگ کے لئے استعمال ہوتا ہے لیکن LM35 درجہ حرارت سینسر بھی استعمال کیا جاسکتا ہے۔ ہم نے پہلے ہی اپنے بہت سارے پروجیکٹس میں ڈی ایچ ٹی 11 سینسر کا استعمال کیا ہے جس میں موسمی اسٹیشن بنانے کے لئے نوڈیم سی سی یو شامل ہے۔
ڈیٹا کو سبسکرائب کرنے اور شائع کرنے کے لئے نوڈیم سی سی یو کے لئے کوڈ لکھنا شروع کرنے دیتا ہے۔
کوڈ اور وضاحت
یہاں ہم اڈفریٹ ایم کیو ٹی ٹی لائبریری ٹیمپلیٹ کا استعمال کریں گے اور کوڈ میں مطلوبہ چیزوں کو تبدیل کردیں گے۔ اسی کوڈ کو صرف کچھ چیزیں تبدیل کرکے ڈیٹا اڈفریٹ IO کلاؤڈ میں شائع کرنے اور اسے سبسکرائب کرنے کے لئے استعمال کیا جاسکتا ہے۔اس کے لئے خاکہ -> لائبریری شامل کریں -> لائبریریوں کا نظم کریں سے اڈفریٹ ایم کیوٹیٹی لائبریری ڈاؤن لوڈ کریں۔ اڈفریٹ ایم کیو ٹی ٹی کو تلاش کریں اور اسے انسٹال کریں۔ لائبریری انسٹال کرنے کے بعد۔ پر جائیں مثالیں -> Adafruit mqtt لائبریری -> mqtt_esp8266
پھر ہمارے راسبیری پی آئی پی ایڈریس اور وائی فائی سندوں کے مطابق اس کوڈ میں ترمیم کریں۔
ESP8266WIFI اور اڈفروٹ ایم کیوٹیٹی کے لئے تمام لائبریریاں شامل کریں ۔
# شامل کریں
پھر اپنے Wi-Fi کے لئے SSID اور پاس ورڈ کی وضاحت کریں ، جہاں سے آپ اپنی ESP-12e کو مربوط کرنا چاہتے ہیں۔ یقینی بنائیں کہ آپ کا RPI اور نوڈیم سی یو اسی نیٹ ورک کے ساتھ جڑتا ہے۔
# ڈیفائن WLAN_SSID "xxxxxxxxx" # وضاحت WLAN_PASS "xxxxxxxxxxxxx"
اس حصے میں اڈفریٹ سرور کی وضاحت کی گئی ہے ، اس معاملے میں آپ کے راسبیری پائی اور سرور پورٹ کا IP ایڈریس۔
# وضاحت AIO_SERVER "اپنے پائی کے IP ایڈریس" # وضاحت AIO_SERVERPORT 1883
ذیل میں کھیت خالی رہیں گے کیونکہ ہم اڈفریٹ کلاؤڈ کا استعمال نہیں کررہے ہیں۔
# تعی AIن AIO_USERNAME "" # تعی AIن AIO_KEY ""
پھر ایم کیوٹی ٹی سرور سے رابطہ قائم کرنے کے لئے ایک ESP8266 WiFiClient کلاس بنائیں۔
وائی فائی کلائنٹ
وائی فائی کلائنٹ اور ایم کیوٹی ٹی سرور اور لاگ ان کی تفصیلات میں گزر کر ایم کیوٹی ٹی کلائنٹ کلاس مرتب کریں۔
اڈفروٹ_ ایم کیو ٹیT_ کلائنٹ ایم کی ٹی ٹی ((اور مؤکل ، AIO_SERVER ، AIO_SERVERPORT ، AIO_USERNAME ، AIO_KEY))؛
درجہ حرارت کی اشاعت کے ل '' درجہ حرارت 'نامی ایک فیڈ ترتیب دیں۔
اڈافروٹ_ ایم کیو ٹیT_Publish درجہ حرارت = Adaf پھٹ_ MQTT_Publish (& mqtt، AIO_USERNAME "/ فیڈ / درجہ حرارت")؛
تبدیلیوں کو سبسکرائب کرنے کے ل '' لیڈڈ 1 'نامی ایک فیڈ سیٹ اپ کریں۔
Adaf فرو_MQTT_ سبسکرائبڈ لیڈ 1 = Adaf پھٹ_ MQTT_ سبسکرائب کریں (& mqtt، AIO_USERNAME "/ فیڈ / لیڈ")؛
میں سیٹ اپ کی تقریب، ہم آپ کی پیداوار حاصل کرنے کے لئے چاہتے ہیں جس پر NodeMCU کا PIN کا اعلان. اس کے بعد ، نوڈیم سی یو کو وائی فائی رسائی مقام سے مربوط کریں۔
باطل سیٹ اپ () { سیریل.بیگین (115200)؛ تاخیر (10)؛ پن موڈ (ایل ای ڈی ، آؤٹپٹ)؛ سیریل.پرنٹلن (ایف ("اڈفریٹ ایم کیوٹی ٹی ڈیمو"))؛ // وائی فائی رسائی مقام سے رابطہ کریں۔ سیریل.پرنٹلن ()؛ سیریل.پرنٹلن ()؛ سیریل ڈاٹ پرنٹ ("مربوط ہو رہا ہے")؛ سیریل.پرنٹلن (WLAN_SSID)؛ WiFi.begin (WLAN_SSID، WLAN_PASS)؛ جبکہ (WiFi.status ()! = WL_CONNECTED) { …. …. … لیڈڈ فیڈ کے لئے ایم کیوٹی ٹی رکنیت مرتب کریں۔ mqtt.subscribe (& led1)؛ }
میں لوپ تقریب، ہم یقینی بنائیں گے MQTT سرور سے رابطہ MQTT_connect () کا استعمال کرتے ہوئے زندہ ہے؛ تقریب
باطل لوپ () { MQTT_connect ()؛
اب ، 'لیڈ' فیڈ کو سبسکرائب کریں اور ایم کیوٹی ٹی بروکر سے اسٹرنگ حاصل کریں اور ایٹو ()) کا استعمال کرتے ہوئے اس سٹرنگ کو نمبر میں تبدیل کریں ۔ ڈیجیٹل رائٹ ()) کا استعمال کرتے ہوئے اس نمبر کو ایل ای ڈی پن پر کام کریں اور لکھیں ۔ تقریب
Adaf فرو_MQTT_ سبسکرائب * سبسکرپشن؛ جبکہ ((سبسکرپشن = mqtt.readSubscription (20000))) { اگر (سبسکرپشن == & لیڈ 1) ial سیریل.پرنٹ (F ("ملا:"))؛ سیریل.پرنٹلن ((چار *) لیڈ 1. اسٹریڈ)؛ int led1_State = atoi ((چار *) led1.lastread)؛ ڈیجیٹل رائٹ (ایل ای ڈی ، لیڈ 1_ اسٹیٹ)؛ }
اب ، درجہ حرارت کو متغیر میں حاصل کریں اور درجہ حرارت.پبلش (ٹی) فنکشن کا استعمال کرکے اس قدر کو شائع کریں ۔
فلوٹ ٹی = dht.readTemperature ()؛ … .. اگر (! درجہ حرارت.پبلش ( ٹی)) { سیریل.پرنٹلن (ایف ("ناکام"))؛ } else { Serial.println (F ("ٹھیک ہے!"))؛ }
اس ٹیوٹوریل کے آخر میں ایک مظاہرے ویڈیو کے ساتھ مکمل کوڈ دیا گیا ہے۔ کوڈ کو نوڈیم سی یو بورڈ میں اپ لوڈ کریں اور ایم کیوٹی ٹی ڈیش بورڈ ایپ کھولیں جو آپ نے اسمارٹ فون میں ڈاؤن لوڈ کیا ہے۔
آپ رافبیری پی پی جی آئی او کو بھی دنیا میں کہیں بھی ایم کیوٹی ٹی کلاؤڈ جیسے اڈفریٹ آئی او ، ایم کیوٹی ٹی ۔آئ وغیرہ کا استعمال کرتے ہوئے کنٹرول کرسکتے ہیں ، جسے ہم اگلے سبق میں سیکھیں گے۔