Мақола дар бораи чӣ гуна сохтани контролери мантиқии барномарезишаванда аз дастгоҳи арзони чинӣ. Чунин дастгоҳ истифодаи худро ҳам дар автоматикунонии хона ва ҳам ҳамчун дарсҳои амалӣ дар информатикаи мактабӣ пайдо мекунад.
Барои истинод, барномаи Sonoff Basic ба таври нобаёнӣ бо як замимаи мобилӣ тавассути хидмати абрии чинӣ кор мекунад; пас аз тағири пешниҳодшуда, ҳама ҳамкорӣ бо ин дастгоҳ дар браузер имконпазир хоҳад шуд.
Фасли I. Пайваст кардани Sonoff ба хидмати MGT24
Қадами 1: Эҷоди панели идоракунӣ
Дар сайт сабти ном кунед
Даромадан
Барои сохтани панели идоракунӣ барои дастгоҳи нав, тугмаи "+" -ро клик кунед.
Намунаи сохтани панел
Пас аз сохтани панел, он дар рӯйхати панелҳои шумо пайдо мешавад.
Дар ҷадвали "Танзим" -и панели сохташуда майдонҳои "Идентификатсияи дастгоҳ" ва "Калиди авторизатсия" -ро пайдо кунед; дар оянда ин маълумот ҳангоми насб кардани дастгоҳи Sonoff талаб карда мешавад.
Намунаи ҷадвал
Қадами 2. Дастгоҳро дубора фурӯзон кунед
Истифодаи утилита
Қадами 3. Танзими дастгоҳ
Ба дастгоҳ қувваи барқро истифода баред, пас аз фурӯзон шудани LED, тугмаро пахш кунед ва онро пахш кунед, то он даме, ки LED давра ба давра баробар дурахшид.
Дар айни замон, шабакаи нави Wi-Fi бо номи "PLC Sonoff Basic" пайдо мешавад, компютери худро ба ин шабака пайваст кунед.
Тавсифи нишондиҳандаи LED
Нишондиҳандаи LED
Ҳолати дастгоҳ
дурахши даврии дукарата
ба роутер пайваст нест
пайваста медурахшад
пайвастшавӣ бо роутер муқаррар карда мешавад
дурахши даврии либос
ҳолати нуқтаи дастрасии Wi-Fi
гузошта
Не таъминоти барқ
Браузери интернетиро кушоед ва матни "192.168.4.1" -ро дар сатри суроғаҳо ворид кунед, ба саҳифаи танзимоти шабакаи дастгоҳ гузаред.
Майдонҳоро ба таври зерин пур кунед:
- "Номи шабака" ва "Парол" (барои пайваст кардани дастгоҳ ба роутери хонагии Wi-Fi).
- "Идентификати дастгоҳ" ва "Калиди авторизатсия" (барои иҷозат додани дастгоҳ дар хидмати MGT24).
Намунаи танзими параметрҳои шабакаи дастгоҳ
Танзимотҳоро захира кунед ва дастгоҳро бозоғоз намоед.
Ин аст,
Қадами 4. Пайваст кардани сенсорҳо (ихтиёрӣ)
Нармафзори ҷорӣ то чор сенсори ҳарорати ds18b20 -ро дастгирӣ мекунад. Ин ҷо
Фасли II. Барномасозии визуалӣ
Қадами 1: Скриптҳо эҷод кунед
Ҳамчун муҳити барномасозӣ истифода мешавад
Ман блокҳои махсусро барои навиштан ва хондани параметрҳои дастгоҳ илова кардам. Ҳар як параметр бо ном дастрас карда мешавад. Барои параметрҳои дастгоҳҳои дурдаст, номҳои мураккаб истифода мешаванд: "parameter@device".
Рӯйхати афтанда имконоти
Намунаи сенарияи чарх задани сарборӣ (1Гц):
Намунаи скрипти ҳамоҳангсозии кори ду дастгоҳи алоҳида. Махз, релеи дастгоҳи мавриди ҳадаф кори релеи дастгоҳи дурдастро такрор мекунад.
Сенарияи термостат (бе гистерезис):
Барои сохтани скриптҳои мураккабтар шумо метавонед тағирёбандаҳо, ҳалқаҳо, функсияҳо (бо аргументҳо) ва дигар конструксияҳоро истифода баред. Ман ҳамаи инро дар ин ҷо ба таври муфассал тавсиф намекунам; аллакай дар шабака хеле зиёд аст.
Қадами 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
Агар шакли маҷлиси намояндагӣ ягон арзиши амалӣ надошта бошад, пас ҷадвали "javascrit", баръакс, назар ба блокҳои визуалӣ намуди шиностар медиҳад:
function factorial(num) {
if (num > 1) {
return num + factorial(num - 1);
}
return 1;
}
window.alert(factorial(10));
Дар бораи ичрои. Вақте ки ман соддатарин скрипти флешдорро иҷро кардам, ман дар экрани осциллограф мавҷи квадратии 47 кГц гирифтам (бо суръати соати протсессори 80 МГс).
Ман фикр мекунам, ки ин натиҷаи хуб аст, ҳадди ақал ин суръат аз он қариб даҳ маротиба тезтар аст
Қисми ниҳоӣ
Хулоса, ман мегӯям, ки истифодаи скриптҳо ба мо имкон медиҳад, ки на танҳо мантиқи кори дастгоҳи алоҳидаро барномарезӣ кунем, балки инчунин имкон медиҳад, ки якчанд дастгоҳро ба як механизм пайваст кунем, ки дар он баъзе дастгоҳҳо ба рафтори дигарон таъсир мерасонанд.
Ман инчунин қайд мекунам, ки усули интихобшудаи нигоҳдории скриптҳо (бевосита дар худи дастгоҳҳо, на дар сервер) гузариши дастгоҳҳои аллакай коркунандаро ба сервери дигар, масалан ба Raspberry хонагӣ, дар ин ҷо осон мекунад.
Ин ҳама, ман аз шунидани маслиҳат ва интиқоди созанда шод мешавам.
Манбаъ: will.com