Sonoff Basic uchun vizual dasturlash

Sonoff Basic uchun vizual dasturlash
Arzon Xitoy qurilmasidan dasturlashtiriladigan mantiqiy kontrollerni qanday yaratish haqida maqola. Bunday qurilma uyni avtomatlashtirishda ham, maktab informatika bo'yicha amaliy mashg'ulotlarda ham qo'llanilishini topadi.
Ma'lumot uchun, sukut bo'yicha Sonoff Basic dasturi mobil ilova bilan Xitoy bulut xizmati orqali ishlaydi; taklif qilingan modifikatsiyadan so'ng ushbu qurilma bilan keyingi barcha o'zaro aloqalar brauzerda mumkin bo'ladi.

I bo'lim. Sonoffni MGT24 xizmatiga ulash

1-qadam: Boshqaruv panelini yarating

Saytda ro'yxatdan o'ting mgt24 (agar ro'yxatdan o'tmagan bo'lsangiz) va hisobingizdan foydalanib tizimga kiring.
Tizimga kirishSonoff Basic uchun vizual dasturlash

Yangi qurilma uchun boshqaruv panelini yaratish uchun "+" tugmasini bosing.
Panelni yaratishga misolSonoff Basic uchun vizual dasturlash

Panel yaratilgandan so'ng, u panellar ro'yxatida paydo bo'ladi.

Yaratilgan panelning "Sozlash" yorlig'ida "Qurilma identifikatori" va "Avtorizatsiya kaliti" maydonlarini toping, kelajakda bu ma'lumot Sonoff qurilmasini sozlashda talab qilinadi.
Tab misoliSonoff Basic uchun vizual dasturlash

Qadam 2. Qurilmani qayta yoqing

Yordamchi dasturdan foydalanish XTCOM_UTIL proshivkani yuklab oling PLC Sonoff Basic qurilmaga, buning uchun sizga USB-TTL konvertori kerak bo'ladi. Bu yerga ko'rsatmalar и Video ko'rsatma.

Qadam 3. Qurilmani sozlash

Qurilmaga quvvat bering, LED yonib ketgandan so'ng, tugmani bosing va LED vaqti-vaqti bilan bir tekis miltillay boshlaguncha uni bosib turing.
Ayni paytda "PLC Sonoff Basic" deb nomlangan yangi Wi-Fi tarmog'i paydo bo'ladi, kompyuteringizni ushbu tarmoqqa ulang.
LED ko'rsatkichini tushuntirish

LED ko'rsatkichi
Qurilma holati

davriy ikki marta miltillash
routerga ulanish yo'q

uzluksiz porlaydi
router bilan aloqa o'rnatildi

davriy bir xil miltillash
Wi-Fi kirish nuqtasi rejimi

qo'yish
Elektr ta'minoti yo'q

Internet-brauzerni oching va manzil satriga "192.168.4.1" matnini kiriting, qurilmaning tarmoq sozlamalari sahifasiga o'ting.

Maydonlarni quyidagi tarzda to'ldiring:

  • "Tarmoq nomi" va "Parol" (qurilmani uy Wi-Fi routeriga ulash uchun).
  • "Qurilma identifikatori" va "Avtorizatsiya kaliti" (qurilmani MGT24 xizmatida avtorizatsiya qilish uchun).

Qurilmaning tarmoq parametrlarini sozlash misoliSonoff Basic uchun vizual dasturlash

Sozlamalarni saqlang va qurilmani qayta yoqing.
u Video ko'rsatma.

4-qadam. Sensorlarni ulash (ixtiyoriy)

Joriy dasturiy ta'minot to'rttagacha ds18b20 harorat sensorlarini qo'llab-quvvatlaydi. Bu yerga Video ko'rsatma datchiklarni o'rnatish uchun. Ko'rinib turibdiki, bu qadam eng qiyin bo'ladi, chunki u tekis qo'llar va lehim temirini talab qiladi.

II bo'lim. Vizual dasturlash

1-qadam: Skriptlarni yarating

Dasturlash muhiti sifatida foydalaniladi To'g'ri, muhitni oʻrganish oson, shuning uchun oddiy skriptlarni yaratish uchun dasturchi boʻlish shart emas.

Men qurilma parametrlarini yozish va o'qish uchun maxsus bloklarni qo'shdim. Har qanday parametrga nom bilan kirish mumkin. Masofaviy qurilmalarning parametrlari uchun murakkab nomlar ishlatiladi: "parameter@device".
Ochiladigan variantlar ro'yxatiSonoff Basic uchun vizual dasturlash

Yukni tsiklik yoqish va o'chirish uchun misol stsenariysi (1 Gts):
Sonoff Basic uchun vizual dasturlash

Ikki alohida qurilmaning ishlashini sinxronlashtiruvchi skriptga misol. Ya'ni, maqsadli qurilmaning o'rni masofaviy qurilmaning o'rni ishini takrorlaydi.
Sonoff Basic uchun vizual dasturlash

Termostatni stsenariysi (gisterezsiz):
Sonoff Basic uchun vizual dasturlash

Murakkab skriptlarni yaratish uchun siz o'zgaruvchilar, tsikllar, funktsiyalar (argumentlar bilan) va boshqa konstruktsiyalardan foydalanishingiz mumkin. Bularning barchasini bu erda batafsil tasvirlab bermayman; tarmoqda allaqachon juda ko'p narsa bor. Blokli haqida o'quv materiali.

2-qadam: Skriptlar tartibi

Skript uzluksiz ishlaydi va tugashi bilanoq yana boshlanadi. Bunday holda, skriptni vaqtincha to'xtatib turishi mumkin bo'lgan ikkita blok mavjud, "kechikish" va "pauza".
"Kechikish" bloki millisekund yoki mikrosekundlik kechikishlar uchun ishlatiladi. Ushbu blok vaqt oralig'ini qat'iy saqlaydi, butun qurilmaning ishlashini bloklaydi.
"Pauza" bloki ikkinchi (yoki kamroq) kechikishlar uchun ishlatiladi va u qurilmadagi boshqa jarayonlarning bajarilishini bloklamaydi.
Agar skriptning o'zida cheksiz tsikl bo'lsa, uning tanasida "pauza" bo'lmasa, tarjimon mustaqil ravishda qisqa pauzani boshlaydi.
Agar ajratilgan xotira to'plami tugasa, tarjimon bunday quvvat talab qiladigan skriptni bajarishni to'xtatadi (rekursiv funksiyalar bilan ehtiyot bo'ling).

3-qadam: Skriptlarni tuzatish

Qurilmaga allaqachon yuklangan skriptni disk raskadrovka qilish uchun dastur izini bosqichma-bosqich ishga tushirishingiz mumkin. Agar skriptning harakati muallif niyat qilganidan boshqacha bo'lsa, bu juda foydali bo'lishi mumkin. Bunday holda, kuzatuv muallifga muammoning manbasini tezda topishga va skriptdagi xatoni tuzatishga imkon beradi.

Nosozliklarni tuzatish rejimida faktorialni hisoblash stsenariysi:
Sonoff Basic uchun vizual dasturlash

Nosozliklarni tuzatish vositasi juda oddiy va uchta asosiy tugmadan iborat: "boshlash", "bir qadam oldinga" va "to'xtatish" (shuningdek, "kirish" va "chiqish" disk raskadrovka rejimini unutmasligimiz kerak). Bosqichma-bosqich kuzatishdan tashqari, istalgan blokda to'xtash nuqtasini o'rnatishingiz mumkin (blokni bosish orqali).
Monitordagi parametrlarning (sensorlar, o'rni) joriy qiymatlarini ko'rsatish uchun "chop etish" blokidan foydalaning.
u umumiy video tuzatuvchidan foydalanish haqida.

Qiziquvchilar uchun bo'lim. Kaput ostida nima bor?

Skriptlarning maqsadli qurilmada ishlashi uchun bayt-kod tarjimoni va 38 ta ko'rsatmalarga ega assembler ishlab chiqilgan. Blockly-ning manba kodi vizual bloklarni yig'ish ko'rsatmalariga aylantiradigan maxsus kod generatoriga ega. Keyinchalik, ushbu assembler dasturi baytekodga aylantiriladi va bajarish uchun qurilmaga o'tkaziladi.
Ushbu virtual mashinaning arxitekturasi juda oddiy va uni tavsiflashda alohida nuqta yo'q, Internetda siz eng oddiy virtual mashinalarni loyihalash haqida ko'plab maqolalarni topasiz.
Men odatda virtual mashinamning to'plami uchun 1000 bayt ajrataman, bu zaxira qilish uchun etarli. Albatta, chuqur rekursiyalar har qanday stekni tugatib yuborishi mumkin, ammo ulardan amaliy foydalanish dargumon.

Olingan bayt-kod juda ixchamdir. Misol tariqasida, bir xil faktorialni hisoblash uchun bayt-kod atigi 49 baytni tashkil qiladi. Bu uning vizual shakli:
Sonoff Basic uchun vizual dasturlash

Va bu uning assembler dasturi:

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

Agar vakillikning yig'ilish shakli amaliy ahamiyatga ega bo'lmasa, "javaskrit" yorlig'i, aksincha, vizual bloklarga qaraganda ko'proq tanish ko'rinish beradi:

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

window.alert(factorial(10));

Ishlash haqida. Men eng oddiy miltillovchi skriptni ishga tushirganimda, osiloskop ekranida 47 kHz kvadrat to'lqinni oldim (protsessorning soat tezligi 80 MGts).
Sonoff Basic uchun vizual dasturlashSonoff Basic uchun vizual dasturlash
Menimcha, bu yaxshi natija, hech bo'lmaganda bu tezlik deyarli o'n barobar tezroq olmoq и Espruino.

Oxirgi qism

Xulosa qilib aytganda, skriptlardan foydalanish nafaqat alohida qurilmaning ishlash mantiqini dasturlash imkonini beradi, balki bir nechta qurilmalarni bitta mexanizmga ulash imkonini beradi, bu erda ba'zi qurilmalar boshqalarning xatti-harakatlariga ta'sir qiladi.
Shuni ham ta'kidlaymanki, skriptlarni saqlashning tanlangan usuli (to'g'ridan-to'g'ri qurilmalarning o'zida, serverda emas) allaqachon ishlaydigan qurilmalarni boshqa serverga, masalan, uy Raspberry-ga o'tkazishni soddalashtiradi. ko'rsatmalar.

Hammasi shu, maslahat va konstruktiv tanqidni eshitishdan xursand bo'laman.

Manba: www.habr.com

a Izoh qo'shish