先日、マイクロビットと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 |
---|---|
GND | GND |
3V | 3V3 |
0 | 14 |
1 | 12 |
Arduino IDEのシリアルモニタを開くと、以下のとおり、マイクロビットで作ったデータが表示されており、マイクロビットのデータが、正しくESPr Developerに送られていることが確認できます。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。