ESP32 チュートリアル 27/55 - 超音波センサーを使用した距離の測定 | SunFounderのESP32 IoT学習キット
このチュートリアルでは、ESP32を使用して超音波距離センサーを使い、距離を測定し、結果を画面に表示する方法を学びます。また、特定の範囲内に物体が検出されたときにブザーを鳴らす方法も探ります。このプロジェクトは、Wi-FiとBluetooth機能を統合したESP32マイクロコントローラーの多様性を示しており、さまざまなIoTアプリケーションに適しています。
超音波の原理
このガイド全体では、ハードウェアコンポーネントの説明、配線手順、およびプロジェクトを成功裏に実装するためのコードスニペットを見つけることができます。さらなる明確さのために、ビデオ(ビデオの00:00)を参照してください。
ハードウェアの説明
このプロジェクトの主な構成要素には、ESP32マイクロコントローラー、超音波センサー(HC-SR04)、およびブザーが含まれます。超音波センサーは、超音波を発信する送信機と、反射した波を受信する受信機の二つの主要な部分から構成されています。波が戻るのにかかる時間を測定することで、物体までの距離を計算することができます。
ESP32は中央コントローラーとして機能し、超音波センサーからのデータを処理し、測定された距離に基づいてブザーを制御します。検出された距離が定義された閾値未満になると、ブザーが鳴り、物体が近すぎることを示します。
データシートの詳細
| 製造業者 |
HC-SR04 |
| 部品番号 |
HC-SR04 |
| ロジック/IO電圧 |
5 V |
| 供給電圧 |
5 V |
| 出力電流(チャンネルごと) |
16 mA |
| ピーク電流(チャネルあたり) |
... |
| PWM周波数ガイダンス |
... |
| 入力ロジック閾値 |
... |
| 電圧降下 / RDS(on)/飽和度 |
... |
| 熱的限界 |
... |
| パッケージ |
... |
| ノート / バリアント |
測定範囲:2 cmから400 cm |
- センサーに5Vの適切な電源供給を確保してください。
- 超音波の干渉を避けるために、明確な経路を維持してください。
- 短い配線を使用して信号の遅延とノイズを最小限に抑えます。
- 正しいピン接続を確認して、誤通信を避けてください。
- さまざまな環境でセンサーをテストして、精度を確認してください。
配線指示書
ESP32-27_ultrasonic_wiring超音波センサーをESP32に配線するには、センサーのVCCピンをESP32の5Vピンに接続します。次に、センサーのGNDピンをESP32のいずれかの接地(GND)ピンに接続します。センサーのトリガーピン(Trig)はESP32のGPIO 26に接続し、エコーピン(Echo)はGPIO 25に接続します。この設定により、ESP32はセンサーに信号を送り、距離を計算するためにエコー信号を受信することができます。
ESP32-27超音波回路図
ブザーのために、正の(長い)脚をESP32のGPIO 12に接続し、負の(短い)脚をGNDに接続します。すべての接続がしっかりしていることを確認して、動作中にワイヤリングが緩むのを防ぎます。ブレッドボードを使用する場合は、ブザーの接続を適切に整列させて配線ミスを避けてください。配線の確認についてはビデオを参照してください(ビデオの05:12にあります)。
コード例とウォークスルー
コードは超音波センサーのピンを初期化し、シリアル通信を設定します。メイン関数、readSensorData()トリガ信号を送信し、エコーピンからの応答時間を測定する責任があります。
const int echoPin = 25;
const int trigPin = 26;
void setup() {
Serial.begin(115200);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
Serial.println("Ultrasonic sensor:");
}
コードは定義しますechoPinそしてtrigPin超音波センサーに接続されたピンの定数として。次に、setup()関数では、シリアル通信を初期化し、それに応じてピンモードを設定します。
float readSensorData() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long microsecond = pulseIn(echoPin, HIGH);
float distance = microsecond / 29.00 / 2;
return distance;
}
この抜粋は明らかにしますreadSensorData()トリガーピンに10マイクロ秒のパルスを送信する関数。それから、エコーピンが信号を受信するまでの時間を測定し、距離を計算してこの値を返します。
最後に、ループ関数は距離を継続的に読み取り、それをシリアルモニタに表示します。距離が20 cm未満の場合、ブザーが作動します。
デモンストレーション / 期待すること
プログラムを実行すると、ESP32はシリアルモニターに測定された距離をセンチメートル単位で表示します。センサーから20 cm以内に物体が入ると、ブザーが鳴ります。この動作は、センサーの前に様々な距離で物体を置くことでテストできます。逆接続に注意し、動作中の問題を避けるために接続が指定通りに行われていることを確認してください(動画内08:00参照)。
ビデオのタイムスタンプ
- 00:00 開始
- 1:46 超音波センサーの紹介
- 6:02 配線の説明
- 7:37 ESP32 Arduinoコードの説明
- 11:33 Arduino IDEでESP32ボードとCOMポートを選択しています
- 13:15 距離測定のデモンストレーション
- 16:43 距離を持ったタッキングアクション: ブザー
画像
ESP32-27_ultrasonic_wiring
ESP32-27_ultrasonic_schematic
ultrasonic_principle
ESP32-27_ultrasonic_wiring
ESP32-27_ultrasonic_schematic
827-ESP32 Tutorial 27/55- Arduino code for ultrasonic sensor
言語: C++