ESP8266にNodeMCUのファームウェアを使うと数百円でWi-Fiが使えてLuaでプログラミング可能なマイコンを作ることができます。Node.jsからハードウェアを操作できるWi-Fiモジュールを搭載したマイコンにTesselやSpark Coreなどありますがまだまだ高価です。ArduinoからWi-Fiモジュールを操作してMQTT通信をするスケッチ作成に苦労しているのでLuaから制御ができるのはとても魅力的です。
NodeMCUのアップロード
nodemcu-firmware
nodemcu-firmwareのリポジトリから最新ファームウェアのnodemcu_latest.binからダウンロードします。
nodemcu-flasher
64bit版Windows用のnodemcu-flasherを使いNodeMCUファームウェアをESP8266にアップロードします。ファームウェアは0x000000に書き込みます。Windowsホストマシンとの接続は前回を参考にします。ファームウェアを更新するときはESP8266のGPIO0はGNDに接続して、更新後は忘れず切断しておきます。
CoolTermからHello World
NodeMCUのExamplesを参考にCoolTermから簡単なLuaスクリプトを書いてみます。
> print("Hello World") |
init.lua
init.luaファイルはNodeMCUが起動したとき最初に読み込まれます。CoolTermからLuaスクリプトを書いてinit.luaを作成してみます。
最初にfile.format()
を実行してファイルの初期化をします。アップロード済みのファイルは削除されます。
> file.format() |
print関数を記述してファイルを閉じます。
> file.open("init.lua","w") |
init.lua
ファイルを読み込み文字列が書き込まれたか確認します。
> file.open("init.lua", "r") |
Lua Loader
CoolTermだとNodeMCUのリスタートがわかりずらいのでLua Loaderをインストールしてinit.lua
の動作を確認します。一度CoolTremからESP8266を切断しておきます。
Lua Loaderは最新版のLuaLoader.zip 0.87のzipファイルをダウンロードして解凍します。
LuaLoader.exeを管理者権限で実行します。
メニューのSettings > Comm Port Setting
を開きESP8266を接続したCOMポートを選択します。コンソールにnode.restart()
を入力して実行するとすぐにNodeMCUがリスタートします。init.lua
に書いたprint関数が実行されました。
> node.restart() |