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

2015年9月13日

まだまだ続く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 屋内モジュールの機能の一部を自作しただけ,ともいえる今回の工作でした.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.