Arduino超音波セキュリティ・システム:HC-SR04で距離検知・3段階アラーム
概要
超音波距離センサーHC-SR04を用い、検知距離に応じて緑→黄→赤のLEDとブザーで警告するシンプルな防犯/近接アラーム・システムです。ブレッドボード上で組み立て可能、コードも100行未満。電子工作入門・センサー制御学習に最適です。
必要なパーツ
- Arduino UNO ×1
- HC-SR04 超音波距離センサー ×1
- ブレッドボード ×1
- LED 緑/黄/赤 ×各1
- ブザー(アクティブ/パッシブどちらでも可) ×1
- 220Ω 抵抗 ×3(LED電流制限用)
- ジャンパー・ワイヤー ×10本程度
配線
| 部品 | Arduinoピン | 備考 |
|---|---|---|
| HC-SR04 VCC | 5V | ブレッドボード+レールへ |
| HC-SR04 GND | GND | ブレッドボード-レールへ |
| HC-SR04 Trig | D2 | 出力 |
| HC-SR04 Echo | D3 | 入力 |
| 緑LED アノード | D6 | 220Ω経由でカソードをGND |
| 黄LED アノード | D5 | 220Ω経由でカソードをGND |
| 赤LED アノード | D4 | 220Ω経由でカソードをGND |
| ブザー 長い足 | D7 | 短い足を220Ω経由でGND(音量調整/保護) |
動作仕様
- 50cm以上:全LED消灯、ブザー無音(安全圏)
- 20-50cm:緑LED点灯(注意)
- 5-20cm:黄LED点灯(警戒)
- 5cm未満:赤LED点灯+ブザー鳴動(侵入/衝突迫る)
- 距離はシリアル・モニタへcm単位で出力
- 測定間隔:300ms
距離計算の原理
Trigに10µsパルス送信→EchoがHIGHになる時間(µs)をpulseIn()で取得。音速340m/s換算で:
distance_cm = (duration_us / 2) / 29.1;
※元コードの (duration/5)/29.1 は誤記の可能性大。標準式は上記。
スケッチのポイント
#defineでピン割り当てを一元管理tone(buzzerPin, frequency)でブザー駆動(周波数可変可)- 距離判定は
if-else ifチェーンで排他的制御 - 範囲外(0cm以下や50cm超)は
noTone()でブザー停止
元コードのバグと修正点
- 変数名不一致:
distanceincmとdistanceが混在 → 統一 distanceinsm未定義変数使用 → 削除/修正- ブザー・ピン名:
soundbuzzervsbuzzer→ 統一 - 距離計算式の
/5除去
修正済みスケッチを記事末尾に掲載推奨。
拡張アイデア
- OLEDディスプレイ(SSD1306)で距離数値/バー表示
- サーボ・モーターでカメラ/センサーをスキャン
- Wi-Fi/Bluetoothでスマホ通知(ESP8266/ESP32置き換え)
- ログ記録(SDカード/RTC)で不在時の侵入履歴管理
- 超音波センサー複数台で広角カバー/死角解消
まとめ
HC-SR04の基本動作を理解し、条件分岐で多段階アラームを実装する初心者向け定番プロジェクト。配線が簡単で即座に動作確認でき、拡張性も高い。「距離を測って何かを制御する」IoTのエッセンスを最小構成で体験できます。
製造プロセス
- ESP32-CAMで作る動体検知セキュリティカメラ:Discord通知対応
- Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
- Arduino Nanoで37LEDルーレットゲームを自作:ヨーロピアンスタイル完全再現
- ATtiny85ミニアーケード:スネークゲーム - 手のひらサイズOLEDゲーム機の製作
- ポータブル距離検出器:Arduino Nano自作キット(HC-SR04、18650電源、3Dプリントケース付き)
- 1Sheeldで作るスマートホーム自動化&セキュリティシステム
- Arduino Nanoで構築するスマートホーム植物自動水やりシステム
- 銅メッキプロジェクト:Arduino UNOで作るスマート電気メッキシステム
- Arduino Nanoで作るNeoPixelマトリックス版Pongゲーム
- Arduinoシフトレジスタで美しい光のシーケンスを作成
- Arduino 製スマートプラグ - 120V 対応、RTC 内蔵で時刻制御可能なインテリジェントコンセント