wifi.STATION
, wifi.SOFTAP
, wifi.STATIONAP
atau wifi.NULLMODE.
Koding berikut akan mengaktifkan wifi sebagai STATIONAP, disertai dengan setting SSID dan PASSWORD, dan mencetak IP Address.
cfg={}
cfg.ssid="myssid"
cfg.pwd="mypassword" -- minimal 8 character, jika tidak maka AP tidak berpassword
cfg.auth=wifi.WPA_WPA2_PSK
-- set mode as stationAPKoding berikut ini akan mengaktifkan fungsi DHCP server pada AP.
wifi.setmode(wifi.STATIONAP)
wifi.ap.config(cfg)
print("AP IP Address:" .. wifi.ap.getip())
Karena diaktifkan dengan modus STATIONAP, berarti wifi pada board berfungsi sebagai AP sekaligus sebagai STATION (client), sehingga dimungkinkan untuk koneksi ke AP lain sebagai client.
dhcp_config ={}
dhcp_config.start = "192.168.4.100"
pool_ipstart, pool_ipend = wifi.ap.dhcp.config(dhcp_config)
if wifi.ap.dhcp.start() then
print("DHCP server started, pool addr from " .. pool_ipstart .. " to " .. pool_ipend .. "!")
else
print("DHCP server failed!")
end
-- CredentialsBerikut ini adalah koding lengkap untuk implementasi sebagai init.lua
SSID = "BOLT!Super4G-899A"
PASSWORD = "********"
print("Koneksi ke " .. SSID)
wifi.sta.config(SSID, PASSWORD
apconfig.lua
cfg={}credentials.lua
cfg.ssid="myssid"
cfg.pwd="mypassword"
cfg.auth=wifi.WPA_WPA2_PSK
dhcp_config ={}
dhcp_config.start = "192.168.4.100"
-- Credentialsinit.lua
SSID = "BOLT!Super4G-899A"
PASSWORD = "*******"
-- aplikasi ini berfungsi menghindarkan module anda terjebak
-- pada kondisi restart tak terhingga jika terjadi bugs pada
-- init.lua.
-- aplikasi dapat berjalan pada dua modus, yaitu standalone
-- atau terkoneksi ke wifi.
-- agar dapat terkoneksi ke wifi, maka username dan password
-- didefinisikan pada file credentials.lua
-- aplikasi akan menunggu selama 3 detik sebelum file app.lua
-- dieksekusi, jika terjadi bugs pada app.lua, maka anda
-- dapat menjalankan file.remove("app.lua") sehingga tidak
-- terjebak pada kondisi restart tak terhingga.
function startup()
print("Running")
-- aplikasi autoexec anda sekarang adalah 'app.lua'
if file.open("app.lua") == nil then
print("app.lua tidak ditemukan, silakan buat app.lua sebagai auto executable.")
else
file.close("app.lua")
dofile("app.lua")
end
end
if file.open("apconfig.lua") ~= nil then
print("activate as access point")
dofile("apconfig.lua")
-- set mode as stationAP
wifi.setmode(wifi.STATIONAP)
wifi.ap.config(cfg)
print("AP IP Address:" .. wifi.ap.getip())
pool_ipstart, pool_ipend = wifi.ap.dhcp.config(dhcp_config)
if wifi.ap.dhcp.start() then
print("DHCP server started, pool addr from " .. pool_ipstart .. " to " .. pool_ipend .. "!")
else
print("DHCP server failed!")
end
else
-- default mode as station
wifi.setmode(wifi.STATION)
end
-- periksa keberadaan file credentials.lua yang mendefinisikan
-- 'SSID' and 'PASSWORD' wifi
if file.open("credentials.lua") == nil then
-- bagian module standalone
print("Boot sebagai module standalone")
print("You have 3 seconds to abort")
print("Waiting...")
-- jalankan fungsi startup setelah 3 detik
tmr.alarm(0, 3000, 0, startup)
else
-- bagian module koneksi wifi
file.close("credentials.lua")
-- muat variable SSID dan PASSWORD
dofile("credentials.lua")
print("Koneksi ke " .. SSID)
wifi.sta.config(SSID, PASSWORD)
-- wifi.sta.connect() not necessary because config() uses auto-connect=true by default
-- mencoba koneksi setiap detik sampai tmr.stop(1)
trycount = 1
tmr.alarm(1, 1000, 1, function()
if wifi.sta.getip() == nil then
print("trying " .. trycount .. " second(s)")
trycount = trycount + 1
else
-- berhasil koneksi dan mendapatkan IP Address
tmr.stop(1)
print("WiFi connected")
print("Client 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)
end
Tidak ada komentar:
Posting Komentar