
اہم نکات یا یہ مضمون کس بارے میں ہے۔
ہم کے بارے میں مضامین کا سلسلہ جاری ہے۔ shIoTiny - بصری طور پر قابل پروگرام چپ پر مبنی کنٹرولر ESP8266.
یہ مضمون بیان کرتا ہے، باتھ روم یا زیادہ نمی والے دوسرے کمرے میں وینٹیلیشن کنٹرول پروجیکٹ کی مثال کا استعمال کرتے ہوئے، ایک پروگرام کیسے بنایا جاتا ہے۔ shIoTiny.
سیریز میں پچھلے مضامین۔
حوالہ جات
تعارف
تجربے کے بغیر سمجھ نہیں آتی۔ یہ ایک سچائی ہے جو وقت اور نسلوں نے آزمائی ہے۔ لہذا، عملی مہارتیں سیکھنے کے لیے خود کچھ کرنے کی کوشش کرنے سے بہتر کوئی چیز نہیں ہے۔ اور مثالیں جو یہ ظاہر کرتی ہیں کہ آپ کیا کر سکتے ہیں اور جو آپ کو کوشش بھی نہیں کرنی چاہئے وہ یہاں کام آئیں گی۔ دوسرے لوگوں کی غلطیاں، یقیناً، آپ کی اپنی غلطیوں کو ہونے سے نہیں روک سکتیں، لیکن وہ بعد کی غلطیوں کی تعداد کو کم کرنے میں مدد کر سکتی ہیں۔
پچھلے مضامین کے قارئین کے سوالات اور خطوط نے مجھے ایک چھوٹا سا پروجیکٹ بنانے پر آمادہ کیا - وینٹیلیشن کنٹرول کی ایک مثال یہ دکھانے کے لیے کہ ShIoTiny نوڈس کیسے کام کرتے ہیں۔
اصل خیال جس سے کنٹرولر پیدا ہوا تھا۔ shIoTiny - پمپنگ اور آبپاشی اسٹیشن - سب کے لیے موزوں نہیں ہے اور ہر کسی کے لیے دلچسپی کا باعث نہیں ہوگا۔ لہذا، میں نے ایک وینٹیلیشن کنٹرول سسٹم لیا جو مثال کے طور پر بہت سے لوگوں کے لیے قابل فہم اور مفید ہے۔
میں کہوں گا کہ اس منصوبے کا آئیڈیا میرا نہیں بلکہ ہے۔ اور پھر ڈھال لیا shIoTiny.
پہلے سمجھ لو کہ تم کیا چاہتے ہو۔
بہتری کا عمل لامتناہی ہے۔ اور یہی پراپرٹی ہے جس نے بہت سے اچھے آئیڈیاز اور پروجیکٹس کو برباد کر دیا ہے۔ ڈویلپر، کسی ایسی چیز کو جاری کرنے کے بجائے جو کامل نہیں تھا، لیکن پھر بھی کام کر رہا تھا، اسے بہتر کرتا رہا۔ اور اس نے اسے اس وقت تک بہتر کیا جب تک کہ حریف اسے نظرانداز نہیں کرتے، ایک ورکنگ حل جاری کرتے ہیں، اگرچہ مثالی نہیں (اور اکثر بالکل ناقص)، لیکن کام کر رہے ہیں۔
اس لیے یہ جاننا بہت ضروری ہے کہ اس منصوبے کو کہاں ختم کیا جائے۔ یا، دوسرے لفظوں میں، ہمیں اس بات کا تعین کرنے کی ضرورت ہے کہ ہم اس منصوبے کے آخر میں کیا حاصل کرنا چاہتے ہیں جو ہمارے پاس شروع میں ہے۔ روسی زبان میں، ایک دستاویز کے لیے جو کسی چیز کو تخلیق کرنے کے راستے کو بیان کرنے کے مقصد سے بالکل ٹھیک مرتب کیا گیا ہے، ایک شاندار مختصر اور مختصر لفظ "پلان" ہے، جسے ذہنی طور پر معذور مترجمین اور عیب دار مینیجرز نے حال ہی میں کسی وجہ سے "سڑک" کہنا شروع کر دیا ہے۔ نقشہ"۔ خیر اللہ ان کو سلامت رکھے۔
ہمارا منصوبہ اس طرح ہوگا۔ آئیے فرض کریں کہ ایک کمرہ ہے جس میں نمی بعض اوقات نمایاں طور پر بڑھ سکتی ہے۔ مثلاً باتھ روم یا کچن۔ نمی ایک ناخوشگوار چیز ہے اور اس کا مقابلہ کرنے کا طریقہ دنیا کی طرح پرانا ہے: کمرے کو ہوادار بنائیں۔ ہوا دینے کے بہت سے طریقے ہیں۔ لیکن ہم، شاید، پرستاروں کے ساتھ سیاہ فام جیسے غیر ملکی اور پرانے زمانے کے طریقوں کو ترک کر دیں گے اور ایک باقاعدہ پنکھے سے چمٹے رہیں گے۔ ہمارے علاقے میں پنکھے سستے اور تلاش کرنا آسان ہیں۔
ایک لفظ میں، ہم پنکھے کو کنٹرول کرنا چاہتے ہیں: اسے آن کریں اور اس کے مطابق اسے آف کریں۔ مزید واضح طور پر، ہم چاہتے ہیں کہ ضرورت پڑنے پر اسے آن اور آف کیا جائے۔
یہ طے کرنا باقی ہے: پنکھے کو کن حالات میں آن کرنا چاہیے اور کن حالات میں اسے بند کرنا چاہیے۔
یہاں سب کچھ واضح ہے: اگر نمی ایک خاص حد سے زیادہ ہے، تو پنکھا آن ہو جاتا ہے اور ہوا نکالتا ہے۔ نمی معمول پر آ گئی ہے - پنکھا بند ہو گیا ہے۔
ایک دھیان رکھنے والا قاری فوری طور پر لفظ "دیئے گئے" پر اپنی نظر ڈالے گا۔ کس نے دیا؟ جیسا کہ بیان کیا گیا ہے؟
آپ نمی کی حد کو کئی طریقوں سے سیٹ کر سکتے ہیں۔ ہم ان میں سے دو کو دیکھیں گے: پہلا - متغیر مزاحمت کا استعمال کرتے ہوئے اور دوسرا - MQTT پروٹوکول کے ذریعے نیٹ ورک پر۔ ان طریقوں میں سے ہر ایک کے فوائد اور نقصانات ہیں، جن پر بعد میں بات کی جائے گی۔
ان لوگوں کے لیے جو نہیں سمجھتے ہیں، میں وضاحت کروں گا کہ "تھریشولڈ نمی" نمی کی سطح ہے جس کے اوپر پنکھا آن کرنا ضروری ہے۔
اگلا سوال یہ ہے کہ کیا صارف کو براہ راست پنکھا آن کرنے کا حق دیا جائے؟ یعنی نمی کی سطح سے قطع نظر، بٹن دبانے پر؟ ہم اس طرح کا امکان فراہم کریں گے۔ بہر حال، پنکھے کی ضرورت نہ صرف اس صورت میں ہو سکتی ہے جب زیادہ نمی ہو، بلکہ کمرے سے ہٹانے کے لیے بھی، مثال کے طور پر، ایک ناگوار بدبو، جسے "بدبو" کہا جاتا ہے۔
لہذا، ہم سمجھتے ہیں کہ ہم کیا چاہتے ہیں اور تھوڑا سا بھی یہ کیسے کام کرے گا۔ آئیے اپنے وینٹیلیشن کنٹرول سسٹم کے تمام افعال کو مختصراً درج کرتے ہیں:
- حد نمی کی سطح کا تعین (دو اختیارات)؛
- نمی کی سطح کی پیمائش؛
- خودکار پنکھا آن کرنا؛
- خودکار پنکھا بند؛
- دستی پنکھے کو چالو کرنا (بٹن دبا کر)۔
لہذا، منصوبہ واضح ہے. ہمارے پروگرام میں مندرجہ بالا تمام افعال کو نافذ کرنا ضروری ہے۔ ہم اس "پلان" کی بنیاد پر عمل کریں گے۔ سب سے پہلے، آئیے ڈیوائس کا بلاک ڈایاگرام بنائیں۔
ڈیوائس کا بلاک ڈایاگرام
عام طور پر، ہمارے پاس ایسی دو اسکیمیں ہوں گی۔ پہلا اس اختیار کے لیے ہے جس میں تھریشولڈ نمی کی سطح متغیر مزاحمت کے ذریعے سیٹ کی گئی ہے۔ دوسری اسکیم اس اختیار کے لیے ہے جس میں MQTT پروٹوکول کے ذریعے نیٹ ورک پر نمی کی حد مقرر کی گئی ہے۔
لیکن چونکہ یہ سرکٹس صرف ایک عنصر کے لحاظ سے مختلف ہوں گے - متغیر ریزسٹر "تھریشولڈ نمی کی سطح کا تعین"، ہم صرف ایک بلاک ڈایاگرام بنائیں گے۔ بلاشبہ، GOST کے مطابق بلاک ڈایاگرام مختلف نظر آتا ہے۔ لیکن ہم بائسن انجینئرز پر نہیں بلکہ نوجوان نسل پر توجہ مرکوز کر رہے ہیں۔ لہذا، نمائش زیادہ اہم ہے.

تو، ہم تصویر میں کیا دیکھتے ہیں؟ پنکھا ریلے سے جڑا ہوا ہے۔ ریلے ایکس این ایم ایکس ایکس کنٹرولر shIoTiny. براہ کرم نوٹ کریں کہ پنکھا ایک ہائی وولٹیج ڈیوائس ہے۔ اس لیے اگر کوئی خود ایسا کرتا ہے تو ہوشیار رہیں۔ یعنی کم از کم، سرکٹ میں اپنی انگلیوں یا پیمائشی آلات کو چپکانے سے پہلے، کم از کم پنکھے کی بجلی بند کر دیں۔ اور دوسرا نوٹ۔ اگر آپ کا پرستار اس سے زیادہ طاقتور ہے۔ 250 ڈبلیو، پھر اسے براہ راست منسلک کریں۔ shIoTiny اس کے قابل نہیں - صرف اسٹارٹر کے ذریعے۔
ہم نے پنکھا چھانٹ لیا۔ اب بٹن پنکھے کو "دستی طور پر آن کریں"۔ یہ ان پٹ سے منسلک ہے۔ ان پٹ 1. یہاں وضاحت کے لیے مزید کچھ نہیں ہے۔
درجہ حرارت اور نمی سینسر ڈی ایچ ٹی 11 (یا ڈی ایچ ٹی 22 یا ان کے ینالاگ)۔ اس کے کنکشن کے لیے کنٹرولر پر ایک خاص ان پٹ ہے۔ shIoTiny. جیسا کہ آپ تصویر میں دیکھ سکتے ہیں، اس طرح کے سینسر کو جوڑنا بھی کوئی مسئلہ نہیں ہے۔
اور آخر میں، متغیر مزاحمت، جو نمی کی حد کا تعین کرتی ہے۔ مزید واضح طور پر، متغیر اور مستقل مزاحمتوں پر مشتمل ایک تقسیم کار۔ اس کے کنکشن کے ساتھ کوئی مسئلہ نہیں ہے، لیکن میں یہ بتاتا ہوں کہ بلٹ میں ADC ہے ESP8266 زیادہ سے زیادہ 1 وولٹ کے لیے ڈیزائن کیا گیا ہے۔ لہذا، تقریبا 5 گنا کے وولٹیج ڈیوائڈر کی ضرورت ہے.
اور میں آپ کو ایک بار پھر یاد دلاتا ہوں کہ اگر MQTT پروٹوکول کا استعمال کرتے ہوئے نیٹ ورک پر تھریشولڈ نمی کی سطح سیٹ کی گئی ہو تو اس ڈیوائیڈر کی ضرورت نہیں ہے۔
آئیے ElDraw ShIoTiny ایڈیٹر میں ڈیوائس کے لیے الگورتھم بنانا شروع کریں۔ اس ایڈیٹر تک کیسے پہنچیں، اس کو پہلے کے مضامین میں یا ہدایات میں پڑھا جا سکتا ہے، جس کا لنک مضمون کے شروع میں ہے۔
آپشن ایک، سب سے آسان
آئیے کچھ آسان کے ساتھ شروع کریں: ریلے کو آن کرنا ریلے ایکس این ایم ایکس ایکس جب ایک مخصوص وقت کے لیے حد نمی کی سطح سے تجاوز کر جائے۔

جیسا کہ آپ دیکھ سکتے ہیں، کچھ بھی پیچیدہ نہیں: صرف چار نوڈس، کمنٹ نوڈس کی گنتی نہیں۔ ڈی ایچ ٹی 11 - یہ خود درجہ حرارت اور نمی کا سینسر ہے (اس کے ساتھ تبدیل کیا جاسکتا ہے۔ ڈی ایچ ٹی 22).
مسلسل CONST - حد نمی کی سطح، فیصد میں۔
کمپیریٹر - ایک نوڈ جو دو نمبروں کا موازنہ کرتا ہے اور اگر کسی شرط کو پورا نہیں کیا جاتا ہے تو 1 اور 0 اگر شرط پوری نہیں ہوتی ہے۔
ہمارے معاملے میں، یہ حالت ہو گی A> Bجہاں A سینسر کے ذریعہ نمی کی سطح ماپا جاتا ہے، اور B - ایک ہی نمی کی حد کی سطح۔
جیسے ہی نمی کی سطح کی پیمائش کی گئی (Aنمی کی حد سے تجاوز کر جائے گی (B)، وہیں موازنہ کرنے والے کے آؤٹ پٹ پر A> B 1 ظاہر ہوگا اور ریلے آن ہو جائے گا۔ اس کے برعکس، جیسے ہی نمی کی سطح معمول پر آتی ہے (یعنی A<=B)، وہیں موازنہ کرنے والے کے آؤٹ پٹ پر A> B 0 ظاہر ہوگا اور ریلے بند ہو جائے گا۔
سب صاف؟ ان لوگوں کے لیے جو بہت آرام دہ نہیں ہیں، اسے دوبارہ پڑھیں یا ہدایات میں یونٹس کے آپریشن کی تفصیل دیکھیں۔
نوٹ کریں کہ سینسر سے ڈیٹا ڈی ایچ ٹی 11 ہر 10 سیکنڈ میں تقریبا ایک بار اپ ڈیٹ کیا جاتا ہے۔ لہذا، ریلے ہر 10 سیکنڈ میں ایک بار سے زیادہ بار آن اور آف نہیں کر سکے گا۔
سب کچھ ٹھیک ہو جائے گا، لیکن ہم متغیر ریزسٹر کا استعمال کرتے ہوئے تھریشولڈ نمی کی سطح کو سیٹ کرنا چاہیں گے۔ کچھ بھی آسان نہیں ہو سکتا!

آئیے صرف مستقل نوڈ کو ADC نوڈ سے تبدیل کریں۔ سب کے بعد، یہ ADC کے لئے تھا کہ ہم نے ایک وولٹیج ڈیوائڈر کو متغیر ریزسٹر کے ساتھ منسلک کیا.
ADC ان پٹ پر وولٹیج 0 سے 1 وولٹ تک مختلف ہوتی ہے۔ لیکن سینسر آؤٹ پٹ میں نمی 0 سے 100٪ تک مختلف ہوتی ہے۔ ہم ان کا موازنہ کیسے کریں؟ یہ آسان ہے. ADC نوڈ میں shIoTiny نہ صرف ان پٹ وولٹیج کی پیمائش کرتا ہے بلکہ یہ بھی جانتا ہے کہ کیسے کرنا ہے۔ پیمانے اور شفٹ.
یعنی ADC1 نوڈ (ADC) کے آؤٹ پٹ کی قدر ہوگی۔ X, فارمولے کے ذریعہ شمار کیا جاتا ہے۔

جہاں
- ADC ان پٹ پر وولٹیج (0 سے 1V تک)؛ k - رینج (ADC رینج) اور bآفسیٹ (ADC آفسیٹ)۔ اس طرح، اگر آپ سیٹ کرتے ہیں k = 100 и بی = 0، پھر جب بدلتے ہیں۔
0 سے 1 کی حد میں، قدر X ADC نوڈ کے آؤٹ پٹ پر 0 سے 100 کی حد میں فرق ہو گا۔ یعنی عددی طور پر نمی میں 0 سے 100% تک کی تبدیلی کی حد کے برابر۔
یا، سادہ طور پر، متغیر مزاحمتی سلائیڈر کو گھما کر، آپ تھریشولڈ نمی کی سطح کو 0 سے 100 تک سیٹ کر سکتے ہیں۔ صرف ایک تکلیف یہ ہے کہ کوئی ڈسپلے ڈیوائسز نہیں ہیں۔ لیکن عملی طور پر، اگر آپ ایک متغیر مزاحمتی موٹر کے 6 ڈویژن بناتے ہیں (0%, 20%, 40%, 60%, 80%, 100%) - تو یہ حد نمی کی سطح کو سیٹ کرنے کے لیے کافی ہے۔
ہم مشکلات کیسے طے کرتے ہیں؟ k - رینج (ADC رینج) اور bآفسیٹ (ADC آفسیٹ)؟ جی ہاں، ابلی ہوئے شلجم سے زیادہ آسان! اپنے ماؤس پوائنٹر کو نوڈ پر رکھیں ADC1۔ اور فوری طور پر آپ کو ایک سیٹنگ ونڈو نظر آئے گی۔ آپ اس میں اپنی ضرورت کی ہر چیز ڈال سکتے ہیں۔ ہمارے کیس کے لیے، یہ ایک ونڈو ہوگی جیسا کہ تصویر میں ہے۔

لہذا، ہمارے پاس کام کرنے کا آسان ترین حل ہے۔ آئیے اسے بہتر کرنا شروع کریں۔
ویسے، سب سے آسان حل کا ایک فائدہ ہے - اسے انٹرنیٹ کی ضرورت نہیں ہے. یہ مکمل طور پر خود مختار ہے۔
آپشن دو، بٹن کو جوڑیں۔
سب کچھ کام کرتا ہے اور سب خوش ہیں۔ لیکن بدقسمتی سے، ہم زبردستی وینٹیلیشن کو آن نہیں کر سکتے۔ ہم نے پہلے ہی اس بات پر اتفاق کیا ہے کہ داخلی دروازے پر ان پٹ 1 ہمارے پاس ایک بٹن منسلک ہوگا جو نمی کے سینسر سے قطع نظر پنکھے کو زبردستی آن اور آف کر دے گا۔
ہمارے پروگرام ڈایاگرام میں اس بٹن کو پروسیس کرنے کا وقت آگیا ہے۔

بٹن کلک پروسیسنگ بلاک کو نارنجی لائن کے ساتھ نمایاں کیا گیا ہے۔ یہ بٹن دبانے کا ایک کاؤنٹر ہے، جو صفر پر دوبارہ ترتیب دیا جاتا ہے جب اس کے آؤٹ پٹ پر ویلیو ایک سے زیادہ ہو جاتی ہے (گرین لائن، نوڈ آؤٹ پٹ CT).
یہاں سب کچھ پہلے کی طرح کام کرتا ہے: کاؤنٹر CT ان پٹ سے منسلک بٹن کے دبانے کو شمار کرتا ہے۔ ان پٹ 1. یعنی، اس کاؤنٹر کے آؤٹ پٹ پر بٹن کے ہر دبانے کے ساتھ ویلیو 1 بڑھ جاتی ہے۔
جیسے ہی یہ قدر دو کے برابر ہو جاتی ہے (یعنی 1 سے زیادہ)، فوراً موازنہ کرنے والے کے آؤٹ پٹ پر A> B 1 ظاہر ہوگا۔ اور یہ 1 کاؤنٹر کو دوبارہ ترتیب دے گا۔ CT صفر تک اس کا مطلب ہے موازنہ کرنے والا، خاکہ میں سب سے نیچے والا!
اس طرح، ہمارے بٹن کی دو حالتیں ہیں - 0 اور 1۔ اگر ہمیں مزید ریاستوں کی ضرورت ہے (3 یا 4 یا اس سے بھی زیادہ) - ہمیں صرف مستقل کو تبدیل کرنے کی ضرورت ہوگی۔ CONST ایک سے دوسری قدر تک۔
لہذا، پنکھا آن کرنے کے لیے ہمارے پاس دو شرائط ہیں: نمی کی ایک مقررہ سطح سے تجاوز کرنا اور بٹن کو ایک بار دبانا۔ اگر ان میں سے کوئی بھی شرائط پوری ہو جائیں تو پنکھا آن ہو جائے گا۔ اور بٹن کو دوبارہ دبانے تک یہ کام کرے گا۔ И نمی کی سطح معمول پر نہیں آئے گی۔
آپ یقیناً الگورتھم کو مزید پیچیدہ بنا سکتے ہیں، لیکن ہم ایسا نہیں کریں گے - ہم تخلیقی صلاحیتوں کی گنجائش ان لوگوں کے لیے چھوڑ دیں گے جو چاہیں گے۔
آپشن تین، انٹرنیٹ سے جڑیں۔
ہم نے جو کچھ بھی بیان کیا ہے وہ کافی قابل عمل ہے۔ شو آف کے بارے میں کیا خیال ہے؟ سب کے بعد، کوئی بھی pimply hipster کریکر ہیکر کسی ایسے شخص پر ہنسے گا جو اسمارٹ فون سے کنٹرول کرنے کے بجائے بٹن دباتا ہے! ہینڈل کو گھمانا "فیشن نہیں ہے۔" لیکن اپنے اسمارٹ فون پر اپنی انگلی سے رینگنا، اپنی انگلی کو خون آلود کرنا - یہ ایک ہپسٹر-ہیکر-کریکر کی خواہشات کی چوٹی ہے (میں ان سب میں کبھی فرق نہیں کر سکتا تھا - لہذا اگر میں غلط ہوں تو مجھے معاف کردیں)۔
لیکن آئیے ہم ان لوگوں کے ساتھ نرمی برتیں۔ انٹرنیٹ کے ذریعے انتظام کرنے کے حقیقی فوائد ہیں۔ سب سے پہلے، یہ مرئیت ہے۔ تمام پلیٹ فارمز کے لیے بہت ساری ایپلی کیشنز موجود ہیں جو آپ کو ہمارے کارلسن کنٹرولر کے لیے چند ٹویکس کے ساتھ مکمل طور پر قابل استعمال کنٹرول پینل بنانے کی اجازت دیتی ہیں۔ دوم، یہ کمرے میں نمی کی حالت کو دور سے مانیٹر کرنے کا موقع ہے۔ اور تیسرا، آپ نہ صرف یہ دیکھ سکتے ہیں کہ پنکھا کیا کر رہا ہے - آیا یہ گھوم رہا ہے یا نہیں، بلکہ یہ بھی دیکھ سکتے ہیں کہ نمی کی حد کیا ہے۔ اور پھر پنکھا خود بخود یا دستی طور پر آن ہو گیا۔ عام طور پر، سب کچھ آپ چاہتے ہیں.
بلاشبہ، کچھ مداحوں کے لیے اتنی توجہ حاصل کرنا بہت اعزاز کی بات ہے۔ لیکن یہ صرف ایک مثال ہے۔
لہذا، انٹرنیٹ سے جڑنے کے لیے ہم ٹیکنالوجی کا استعمال کریں گے۔ ایم کیوٹی ٹی۔ اور اسی نام کا پروٹوکول۔
اس ٹیکنالوجی سے فائدہ اٹھانے کے لیے ہمیں ضرورت ہے۔ MQTT بروکر. یہ ایک خاص سرور ہے جو خدمت کرتا ہے۔ MQTT کلائنٹسمثال کے طور پر shIoTIny اور آپ کا اسمارٹ فون۔
ٹیکنالوجی کا جوہر ایم کیوٹی ٹی۔ اس حقیقت پر مشتمل ہے کہ کلائنٹس میں سے کوئی بھی صوابدیدی ڈیٹا MQTT بروکر (سرور) کو ایک مخصوص نام کے تحت شائع کرتا ہے (جسے موضوع اصطلاح میں ایم کیوٹی ٹی۔)۔ دوسرے کلائنٹ اپنے نام کا استعمال کرتے ہوئے صوابدیدی ڈیٹا کو سبسکرائب کر سکتے ہیں (موضوع) اور نیا شائع شدہ ڈیٹا حاصل کریں۔ یعنی تمام ڈیٹا ایکسچینج کلائنٹ بروکر کلائنٹ کے اصول کی پیروی کرتا ہے۔
Я میں نہیں کروں گا تفصیلات پر توجہ مرکوز کریں. انٹرنیٹ پر بہت سارے مضامین اور سبق موجود ہیں کہ یہ کیسے کام کرتا ہے۔ ایم کیوٹی ٹی۔ اور کنٹرول پینل بنانے کے لیے کون سے پروگرام موجود ہیں۔ میں صرف آپ کو دکھاؤں گا کہ ہم کس طرح استعمال کرکے ڈیٹا وصول اور شائع کرسکتے ہیں۔ shIoTiny.
ایک بروکر کے طور پر میں نے استعمال کیا لیکن اصول ہر جگہ ایک جیسا ہے۔
لہذا، ہم فرض کریں گے کہ آپ نے رجسٹر کیا ہے۔ MQTT بروکر. عام طور پر، بروکر آپ کو صارف نام اور پاس ورڈ (اجازت دینے کے لیے) کے ساتھ ساتھ کنکشن کے لیے ایک بندرگاہ (یا آپ کے ساتھ آنے کی ضرورت) دے گا۔ پلگ کرنے کے لئے shIoTiny к MQTT بروکر دو طریقوں سے ممکن ہے - باقاعدہ کنکشن اور بذریعہ TLS (SSL).
ان تمام پیرامیٹرز میں shIoTiny ٹیب پر درج کیا گیا۔ نیٹ ورکنگ، باب سرور سے MQTT کنکشن.

آپ تو MQTT بروکر اجازت کی ضرورت نہیں ہے - اپنا لاگ ان اور پاس ورڈ درج نہ کریں (ان فیلڈز کو خالی چھوڑ دیں)۔
پیرامیٹر MQTT موضوع کا سابقہ ایک الگ وضاحت کی ضرورت ہے.
MQTT پیرامیٹرز کا سابقہ ایک سٹرنگ ہے جو موضوع کے نام کے ساتھ منسلک ہے (موضوعMQTT بروکر کو شائع کرنے اور سبسکرائب کرتے وقت۔ نصب کرنے کے لئے MQTT سابقہ اپنے کنٹرولر کے لیے، آپ کو اسے صرف ان پٹ فیلڈ میں داخل کرنے کی ضرورت ہے "MQTT موضوع کا سابقہ"("MQTT موضوع کا سابقہ")۔ سابقہ ہمیشہ سلیش سے شروع ہوتا ہے («/)! اگر آپ ان پٹ فیلڈ میں سلیش داخل نہیں کرتے ہیں، تو یہ خود بخود شامل ہو جائے گا۔ آپ سابقہ میں علامتیں استعمال نہیں کرسکتے ہیں۔ "#" и "+". کوئی دوسری پابندیاں نہیں ہیں۔
مثال کے طور پر، اگر آپ پیرامیٹر شائع کرتے ہیں "محبت کا درجہ" (یا اسے سبسکرائب کریں) اور آپ کا سابقہ " پر سیٹ کیا گیا ہے/shiotiny/"، پھر یہ پیرامیٹر بروکر پر نام سے شائع کیا جائے گا"/shiotiny/status" اگر آپ کے پاس ایک خالی سابقہ ہے، تو بروکر کے تمام پیرامیٹرز سلیش سے شروع ہوں گے («/):محبت کا درجہ"کے طور پر شائع کیا جائے گا"/حالت'.
لہذا، ہمیں یقین ہے کہ آپ نے رجسٹر کیا ہے۔ MQTT بروکر اور لاگ ان، پاس ورڈ اور پورٹ موصول ہوا۔ پھر آپ نے ان پیرامیٹرز کو ٹیب پر درج کیا۔ نیٹ ورکنگ، باب سرور سے MQTT کنکشن کنٹرولر shIoTiny.
ہم فرض کرتے ہیں کہ سابقہ " پر سیٹ ہے/کمرہ/'.
آئیے تمام کلیدی پیرامیٹرز کی حیثیت کو شائع کرکے شروع کریں: ریلے Realay1، دستی سوئچنگ اسٹیٹس، خودکار سوئچنگ اسٹیٹس اور آخر میں حد اور موجودہ نمی کی سطح۔ ٹھیک ہے، ایک بونس کمرے میں درجہ حرارت ہے. یہ کیسے کریں، اعداد و شمار دیکھیں.

جیسا کہ آپ دیکھ سکتے ہیں، پچھلے ورژن سے فرق صرف نوڈس کا ہے "MQTT شائع کریں۔" سابقہ کو مدنظر رکھتے ہوئے، درج ذیل پیرامیٹرز شائع کیے گئے ہیں:

جیسا کہ آپ دیکھ سکتے ہیں، ہمارے پاس نظام کی پوری حالت ہمارے ہاتھ کی ہتھیلی میں ہے!
لیکن ہم نہ صرف دیکھنا چاہتے ہیں بلکہ کنٹرول بھی کرنا چاہتے ہیں۔ میں کیا کروں؟ بہت آسان. ہم استعمال کرتے ہوئے نمی کی حد مقرر کرنے سے انکار کر دیں گے۔ اے ڈی سی اور ایک متغیر ریزسٹر اور ہم اس حد تک نمی کی سطح کے مطابق سیٹ کریں گے۔ ایم کیوٹی ٹی۔ براہ راست آپ کے اسمارٹ فون سے!

ہم ADC نوڈ کو سرکٹ سے ہٹاتے ہیں اور وہاں تین نئے نوڈس شامل کرتے ہیں: فلیش اسٹور, فلیش کی بحالی и MQTT بیان کریں۔.
نوڈ فنکشن MQTT بیان کریں۔ واضح: یہ ایک پیرامیٹر حاصل کرتا ہے۔ /room/trigHset (حد نمی کی سطح) s MQTT بروکر. لیکن یہ اگلے ڈیٹا کے ساتھ کیا کرتا ہے؟ بس انہیں نوڈ پر دیتا ہے۔ فلیش اسٹور، جو بدلے میں اس ڈیٹا کو نام کے تحت غیر مستحکم میموری میں محفوظ کرتا ہے۔ trigH. اس کے بعد، نوڈ فلیش کی بحالی نام کے تحت غیر مستحکم میموری سے ڈیٹا پڑھتا ہے۔ trigH اور ہم پہلے ہی جانتے ہیں کہ آگے کیا ہوتا ہے۔
ایسی مشکلات کیوں؟ موصولہ ڈیٹا کو فوری طور پر موازنہ کرنے والے کے ان پٹ پر کیوں نہیں بھیجا جا سکتا؟
جیسا کہ کامریڈ ایس ہومز کہا کرتے تھے۔ یہ ابتدائی ہے! کوئی بھی اس بات کی ضمانت نہیں دیتا ہے کہ آپ کے آلے کو آن کرنے کے بعد، یہ شامل ہو جائے گا۔ MQTT بروکر. اور نمی کی پیمائش کرنے کی ضرورت ہے۔ اور پنکھا آن کرنا ضروری ہے۔ لیکن حد نمی کی سطح کے بارے میں معلومات کے بغیر، یہ ناممکن ہے! لہذا، جب آن کیا جاتا ہے، تو ہمارا آلہ غیر مستحکم میموری سے پہلے سے ذخیرہ شدہ حد نمی کی سطح کو بازیافت کرتا ہے اور اسے فیصلے کرنے کے لیے استعمال کرتا ہے۔ اور جب کے ساتھ تعلق قائم ہو جاتا ہے۔ MQTT بروکر اور کوئی ایک نئی قدر پوسٹ کرے گا۔ /room/trigHset، پھر یہ نئی قدر استعمال کی جائے گی۔
پھر آپ جو چاہیں لے سکتے ہیں۔ مثال کے طور پر، نمی کے علاوہ، درجہ حرارت اکاؤنٹنگ بھی متعارف کروائیں. یا "سمارٹ" لائٹنگ کنٹرول شامل کریں (ہمارے پاس اب بھی دو ریلے اور دو ان پٹ غیر استعمال شدہ ہیں)۔ سب آپ کے ہاتھ میں!
حاصل يہ ہوا
لہذا ہم نے ShioTiny پر مبنی بنیادی طور پر سادہ کنٹرولر کے نفاذ کی کئی مثالوں کو دیکھا۔ ہو سکتا ہے کہ یہ کسی کے کام آئے۔
ہمیشہ کی طرح، تجاویز، خواہشات، سوالات، ٹائپنگ کی غلطیاں، وغیرہ - بذریعہ ای میل: shiotiny@yandex.ru
ماخذ: www.habr.com
