無線LAN設定

最終更新: 2017/8

このチュートリアルでは、ネットワークのスキャン、接続、ファイルアップロードまで、LUAから無線LANデバイスを扱う基本的な操作をみていきます。

はじめに

  1. FlashAirに OAUTH2を使ったDropboxへのアップロードで作成した DropboxUpload.luaが無い場合は、 サンプルコードよりファイルをダウンロードしてください。
  2. アップロード機能を有効にするために、CONFIGファイルに UPLOAD=1を追加します。
  3. 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が表示されます。

サンプルコード

リポジトリを見る(GitHub)

このサイトのサンプルコードは 二条項BSDライセンスで提供されています。