software_development」カテゴリーアーカイブ

Visual Studio 2017でlibcurlを使おうとして、libcurlのソースからビルドして動かした

Visual Studio 2017でlibcurlを使おうとして、libcurlのソースからビルドして動かした。

Google MapsのGeolocation APIを叩くために、curlコマンドから動かす代わりに、libcurlというライブラリを使って自分で書いたプログラムの中からAPIを使うというのをやりたい。
というか、前に既にやってた

しかしVisual Studio 2017だと古いlibcurlをリンクできなくてエラーになってしまう。最新のlibcurlを使う必要があるようだ。
続きを読む

Windows 10でGoogle Maps Geolocation APIを使ってみる

Windows 10でGoogle Maps Geolocation APIを使ってみる。

Windows 10のcurlを使った。

だいぶ以前にもGoogle Geolocation APIを試したことがあるのだが、APIが変わってしまった。
API Keyが必須になってしまっているので、取得しないといけない。
Google MapsのAPI v1の時代にAPI Keyを取得してあったのだが、古いAPI Keyは新しいAPIでは使うことができない。(できなかった)

まず準備として、API Keyを取得する。
Get API Key  |  Maps JavaScript API  |  Google Developers

英語だが特に難しいことは無かった。上記のGoogleのページのGET STARTEDというところから始めて、Google Cloud Platform Consoleというサイトでフォームに情報を埋めていけばAPI Keyを取得できる。
Google Cloud Platformは、Googleのクラウドサービスのことで、クラウドの計算資源とか各種アプリを利用することができるサービスだ。
Google Mapsの利用はクラウドサービスとはちょっと違うのだが、ユーザー管理とか課金のサイトを別々に作るのが面倒なのか、統合されているみたいだ。
クレジットカード情報も登録するので、ちょっと緊張するのだが、こちらが有料サービスに切り替えないかぎり課金は発生せず、無料分のサービスのみということなので、登録した。

次に、Google Cloud Platforn Consoleという設定などを管理するページで、API Keyを有効にするGoogle Mapsのサービスを設定する。
自分はGeolocation APIと、Static Maps APIを使うつもりなので、この2つのみでAPI Keyが使える設定にした。

API Keyは各ユーザー個人の固有のものなので、他に漏らさないように管理する。
続きを読む

Windows 10でcurlを使うには

Windows 10でcurlを使うには、特にWindows版のcurlを探してインストールとかをしなくても最初からcurlが使えるようになったらしい。

Windows 10のApril 2018 Updateから入っているのだそうだ。
WindowsのコマンドプロンプトからOS標準のsshやtarやcurlコマンドを使う そど


続きを読む

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で、周囲のWiFiのアクセスポイントを検索して、そのログを取るソフトを作ってみた – その1

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

とりあえず、一定時間毎に、時間と、SSIDとRSSIを記録するというのを作ってみた。
ログを取ったあと、そのログを解析して、無線AP情報から緯度経度を推定するサービスと連動させて移動の軌跡を出せるかなあ、とか考えている。

コードはLua言語で書いた。FlashAir W-04で動かしている。
test.luaというファイル名でFlashAirのSDカードストレージのルートフォルダーに入れる。

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=="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

続きを読む

Connect(); Japan 2018 (名古屋サテライト会場)に行ってきた

Connect(); Japan 2018 (名古屋サテライト会場)に行ってきた。

MicrosoftのConnect();という.NETやAzureなどのクラウド関係の新技術の発表イベントが、先日アメリカで開催されたのを受けて日本でその振り返り会のような忘年会イベントをやるということらしい。
東京、大阪だけでなく、名古屋でもサテライト会場でイベントが開催されるというので行ってみた。

続きを読む

久しぶりにWiiリモコンhackを弄っている – WiiリモコンとWindows PCのペアリング問題について

久しぶりにWiiリモコンhackを弄っている。

Wiiリモコンを分解して、IRセンサーを取り外して残った基板をBluetooth→I2C変換用のモジュールとして利用するというhackだ。

Wiiリモコンhackには1つ問題があり、Windows PCとWiiリモコンをBluetoothでペアリングする手順でトラブってしまうケースが多いということだ。
続きを読む