Arduino + Ultrasonic Parking Sensor: เริ่มต้นระบบวัดระยะและต่อยอดสู่ IoT
บทความสรุปจาก IFPE Electronics Challenge | Globalbyteshop Blog

วิดีโอสาธิตการทำงานของ Arduino Parking Sensor
ภาพรวมโปรเจกต์
เคยจอดรถแล้วกลัวชนกำแพงไหม? โปรเจกต์นี้จะพาทำ Parking Sensor แบบง่ายๆ ด้วย Arduino + Ultrasonic Sensor ที่จะส่งเสียง Buzzer เตือนเมื่อใกล้สิ่งกีดขวาง ยิ่งใกล้ยิ่งถี่!
โปรเจกต์นี้มาจาก IFPE Electronics Challenge ของนักศึกษาบราซิล เหมาะมากสำหรับมือใหม่ที่อยากเข้าใจหลักการทำงานของ Sensor และนำไปต่อยอดสู่ระบบ IoT ได้
แนวคิดและที่มา (The Concept)
โปรเจกต์นี้เกิดจากการแข่งขัน IFPE Electronics Challenge ที่ต้องการให้นักศึกษา ประยุกต์ใช้ความรู้อิเล็กทรอนิกส์แก้ปัญหาในชีวิตจริง
ปัญหา: การจอดรถในที่แคบโดยไม่มีตัวช่วยวัดระยะ อาจทำให้ชนสิ่งกีดขวางได้
แนวทางแก้: ใช้ Ultrasonic Sensor วัดระยะ แล้วแจ้งเตือนด้วยเสียง Buzzer
อุปกรณ์ที่ต้องใช้ (Things)
Hardware
| อุปกรณ์ | จำนวน | หมายเหตุ |
|---|---|---|
| Arduino UNO | 1 | หรือ Arduino Nano ก็ได้ |
| Ultrasonic Sensor HC-SR04 | 1 | ตัววัดระยะทาง |
| Buzzer (Piezo) | 1 | แบบ Active หรือ Passive |
| Breadboard | 1 | สำหรับต่อวงจรทดลอง |
| สายไฟ Jumper | หลายเส้น | Male-to-Male |
Software
- Arduino IDE - โปรแกรมเขียน Code และ Upload
- Tinkercad (Optional) - จำลองวงจรออนไลน์ก่อนต่อจริง
หลักการทำงาน (How it Works)
Ultrasonic Sensor HC-SR04 ทำงานคล้ายกับค้างคาว คือส่งคลื่นเสียงความถี่สูง (Ultrasonic) ออกไป แล้ววัดเวลาที่คลื่นสะท้อนกลับมา
สูตรคำนวณระยะทาง:
ระยะทาง (cm) = (เวลา × 0.034) / 2
* หาร 2 เพราะคลื่นเดินทางไป-กลับ
ขั้นตอนการทำงาน:
- 1. Arduino ส่งสัญญาณ Trigger ไปที่ Sensor (10 microseconds)
- 2. Sensor ส่งคลื่น Ultrasonic ออกไป
- 3. คลื่นชนวัตถุแล้วสะท้อนกลับ
- 4. Sensor รับคลื่นที่ Echo Pin
- 5. Arduino คำนวณระยะทางจากเวลา
- 6. ถ้าระยะน้อยกว่าที่กำหนด Buzzer จะดัง
แผนผังวงจร (Schematics)
แผนผังการต่อวงจร Parking Sensor จาก Tinkercad
การต่อวงจร (Hardware Stack)
การต่อ Ultrasonic Sensor HC-SR04
| HC-SR04 Pin | Arduino Pin | คำอธิบาย |
|---|---|---|
| VCC | 5V | จ่ายไฟ +5V |
| GND | GND | กราวด์ |
| Trig | Pin 9 | สัญญาณ Trigger |
| Echo | Pin 10 | รับสัญญาณสะท้อน |
การต่อ Buzzer
| Buzzer Pin | Arduino Pin |
|---|---|
| + (Positive) | Pin 11 |
| - (Negative) | GND |
โค้ด Arduino (Code)
โค้ดด้านล่างจะอ่านค่าระยะทางจาก Ultrasonic Sensor แล้วสั่ง Buzzer ให้ดังเมื่อระยะน้อยกว่า 50 cm ยิ่งใกล้ Buzzer จะดังถี่ขึ้น
// Parking Sensor with Arduino
// Ultrasonic HC-SR04 + Buzzer
// กำหนด Pin
const int trigPin = 9;
const int echoPin = 10;
const int buzzerPin = 11;
// ตัวแปรเก็บค่า
long duration;
int distance;
void setup() {
// กำหนดโหมด Pin
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
// เปิด Serial Monitor (ดู Debug)
Serial.begin(9600);
}
void loop() {
// ส่งสัญญาณ Trigger
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// อ่านค่าเวลาจาก Echo
duration = pulseIn(echoPin, HIGH);
// คำนวณระยะทาง (cm)
distance = duration * 0.034 / 2;
// แสดงค่าใน Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// ตรวจสอบระยะและสั่ง Buzzer
if (distance < 10) {
// ใกล้มาก - ดังต่อเนื่อง
tone(buzzerPin, 1000);
}
else if (distance < 30) {
// ใกล้ - ดังถี่
tone(buzzerPin, 1000);
delay(100);
noTone(buzzerPin);
delay(100);
}
else if (distance < 50) {
// ปานกลาง - ดังห่าง
tone(buzzerPin, 1000);
delay(200);
noTone(buzzerPin);
delay(300);
}
else {
// ไกล - ไม่ดัง
noTone(buzzerPin);
}
delay(50);
}
อธิบายโค้ด:
-
trigPin/echoPin- Pin สำหรับ Sensor -
pulseIn()- ฟังก์ชันวัดเวลาที่ Echo Pin เป็น HIGH -
tone()- สั่งให้ Buzzer ดังที่ความถี่ที่กำหนด -
noTone()- หยุด Buzzer - การ
delay()ระหว่าง tone/noTone ทำให้เกิดจังหวะดังๆ หยุดๆ
บทสรุปและการต่อยอด (Academic Reflection)
สิ่งที่ได้เรียนรู้:
- หลักการทำงานของ Ultrasonic Sensor
- การคำนวณระยะทางจากเวลาและความเร็วเสียง
- การใช้ Conditional Logic (if-else) ควบคุมการทำงาน
- การใช้ tone() / noTone() สร้างเสียงเตือน
ต่อยอดสู่ IoT:
- ESP32/ESP8266 - เปลี่ยนจาก Arduino UNO มาใช้บอร์ดที่มี WiFi แล้วส่งข้อมูลระยะทางขึ้น Cloud
- OLED Display - เพิ่มจอแสดงผลระยะทางแบบ Real-time
- LED Bar - เพิ่มไฟ LED แสดงระดับระยะทางแบบกราฟิก
- Mobile App - ส่งค่าไป Blynk หรือ MQTT แล้วดูผ่านมือถือ
- Multiple Sensors - ใช้หลาย Sensor วัดหลายทิศทาง
เริ่มต้นทำโปรเจกต์ของคุณ
สนใจอุปกรณ์ Arduino, Sensor และอะไหล่อิเล็กทรอนิกส์ สำหรับทำโปรเจกต์ IoT?
คำเตือน
เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา