FlashAirでLuaを実行する

最終更新: 2017/8

このチュートリアルでは、 基本的なスクリプトの実行方法をみていきます。

Luaスクリプトの実行方法には下記の3種類があります。

それではさっそく"Hello World"プログラムを実行してみましょう。まずは簡単なluaスクリプトを作成しておきます。

/HelloWorld.lua

print("Hello World!")
local file = io.open("Hello.txt", "a")
file:write("Hello There!\n")
file:close()

このスクリプトは、 Hello World! と出力し、 Hello.txtファイルに、 Hello There! という文字列を追加します。

FlashAir起動時に実行する

  1. 作成したLuaスクリプトをFlashAirのルートフォルダに保存します。
  2. /SD_WLAN/CONFIGファイルに、 LUA_RUN_SCRIPTパラメータを追加します。スクリプトのファイルパスを指定します。 引数には、スクリプトのファイルパスを絶対パスで指定します。
LUA_RUN_SCRIPT=/HelloWorld.lua
  1. FlashAirをSDメモリカードスロットから一旦取り出し、再度挿入します。
  2. 以降、起動5秒後に指定したLuaスクリプトが実行されます。
  3. FlashAirをSDメモリカードスロットから一旦取り出し、再度挿入後、Hello.txtファイルを開きます。
  4. Hello.txtファイルに、 Hello There! という文字列が表示されます。

FlashAirへのファイル書き込み時に実行する

  1. 作成したLuaスクリプトをFlashAirのルートフォルダに保存します。
  2. /SD_WLAN/CONFIGファイルに、 LUA_SD_EVENTパラメータを追加します。スクリプトのファイルパスを指定します。 引数には、スクリプトのファイルパスを絶対パスで指定します。
LUA_SD_EVENT=/HelloWorld.lua
  1. FlashAirをSDメモリカードスロットから一旦取り出し、再度挿入します。
  2. 以降、SDメモリカードの書き込みが発生した場合に指定したLuaスクリプトが実行されます。ファイルをFlashAirにコピーしたり、FlashAirに保存されたファイルを編集してみましょう。
  3. FlashAirをSDメモリカードスロットから一旦取り出し、再度挿入後、Hello.txtファイルを開きます。
  4. Hello.txtファイルに、 Hello There! という文字列が表示されます。すでに実行済みの場合は、文字列が追加されます。

LUA_RUN_SCRIPTとLUA_SD_EVENTを併用する

LUA_RUN_SCRIPTLUA_SD_EVENTを併用することができます。LUA_RUN_SCRIPTの動作が終了するまでLUA_SD_EVENTは無視されます。 LUA_RUN_SCRIPTが実行終了した後LUA_SD_EVENTが実行可能になります。

FlashAirへのHTTPアクセス時に実行する

  1. HTTPリクエストに対する応答を標準出力に書き込むLuaスクリプトを作成します。出力にはHTTPレスポンスヘッダも含む必要があります。
  2. 作成したLuaスクリプトをFlashAirのルートフォルダに保存します。
  3. FlashAirに無線LANで接続したPCのブラウザなどのクライアントプログラムから、スクリプトのファイルパスを指定します。
http://flashair/HelloWorld.lua 
  1. スクリプトの標準出力がブラウザの画面に表示されます。
  1. Hello.txtファイルに、 Hello There! という文字列が表示されます。すでに実行済みの場合は、文字列が追加されます。

サンプルコード

リポジトリを見る(GitHub)

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