Arduino/Elegooプロトタイピング
ファスト・プロトタイピングの例として、超音波センサとBluetoothを組み合わせたモジュールの製作過程を紹介する。状況設定は次のようである:
日本国内のほとんどの家庭にあると思われるあるタンクについて、その漏水の有無を確認する必要が生じた。水のレベルを測るセンサは様々な種類があるが、ここでは価格や再利用性を考えて、非接触で水面までの距離を測ることのできる超音波センサを選択し、Bluetoothでコンピュータに計測データを飛ばすことで時間と共に漏水が発生しているかどうかを確認することにした。
ハードウェア
まず、Amazonなどで次の2つの部品を購入し、これらを利用して次のような回路を作成した。HC-05のRXDは3.3V、UNO R3のTXは5Vであるため、Voltage Dividerを挟んで減圧している。
- Uno Project Super Starter Kit (Elegoo)
- HC-05 6 Pin Wireless Bluetooth RF Transceiver Module Serial BT Module for Arduino (Hiletgo)
回路図
ソフトウェア
続いて、Arduino IDEをダウンロードし、次のコードを書いてUNO R3にロードする。ロードするには、コンピュータとUNO R3をUSBケーブルで接続し、Tools > BoardからArduino/Genuino UNOが選択されていることを確認する。この際、UNO R3のRXおよびTXピンに接続されたケーブルを一旦外しておく必要がある。
// define pin numbers const int trigPin = 12; const int echoPin = 11; // define variables long duration; float distance; void setup() { pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output pinMode(echoPin, INPUT); // Sets the echoPin as an Input Serial.begin(9600); // Starts the serial communication } void loop() { // clear the trigPin digitalWrite(trigPin, LOW); delayMicroseconds(2); // set the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // read the echoPin and return the sound wave travel time in microseconds duration = pulseIn(echoPin, HIGH); // calculate the distance distance= duration*0.034/2.0; // print the distance on the Serial Monitor Serial.println(distance); delay(10000); }
コード
さらに以下の作業を行うことで、このモジュールがおよそ10秒おきに計測データを送信し始める。送られてきたデータを見るには、Arduino IDEのSerial Monitorを開き、baud rateを38400に変更すること、およびTools > PortがHC-05に設定されているか確認することが必要である。
- UNO R3のRXおよびTXピンに接続されていたケーブルを元に戻す
- コンピュータとBluetoothデバイスをペアリングする
- UNO R3にバッテリまたはUSBで電源供給する
測定結果
作成したハードウェアを問題となっているタンクの上方にセットし、5時間強観測して得られた結果が以下である。
- 値が揺れているのは、水面が揺れている訳ではなく、センサの解像度が3mm程度であるためである。本来ならばコードの中で丸めて整数のcmを取るべきであるが、今回はセンサの揺らぎを見るために敢えて表示した。
- ここから、漏水はしていないものの給水がオーバーシュートしている – すなわち、給水後に必ず一定量の無用な排水があり、センサから約12cmの距離で一定となることが分かる。
- グラフの値はセンサからの距離であることに注意。距離が大きくなるとタンクは排水を行なっており、小さくなると給水している。
測定結果
所感
センサの解像度・消費電力など幾つかの問題が明らかになった一方で、僅か数十ドルと1日、2日で目的の可視化を達成することができた。キット内のたった1つのセンサしか使っておらず、同じセンサの再利用が可能であることを考えると、ハードウェアの価格は極めて低くなるだろう。
このようなプロトタイピングは、アイディアの実現可能性の判断や次にフォーカスすべき課題を明らかにするが、今日では上述のような電子部品が簡単・安価に入手できるので少ない投資で実施できる可能性が高い。IoTソリューションの効果予測などに役立てることができるだろう。
なお、このタンクが何であるかは既にご推察の通りであると思う。
本件に関するお問い合わせはこちらまで。