lynxeyedの電音鍵盤

MBDとFPGAと車載で使うデバイスの備忘録

FlashAir W-03シリーズからTwitterにポストする

変態SDカード一族

GPIOがブラウザなどから自在に操れてしまう一部の頭がおかしい人たちに人気のFlashAirですが、
W-03(SD-WEシリーズ)からLuaスクリプトが動くので僕のような電子工作やネットワーク初心者でも格段に自由度の高いお遊びができます。わーい

https://flashair-developers.com/ja/documents/api/lua/

というわけで、さくっとTwitterにFlashAirのLuaスクリプトからポストしてみました。今回もStewgate-Uを使います。
TwitterにポストするのでFlashAirからも”外の世界”にアクセスできないといけません。FlashAirをインターネット同時接続モードにします。

不可視フォルダになってる/SD_WLAN/CONFIGを以下のように修正します。

APPMODE=6
APPNAME=myflashair
APPSSID=flashair
APPNETWORKKEY=
VERSION=FA9CAW3AW3.00.00
PRODUCT=FlashAir
VENDOR=TOSHIBA
LOCK=1
DNSMODE=0
BRGSSID=無線LANのSSID
BRGNETWORKKEY=無線LANのパスワード
APPAUTOTIME=0

保存します。

ルートディレクトリにLuaスクリプトを書きます。Twitterは同じメッセージを連投できないのでNICTからプレーンテキストでJST時刻を取得しメッセージの末尾にします。
Stewgate-Uについてはこちら

bb,cc,hh = fa.request{url = "https://ntp-a1.nict.go.jp/cgi-bin/time",
 method = "GET"
}
contenttype = "application/x-www-form-urlencoded"
msg = "うんこ"
mes = "_t=ここにStewgate-Uから発行されたトークンを書く&msg="..msg .. " posted at ".. tostring(bb)
blen = string.len(mes)
b,c,h = fa.request{url = "http://stewgate-u.appspot.com/api/post/",
 method = "POST",
 headers = {["Content-Length"] = tostring(blen),
 ["Content-Type"] = contenttype},
 body = mes
}
print(tostring(b))

これをscript.luaなどという名前でFlashAirのルートディレクトリに保存します。(UTF-8 BOM無しエンコードで保存)
FlashAirを一度アンマウントし、再マウントします。
しばらくすると”flashair”というSSIDが出現するのでPC等で接続しておきます。

ブラウザでhttp://myflashair/script.lua にアクセスすると…
f:id:Lynx-EyED:20150422204911p:plain

ミッション成功

おしまい。