無線LAN設定
このチュートリアルでは、ネットワークのスキャン、接続、ファイルアップロードまで、LUAから無線LANデバイスを扱う基本的な操作をみていきます。
はじめに
- FlashAirにOAUTH2を使ったDropboxへのアップロードで作成した
DropboxUpload.lua
が無い場合は、サンプルコードよりファイルをダウンロードしてください。 - アップロード機能を有効にするために、CONFIGファイルに
UPLOAD=1
を追加します。 - FlashAirでLuaを実行するを参考に、Luaスクリプト実行方法をCONFIGファイルに指定します。
スキャン
まず、スキャンして取得したローカルネットワークのリストを、ログファイルに記録してみましょう。このスクリプトは、FlashAir起動時に実行するのが良いでしょう。FlashAirが既にネットワークに接続している場合、fa.Scan及びfa.GetScanInfoは利用できないのでご注意ください。
/SSIDList.lua
--[[
This script will scan for available WiFi networks,
and output their SSIDs to a file.
]]--
local logfile = "ssidList.txt"
count = fa.Scan()
-- Open the log file
local outfile = io.open(logfile, "w")
-- Write a header
outfile:write("SSID list: \n")
--Note that the ssids start at 0, and go to (count-1)
for i=0, (count-1), 1 do
ssid, other = fa.GetScanInfo(i)
outfile:write(i..": "..ssid.."\n")
end
Luaスクリプト実行後、ルートフォルダにssidList.txtが表示されます。
接続
次に、特定のSSIDをスキャンし、接続してみましょう。接続すると、アップロードするためのスクリプトを実行します。アップロードには、Dropboxチュートリアルで作成したスクリプトを利用します。
/WifiConnect.lua
--[[
This script will scan for a specific network, and if it sees it
will connect... then trigger a dropbox uploading script!
It logs to a file.
]]--
local logfile = "wifiConnect.txt"
local SSID = "VITP_Open" -- SSID to connect to
local PASSWORD = "" --A blank password should be used for an open network
local uploader = "DropboxUpload.lua"
-- Open the log file
local outfile = io.open(logfile, "w")
while true do
-- Initiate a scan
count = fa.Scan(SSID)
--count = fa.Scan()
found=0
--See if we found it
if count > 0 then
--ssid, other = fa.GetScanInfo(0) --Should return SSID provided
for i=0, (count-1), 1 do
found_ssid, other = fa.GetScanInfo(i)
print(SSID.."|"..found_ssid)
if SSID == found_ssid then
--We did!
print("Found: "..SSID.."... attempting to connect.")
outfile:write("Found: "..SSID.."... attempting to connect.")
found=1
break
end
end
end
if found == 1 then break end --If we found it, stop looping
end
--We should only get here if the above loop found the network
--fa.Connect has no return, but if the SSID and password are correct it should work.
fa.Connect(SSID, PASSWORD)
--Execute the upload script
dofile(uploader)
--Close our log file
outfile:close()
Luaスクリプト実行後、ルートフォルダにwifiConnect.txtが表示されます。
サンプルコード
このサイトのサンプルコードは二条項BSDライセンスで提供されています。