Langkah-langkah:
1. Instalasi aplikasi ESPlorer yang dapat didownload.
2. Ekstraksi file zip hasil download, dan jalankan Esplorer.bat
3. Tampilan IDE dari ESPlorer adalah sebagai berikut:
4. Pilih Port, dan klik pada Open, jika berhasil akan tampil prompt:
NodeMCU 0.9.5 build 20150318 powered by Lua 5.1.4
lua: cannot open init.lua
>
lua: cannot open init.lua
>
Jika tampilan respon setelah klik pada Open adalah:
Communication with MCU..Waiting answer from ESP - Timeout reached. Command aborted.]
Maka reset board anda, dengan menekan tombol RST yang ada di board.
Catatan:
lua:cannot
open init.lua memberitahukan kepada anda bahwa program init.lua tidak
ditemukan di root dari sistem file yang mana akan secara otomatis
dieksekusi pada rangkaian boot (fitur standard Lua)
5. Lakuklan koding berikut ini untuk setting SSID dan Password:
-- Credentials
SSID = "isikan SSID hotspot anda"
PASSWORD = "isikan password hotspot anda"
SSID = "isikan SSID hotspot anda"
PASSWORD = "isikan password hotspot anda"
Klik pada Save dan beri nama sebagai credentials.lua
6. Lakukan koding berikut ini untuk blink led pada board
-- led warna biru pada board
LED_PIN = 4
US_TO_MS = 1000
gpio.mode(LED_PIN, gpio.OUTPUT)
while true do
gpio.write(LED_PIN, gpio.HIGH)
tmr.delay(1000 * US_TO_MS)
gpio.write(LED_PIN, gpio.LOW)
tmr.delay(1000 * US_TO_MS)
end
US_TO_MS = 1000
gpio.mode(LED_PIN, gpio.OUTPUT)
while true do
gpio.write(LED_PIN, gpio.HIGH)
tmr.delay(1000 * US_TO_MS)
gpio.write(LED_PIN, gpio.LOW)
tmr.delay(1000 * US_TO_MS)
end
7. Lakukan koding untuk sebagai init.lua
init.lua
merupakan file yang berisi script yang otomatis akan dijalankan pada
rangkaian akhir dari proses booting, sehingga hal yang perlu
diperhatikan adalah jika ada bugs pada script pada file init.lua dapat
menyebabkan sistem anda terjebak pada restart loop yang tidak terbatas
sehingga anda perlu melakukan flash kembali firmware dari awal.
Untuk
menghindari kondisi terjebak tersebut diatas, anda perlu membuat
aplikasi anda pada file "application.lua" yang berisi script utama anda,
sedangkan script pada init.lua akan mengaktifkan "application.lua"
secara timer alarm 3 detik, yang memungkinkan anda melakukan intervensi
untuk segera menghapus file "application.lua" dengan menggunakan
perintah file.remove("application.lua") ada tahapan awal reboot jika
terdapat bugs.
Pada
umumnya init.lua digunakan untuk melakukan koneksi ke hotspot dan
mendapatkan IP address, jika berhasil, maka akan mengaktifkan
"application.lua" secara timer alarm 3 detik.
-- load credentials, 'SSID' and 'PASSWORD' declared and initialize in there
dofile("credentials.lua")
dofile("credentials.lua")
-- function startup akan diaktifkan secara timer alarm setelah sistem berhasil koneksi ke hotspot dengan
-- jeda waktu 3 detik, sehingga jika terdapat bugs pada application.lua, dapat diintervensi
-- dengan perintah file.remove("application.lua") pada tahapan awal boot
function startup()
if file.open("init.lua") == nil then
print("init.lua deleted or renamed")
else
print("Running")
file.close("init.lua")
-- aplikasi autoexec anda sekarang adalah 'application.lua'
if file.open("application.lua") == nil then
print("application.lua tidak ditemukan, silakan buat application.lua sebagai autoexec.")
else
file.close("application.lua")
dofile("application.lua")
end
end
end
print("Connecting to WiFi access point...")
wifi.setmode(wifi.STATION)
wifi.sta.config(SSID, PASSWORD)
-- wifi.sta.connect() not necessary because config() uses auto-connect=true by default
-- dengan perintah file.remove("application.lua") pada tahapan awal boot
function startup()
if file.open("init.lua") == nil then
print("init.lua deleted or renamed")
else
print("Running")
file.close("init.lua")
-- aplikasi autoexec anda sekarang adalah 'application.lua'
if file.open("application.lua") == nil then
print("application.lua tidak ditemukan, silakan buat application.lua sebagai autoexec.")
else
file.close("application.lua")
dofile("application.lua")
end
end
end
print("Connecting to WiFi access point...")
wifi.setmode(wifi.STATION)
wifi.sta.config(SSID, PASSWORD)
-- wifi.sta.connect() not necessary because config() uses auto-connect=true by default
-- timer alarm untuk per tiap detik sampai tmr.stop(1)
tmr.alarm(1, 1000, 1, function()
if wifi.sta.getip() == nil then
print("Waiting for IP address...")
else
tmr.alarm(1, 1000, 1, function()
if wifi.sta.getip() == nil then
print("Waiting for IP address...")
else
-- berhasil koneksi dan mendapatkan IP Address
tmr.stop(1)
print("WiFi connection established, IP address: " .. wifi.sta.getip())
print("You have 3 seconds to abort")
print("Waiting...")
tmr.stop(1)
print("WiFi connection established, IP address: " .. wifi.sta.getip())
print("You have 3 seconds to abort")
print("Waiting...")
-- jalankan fungsi startup setelah 3 detik
tmr.alarm(0, 3000, 0, startup)
end
end)
tmr.alarm(0, 3000, 0, startup)
end
end)
Simpan script diatas sebagai init.lua.
8. Upload credentials.lua, Uploading to ESP file credentialss.lua...Success
9. Upload application.lua, Uploading to ESP file application.lua...Success
10. Upload init.lua, Uploading to ESP file init.lua...Success
11. Reset board anda, dan jika berhasil
NodeMCU 0.9.5 build 20150318 powered by Lua 5.1.4
Connecting to WiFi access point...
> Waiting for IP address...
Waiting for IP address...
Waiting for IP address...
WiFi connection established, IP address: 192.168.1.105
You have 3 seconds to abort
Waiting...
Running
12. Jika terdapat bugs pada "application.lua", maka reset board anda, dan pada saat booting berikan perintah file.remove("application.lua")
Lakukan koreksi script application.lua dan upload kembali.
Salam,
Hendra.
Tidak ada komentar:
Posting Komentar