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
Lebet
Pikeun nyieun panel kontrol pikeun alat anyar, klik dina tombol "+".
Conto nyieun panel
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 tab
Lengkah 2. Reflash alat
Ngagunakeun utiliti
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 alat
Simpen setélan sareng reboot alat.
Ieu téh
Lengkah 4. Nyambungkeun sensor (opsional)
Firmware ayeuna ngadukung dugi ka opat sensor suhu ds18b20. Ieuh
Bagian II. programming visual
Lengkah 1: Jieun Skrip
Dipaké salaku lingkungan programming
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 pilihan
Conto skenario pikeun ngaktipkeun sareng mareuman beban siklik (1Hz):
Conto naskah anu nyinkronkeun operasi dua alat anu misah. Nyaéta, relay alat target ngulang operasi relay alat jauh.
Skenario pikeun thermostat (tanpa histerisis):
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.
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:
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
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:
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).
Jigana ieu hasil alus, sahenteuna speed ieu ampir sapuluh kali leuwih gancang ti
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.
Sakitu wae, sim kuring bade ngiring nguping saran sareng kritik anu ngawangun.
sumber: www.habr.com