سونف بيسڪ لاءِ بصري پروگرامنگ

سونف بيسڪ لاءِ بصري پروگرامنگ
هڪ سستو چيني ڊوائيس مان هڪ پروگرام قابل منطق ڪنٽرولر ڪيئن ٺاهيو بابت هڪ مضمون. اهڙي ڊوائيس ان جي استعمال کي گھر جي آٽوميشن ۾ ۽ اسڪول ڪمپيوٽر سائنس ۾ عملي طبقن جي طور تي ملندو.
ريفرنس لاءِ، ڊفالٽ طور سونف بيسڪ پروگرام هڪ موبائل ايپليڪيشن سان ڪم ڪري ٿو چين جي ڪلائوڊ سروس ذريعي؛ تجويز ڪيل ترميم کان پوءِ، هن ڊوائيس سان وڌيڪ رابطو برائوزر ۾ ممڪن ٿيندو.

سيڪشن I. سونف کي MGT24 سروس سان ڳنڍڻ

قدم 1: هڪ ڪنٽرول پينل ٺاهيو

سائيٽ تي رجسٽر ٿيو mgt24 (جيڪڏهن اڳ ۾ ئي رجسٽر ٿيل نه آهي) ۽ پنهنجو اڪائونٽ استعمال ڪندي لاگ ان ٿيو.
لاگ انسونف بيسڪ لاءِ بصري پروگرامنگ

نئين ڊوائيس لاء ڪنٽرول پينل ٺاهڻ لاء، "+" بٽڻ تي ڪلڪ ڪريو.
پينل ٺاهڻ جو مثالسونف بيسڪ لاءِ بصري پروگرامنگ

هڪ دفعو پينل ٺاهيو ويندو، اهو توهان جي پينل جي فهرست ۾ ظاهر ٿيندو.

ٺاهيل پينل جي "سيٽ اپ" ٽئب ۾، "ڊيوائس ID" ۽ "اجازت ڏيڻ جي ڪيئي" فيلڊ ڳولھيو؛ مستقبل ۾، سون آف ڊيوائس کي ترتيب ڏيڻ وقت ھن معلومات جي ضرورت پوندي.
ٽيبل مثالسونف بيسڪ لاءِ بصري پروگرامنگ

قدم 2. ڊوائيس کي ريفليش ڪريو

افاديت استعمال ڪندي XTCOM_UTIL firmware ڊائون لوڊ ڪريو PLC سونف بنيادي ڊوائيس ڏانهن، ان لاء توهان کي USB-TTL ڪنورٽر جي ضرورت پوندي. هتي دستياب и وڊيو هدايتون.

قدم 3. ڊوائيس سيٽ اپ

ڊوائيس تي پاور لاڳو ڪريو، LED جي روشني کان پوء، بٽڻ کي دٻايو ۽ ان کي دٻايو جيستائين LED وقتي طور تي هڪجهڙائي سان چمڪڻ شروع ٿئي.
هن وقت، "PLC Sonoff Basic" نالي هڪ نئون وائي فائي نيٽ ورڪ ظاهر ٿيندو، پنهنجي ڪمپيوٽر کي هن نيٽ ورڪ سان ڳنڍيو.
LED اشاري جي وضاحت

LED اشارو
ڊوائيس جي حالت

وقتي ڊبل چمڪائڻ
روٽر سان ڪوبه ڪنيڪشن

مسلسل چمڪي ٿو
روٽر سان رابطو قائم

وقتي يونيفارم چمڪندڙ
وائي فائي رسائي پوائنٽ موڊ

وسايو ويو
بجلي جي فراهمي ناهي

انٽرنيٽ برائوزر کوليو ۽ ايڊريس بار ۾ ٽيڪسٽ "192.168.4.1" داخل ڪريو، ڊوائيس جي نيٽ ورڪ سيٽنگون سيٽنگون صفحي ڏانھن وڃو.

ھيٺ ڏنل شعبن ۾ ڀريو:

  • "نيٽ ورڪ جو نالو" ۽ "پاسورڊ" (ڊوائيس کي توھان جي گھر جي وائي فائي روٽر سان ڳنڍڻ لاءِ).
  • "ڊيوائس جي سڃاڻپ" ۽ "اجازت ڏيڻ جي چاٻي" (ايم جي ٽي 24 سروس تي ڊوائيس کي اختيار ڏيڻ لاء).

ڊوائيس نيٽ ورڪ پيٽرولر سيٽنگ جو مثالسونف بيسڪ لاءِ بصري پروگرامنگ

سيٽنگون محفوظ ڪريو ۽ ڊوائيس ريبوٽ ڪريو.
اهو آهي وڊيو هدايتون.

قدم 4. ڳنڍڻ وارا سينسر (اختياري)

موجوده فرم ویئر چار ds18b20 درجه حرارت سينسر تائين سپورٽ ڪري ٿو. هتي وڊيو هدايتون sensors جي انسٽاليشن لاء. ظاهري طور تي، هي قدم تمام ڏکيو ٿيندو، ڇاڪاڻ ته ان کي سڌي هٿن ۽ سولڊرنگ لوهه جي ضرورت هوندي.

سيڪشن II. بصري پروگرامنگ

قدم 1: اسڪرپٽ ٺاهيو

پروگرامنگ ماحول جي طور تي استعمال ڪيو ويو بلاڪ سان, ماحول سکڻ آسان آهي، تنهنڪري توهان کي پروگرامر ٿيڻ جي ضرورت ناهي سادو اسڪرپٽ ٺاهڻ لاءِ.

مون خاص بلاڪ شامل ڪيا آھن لکڻ ۽ پڙھڻ لاءِ ڊيوائس پيٽرول. ڪنهن به پيٽرول تائين رسائي آهي نالي سان. ريموٽ ڊوائيسز جي پيٽرولر لاء، مرڪب جا نالا استعمال ڪيا ويا آهن: "parameter@device".
اختيارن جي ڊراپ ڊائون لسٽسونف بيسڪ لاءِ بصري پروگرامنگ

مثال طور منظر عام تي سائيڪل سوئچنگ آن ۽ آف لوڊ (1Hz):
سونف بيسڪ لاءِ بصري پروگرامنگ

اسڪرپٽ جو هڪ مثال ٻن الڳ ڊوائيسز جي آپريشن کي هم وقت سازي ڪرڻ. يعني، ٽارگيٽ ڊوائيس جي رلي ريموٽ ڊوائيس جي رلي جي آپريشن کي ورجائي ٿو.
سونف بيسڪ لاءِ بصري پروگرامنگ

thermostat لاء منظر (بغير hysteresis):
سونف بيسڪ لاءِ بصري پروگرامنگ

وڌيڪ پيچيده اسڪرپٽ ٺاهڻ لاءِ، توھان استعمال ڪري سگھوٿا variables، loops، functions (with arguments) and other constructs. مان هتي اهو سڀ ڪجهه تفصيل سان بيان نه ڪندس؛ انٽرنيٽ تي اڳ ۾ ئي ڪافي آهي. Blockly بابت تعليمي مواد.

مرحلا 2: اسڪرپٽ جو آرڊر

رسم الخط مسلسل هلندو آهي، ۽ جيترو جلدي اهو پنهنجي پڄاڻي تي پهچندو آهي، اهو ٻيهر شروع ٿئي ٿو. هن حالت ۾، ٻه بلاڪ آهن جيڪي عارضي طور تي اسڪرپٽ کي روڪي سگهن ٿا، "تاخير" ۽ "روڪ".
"تاخير" بلاڪ مليس سيڪنڊ يا مائڪرو سيڪنڊ دير جي لاء استعمال ڪيو ويندو آهي. هي بلاڪ سختي سان وقت جي وقفي کي برقرار رکي ٿو، سڄي ڊوائيس جي آپريشن کي بلاڪ ڪري ٿو.
"روڪ" بلاڪ سيڪنڊ (يا گهٽ) دير جي لاء استعمال ڪيو ويندو آهي، ۽ اهو ڊوائيس ۾ ٻين عملن جي عمل کي بلاڪ نٿو ڪري.
جيڪڏهن رسم الخط پاڻ ۾ هڪ لامحدود لوپ تي مشتمل آهي، جنهن جي جسم ۾ "روڪ" شامل ناهي، مترجم آزاد طور تي هڪ مختصر وقفو شروع ڪري ٿو.
جيڪڏهن مختص ڪيل ميموري اسٽيڪ ختم ٿي وئي آهي، مترجم اهڙي طاقت جي بکيو اسڪرپٽ تي عمل ڪرڻ بند ڪري ڇڏيندو (بار بار ڪم ڪرڻ سان محتاط رکو).

قدم 3: ڊيبگنگ اسڪرپٽ

هڪ اسڪرپٽ کي ڊيبگ ڪرڻ لاءِ جيڪو اڳ ۾ ئي ڊوائيس ۾ لوڊ ڪيو ويو آهي، توهان هلائي سگهو ٿا هڪ پروگرام ٽريس قدم قدم سان. اهو انتهائي مفيد ٿي سگهي ٿو جڏهن اسڪرپٽ جو رويو مختلف ٿي سگهي ٿو جيڪو ليکڪ جي ارادي کان مختلف آهي. انهي حالت ۾، ٽريڪنگ ليکڪ کي جلدي مسئلي جو ذريعو ڳولڻ ۽ اسڪرپٽ ۾ غلطي کي درست ڪرڻ جي اجازت ڏئي ٿو.

ڊيبگ موڊ ۾ فيڪٽري جي حساب ڪرڻ لاءِ منظر:
سونف بيسڪ لاءِ بصري پروگرامنگ

ڊيبگ ٽول تمام سادو آهي ۽ ٽن مکيه بٽڻن تي مشتمل آهي: "شروع"، "هڪ قدم اڳتي" ۽ "اسٽاپ" (اچو ته "داخل ڪريو" ۽ "ٻاهر" ڊيبگ موڊ بابت پڻ نه وساريو). قدم بہ قدم ٽريڪنگ کان علاوه، توھان ڪنھن بلاڪ تي بريڪ پوائنٽ مقرر ڪري سگھو ٿا (بلاڪ تي ڪلڪ ڪندي).
مانيٽر ۾ پيرا ميٽرز (سينسر، رلي) جي موجوده قدرن کي ڏيکارڻ لاء، "پرنٽ" بلاڪ استعمال ڪريو.
اهو آهي ويڊيو جو جائزو ڊيبگر استعمال ڪرڻ بابت.

شوقينن لاءِ سيڪشن. هود هيٺ ڇا آهي؟

اسڪرپٽس لاءِ ٽارگيٽ ڊيوائس تي ڪم ڪرڻ لاءِ، هڪ بائيٽ ڪوڊ مترجم ۽ 38 هدايتون سان گڏ گڏ ڪرڻ وارو ٺاهيو ويو. Blockly جي سورس ڪوڊ ۾ ھڪڙو خاص ڪوڊ جنريٽر آھي جيڪو ان ۾ ٺاھيو ويو آھي جيڪو بصري بلاڪ کي اسيمبلي جي هدايتن ۾ تبديل ڪري ٿو. تنهن کان پوء، هي گڏ ڪرڻ وارو پروگرام بائيٽ ڪوڊ ۾ تبديل ڪيو ويو آهي ۽ عمل لاء ڊوائيس ڏانهن منتقل ڪيو ويو آهي.
هن ورچوئل مشين جو فن تعمير بلڪل سادو آهي ۽ ان کي بيان ڪرڻ ۾ ڪو خاص نقطو نه آهي؛ انٽرنيٽ تي توهان کي آسان ترين ورچوئل مشين ٺاهڻ بابت ڪيترائي آرٽيڪل ملندا.
مان عام طور تي 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 ميگا هرٽز جي پروسيسر ڪلاڪ جي رفتار تي).
سونف بيسڪ لاءِ بصري پروگرامنگسونف بيسڪ لاءِ بصري پروگرامنگ
منهنجو خيال آهي ته اهو سٺو نتيجو آهي، گهٽ ۾ گهٽ هن رفتار جي ڀيٽ ۾ تقريبا ڏهه ڀيرا تيز آهي لاکا и اسپرينو.

حتمي حصو

اختصار ڪرڻ لاء، مان چوان ٿو ته اسڪرپٽ جو استعمال اسان کي نه رڳو هڪ الڳ ڊوائيس جي آپريشن جي منطق کي پروگرام ڪرڻ جي اجازت ڏئي ٿو، پر اهو پڻ ممڪن آهي ته ڪيترن ئي ڊوائيسز کي هڪ ميکانيزم ۾ ڳنڍڻ، جتي ڪجهه ڊوائيس ٻين جي رويي تي اثر انداز ڪن ٿا.
مان اهو پڻ نوٽ ڪريان ٿو ته اسڪرپٽ کي محفوظ ڪرڻ جو چونڊيو طريقو (سڌو پاڻ ۾ ڊوائيسز ۾، ۽ نه سرور تي) اڳ ۾ ئي ڪم ڪندڙ ڊوائيسز کي ٻئي سرور ڏانهن تبديل ڪرڻ کي آسان بڻائي ٿو، مثال طور هڪ گهر راسبي، هتي. دستياب.

بس، مون کي صلاح ۽ تعميري تنقيد ٻڌي خوشي ٿيندي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو