Espruino+ESP-WROOM-02で、BME280から取得したデータをMQTTに送る

まだまだ続くEspruinoシリーズです。

Espruino自体には通信機能はないんですが、最近ESP-WROOM-02というWi-Fiモジュールが話題です。
マイコン向けにWi-Fi機能を提供するモジュールとしては、CC3000などがありましたが、ESP-WROOM-02というか、これに入っているESP8266というチップのいいところは、なつかしいATコマンドを使って、シリアル接続でデータの送受信ができるところです。シリアルだとせいぜい115200bpsなので、速度的にはWi-Fiの性能をほとんど活かせませんが、マイコンからそんなに高速な通信は必要ないので、簡単に制御できる特徴が活きてきます。そしてモジュール自体にアンテナも、技適マークもついていて、大きさも小さくまとめられています。端子もちょっと小さめですが手で半田付けができるレベルで、価格もとても安いので、電子工作ではとても使いやすいモジュールということで最近流行っています。

さて、このWi-Fiモジュールを使って、以前作成したEspruino+BME280センサーモジュールからとったデータをWi-Fi経由でMQTTブローカーに送ってみましょう。先日作った回路に、シリアル接続でESP-WROOM-02を追加しています。BME280側も、前回の回路は設定用のピンをオープンにしたままで不安定だったので,しっかり全ピン接続しています.具体的にはEspruinoモジュールにつけたドキュメントの通りです.

接続としてはこれでいいんですが,このままだと3.3Vの電源がEspruinoからの出力だけで,Wi-Fiを駆動するには足りなかったようです.BME280とESP-WROOM-02を両方つないだ状態で正常動作させるには,別途TWE-Liteのときにも使ったUSB接続電源ユニット(写真右端)をつけて,そこから電源供給してあげる必要がありました.

そしてEspruinoで動かすJavaScriptコードはこちらです.

Espruinoは,モジュールとしてすでにESP8266,およびMQTTプロトコルがあるので,それを読み込むだけで非常に簡単にBME280から読み込んだ値をMQTTで送信することができました.
まぁ,netatmo 屋内モジュールの機能の一部を自作しただけ,ともいえる今回の工作でした.