FlashAirで、周囲のWiFiのアクセスポイントを検索して、そのログを取るソフトを作ってみた – その2

FlashAirで、周囲のWiFiのアクセスポイントを検索して、そのログを取るソフトを作ってみた、という話の続き。

前回のものはBSSIDも記録しないといけないということを失念していたので、ちゃんとBSSIDも記録するように作り直してみた。

local file = io.open("/log.txt", "a")
file:write("WiFi SSID Logging data\r\n")
file:write("---\r\n")
file:close()
fa.SetCurrentTime(0x2821,0)
hh=0
mm=0
ss=0
sleep(100)
while true do
	file = io.open("/log.txt", "a")
	file:write("time , "..hh..","..mm..","..ss.."\r\n")
	count = fa.Scan()
	for i=0, (count-1), 1 do
		ssid, other = fa.GetScanInfo(i)
		if ssid ~= "" then
			file:write("SSID,"..ssid.."\r\n")
			for key, val in pairs(other) do
				if key=="BSSID" then
					file:write(" BSSID,"..val.."\r\n")
				elseif key=="RSSI" then
					file:write(" RSSI,"..val.."\r\n")
				end
			end
		end
	end
	file:write("---\r\n")
	file:close()
	fat_time = lfs.attributes("/log.txt")
	hh = bit32.band (bit32.rshift(fat_time.modification, 11),0x1F);
	mm = bit32.band (bit32.rshift(fat_time.modification, 5),0x3F);
	ss = bit32.band (fat_time.modification,0x1F)*2;
	sleep(1000*30)
end


追記

上記のFlashAirで無線LANのアクセスポイント情報のログを取るソフトを最近作っていたのだけど、そのものずばりの先例があったようだ。気づいてなかった。
Lua: Geolocation支援スクリプト – FlashAir開発者向け非公式wiki


名古屋の大須電気街を歩いてログを取ってみた。街中なので、さすがにWiFiのアクセスポイントが多い。

あとは、このログにあるBSSIDとRSSIを使って、後処理で緯度経度を調べるというのを試してみるつもりだ。
Google WiFi GeoLocation APIは、昔ちょっと試したことがあった。
Google WiFi GeoLocation APIを使って位置情報を表示する

しかし、今はこのAPIはGoogle Maps Geolocation APIに変わってしまっていて、使い方もだいぶ違ってしまっている。
緯度経度を求めるコードは作り直さないといけない。

つづく




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

× 5 = 30