سونف بیسک کے لیے بصری پروگرامنگ

سونف بیسک کے لیے بصری پروگرامنگ
ایک سستے چینی ڈیوائس سے قابل پروگرام منطق کنٹرولر بنانے کے طریقہ کے بارے میں ایک مضمون۔ اس طرح کا آلہ گھریلو آٹومیشن اور اسکول کمپیوٹر سائنس میں عملی کلاسوں کے طور پر استعمال پائے گا۔
حوالہ کے لیے، بطور ڈیفالٹ سونف بیسک پروگرام چینی کلاؤڈ سروس کے ذریعے ایک موبائل ایپلیکیشن کے ساتھ کام کرتا ہے؛ مجوزہ ترمیم کے بعد، اس ڈیوائس کے ساتھ مزید تمام تعامل براؤزر میں ممکن ہوگا۔

سیکشن I. سون آف کو MGT24 سروس سے جوڑنا

مرحلہ 1: ایک کنٹرول پینل بنائیں

سائٹ پر رجسٹر کریں۔ mgt24 (اگر پہلے سے رجسٹرڈ نہیں ہے) اور اپنا اکاؤنٹ استعمال کرکے لاگ ان کریں۔
لاگ ان کریںسونف بیسک کے لیے بصری پروگرامنگ

ایک نئے آلے کے لیے کنٹرول پینل بنانے کے لیے، "+" بٹن پر کلک کریں۔
پینل بنانے کی مثالسونف بیسک کے لیے بصری پروگرامنگ

پینل بننے کے بعد، یہ آپ کے پینلز کی فہرست میں ظاہر ہوگا۔

بنائے گئے پینل کے "سیٹ اپ" ٹیب میں، "ڈیوائس آئی ڈی" اور "آتھورائزیشن کی" فیلڈز تلاش کریں؛ مستقبل میں، سون آف ڈیوائس سیٹ اپ کرتے وقت یہ معلومات درکار ہوں گی۔
ٹیب کی مثالسونف بیسک کے لیے بصری پروگرامنگ

مرحلہ 2۔ ڈیوائس کو ری فلیش کریں۔

افادیت کا استعمال کرتے ہوئے XTCOM_UTIL فرم ویئر ڈاؤن لوڈ کریں۔ PLC سوناف بنیادی ڈیوائس پر، اس کے لیے آپ کو USB-TTL کنورٹر کی ضرورت ہوگی۔ یہاں ہدایات и ویڈیو ہدایات.

مرحلہ 3۔ ڈیوائس سیٹ اپ

ڈیوائس پر پاور لگائیں، ایل ای ڈی روشن ہونے کے بعد، بٹن کو دبائیں اور اسے دبائے رکھیں جب تک کہ ایل ای ڈی وقتاً فوقتاً یکساں طور پر چمکنا شروع نہ کرے۔
اس وقت، "PLC Sonoff Basic" کے نام سے ایک نیا وائی فائی نیٹ ورک ظاہر ہوگا، اپنے کمپیوٹر کو اس نیٹ ورک سے جوڑیں۔
ایل ای ڈی اشارے کی وضاحت

ایل ای ڈی کا اشارہ
ڈیوائس کی حیثیت

متواتر ڈبل چمکتا
روٹر سے کوئی کنکشن نہیں۔

مسلسل چمکتا ہے
روٹر کے ساتھ کنکشن قائم کیا گیا ہے۔

متواتر یونیفارم چمکتا ہے
وائی ​​فائی ایکسیس پوائنٹ موڈ

بجھا ہوا
بجلی کی فراہمی نہیں ہے۔

ایک انٹرنیٹ براؤزر کھولیں اور ایڈریس بار میں متن "192.168.4.1" درج کریں، ڈیوائس کے نیٹ ورک کی ترتیبات کے صفحہ پر جائیں۔

کھیتوں کو درج ذیل بھریں:

  • "نیٹ ورک کا نام" اور "پاس ورڈ" (آلہ کو اپنے گھر کے وائی فائی روٹر سے جوڑنے کے لیے)۔
  • "ڈیوائس آئی ڈی" اور "آتھورائزیشن کلید" (ایم جی ٹی 24 سروس پر ڈیوائس کو اجازت دینے کے لیے)۔

ڈیوائس نیٹ ورک پیرامیٹرز ترتیب دینے کی مثالسونف بیسک کے لیے بصری پروگرامنگ

سیٹنگز کو محفوظ کریں اور ڈیوائس کو ریبوٹ کریں۔
یہاں ویڈیو ہدایات.

مرحلہ 4. کنیکٹنگ سینسر (اختیاری)

موجودہ فرم ویئر چار ds18b20 درجہ حرارت کے سینسر کو سپورٹ کرتا ہے۔ یہاں ویڈیو ہدایات سینسر کی تنصیب کے لیے بظاہر، یہ مرحلہ سب سے مشکل ہوگا، کیونکہ اس کے لیے سیدھے بازو اور سولڈرنگ آئرن کی ضرورت ہوگی۔

سیکشن II بصری پروگرامنگ

مرحلہ 1: اسکرپٹس بنائیں

پروگرامنگ ماحول کے طور پر استعمال کیا جاتا ہے۔ ناکہ بندی سے، ماحول سیکھنے میں آسان ہے، لہذا آپ کو سادہ سکرپٹ بنانے کے لیے پروگرامر بننے کی ضرورت نہیں ہے۔

میں نے ڈیوائس کے پیرامیٹرز کو لکھنے اور پڑھنے کے لیے خصوصی بلاکس شامل کیے ہیں۔ کسی بھی پیرامیٹر تک نام کے ذریعے رسائی حاصل کی جاتی ہے۔ ریموٹ ڈیوائسز کے پیرامیٹرز کے لیے، کمپاؤنڈ کے نام استعمال کیے جاتے ہیں: "پیرامیٹر @ ڈیوائس"۔
اختیارات کی ڈراپ ڈاؤن فہرستسونف بیسک کے لیے بصری پروگرامنگ

سائکلک سوئچ آن اور آف لوڈ (1Hz) کے لیے مثال کا منظر:
سونف بیسک کے لیے بصری پروگرامنگ

اسکرپٹ کی ایک مثال جو دو الگ الگ آلات کے آپریشن کو ہم آہنگ کرتی ہے۔ یعنی، ٹارگٹ ڈیوائس کا ریلے ریموٹ ڈیوائس کے ریلے کے آپریشن کو دہراتا ہے۔
سونف بیسک کے لیے بصری پروگرامنگ

ترموسٹیٹ کا منظر نامہ (ہسٹریسس کے بغیر):
سونف بیسک کے لیے بصری پروگرامنگ

مزید پیچیدہ اسکرپٹس بنانے کے لیے، آپ متغیرات، لوپس، فنکشنز (دلائل کے ساتھ) اور دیگر تعمیرات استعمال کرسکتے ہیں۔ میں یہاں یہ سب تفصیل سے بیان نہیں کروں گا؛ نیٹ پر پہلے ہی بہت کچھ ہے۔ بلاکلی کے بارے میں تعلیمی مواد.

مرحلہ 2: اسکرپٹ کی ترتیب

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

مرحلہ 3: اسکرپٹ کو ڈیبگ کرنا

کسی اسکرپٹ کو ڈیبگ کرنے کے لیے جو پہلے ہی ڈیوائس میں لوڈ ہو چکی ہے، آپ ایک پروگرام ٹریس مرحلہ وار چلا سکتے ہیں۔ یہ انتہائی مفید ہو سکتا ہے جب اسکرپٹ کا طرز عمل مصنف کے ارادے سے مختلف ہو۔ اس صورت میں، ٹریسنگ مصنف کو فوری طور پر مسئلے کا ماخذ تلاش کرنے اور اسکرپٹ میں موجود غلطی کو درست کرنے کی اجازت دیتی ہے۔

ڈیبگ موڈ میں فیکٹریل کا حساب لگانے کا منظر:
سونف بیسک کے لیے بصری پروگرامنگ

ڈیبگ ٹول بہت آسان ہے اور یہ تین اہم بٹنوں پر مشتمل ہے: "اسٹارٹ"، "ایک قدم آگے" اور "سٹاپ" (آئیے "انٹر" اور "ایگزٹ" ڈیبگ موڈ کو بھی نہ بھولیں)۔ مرحلہ وار ٹریسنگ کے علاوہ، آپ کسی بھی بلاک پر بریک پوائنٹ سیٹ کر سکتے ہیں (بلاک پر کلک کر کے)۔
مانیٹر میں پیرامیٹرز (سینسر، ریلے) کی موجودہ اقدار کو ظاہر کرنے کے لیے، "پرنٹ" بلاک استعمال کریں۔
یہاں جائزہ ویڈیو ڈیبگر استعمال کرنے کے بارے میں۔

شوقین کے لیے سیکشن۔ ہڈ کے نیچے کیا ہے؟

اسکرپٹس کو ٹارگٹ ڈیوائس پر کام کرنے کے لیے، ایک بائیک کوڈ مترجم اور 38 ہدایات کے ساتھ ایک اسمبلر تیار کیا گیا۔ بلاکلی کے سورس کوڈ میں ایک خصوصی کوڈ جنریٹر بنایا گیا ہے جو بصری بلاکس کو اسمبلی ہدایات میں تبدیل کرتا ہے۔ اس کے بعد، اس اسمبلر پروگرام کو بائیک کوڈ میں تبدیل کیا جاتا ہے اور عمل کے لیے ڈیوائس میں منتقل کیا جاتا ہے۔
اس ورچوئل مشین کا فن تعمیر کافی آسان ہے اور اسے بیان کرنے میں کوئی خاص بات نہیں، انٹرنیٹ پر آپ کو آسان ترین ورچوئل مشینوں کو ڈیزائن کرنے کے بارے میں بہت سے مضامین ملیں گے۔
میں عام طور پر اپنی ورچوئل مشین کے اسٹیک کے لیے 1000 بائٹس مختص کرتا ہوں، جو بچانے کے لیے کافی ہے۔ بلاشبہ، گہری تکرار کسی بھی اسٹیک کو ختم کر سکتی ہے، لیکن ان کا کوئی عملی استعمال ہونے کا امکان نہیں ہے۔

نتیجے میں بائیک کوڈ کافی کمپیکٹ ہے۔ مثال کے طور پر، ایک ہی فیکٹریل کا حساب لگانے کے لیے بائٹ کوڈ صرف 49 بائٹس ہے۔ یہ اس کی بصری شکل ہے:
سونف بیسک کے لیے بصری پروگرامنگ

اور یہ اس کا اسمبلر پروگرام ہے:

shift -1
ldi 10
call factorial, 1
print
exit
:factorial
ld_arg 0
ldi 1
gt
je 8
ld_arg 0
ld_arg 0
ldi 1
sub
call factorial, 1
mul
ret
ldi 1
ret

اگر نمائندگی کے اسمبلی فارم کی کوئی عملی قیمت نہیں ہے، تو "جاواسکریٹ" ٹیب، اس کے برعکس، بصری بلاکس سے زیادہ مانوس شکل دیتا ہے:

function factorial(num) {
  if (num > 1) {
    return num + factorial(num - 1);
  }
  return 1;
}

window.alert(factorial(10));

کارکردگی کے حوالے سے۔ جب میں نے آسان ترین فلیشر اسکرپٹ چلایا تو مجھے آسیلوسکوپ اسکرین پر 47 کلو ہرٹز مربع لہر ملی (80 میگاہرٹز کے پروسیسر کی گھڑی کی رفتار سے)۔
سونف بیسک کے لیے بصری پروگرامنگسونف بیسک کے لیے بصری پروگرامنگ
میرے خیال میں یہ ایک اچھا نتیجہ ہے، کم از کم یہ رفتار اس سے تقریباً دس گنا زیادہ ہے۔ سے Lua и ایسپرینو.

آخری حصہ

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

بس، مجھے مشورہ اور تعمیری تنقید سن کر خوشی ہوگی۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں