マイクロビットとESPr Developerでシリアル通信する

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

先日、マイクロビットとESPr Developerを使って、ゲートウェイをつくりました(記事は こちら)。

エッジノード(マイクロビット)で採取したデータを、以下の流れで、Webサーバに送信するためのものです。

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

ゲートウェイ内部は、マイクロビットとESPr Developerの2チップ構成になっており、マイクロビットからESPr Developerへは、シリアル通信でデータを送ります。



ここでは、マイクロビットで作ったデータを、シリアル通信でESPr Developerに送る方法を説明します。

なお、ここで使用しているパソコン環境は以下のとおりです。

  • PC : Surface Pro 3
  • OS : Windows 10 Pro(バージョン 1903)
  • ブラウザ : Microsoft Edge

マイクロビットのプログラム

まずは、マイクロビットのプログラムを作成します。このプログラムでは、0.1秒毎に、文字列をシリアル通信で書き出します。書き出すのは、1桁から50桁までの文字列です。

  • MakeCode for micro:bitを起動します(MakeCode for micro:bitのインストール方法は こちら)。
  • 「マイプロジェクト」>「新しいプロジェクト」をクリックします。
  • 以下のとおり、プログラムを入力します。
  • パソコンとマイクロビットをUSBケーブルで接続します。ファイル名を変更後、「ダウンロード」をクリックし、プログラムをマイクロビットに転送します。

ESPr Developerのスケッチ

次に、ESPr Developer用のスケッチを作成します。このスケッチでは、受信したデータを、速やかにシリアルモニタに表示させます。

  • Arduino IDEを起動します。
  • 「ファイル」>「新規ファイル」を選択して新規ウィンドウを開き、以下のとおり、スケッチを入力します。
#include <SoftwareSerial.h>

SoftwareSerial swSer(14, 12, false, 256);

void setup() {
  Serial.begin(115200);
  swSer.begin(9600);

  Serial.println("\nSoftware serial test started");
}

void loop() {
  while (swSer.available() > 0) {
    Serial.println(swSer.readStringUntil('\n'));
    yield();
  }
}
  • パソコンとESPr DeveloperをUSBケーブルで接続します。「ツール」>「シリアルポート」を自分の環境のポートに変更した上で、画面左上の「→(マイコンボードに書き込む)」をクリックします。
  • 画面下に「ボードへの書き込みが完了しました。」と表示されれば、正常にプログラムを書き込むことができています。

マイクロビットとESPr Developerの接続

マイクロビットとESPr Developerを、以下のとおりつなぎます。ESPr Developerとパソコンは、USBケーブルで接続したままにしておきます。これにより、マイクロビットの電源は、ESPr Developer経由で供給されることになります。

マイクロビット ESPr Developer
GNDGND
3V3V3
014
112

Arduino IDEのシリアルモニタを開くと、以下のとおり、マイクロビットで作ったデータが表示されており、マイクロビットのデータが、正しくESPr Developerに送られていることが確認できます。

 

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


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