ESP-WROOM-02に距離センサー(HC-SR04)を接続して距離を測定する – 自由研究

こんばんは、よつばです。
最近、ESP-WROOM-02 (ESP8266) 現:ESPr Developerで遊んでいます。今回は距離センサー(HC-SR04)を接続してみたので、その様子を紹介します。

距離センサーはどうやって距離を測るか

HC-SR04では、音波を射出し、受信までに要した時間から、距離を算出します。
音速は331.5+0.6×温度m/s (近似式)です。従って気温20度のときの音速は343.5m/sです。受信までの時間が0.02秒なら、往復なので2で割って、0.01秒で343.5m進んだことになるので、距離は3.435mとなります。

温度センサーが必要

正確な距離を測るためには温度センサーが必要でした。今回は音速340m/sで近似して実験してみます。

材料

秋月電子で400円程度です。Amazonでは200円程度で売っていました。
 

接続

HC-SR04には4本端子があります。電源2本(Vcc, GND)、Trig、Echoです。Vccは5Vなので、ESP-WROOM-02のVoutを繋ぎます。
GNDにはGNDを繋ぎます。
Trigは音波を射出する端子、Echoは音波を受信する端子。それぞれ任意のGPIOに繋ぎます。私はTrig=4、Echo=5にしました。
 

電源電圧に関する注意

VoutはVinにかけた電圧、またはmicroUSBの電圧がそのまま出ます。ESP-WROOM-02がmicroUSB給電の場合は、Voutも5Vが出力されて問題ありません。電源をVinから取る場合、ESP-WROOM-02が3.3V動作なので、もし5V未満でESP-WROOM-02に電源供給をしている場合は、Voutも5V未満となるため、HC-SR04の電源としては不足することになります。

ソースコード


/********************
 * 距離センサーHC-SR04を使用して距離を測定する
 ********************/
// 設定
const int TRIG = 4; // Trig出力ピン
const int ECHO = 5; // Echo入力ピン

void setup() {
 Serial.begin(9600); // シリアルモニタとの接続レート9600kbps
 pinMode(TRIG, OUTPUT); // 出力ピンの設定
 pinMode(ECHO, INPUT); // 入力ピンの設定
 digitalWrite(TRIG, LOW); // 初期状態をLOWにセット
}

void loop() {
 digitalWrite(TRIG, HIGH); // 音波出力を開始
 delayMicroseconds(10); // 10μ秒間射出
 digitalWrite(TRIG, LOW); // 音波出力を停止
 
 double time = pulseIn(ECHO, HIGH); // 出力した音波が返って来るまでの時間を取得
 double distance = (time / 1000 / 1000) / 2 * (340 * 100); // 計測時間に音速を掛けて距離を算出
 // time(μ秒)を秒に換算する(÷1,000,000)、片道時間(÷2)、音速(m)をcmに換算する(×100)
 Serial.print(distance);
 Serial.println(" cm");
 delay(1000);
}

測定実施

ESP-WROOM-02に書き込んで実行したところ、計測結果が表示されました。

距離の精度

およそ10.4cm ~ 10.8cmと表示されていました。
物理的な距離は10cmなので、実際より少し長めにでています。
これは気温が低いため、計算に使用した音速340m/sが実際の音速より速く、時間×速度の計算結果である距離がより長く算出されたためと思われます。

 

測定結果のバラツキ

今回1秒毎に測定していますが、結果は10.4cm ~ 10.8cmでブレています。
センサー値を何かの入力に使うには、このブレを抑えるために、フィルタを用います。フィルタについては別の記事で書きます。

まとめ

今回、ESP-WROOM-02と距離センサーHC-SR04を接続し、音波を使って距離を測定してみました。温度センサーを用いなかったため、正確な距離にはなりませんでした。また、センサーの値はばらつくため、利用するためにはフィルタが必要です。次回はフィルタを追加してみたいと思います。

One Reply to “ESP-WROOM-02に距離センサー(HC-SR04)を接続して距離を測定する – 自由研究”

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です