Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic
Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠ· Π΄Π΅ΡˆΡ‘Π²ΠΎΠ³ΠΎ китайского устройства ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ логичСский ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. Π’Π°ΠΊΠΎΠ΅ устройство Π½Π°ΠΉΠ΄Ρ‘Ρ‚ своё ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π² домашнСй Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΈ Π² качСствС практичСских занятий ΠΏΠΎ школьной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.
Для справки, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Sonoff Basic Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· китайский ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ сСрвис, послС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»ΠΊΠΈ, всё дальнСйшСС взаимодСйствиС с этим устройством станСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

Π Π°Π·Π΄Π΅Π» I. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Sonoff ΠΊ сСрвису MGT24

Π¨Π°Π³ 1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° сайтС mgt24 (Ссли Π΅Ρ‰Ρ‘ Π½Π΅ зарСгистрированы) ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² систСму ΠΏΠΎΠ΄ своСй ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записью.
Π’Ρ…ΠΎΠ΄ Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒΠ’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ панСль управлСния для Π½ΠΎΠ²ΠΎΠ³ΠΎ устройства Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «+».
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΏΠ°Π½Π΅Π»ΠΈΠ’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ панСль Π±ΡƒΠ΄Π΅Ρ‚ создана, ΠΎΠ½Π° появится Π² спискС Π²Π°ΡˆΠΈΡ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ.

Π’ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ «Установка», созданной ΠΏΠ°Π½Π΅Π»ΠΈ, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ поля Β«ID устройства» ΠΈ Β«ΠšΠ»ΡŽΡ‡ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈΒ», Π² дальнСйшСм, эта информация потрСбуСтся ΠΏΡ€ΠΈ настройки Sonoff устройства.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΊΠ»Π°Π΄ΠΊΠΈΠ’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

Π¨Π°Π³ 2. ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° устройства

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ XTCOM_UTIL Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ ΠŸΠ›Πš Sonoff Basic Π² устройство, для этого Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ USB-TTL ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€. Π—Π΄Π΅ΡΡŒ инструкция ΠΈ видСоинструкция.

Π¨Π°Π³ 3. Настройка устройства

ΠŸΠΎΠ΄Π°ΠΉΡ‚Π΅ Π½Π° устройство ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ загорится свСтодиод, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ Π΅Ρ‘ Π² Π½Π°ΠΆΠ°Ρ‚ΠΎΠΌ состоянии Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° свСтодиод Π½Π΅ Π½Π°Ρ‡Π½Ρ‘Ρ‚ пСриодичСски Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΌΠΈΠ³Π°Ρ‚ΡŒ.
Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ появится новая wi-fi ΡΠ΅Ρ‚ΡŒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«PLC Sonoff BasicΒ», ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΊ этой сСти.
Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° свСтодиодной ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ

БвСтодиодная индикация
БостояниС устройства

пСриодичСскоС Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΌΠΈΠ³Π°Π½ΠΈΠ΅
Π½Π΅Ρ‚ связи с Ρ€ΠΎΡƒΡ‚Π΅Ρ€ΠΎΠΌ

Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ свСтит
установлСна связь с Ρ€ΠΎΡƒΡ‚Π΅Ρ€ΠΎΠΌ

пСриодичСскоС Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ΅ ΠΌΠΈΠ³Π°Π½ΠΈΠ΅
Ρ€Π΅ΠΆΠΈΠΌ wi-fi Ρ‚ΠΎΡ‡ΠΊΠΈ доступа

ΠΏΠΎΡ‚ΡƒΡˆΠ΅Π½
Π½Π΅Ρ‚ питания

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² Π°Π΄Ρ€Π΅ΡΠ½ΡƒΡŽ строку тСкст Β«192.168.4.1Β», ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° страницу настроСк ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² сСти устройства.

Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ поля ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • «Имя сСти» ΠΈ Β«ΠŸΠ°Ρ€ΠΎΠ»ΡŒΒ» (для привязки устройства ΠΊ Π΄ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΌΡƒ wi-fi Ρ€ΠΎΡƒΡ‚Π΅Ρ€Ρƒ).
  • Β«ID устройства» ΠΈ Β«ΠšΠ»ΡŽΡ‡ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈΒ» (для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ устройства Π½Π° сСрвисС MGT24).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² сСти ΡƒΡΡ‚Ρ€ΠΎΠΉΡΡ‚Π²Π°Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ настройки ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ устройство.
Π—Π΄Π΅ΡΡŒ видСоинструкция.

Π¨Π°Π³ 4. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)

ВСкущая ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ds18b20. Π—Π΄Π΅ΡΡŒ видСоинструкция ΠΏΠΎ ΠΌΠΎΠ½Ρ‚Π°ΠΆΡƒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². По всСй видимости, это шаг Π±ΡƒΠ΄Π΅Ρ‚ самым нСпростым, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ вас прямых Ρ€ΡƒΠΊ ΠΈ паяльника.

Π Π°Π·Π΄Π΅Π» II. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π¨Π°Π³ 1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сцСнариСв

Π’ качСствС срСды программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Blockly, срСда проста Π² освоСнии, поэтому для создания простых сцСнариСв Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ программистом.

Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» спСциализированныС Π±Π»ΠΎΠΊΠΈ для записи ΠΈ чтСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² устройства. Доступ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ осущСствляСтся ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… устройств ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ составныС ΠΈΠΌΠ΅Π½Π°: Β«ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€@устройство».
Π’Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сцСнария цикличСского Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (1Π“Ρ†):
Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сцСнария ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π²ΡƒΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств. А ΠΈΠΌΠ΅Π½Π½ΠΎ, Ρ€Π΅Π»Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ устройства повторяСт Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ€Π΅Π»Π΅ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ устройства.
Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ для тСрмостата (Π±Π΅Π· гистСрСзиса):
Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТныС сцСнарии ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ†ΠΈΠΊΠ»Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ) ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ конструкции. НС Π±ΡƒΠ΄Ρƒ здСсь всё это Ρ€Π°ΡΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Π² сСти ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ довольно ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΎ Blockly.

Π¨Π°Π³ 2. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ выполнСния сцСнариСв

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ своСго окончания ΠΎΠ½ запускаСтся вновь. ΠŸΡ€ΠΈ этом Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π±Π»ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ сцСнария, Β«delayΒ» ΠΈ Β«pauseΒ».
Π‘Π»ΠΎΠΊ Β«delayΒ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для миллисСкундных ΠΈΠ»ΠΈ микросСкундных Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ. Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ строго Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π», блокируя Ρ€Π°Π±ΠΎΡ‚Ρƒ всСго устройства.
Π‘Π»ΠΎΠΊ Β«pauseΒ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сСкундных (ΠΌΠΎΠΆΠ½ΠΎ ΠΈ мСньшС) Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ, ΠΈ ΠΎΠ½ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов Π² устройствС.
Если сцСнарий Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя содСрТит бСсконСчный Ρ†ΠΈΠΊΠ», Π² Ρ‚Π΅Π»Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ стоит Β«pauseΒ», ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ ΠΏΠ°ΡƒΠ·Ρƒ.
Π’ случаС исчСрпания Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ стСка памяти, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ остановит Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΆΠΎΡ€Π»ΠΈΠ²ΠΎΠ³ΠΎ сцСнария (Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны с рСкурсивными функциями).

Π¨Π°Π³ 3. ΠžΡ‚Π»Π°Π΄ΠΊΠ° сцСнариСв

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² устройство сцСнария, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ трассировку ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ шагам. Π­Ρ‚ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сцСнария оказалось Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π» Π°Π²Ρ‚ΠΎΡ€. Π’ этом случаС, трассировка позволяСт Π°Π²Ρ‚ΠΎΡ€Ρƒ быстро Π½Π°ΠΉΡ‚ΠΈ источник ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² сцСнарии.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ вычислСния Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π° Π² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅:
Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΎΡ‡Π΅Π½ΡŒ прост ΠΈ состоит ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… основных ΠΊΠ½ΠΎΠΏΠΎΠΊ: «пуск», Β«ΠΎΠ΄ΠΈΠ½ шаг Π²ΠΏΠ΅Ρ€Ρ‘Π΄Β» ΠΈ «останов» (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎ Β«Π²Ρ…ΠΎΠ΄Β» ΠΈ Β«Π²Ρ‹Ρ…ΠΎΠ΄Β» ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ). ΠšΡ€ΠΎΠΌΠ΅ пошаговой трассировки ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° любом Π±Π»ΠΎΠΊΠ΅ (Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ Π½Π°Π΄ Π±Π»ΠΎΠΊΠΎΠΌ).
Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, Ρ€Π΅Π»Π΅) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±Π»ΠΎΠΊ Β«printΒ».
Π—Π΄Π΅ΡΡŒ ΠΎΠ±Π·ΠΎΡ€Π½Ρ‹ΠΉ Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊ ΠΎΠ± использовании ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

Π Π°Π·Π΄Π΅Π» для Π»ΡŽΠ±ΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…. А Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ?

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ сцСнарии Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΌ устройствС Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° ΠΈ ассСмблСр Π½Π° 38 инструкций. Π’ исходный ΠΊΠΎΠ΄ blockly Π±Ρ‹Π» встроСн спСциализированный Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π² ассСмблСрныС инструкции. Π’ дальнСйшСм эта ассСмблСрная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСобразуСтся Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΈ пСрСдаётся Π² устройство Π½Π° исполнСниС.
АрхитСктура этой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ довольно проста ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‘ особого смысла Π½Π΅Ρ‚, Π² сСти Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ статСй ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин.
Под стСк своСй Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ я ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡŽ 1000 Π±Π°ΠΉΡ‚, этого Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ с запасом. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ рСкурсии ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Ρ‚ΡŒ любой стСк, Π½ΠΎ вряд Π»ΠΈ ΠΈΠΌ найдётся практичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.

Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ получаСтся довольно ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ. Как ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ вычислСния Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π° составляСт всСго 49 Π±Π°ΠΉΡ‚. Π­Ρ‚ΠΎ Π΅Π³ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° прСдставлСния:
Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для 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));

Π§Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ сцСнария ΠΌΠΈΠ³Π°Π»ΠΊΠΈ, Π½Π° экранС осциллографа я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΌΠ΅Π°Π½Π΄Ρ€ 47ΠΊΠ“Ρ† (ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΉ частотС процСссора 80ΠœΠ“Ρ†).
Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff BasicΠ’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Sonoff Basic
Π‘Ρ‡ΠΈΡ‚Π°ΡŽ это Π½Π΅ΠΏΠ»ΠΎΡ…ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, эта ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Π΄Π΅ΡΡΡ‚ΡŒ Ρ€Π°Π· быстрСС Ρ‡Π΅ΠΌ Ρƒ Lua ΠΈ Espruino.

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

Подводя ΠΈΡ‚ΠΎΠ³, скаТу, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сцСнариСв позволяСт Π½Π°ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства, Π½ΠΎ ΠΈ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ нСсколько устройств Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, Π³Π΄Π΅ ΠΎΠ΄Π½ΠΈ устройства Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ….
Π’Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ способ хранСния сцСнариСв (нСпосрСдствСнно Π² самих устройствах, Π° Π½Π΅ Π½Π° сСрвСрС), ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… устройств Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСрвСр, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° домашний Raspberry, здСсь инструкция.

На этом всё, Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄ ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ совСты ΠΈ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ