マイクロビットとESPr Developerでゲートウェイをつくる

スポンサーリンク
お役立ち情報

マイクロビットは、低電力、無線通信が可能、という特長があり、IoT端末として最適なデバイスです。


プログラムの内容にもよりますが、単三電池2本で1ヶ月以上も連続稼働でき、また、無線で数十mの通信が可能なので、ケーブルなしで所望の場所に設置することができます。

ただ、IoT端末として利用するならば、端末で採取したデータを、インターネット経由でWebサーバに送信したくなりますが、マイクロビットの無線通信方式には「Bluetooth Low Energy(BLE)」、もしくはマイクロビット独自の「無線」しかなく、マイクロビットから直接、インターネット経由でのデータ送信はできません。

そのため、マイクロビットから無線で送られてきたデータを受信し、そのデータをWi-Fi経由でインターネットに送信するための「ゲートウェイ」を作ろうと思います。

以下のような仕様にします。

  • IoT端末(エッジノード)は、マイクロビットで作ります。エッジノードは電池で1ヶ月以上動かすことができ、データ送信には無線を使うので、ケーブルなしで運用できます。
  • エッジノード−ゲートウェイ間の通信には、マイクロビット独自の「無線」を使います。よって、ゲートウェイ側にもマイクロビットが必要になります。
  • ゲートウェイからWi-Fiでデータ送信するために、Wi-Fi通信機能のあるESPr Developerを使います。つまり、ゲートウェイ内部は、マイクロビットとESPr Developerの2チップ構成となります。なお、ゲートウェイは消費電力が比較的大きくなるので、電源をコンセントにつないで稼働させることを想定しています。
  • デートウェイ内部での、マイクロビットからESPr Developerへのデータ転送には、シリアル通信を使います。

ゲートウェイには、BLEとWi-Fiの両方が使用可能な、ESP32を使うという方法もありますが、今回は、仕様が分かりやすいマイクロビットの「無線」を使いたかったので、上記のように、「ESPr Developer」を使った2チップ構成にしました。


以下のようなデータの流れになります。

  • エッジノード(マイクロビット)→【無線】→ゲートウェイ(マイクロビット)→【シリアル通信】→ゲートウェイ(ESPr Developer)→【Wi-Fi】→Wi-Fiルータ

また、ゲートウェイを使うと、多数のエッジノードと、ひとつのゲートウェイでシステムを作ることができます。

つまり、数十mの空間の中に、多数のエッジノードを設置し、それらで採取したデータをひとつのゲートウェイで受け取り、Wi-Fi送信することができるので、コンセントは1口使うだけで、多くの場所のデータを採取することができます。

ブレッドボードを使って、簡単にゲートウェイを作りました。

今回、エッジノードでは、マイクロビット内蔵の加速度センサを使って、マイクロビットの傾きを採取することにしました、また、電源は、MI:電源ボードを使って、ボタン電池で供給するようにしたので、それ以外の外付け部品は不要です。

これで、データ採取してみました。
採取したデータは、インターネット上のWebサーバに保存し、変化の推移をグラフ表示できるようにしてみました。

エッジノードとして、マイクロビットを12台準備し、動作確認してみました。

なかなかいい感じにデータが採取できています。

今回は、あそびでデータを採取してみましたが、さまざまな有益な用途にも使えそうです。

ちなみに、上記のエッジノードについて、電池のもちを調べてみました。
1分毎にデータをゲートウェイに送信する条件で、単四電池2本で動かしてみたところ、22日間、連続稼働できました。
単三電池なら、55日間動かすことができる計算になります。

 

なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。