読者です 読者をやめる 読者になる 読者になる

Lynx-EyEDの電音鍵盤 新館

広帯域制御屋の駄文とか

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

ミッション成功

おしまい。