今回のハイライトです。おそらく見返すとしたらこの画像なのでクリックしてご活用ください。
こんにちは押切です。
アドベントカレンダーブログ2日目ですが、この企画を聞く前に書いたものなので、
通常運用で書かせていただきます。タイトルが長く分かりにくくなって済みません…。
この記事はCerevo Maker seriesのESP8266を使い倒して、スマホで動くミニ四駆をつくる、といったような作例を連載している記事です。過去の記事はこちらをご参考ください。
前回お知らせしたミニ四駆改造ワークショップ第1回、第2回ともはおかげ様で好評でした。
何より参加者全員分動作してレースができ、関係者一同安心しました。
参加して下さった方々、ありがとうございました。
第3回以降は未定ですが、今回の経験を今後の活動に活かしたいと思います。
今回は予告通り「Lua」を開発環境とし、ドアの開け閉めを検知してtweet、さらにあまりに外に出ないと、「引きこもり係数」が上昇し勝手に引きこもり宣言を執行するtweet発信するデバイスを作りたいと思います(が情報量の都合上前後編構成にさせていただきます)。
読者のみなさんは薄々感じていたかと思いますが、これまではIoTといえるほどのものではありませんでした。今回はIFTTTを使って広大なネットワークの海に漕ぎだします。
まず「Lua」の環境を整えるために、ESP8266のファームを書き換えます。
残念ながらファームの書き換え方法には機種依存があるので、WindowsとMacに分けて解説します。Windowsの方がGUIがあり初心者向けです。
・「Lua」とは?
汎用スクリプト言語です。ESP8266以外にも規模の小さめのマイコンにも対応します。一度書き込めば、再度コンパイルして書き込みしなくても、スクリプトを打ち込むだけで手軽に開発することができます。
・「Lua」ファームの書き込み「Windows」編
「NodeMCU」を使う
https://github.com/nodemcu/nodemcu-flasher
で書き込みソフトをDL。FT232RLなどシリアル変換モジュールで書き込むことができます。
ESP8266Flasherを起動、使用するCOM portを選択。
書き込み用ファイルは、
https://github.com/nodemcu/nodemcu-firmware/releases
から、バイナリファイルを持ってくる
[Operation]タブに戻って[Flash(F)]ボタンをクリックすると、ボタンが[Stop(S)]に変わり、プログレスバーが出て書き込み開始。
[Stop(S)]が[Flash(S)]に戻って、右下にReady表示が出れば書き込み終了。
書き込んだらモジュールを「FLASH Boot Mode」戻す
これでWindowsでの書き込みは終了。
・「Lua」ファームの書き込み「Mac」編
esptoolを使う
1)Macの「ターミナル」を起動
Mac標準アプリの「ターミナル」を使ってインストールします。
ターミナル自体に馴染みのない方も多いかと思います。つまづきそうな箇所はなるべく解説しますが、この記事で詳細な手順まで説明すると字数が膨大になるので、
各自分からない点は検索しながら進めていただければと思います。
Macintosh HD > アプリケーション > ユーティリティから、「ターミナル」を起動
2)esptoolをインストール
$ git clone https://github.com/themadinventor/esptool/
$以下をコンソールに入力します。
ここでesptoolがインストール出来ればOKですが、
環境によって、Xcodeにagreementする必要があります。
その場合は下記補足1を参照ください。
補足1
$ sudo xcodebuild -license
と打って、passwordを入力後、文字が大量に表示されるので、
[space]で最後まで文字を送ってから、
$ agree
と入力すればOK。3)に進みます。
もし、passwordが受け付けない場合は一端rootに設定する必要があるので、
補足2を参照下さい。
補足2
・suコマンドでrootに入り、パスワードを設定
$sudo passwd root
Changing password for root.
New password:
と表示されるのでパスワード入力
Retype new password:
パスワードを再度入力
$ su -
rootのパスワードを入力すれば、成功
「$」が「#」に変化
$ exit
を入力して、#に戻し、補足1を再度試す
3)py serialをインストール
$ sudo python setup.py install
と表示されればインストールOK
4)書き込み用fileをDL
https://github.com/nodemcu/nodemcu-firmware/releases
のbinファイルを落とします。integerは整数のみ、floatは小数点を扱えます。
DLしたbinファイルは、esptoolと同じフォルダに入れておくと分かりやすいです。
ユーザー名の直下にあるかと思いますが、
Finderの右上の検索窓でesptoolと入力して、フォルダ検索してもよいと思います。
コンソールで
$ ls /dev/tty*
/dev/tty.usbserial-DJ004MBQ /dev/ttyt1
$ cd esptool
$ sudo python esptool.py --port /dev/tty.usbserial-DJ004MBQ write_flash 0x00000 nodemcu_integer_0.9.6-dev_20150704.bin
・Luaスクリプトの記述
シリアルコンソールで記述できます。
Arduinoのシリアルモニタを使ってみます。
ボーレートは9600 デリミタはCR,LFを設定してください。
D2にLEDを繋いだ状態の例です。
コマンドだけでコンパイルなしにLEDをON/OFFできます。
起動後、あらかじめ書いたスクリプトを自動実行することも出来ます。
・Lua記述にEsplorerを使う
シリアルコンソールだと編集が面倒なので、
ESP8266専用ツールのEsplorerを使うと便利です。
下記からDL出来ます。
windowsでもMacでも使えますが、
JAVAをインストールする必要があります。
設定だけで膨大な情報になってきたので今回はさわりだけで。下記のような画面です。
・IFTTTで外界へ!
ちょっと唐突ですが、ESP8266に連動してtweetするには、ローカルネットワークでなく、外部のネットワークに接続してWebサービスを使用する必要があります。
最近までより専門知識が必要だったのですが、IFTTTによって、電子工作レベルでも手軽に可能になりました。
IFTTTとは、
if this then thatのから名付けられ、Webサービスを相互に連結することが可能です。
そして今年に入ってから、IFTTTにMaker Channelが出来たことで、電子工作分野でもArduinoやRaspi、ESP8266でもTwitterなどのWebサービスと連結できるようになりました。
・IFTTTに登録
手順としては、他サイトでも解説されているので簡単に列挙します。
・IFTTTにSign Upする
・Maker ChannelにConnectする
著者プロフィール
- 2015年にCerevoへジョイン。電気エンジニアを経て、現在は執行役員