Визуелно програмирање за Сонофф Басиц

Визуелно програмирање за Сонофф Басиц
Чланак о томе како направити програмабилни логички контролер од јефтиног кинеског уређаја. Такав уређај ће наћи своју примену и у кућној аутоматизацији и као практична настава у школској информатици.
За референцу, програм Сонофф Басиц подразумевано ради са мобилном апликацијом преко кинеске услуге у облаку; након предложене измене, сва даља интеракција са овим уређајем биће могућа у претраживачу.

Одељак И. Повезивање Сонофф-а са услугом МГТ24

Корак 1: Направите контролну таблу

Региструјте се на сајту мгт24 (ако већ нисте регистровани) и пријавите се користећи свој налог.
ЛогинВизуелно програмирање за Сонофф Басиц

Да бисте креирали контролну таблу за нови уређај, кликните на дугме „+“.
Пример прављења панелаВизуелно програмирање за Сонофф Басиц

Када се панел креира, појавиће се на вашој листи панела.

На картици „Подешавање“ креираног панела пронађите поља „Девице ИД“ и „Аутхоризатион Кеи“; убудуће ће ове информације бити потребне приликом подешавања Сонофф уређаја.
Пример картицеВизуелно програмирање за Сонофф Басиц

Корак 2. Поново флешујте уређај

Коришћење услужног програма КСТЦОМ_УТИЛ преузмите фирмвер ПЛЦ Сонофф Басиц на уређај, за ово ће вам требати УСБ-ТТЛ претварач. Ево инструкција и Видео упутство.

Корак 3. Подешавање уређаја

Укључите напајање на уређај, након што се ЛЕД лампица упали, притисните дугме и држите га притиснуто док ЛЕД не почне периодично равномерно да трепери.
У овом тренутку ће се појавити нова ви-фи мрежа под називом „ПЛЦ Сонофф Басиц“, повежите свој рачунар на ову мрежу.
Објашњење ЛЕД индикације

ЛЕД индикација
Статус уређаја

периодично двоструко трептање
нема везе са рутером

сија непрекидно
успостављена веза са рутером

периодично равномерно трептање
режим ви-фи приступне тачке

угашена
Нема напајања

Отворите интернет претраживач и унесите текст „192.168.4.1“ у адресну траку, идите на страницу подешавања мреже уређаја.

Попуните поља на следећи начин:

  • „Име мреже“ и „Лозинка“ (за повезивање уређаја са кућним ви-фи рутером).
  • „ИД уређаја“ и „кључ за ауторизацију“ (за ауторизацију уређаја на услузи МГТ24).

Пример подешавања мрежних параметара уређајаВизуелно програмирање за Сонофф Басиц

Сачувајте подешавања и поново покрените уређај.
Овде Видео упутство.

Корак 4. Повезивање сензора (опционо)

Тренутни фирмвер подржава до четири сензора температуре дс18б20. Ево Видео упутство за уградњу сензора. Очигледно, овај корак ће бити најтежи, јер ће захтевати равне руке и лемилицу.

Одељак ИИ. Визуелно програмирање

Корак 1: Креирајте скрипте

Користи се као програмско окружење Блоцкли, окружење је лако научити, тако да не морате бити програмер да бисте креирали једноставне скрипте.

Додао сам специјализоване блокове за писање и читање параметара уређаја. Било ком параметру се приступа по имену. За параметре удаљених уређаја користе се сложена имена: „параметар@уређај“.
Падајућа листа опцијаВизуелно програмирање за Сонофф Басиц

Пример сценарија за циклично укључивање и искључивање оптерећења (1Хз):
Визуелно програмирање за Сонофф Басиц

Пример скрипте која синхронизује рад два одвојена уређаја. Наиме, релеј циљног уређаја понавља рад релеја удаљеног уређаја.
Визуелно програмирање за Сонофф Басиц

Сценарио за термостат (без хистерезе):
Визуелно програмирање за Сонофф Басиц

Да бисте креирали сложеније скрипте, можете користити променљиве, петље, функције (са аргументима) и друге конструкције. Нећу овде све ово детаљно описивати; већ има доста тога на мрежи. едукативни материјал о Блоцкли.

Корак 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 МХз).
Визуелно програмирање за Сонофф БасицВизуелно програмирање за Сонофф Басиц
Мислим да је ово добар резултат, бар је ова брзина скоро десет пута већа од луа и Еспруино.

Завршни део

Да резимирамо, рећи ћу да нам употреба скрипти омогућава не само да програмирамо логику рада посебног уређаја, већ и омогућавамо повезивање неколико уређаја у један механизам, при чему неки уређаји утичу на понашање других.
Такође напомињем да изабрани начин чувања скрипти (директно у самим уређајима, а не на серверу) поједностављује пребацивање уређаја који већ раде на други сервер, на пример на кућни Распберри, овде инструкција.

То је све, биће ми драго да чујем савете и конструктивну критику.

Извор: ввв.хабр.цом

Додај коментар