programming Visual pikeun Sonoff Dasar

programming Visual pikeun Sonoff Dasar
Artikel ngeunaan cara nyieun controller logika programmable tina alat Cina mirah. Alat sapertos kitu bakal mendakan panggunaanana dina otomatisasi bumi sareng salaku kelas praktis dina élmu komputer sakola.
Pikeun rujukan, sacara standar program Sonoff Basic tiasa dianggo sareng aplikasi sélulér ngalangkungan jasa awan Cina; saatos modifikasi anu diusulkeun, sadaya interaksi salajengna sareng alat ieu bakal tiasa dilaksanakeun dina browser.

Bagian I. Nyambungkeun Sonoff ka layanan MGT24

Lengkah 1: Jieun panel kontrol

Ngadaptar dina loka mgt24 (upami teu acan kadaptar) sareng log in nganggo akun anjeun.
Lebetprogramming Visual pikeun Sonoff Dasar

Pikeun nyieun panel kontrol pikeun alat anyar, klik dina tombol "+".
Conto nyieun panelprogramming Visual pikeun Sonoff Dasar

Sakali panel dijieun, éta bakal muncul dina daptar panel Anjeun.

Dina tab "Setup" tina panel anu diciptakeun, panggihan widang "ID Alat" sareng "Konci Otorisasi"; ka hareup, inpormasi ieu bakal diperyogikeun nalika nyetél alat Sonoff.
conto tabprogramming Visual pikeun Sonoff Dasar

Lengkah 2. Reflash alat

Ngagunakeun utiliti XTCOM_UTIL ngundeur firmware nu PLC Sonoff Dasar kana alat, pikeun ieu anjeun peryogi konverter USB-TTL. Ieuh parentah и instruksi video.

Lengkah 3. Setup alat

Larapkeun kakuatan ka alat, sanggeus LED hurung, pencét tombol jeung tahan eta dipencet nepi ka LED mimiti flash périodik merata.
Dina waktos ayeuna, jaringan wi-fi anyar anu disebut "PLC Sonoff Basic" bakal muncul, sambungkeun komputer anjeun ka jaringan ieu.
Katerangan ngeunaan indikasi LED

indikasi LED
Status Alat

kedip-kedip ganda périodik
euweuh sambungan kana router

caang terus
sambungan ngadegkeun kalawan router dina

kedip-kedip seragam périodik
modeu titik aksés wi-fi

dipareuman
Taya catu daya

Buka browser Internet sareng lebetkeun téks "192.168.4.1" dina palang alamat, angkat ka halaman setélan jaringan alat.

Eusian kolom sapertos kieu:

  • "Ngaran jaringan" sareng "Sandi" (pikeun ngaitkeun alat ka router wi-fi bumi anjeun).
  • "ID Alat" jeung "Konci otorisasina" (pikeun otorisasi alat dina layanan MGT24).

Conto netepkeun parameter jaringan alatprogramming Visual pikeun Sonoff Dasar

Simpen setélan sareng reboot alat.
Ieu téh instruksi video.

Lengkah 4. Nyambungkeun sensor (opsional)

Firmware ayeuna ngadukung dugi ka opat sensor suhu ds18b20. Ieuh instruksi video pikeun instalasi sensor. Tétéla, léngkah ieu bakal paling hese, sabab bakal merlukeun leungeun lempeng jeung beusi soldering.

Bagian II. programming visual

Lengkah 1: Jieun Skrip

Dipaké salaku lingkungan programming Blokir, lingkungan téh gampang pikeun neuleuman, jadi Anjeun teu kudu jadi programmer pikeun nyieun skrip basajan.

Kuring ditambahkeun blok husus pikeun nulis jeung maca parameter alat. Parameter naon waé diaksés ku nami. Pikeun parameter alat jauh, ngaran sanyawa dipaké: "parameter @ alat".
Daptar dropdown pilihanprogramming Visual pikeun Sonoff Dasar

Conto skenario pikeun ngaktipkeun sareng mareuman beban siklik (1Hz):
programming Visual pikeun Sonoff Dasar

Conto naskah anu nyinkronkeun operasi dua alat anu misah. Nyaéta, relay alat target ngulang operasi relay alat jauh.
programming Visual pikeun Sonoff Dasar

Skenario pikeun thermostat (tanpa histerisis):
programming Visual pikeun Sonoff Dasar

Pikeun nyiptakeun skrip anu langkung kompleks, anjeun tiasa nganggo variabel, puteran, fungsi (kalayan argumen) sareng konstruksi anu sanés. Kuring moal ngajelaskeun sadayana ieu sacara rinci di dieu; parantos aya seueur pisan dina jaring. bahan atikan ngeunaan Blockly.

Lengkah 2: Urutan Aksara

Naskah dijalankeun terus-terusan, sareng pas dugi ka tungtung, éta ngamimitian deui. Dina hal ieu, aya dua blok nu bisa ngareureuhkeun samentara naskah, "reureuh" jeung "reureuh".
Blok "delay" dianggo pikeun reureuh millisecond atanapi microsecond. Blok ieu mastikeun ngajaga interval waktos, ngahalangan operasi sadaya alat.
Blok "reureuh" dianggo pikeun reureuh kadua (atanapi kirang), sareng henteu ngahalangan palaksanaan prosés anu sanés dina alat.
Lamun naskah sorangan ngandung hiji loop tanpa wates, awak nu teu ngandung "reureuh", juru bebas initiates jeda pondok.
Upami tumpukan mémori anu dialokasikeun béak, juru basa bakal ngeureunkeun ngalaksanakeun skrip lapar kakuatan sapertos kitu (ati-ati kalayan fungsi rekursif).

Lengkah 3: Debugging Skrip

Pikeun debug skrip anu parantos dimuat kana alat, anjeun tiasa ngajalankeun program ngalacak léngkah-léngkah. Ieu tiasa pisan mangpaat nalika paripolah naskah tétéla béda ti naon pangarang dimaksudkeun. Dina hal ieu, tracing ngamungkinkeun panulis pikeun gancang manggihan sumber masalah jeung ngabenerkeun kasalahan dina naskah.

Skenario pikeun ngitung faktorial dina modeu debug:
programming Visual pikeun Sonoff Dasar

Alat debug saderhana pisan sareng diwangun ku tilu tombol utama: "mimitian", "hiji lengkah ka hareup" sareng "eureun" (hayu ogé henteu hilap ngeunaan "asup" sareng "kaluar" mode debug). Salian ngalacak léngkah-léngkah, anjeun tiasa nyetél titik putus dina blok naon waé (ku ngaklik blok).
Pikeun ningalikeun nilai parameter ayeuna (sensor, relay) dina monitor, paké blok "print".
Ieu téh video tinjauan ngeunaan ngagunakeun debugger.

Bagian pikeun panasaran. Naon anu aya di handapeun tiung?

Supados skrip tiasa dianggo dina alat target, interpreter bytecode sareng assembler kalayan 38 paréntah dikembangkeun. Kodeu sumber Blockly ngagaduhan generator kode khusus anu diwangun kana éta anu ngarobih blok visual kana petunjuk perakitan. Salajengna, program assembler ieu dirobah jadi bytecode sarta dibikeun ka alat pikeun palaksanaan.
Arsitéktur mesin virtual ieu cukup saderhana sareng teu aya titik khusus pikeun ngajelaskeunana; dina Internét anjeun bakal mendakan seueur tulisan ngeunaan ngarancang mesin virtual anu pangbasajanna.
Kuring biasana allocate 1000 bait pikeun tumpukan mesin virtual kuring, nu cukup pikeun luang. Tangtu, recursions jero tiasa knalpot sagala tumpukan, tapi aranjeunna saperti teu mirip boga pamakéan praktis.

Bytecode anu dihasilkeun cukup kompak. Salaku conto, bytecode pikeun ngitung faktorial anu sami ngan ukur 49 bait. Ieu bentuk visual na:
programming Visual pikeun Sonoff Dasar

Sareng ieu mangrupikeun program assembler na:

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

Upami bentuk perwakilan henteu gaduh nilai praktis, tab "javascrit", sabalikna, masihan tampilan anu langkung akrab tibatan blok visual:

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

window.alert(factorial(10));

Ngeunaan kinerja. Nalika kuring ngajalankeun Aksara flasher pangbasajanna, kuring meunang 47 kHz gelombang pasagi dina layar oscilloscope (dina speed jam processor 80 MHz).
programming Visual pikeun Sonoff Dasarprogramming Visual pikeun Sonoff Dasar
Jigana ieu hasil alus, sahenteuna speed ieu ampir sapuluh kali leuwih gancang ti Karangan и Espruino.

Bagian ahir

Pikeun nyimpulkeun, kuring bakal nyebutkeun yén pamakéan Aksara ngamungkinkeun urang teu ukur program logika operasi alat misah, tapi ogé ngamungkinkeun pikeun nyambungkeun sababaraha alat kana mékanisme tunggal, dimana sababaraha alat mangaruhan kabiasaan batur.
Kuring ogé perhatikeun yén metodeu anu dipilih pikeun nyimpen skrip (langsung dina alat sorangan, sanés dina server) nyederhanakeun ngalihkeun alat anu parantos damel ka server anu sanés, contona ka Raspberry di bumi, di dieu. parentah.

Sakitu wae, sim kuring bade ngiring nguping saran sareng kritik anu ngawangun.

sumber: www.habr.com

Tambahkeun komentar