เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic
เบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก logic programmable เบˆเบฒเบเบญเบธเบ›เบฐเบเบญเบ™เบˆเบตเบ™เบฅเบฒเบ„เบฒเบ–เบทเบ. เบญเบธโ€‹เบ›เบฐโ€‹เบเบญเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เบˆเบฐโ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เบ—เบฑเบ‡โ€‹เปƒเบ™โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹เป€เบฎเบทเบญเบ™โ€‹เปเบฅเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบซเป‰เบญเบ‡โ€‹เบฎเบฝเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปƒเบ™โ€‹เบงเบดโ€‹เบ—เบฐโ€‹เบเบฒโ€‹เบชเบฒเบ”โ€‹เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบตโ€‹เบ‚เบญเบ‡โ€‹เป‚เบฎเบ‡โ€‹เบฎเบฝเบ™โ€‹.
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡, เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป‚เบ„เบ‡เบเบฒเบ™ Sonoff Basic เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบกเบทเบ–เบทเป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ„เบฅเบฒเบงเบ‚เบญเบ‡เบˆเบตเบ™; เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบต, เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ™เบตเป‰เบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš.

เบžเบฒเบเบ—เบต I. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ Sonoff เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ MGT24

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 1: เบชเป‰เบฒเบ‡เปเบœเบ‡เบ„เบงเบšเบ„เบธเบก

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠ mgt24 (เบ–เป‰เบฒเบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบฅเป‰เบง) เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเป‚เบ”เบเปƒเบŠเป‰เบšเบฑเบ™เบŠเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.
เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบœเบ‡เบ„เบงเบšเบ„เบธเบกเบชเปเบฒเบฅเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เปƒเบซเบกเปˆ, เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆเบ›เบธเปˆเบก "+".
เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฐเบ”เบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เป€เบกเบทเปˆเบญเปเบœเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เปเบฅเป‰เบง, เบกเบฑเบ™เบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบฅเบฒเบเบŠเบทเปˆเปเบœเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เปƒเบ™เปเบ–เบš "เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ" เบ‚เบญเบ‡เปเบœเบ‡เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เบŠเบญเบเบซเบฒเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ "ID เบญเบธเบ›เบฐเบเบญเบ™" เปเบฅเบฐ "เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”"; เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบญเบธเบ›เบฐเบเบญเบ™ Sonoff.
เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบ–เบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 2. Reflash เบญเบธเบ›เบฐเบเบญเบ™

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ” XTCOM_UTIL เบ”เบฒเบงเป‚เบซเบฅเบ”เป€เบŸเบตเบกเปเบง PLC Sonoff เบžเบทเป‰เบ™เบ–เบฒเบ™ เบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบกเบตเบ•เบปเบงเปเบ›เบ‡ USB-TTL. เบ—เบตเปˆเบ™เบตเป‰ เบ„เบนเปˆเบกเบท ะธ เบงเบดเบ”เบตเป‚เบญเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 3. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบญเบธเบ›เบฐเบเบญเบ™

เบ™เบณเปƒเบŠเป‰เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เปƒเบชเปˆเบญเบธเบ›เบฐเบเบญเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเป„เบŸ LED เบ‚เบถเป‰เบ™เปเบฅเป‰เบง, เปƒเบซเป‰เบเบปเบ”เบ›เบธเปˆเบกเบ„เป‰เบฒเบ‡เป„เบงเป‰เบˆเบปเบ™เบเบงเปˆเบฒเป„เบŸ LED เบˆเบฐเป€เบฅเบตเปˆเบกเบเบฐเบžเบดเบšเป€เบ›เบฑเบ™เป„เบฅเบเบฐเป†.
เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰, เป€เบ„เบทเบญเบ‚เปˆเบฒเบ wi-fi เปƒเบซเบกเปˆเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "PLC Sonoff Basic" เบˆเบฐเบ›เบฒเบเบปเบ”, เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ™เบตเป‰.
เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ•เบปเบงเบŠเบตเป‰เบšเบญเบ LED

เบ•เบปเบงเบŠเบตเป‰เบšเบญเบ LED
เบชเบฐเบ–เบฒเบ™เบฐเบญเบธเบ›เบฐเบเบญเบ™

เบเบฐเบžเบดเบšเบชเบญเบ‡เป€เบ—เบทเปˆเบญเป€เบ›เบฑเบ™เป„เบฅเบเบฐ
เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš router

เบชเปˆเบญเบ‡เปเบชเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡
เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบ—เบตเปˆโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบเบฑเบš router เป„เบ”เป‰โ€‹

เบเบฐเบžเบดเบšเป€เบ›เบฑเบ™เป„เบฅเบเบฐ
เป‚เปเบ”เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ Wi-Fi

เบ”เบฑเบš
เบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™

เป€เบ›เบตเบ”เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เปเบฅเบฐเปƒเบชเปˆเบ‚เปเป‰เบ„เบงเบฒเบก "192.168.4.1" เปƒเบ™เปเบ–เบšเบ—เบตเปˆเบขเบนเปˆ, เป„เบ›เบ—เบตเปˆเบซเบ™เป‰เบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™.

เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเปƒเบ™เบŠเปˆเบญเบ‡เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • โ€œเบŠเบทเปˆเป€เบ„เบทเบญเบ‚เปˆเบฒเบโ€ เปเบฅเบฐ โ€œเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™โ€ (เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบธเบ›เบฐเบเบญเบ™เบเบฑเบšเป€เบฃเบปเบฒเป€เบ•เบต wi-fi เป€เบฎเบทเบญเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™).
  • โ€œID เบญเบธเบ›เบฐเบเบญเบ™โ€ เปเบฅเบฐ โ€œเบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”โ€ (เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบญเบธเบ›เบฐเบเบญเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ MGT24).

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบญเบธเบ›เบฐเบเบญเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ เปเบฅเบฐเบ›เบดเบ”เป€เบ›เบตเบ”เบญเบธเบ›เบฐเบเบญเบ™เบ„เบทเบ™เปƒเปเปˆ.
เบกเบฑเบ™เป€เบ›เบฑเบ™ เบงเบดเบ”เบตเป‚เบญเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 4. เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบŠเบฑเบ™เป€เบŠเบต (เบ—เบฒเบ‡เป€เบฅเบทเบญเบ)

เป€เบŸเบตเบกเปเบงเบ›เบฐเบˆเบธเบšเบฑเบ™เบฎเบญเบ‡เบฎเบฑเบšเป„เบ”เป‰เป€เบ–เบดเบ‡เบชเบตเปˆเป€เบŠเบฑเบ™เป€เบŠเบตเบญเบธเบ™เบซเบฐเบžเบนเบก ds18b20. เบ—เบตเปˆเบ™เบตเป‰ เบงเบดเบ”เบตเป‚เบญเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบŠเบฑเบ™เป€เบŠเบต. เบ›เบฒเบเบปเบ”เบ‚เบทเป‰เบ™, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปเบ‚เบ™เบŠเบทเปˆเปเบฅเบฐเบ—เบฒเบ”เป€เบซเบผเบฑเบ soldering.

เบžเบฒเบเบ—เบต II. เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบชเบฒเบเบ•เบฒ

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 1: เบชเป‰เบฒเบ‡ Scripts

เปƒเบŠเป‰เป€เบ›เบฑเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™, เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเบฐเบ„เบดเบšเบ‡เปˆเบฒเบเป†.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบžเบตเปˆเบกเบ•เบฑเบ™เบžเบดเป€เบชเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เปเบฅเบฐเบเบฒเบ™เบญเปˆเบฒเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบญเบธเบ›เบฐเบเบญเบ™. เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเปƒเบ”เป†เปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบŠเบทเปˆ. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ, เบŠเบทเปˆเบ›เบฐเบชเบปเบกเปเบกเปˆเบ™เปƒเบŠเป‰: "parameter@device".
เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเปเบšเบšเป€เบฅเบทเปˆเบญเบ™เบฅเบปเบ‡เบ‚เบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ”เปเบฅเบฐเบ›เบดเบ”เบเบฒเบ™เป‚เบซเบผเบ”เบฎเบญเบšเบงเบฝเบ™ (1Hz):
เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ script synchronizing เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบชเบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบ„เบท, relay เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง repeats เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡ relay เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ.
เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบ„เบงเบšเบ„เบธเบกเบญเบธเบ™เบซเบฐเบžเบนเบก (เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ hysteresis):
เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเบฐเบ„เบฃเบดเบšเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเปเบ›, loops, functions (เบกเบต arguments) เปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบญเบทเปˆเบ™เป†. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบˆเบฐโ€‹เบšเปเปˆโ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ™เบตเป‰โ€‹เป‚เบ”เบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เบขเบนเปˆโ€‹เบ—เบตเปˆโ€‹เบ™เบตเป‰โ€‹, เบกเบตโ€‹เบซเบผเบฒเบโ€‹เปเบฅเป‰เบงโ€‹เปƒเบ™โ€‹เบชเบธเบ”โ€‹เบ—เบดโ€‹. เบญเบธเบ›เบฐเบเบญเบ™เบเบฒเบ™เบชเบถเบเบชเบฒเบเปˆเบฝเบงเบเบฑเบš Blockly.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 2: เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡ Scripts

script เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เปเบฅเบฐเบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบกเบฑเบ™เป„เบ›เบฎเบญเบ”เบˆเบธเบ”เบชเบธเบ”เบ—เป‰เบฒเบ, เบกเบฑเบ™เบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบกเบตเบชเบญเบ‡เบšเบฅเบฑเบญเบเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบขเบธเบ”เบชเบฐเบ„เบดเบšเบŠเบปเปˆเบงเบ„เบฒเบง, "เบŠเบฑเบเบŠเป‰เบฒ" เปเบฅเบฐ "เบขเบธเบ”เบŠเบปเปˆเบงเบ„เบฒเบง".
เบ•เบฑเบ™ "เบŠเบฑเบเบŠเป‰เบฒ" เปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเปˆเบฒเบŠเป‰เบฒ millisecond เบซเบผเบท microsecond. เบ•เบฑเบ™เบ™เบตเป‰เบฎเบฑเบเบชเบฒเป„เบฅเบเบฐเป€เบงเบฅเบฒเบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”, เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.
เบšเบฅเบฑเบญเบ "เบขเบธเบ”เบŠเบปเปˆเบงเบ„เบฒเบง" เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบ—เบตเบชเบญเบ‡ (เบซเบผเบทเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ), เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™เป†เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™.
เบ–เป‰เบฒเบชเบฐเบ„เบฃเบดเบšเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบกเบต loop เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เบญเบšเป€เบ‚เบ”, เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบ„เปเบฒเบ—เบตเปˆเบšเปเปˆเบกเบต "เบขเบธเบ”เบŠเบปเปˆเบงเบ„เบฒเบง", เบ™เบฒเบเบžเบฒเบชเบฒเบˆเบฐเบฅเบดเป€เบฅเบตเปˆเบกเบเบฒเบ™เบขเบธเบ”เบŠเบปเปˆเบงเบ„เบฒเบงเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบญเบดเบ”เบชเบฐเบซเบผเบฐ.
เบ–เป‰เบฒเปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบ—เบตเปˆเบˆเบฑเบ”เบชเบฑเบ™เป„เบงเป‰เปเบปเบ”เปเบฅเป‰เบง, เบ™เบฒเบเบžเบฒเบชเบฒเบˆเบฐเบขเบธเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบชเบฐเบ„เบดเบšเบ—เบตเปˆเบซเบดเบงเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง (เปƒเบซเป‰เบฅเบฐเบงเบฑเบ‡เบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™ recursive).

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 3: Debugging Scripts

เป€เบžเบทเปˆเบญเบ”เบตเบšเบฑเบเบชเบฐเบ„เบฃเบดเบšเบ—เบตเปˆเป‚เบซเบฅเบ”เปเบฅเป‰เบงเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเป‚เบ„เบ‡เบเบฒเบ™เป€เบ›เบฑเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡ script เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบˆเบฒเบเบชเบดเปˆเบ‡เบ—เบตเปˆเบœเบนเป‰เบ‚เบฝเบ™เบ•เบฑเป‰เบ‡เปƒเบˆ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบŠเปˆเบงเบเปƒเบซเป‰เบœเบนเป‰เบ‚เบฝเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เป„เบงเปเบฅเบฐเปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบชเบฐเบ„เบดเบš.

เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ factorial เปƒเบ™เป‚เบซเบกเบ”เบ”เบตเบšเบฑเบ:
เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ”เบตโ€‹เบšเบฑเบโ€‹เปเบกเปˆเบ™โ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹เบซเบผเบฒเบโ€‹เปเบฅเบฐโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบชเบฒเบกโ€‹เบ›เบธเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹: "เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹"โ€‹, "เบซเบ™เบถเปˆเบ‡โ€‹เบเป‰เบฒเบงโ€‹เป„เบ›โ€‹เบ‚เป‰เบฒเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹" เปเบฅเบฐ "เบขเบธเบ”โ€‹" (เปƒเบซเป‰โ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เบฅเบทเบกโ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒเบ™โ€‹เบ”เบตโ€‹เบšเบฑเบ "เป€เบ‚เบปเป‰เบฒโ€‹" เปเบฅเบฐ "เบญเบญเบโ€‹"โ€‹)โ€‹. เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป‚เบ”เบเบ‚เบฑเป‰เบ™เบ•เบญเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบˆเบธเบ”เบขเบธเบ”เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบเปƒเบ”เบเปเปˆเบ•เบฒเบก (เป‚เบ”เบเบเบฒเบ™เบ„เบฅเบดเบเปƒเบชเปˆเบšเบฅเบฑเบญเบ).
เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบ„เปˆเบฒเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต (เป€เบŠเบฑเบ™เป€เบŠเบต, เบฅเบตเป€เบฅ) เปƒเบ™เบˆเปเบžเบฒเบš, เปƒเบซเป‰เปƒเบŠเป‰เปเบ–เบš "เบžเบดเบก".
เบกเบฑเบ™เป€เบ›เบฑเบ™ เบžเบฒเบšโ€‹เบฅเบงเบกโ€‹เบงเบดโ€‹เบ”เบตโ€‹เป‚เบญโ€‹ เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ debugger เป„เบ”เป‰โ€‹.

เบžเบฒเบเบชเปˆเบงเบ™เบชเปเบฒเบฅเบฑเบš curious เป„เบ”เป‰. เปเบกเปˆเบ™เบซเบเบฑเบ‡เบžเบฒเบเปƒเบ•เป‰เบœเป‰เบฒเบ„เบธเบก?

เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฐเบ„เบฃเบดเบšเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ™เบฒเบเบžเบฒเบชเบฒ bytecode เปเบฅเบฐเบ•เบปเบงเบ›เบฐเบเบญเบšเบ—เบตเปˆเบกเบต 38 เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡ Blockly เบกเบตเป€เบ„เบทเปˆเบญเบ‡เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบžเบดเป€เบชเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบกเบฑเบ™เบ—เบตเปˆเปเบ›เบ‡เบ•เบฑเบ™เบ—เบฒเบ‡เบชเบฒเบเบ•เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบเบญเบš. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป‚เบ„เบ‡เบเบฒเบ™เบ›เบฐเบเบญเบšเบ™เบตเป‰เบ–เบทเบเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ bytecode เปเบฅเบฐเป‚เบญเบ™เป„เบ›เบซเบฒเบญเบธเบ›เบฐเบเบญเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”.
เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบšเปเปˆเบกเบตเบˆเบธเบ”เบžเบดเป€เบชเบ”เปƒเบ™เบเบฒเบ™เบญเบฐเบ—เบดเบšเบฒเบเบกเบฑเบ™; เปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เป€เบˆเบปเป‰เบฒเบˆเบฐเบžเบปเบšเป€เบซเบฑเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบญเบญเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ‡ virtual เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”.
เบ‚เป‰เบญเบเบกเบฑเบเบˆเบฐเบˆเบฑเบ”เบชเบฑเบ™ 1000 bytes เบชเปเบฒเบฅเบฑเบš stack เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เป€เบŠเบดเปˆเบ‡เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐ spare. เปเบ™เปˆเบ™เบญเบ™, เบเบฒเบ™เป€เบญเบตเป‰เบ™เบ„เบทเบ™เปเบšเบšเป€เบฅเบดเบเป†เบชเบฒเบกเบฒเบ”เปเบปเบ”เบ—เบธเบ stack, เปเบ•เปˆเบžเบงเบเบกเบฑเบ™เบ„เบปเบ‡เบˆเบฐเบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบซเบเบฑเบ‡เป€เบฅเบตเบ.

bytecode เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบซเบ™เบฒเปเบซเบ™เป‰เบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, bytecode เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ factorial เบ”เบฝเบงเบเบฑเบ™เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆ 49 bytes. เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบชเบฒเบเบ•เบฒเบ‚เบญเบ‡เบกเบฑเบ™:
เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic

เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบฅเบฒเบง:

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

เบ–เป‰เบฒเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ›เบฐเบเบญเบšเบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบšเปเปˆเบกเบตเบ„เปˆเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบ–เบš "javascrit", เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบเบซเบผเบฒเบเบเปˆเบงเบฒเบ•เบฒเบšเบญเบ”:

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

window.alert(factorial(10));

เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เป€เบกเบทเปˆเบญเบ‚เป‰เบญเบเปเบฅเปˆเบ™เบชเบฐเบ„เบดเบš flasher เบ—เบตเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบšเบ„เบทเป‰เบ™เบชเบตเปˆเบซเบผเปˆเบฝเบกเบกเบปเบ™เบ—เบปเบ™ 47 kHz เปƒเบ™เปœเป‰เบฒเบˆเป oscilloscope (เบ—เบตเปˆเบ„เบงเบฒเบกเป„เบงเป‚เบกเบ‡เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เบญเบ‡ 80 MHz).
เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basicเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Visual เบชเปเบฒเบฅเบฑเบš Sonoff Basic
เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบต, เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบ„เบงเบฒเบกเป„เบงเบ™เบตเป‰เปเบกเปˆเบ™เป€เบเบทเบญเบšเบชเบดเบšเป€เบ—เบปเปˆเบฒเป„เบงเบเบงเปˆเบฒ Lua ะธ เปเบญเบชเบžเบฃเบนเป‚เบ™.

เบชเปˆเบงเบ™เบชเบธเบ”เบ—เป‰เบฒเบ

เป€เบžเบทเปˆเบญเบชเบฐเบซเบผเบธเบš, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเบฐเบ„เบดเบšเบŠเปˆเบงเบเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบ•เปˆเบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบธเบ›เบฐเบเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบปเบ™เป„เบเบ”เบฝเบง, เป€เบŠเบดเปˆเบ‡เบšเบฒเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบกเบตเบญเบดเบ”เบ—เบดเบžเบปเบ™เบ•เปเปˆเบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบ„เบปเบ™เบญเบทเปˆเบ™.
เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเบฐเบ„เบดเบšเบ—เบตเปˆเป€เบฅเบทเบญเบ (เป‚เบ”เบเบเบปเบ‡เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ) เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเป‰เบงเป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบญเบทเปˆเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™ Raspberry เบขเบนเปˆเป€เบฎเบทเบญเบ™, เบ—เบตเปˆเบ™เบตเป‰. เบ„เบนเปˆเบกเบท.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ‚เป‰เบญเบเบˆเบฐเบ”เบตเปƒเบˆเบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบเบดเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบเบฒเบ™เบงเบดเบžเบฒเบเบงเบดเบˆเบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบชเบฑเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™