Agar dapat melakukan pemrograman Lua, maka pada board WeMos anda perlu diinstalasi firmware NodeMCU. Sedangkan App Inventor dapat diakses pada alamat http://appinventor.mit.edu/explore/.
App Inventor merupakan suatu IDE berbasis cloud yang dapat diakses dengan menggunakan web browser yang mendukung HTML5, sehingga dalam hal ini anda tidak perlu menginstalasi software tambahan pada komputer anda, cukup web browser saja.
Pada tulisan ini saya asumsikan anda telah mengerti pembuatan aplikasi pada board WeMos dengan menggunakan software Esplore.
Koding pada sisi WeMos:
appconfig.lua
cfg={}init.lua
cfg.ssid="myssid"
cfg.pwd="mypassword"
cfg.auth=wifi.WPA_WPA2_PSK
dhcp_config ={}
dhcp_config.start = "192.168.4.100"
-- aplikasi ini berfungsi menghindarkan module anda terjebakapp.lua
-- pada kondisi restart tak terhingga jika terjadi bugs pada
-- init.lua.
-- aplikasi ini dapat mengaktifkan board anda sebagai access
-- point, jika anda menginginkan hal ini, maka anda perlu
-- menyediakan file apconfig.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
-- aplikasi ini membentuk web server pada board anda
-- dengan kemampuan mengaktifkan LED BUILTIN.
-- untuk mengaktifkan LED BUILTIN maka pin D4 diset ke LOW,
-- dan sebaliknya adalah diset ke ON.
-- web server akan memberikan respon status dari LED BUILTIN
-- untuk mengaktifkan LED BUILTIN maka dilakukan call
-- http://ipaddress?led=on
-- untuk mematikan LED BUILTIN maka dilakukan call
-- http://ipaddress?led=off
position = "off"
function led_builtin(position)
gpio.mode(4, gpio.OUTPUT)
if (position == "on") then
gpio.write(4, gpio.LOW) -- LED BUILTIN ON
else
gpio.write(4, gpio.HIGH) -- LED BUILTIN ON
end
end
function receive(conn, payload)
--debug
print(payload)
-- extra path and variables
local _,_,method,path,vars = string.find(payload,"([A-Z]+) (.+)?(.+) HTTP")
if(method==nil) then
_, _, method, path = string.find(payload,"([A-Z]+) (.+) HTTP")
end
-- extract the variables passed in the url
local _GET = {}
if (vars~=nil) then
for k,v in string.gmatch(vars,"(%w+)=(%w+)&*") do
_GET[k] = v
--debug
print(k .. ":" .. v)
end
if (_GET['led'] ~= nil) then
position = _GET['led']
end
end
-- turn led ON/OFF
led_builtin(position)
local content="LED BUILTIN is " .. position .. "!"
local contentLength=string.len(content)
conn:on("sent", function(sck) sck:close() collectgarbage() end)
conn:send("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length:" .. contentLength .. "\r\n\r\n" .. content)
end
function connection(conn)
conn:on("receive", receive)
end
-- check whether server is already started
if srv~=nil then
print("stop existing server...")
srv:close()
print("OK")
end
-- start a new server
print("start a new server ...")
led_builtin(position)
srv=net.createServer(net.TCP, 1)
srv:listen(80, connection)
print("OK")
Koding pada sisi App Inventor
1. Aktifkan ke http://appinventor.mit.edu/explore/2. Klik pada Create Apps!\
3. Login dengan Google Account Anda
4. Klik pada Project, dan pilih New Project
5. Pada Project Name isikan IOT
6. Pada layar Screen1 tambahkan komponen berikut ini
Gambar 1. Screen1 pada modus Designer
7. Ubah nama dan text masing-masing komponen sesuai dengan tampilan pada layar Designer dan Component.
Gambar 2. Setting pada Component
8. Buatlah koding berikut ini pada layar Block (Bahasa pemrograman pada App Inventor adalah berupa blok LEGO, dimana anda dapat memasang masing-masing blok yang nantinya menjadi satu aplikasi yang terintegrasi)
Gambar 3. Koding pada Layar Block
9. Klik pada Built dan pilih App (provide QR code for .apk)
Gambar 4. Built Aplikasi
10. Scan QR code, jika pada smartphone anda belum terinstalasi QR code scanner, maka anda perlu menginstalasinya terlebih dahulu.
Gambar 5. QR Code untuk download APK ke Smartphone
11. Smartphone akan memblokir instalasi APK dari sumber yang tidak diketahui, sehingga anda perlu mengubah Setting, Security, Unknown Sources (ON)
12. Setelah instalasi dan Run, dan silakukan coba klik pada On dan Off dan perhatikan LED BUILTIN pada board WeMos.
Gambar 6. Icon aplikasi IOT pada Launcher
Gambar 7. Hasil Run Aplikasi
bisakah memberi file skectnya yang di arduino,soalnya itu terlalu panjang
BalasHapus