เนื้อหาในบทความ
ทำไมต้องรู้จักเซ็นเซอร์ IoT?
เซ็นเซอร์คือ "ตา, หู, จมูก, ผิวหนัง" ของโปรเจกต์ IoT หากไม่มีเซ็นเซอร์ ไมโครคอนโทรลเลอร์ก็จะเหมือนคนตาบอด ไม่สามารถรับรู้สิ่งที่เกิดขึ้นรอบตัวได้ ในบทความนี้เราจะพาคุณไปรู้จักกับเซ็นเซอร์ IoT ที่นิยมใช้งานทั้ง 22 ประเภท พร้อมคำแนะนำในการเลือกซื้อและตัวอย่างโค้ดใช้งานจริง
🎯 คุณจะได้เรียนรู้อะไรในบทความนี้?
- เซ็นเซอร์ 22 ประเภทที่ใช้บ่อยที่สุดในโปรเจกต์ IoT
- เปรียบเทียบราคาและความแม่นยำของแต่ละรุ่น
- ตัวอย่างโค้ดสำหรับ ESP32, ESP8266 และ Arduino
- เคล็ดลับการเลือกซื้อเซ็นเซอร์ที่เหมาะกับงานของคุณ
1. เซ็นเซอร์สิ่งแวดล้อม (Environmental Sensors)
🌡️ เซ็นเซอร์วัดอุณหภูมิและความชื้น
| รุ่น | อุณหภูมิ | ความชื้น | ราคา | ความแม่นยำ |
|---|---|---|---|---|
| DHT11 | 0-50°C | 20-80% | ฿15-25 | ±2°C / ±5% |
| DHT22 | -40 ถึง 80°C | 0-100% | ฿50-80 | ±0.5°C / ±2% |
| BME280 | -40 ถึง 85°C | 0-100% | ฿80-150 | ±1°C / ±3% |
💡 แนะนำ: DHT11 เหมาะกับมือใหม่และโปรเจกต์ง่ายๆ DHT22 ให้ความแม่นยำดีกว่า BME280 วัดความดันด้วย เหมาะกับสถานีวัดอากาศระดับมือโปร
🎯 เซ็นเซอร์วัดความดัน (Pressure Sensor)
| รุ่น | ช่วงวัด | ราคา | ใช้งาน |
|---|---|---|---|
| BMP280 | 300-1100 hPa | ฿30-60 | สถานีอากาศ, Drone |
| BMP388 | 300-1250 hPa | ฿80-120 | แม่นยำสูงกว่า |
🌫️ เซ็นเซอร์วัดคุณภาพอากาศ (Air Quality)
| รุ่น | วัดอะไร | ราคา | ข้อดี |
|---|---|---|---|
| MQ-2 | Smoke, LPG, CO | ฿40-80 | ราคาถูก |
| MQ-135 | CO2, NH3, Alcohol | ฿50-90 | หลากหลายก๊าซ |
| SCD41 | CO2 แม่นยำ | ฿600-900 | ระดับโปร |
2. เซ็นเซอร์ตรวจจับการเคลื่อนไหว (Motion Detection)
🏃 เซ็นเซอร์ PIR (Passive Infrared)
เซ็นเซอร์ PIR ตรวจจับการเคลื่อนไหวโดยการรับรู้รังสีอินฟราเรดที่มนุษย์และสัตว์ปล่อยออกมา เหมาะสำหรับระบบรักษาความปลอดภัย ไฟอัตโนมัติ และโปรเจกต์ IoT ง่ายๆ
HC-SR501
ราคา: ฿20-40
ระยะ: 7 เมตร
ยอดนิยมที่สุด
AM312
ราคา: ฿30-50
ระยะ: 5 เมตร
ขนาดเล็ก
RCWL-0516
ราคา: ฿40-70
ระยะ: 5 เมตร
เห็นผ่านกำแพง
⚠️ ข้อควรรู้: PIR ตรวจจับได้เฉพาะการเคลื่อนไหว ไม่สามารถบอกตำแหน่งที่แน่นอนได้ และอาจเกิด false positive จากอุณหภูมิที่เปลี่ยนแปลง
📡 เซ็นเซอร์เรดาร์ (Radar/Microwave)
เซ็นเซอร์เรดาร์ใช้คลื่นไมโครเวฟในการตรวจจับการเคลื่อนไหว สามารถเจาะทะลุวัสดุได้ และตรวจจับได้แม่นยำกว่า PIR
LD2410
ระยะ: 0.2-8 เมตร
ราคา: ฿150-250
✓ ตรวจจับระยะทางได้
✓ มี Human Presence Detection
RCWL-0516
ระยะ: 5 เมตร
ราคา: ฿40-70
✓ ถูกกว่า
✓ เห็นผ่านกำแพง
3. เซ็นเซอร์วัดระยะทาง (Distance Sensors)
🔊 เซ็นเซอร์อัลตราโซนิค (Ultrasonic)
ใช้เสียงความถี่สูงในการวัดระยะทาง ถูกและใช้งานง่ายมาก
| รุ่น | ระยะ | ราคา | ใช้งาน |
|---|---|---|---|
| HC-SR04 | 2cm - 400cm | ฿15-25 | หุ่นยนต์หลบสิ่งกีดขวาง |
| JSN-SR04T | 0-600cm | ฿80-150 | กันน้ำ, วัดระดับน้ำ |
| AJSR04M | 20-1000cm | ฿200-300 | กันน้ำ, ระยะไกล |
🎯 เซ็นเซอร์ LiDAR / Time-of-Flight
ใช้เลเซอร์ในการวัดระยะทาง แม่นยำและเร็วกว่าอัลตราโซนิคมาก
VL53L0X / VL53L1X
ระยะ: 2-2000mm
ราคา: ฿80-150
✓ แม่นยำระดับมิลลิเมตร
✓ ขนาดเล็ก
TF-Luna
ระยะ: 0.2-12 เมตร
ราคา: ฿800-1,500
✓ ระยะไกล
✓ ความละเอียดสูง
4. เซ็นเซอร์แสง (Light Sensors)
💡 เซ็นเซอร์วัดแสง
| รุ่น | ชนิด | ราคา | ใช้งาน |
|---|---|---|---|
| LDR (Photoresistor) | Analog | ฿5-10 | ไฟอัตโนมัติ |
| BH1750 | Digital (I2C) | ฿20-40 | Lux แม่นยำ |
| TSL2561 | Digital (I2C) | ฿40-80 | Infrared + Visible |
5. เซ็นเซอร์ฟิสิกส์ (Physical Sensors)
🔄 เซ็นเซอร์ Accelerometer & Gyroscope (IMU)
ใช้วัดการเคลื่อนไหว การหมุน และทิศทาง เหมาะกับโปรเจกต์หุ่นยนต์ ดรอน และ wearable
| รุ่น | ฟีเจอร์ | ราคา | ใช้งาน |
|---|---|---|---|
| MPU6050 | 6-DOF IMU | ฿40-80 | หุ่นยนต์, Balance |
| MPU9250 | 9-DOF IMU + Magnetometer | ฿120-200 | ดรอน, Navigation |
| LSM6DS3 | 6-DOF IMU | ฿80-150 | ประหยัดพลังงาน |
👆 เซ็นเซอร์สัมผัส (Capacitive Touch)
ใช้สร้างปุ่มสัมผัส, ปุ่มลับ หรือตรวจจับการแตะ
TTP223
ราคา: ฿15-25
✓ ใช้งานง่าย
✓ ปุ่มเดียว
MPR121
ราคา: ฿80-120
✓ 12 ช่องสัมผัส
✓ I2C
📳 เซ็นเซอร์สั่น (Vibration)
ใช้ตรวจจับการสั่นสะเทือน เหมาะกับระบบแจ้งเตือน และการวัดความเสียหาย
SW-420
ราคา: ฿15-30
✓ ถูกมาก
✓ Digital output
ADXL345
ราคา: ฿60-100
✓ 3-axis accelerometer
✓ แม่นยำสูง
6. เซ็นเซอร์ก๊าซ (Gas Sensors)
💨 เซ็นเซอร์ตรวจจับก๊าซ
| รุ่น | ตรวจจับ | ราคา | ใช้งาน |
|---|---|---|---|
| MQ-2 | Smoke, LPG, Propane | ฿40-80 | แจ้งเตือนไฟไหม้ |
| MQ-3 | Alcohol | ฿50-90 | Breathalyzer |
| MQ-5 | Natural Gas, LPG | ฿50-90 | รั่วก๊าซหุงต้ม |
| MQ-135 | CO2, NH3, Alcohol | ฿50-90 | คุณภาพอากาศ |
⚠️ คำเตือน: เซ็นเซอร์ MQ series ต้องการการปรับจูน (calibration) ก่อนใช้งาน และต้องใช้งานในสภาพแวดล้อมที่เหมาะสม อ่าน Datasheet ให้ละเอียดก่อนใช้
วิธีเลือกซื้อเซ็นเซอร์ IoT ที่เหมาะกับงานคุณ
🎯 5 ขั้นตอนการเลือกซื้อเซ็นเซอร์
- 1กำหนดวัตถุประสงค์:
ต้องการวัดอะไร? อุณหภูมิ ระยะทาง การเคลื่อนไหว?
- 2กำหนดงบประมาณ:
เริ่มต้น฿50 หรือพร้อมจ่ายระดับโปร฿500+?
- 3เช็คความเข้ากันได้:
ใช้กับ ESP32, ESP8266 หรือ Arduino? 3.3V หรือ 5V?
- 4อ่านรีวิวและ Datasheet:
ดูความแม่นยำ ช่วงการวัด และข้อจำกัด
- 5ซื้อจากร้านที่เชื่อถือได้:
เช็คการรับประกันและหลักฐานการสั่งซื้อ
💰 เลือกตามงบประมาณ
💵 ระดับมือใหม่ (฿10-100)
DHT11, LDR, HC-SR04, MQ-2, TTP223, SW-420
เหมาะสำหรับเรียนรู้และโปรเจกต์ง่ายๆ
💵💵 ระดับกลาง (฿100-300)
DHT22, BME280, HC-SR501, MPU6050, BH1750, VL53L0X
ความแม่นยำดีกว่า ใช้งานจริงได้
💵💵💵 ระดับโปร (฿300-1,000+)
SCD41, TF-Luna, MPU9250, LD2410, AJSR04M
แม่นยำสูง ฟีเจอร์ครบ ใช้กับงานระดับอุตสาหกรรม
ตัวอย่างโค้ดเบื้องต้น
🌡️ โค้ดอ่านค่า DHT11/22 (Arduino/ESP32)
// รวม Library เซ็นเซอร์ DHT
#include "DHT.h"
// กำหนดขาที่เชื่อมต่อ
#define DHTPIN 4 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 // DHT 11 // ใช้ DHT22 ก็เปลี่ยนตรงนี้
// สร้าง object DHT
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); // เปิด Serial Monitor
dht.begin(); // เริ่มต้นเซ็นเซอร์
}
void loop() {
// รอ 2 วินาทีระหว่างการวัด
delay(2000);
// อ่านค่าอุณหภูมิเป็นเซลเซียส (default)
float h = dht.readHumidity();
// อ่านค่าอุณหภูมิเป็นเซลเซียส
float t = dht.readTemperature();
// ตรวจสอบว่าอ่านค่าได้หรือไม่
if (isnan(h) || isnan(t)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// แสดงค่าใน Serial Monitor
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.println(F("°C "));
}💡 หมายเหตุ: ต้องติดตั้ง DHT library ผ่าน Arduino IDE Library Manager ก่อนใช้งาน
🔊 โค้ดวัดระยะทาง HC-SR04
// กำหนดขา Trigger และ Echo
const int trigPin = 5;
const int echoPin = 18;
// ตัวแปรเก็บระยะทางและระยะเวลา
long duration;
float distance;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT); // Trigger เป็น Output
pinMode(echoPin, INPUT); // Echo เป็น Input
}
void loop() {
// ส่งสัญญาณ Trigger สั้นๆ 10 ไมโครวินาที
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// อ่านระยะเวลาสัญญาณ Echo กลับมา
duration = pulseIn(echoPin, HIGH);
// คำนวณระยะทาง (เซนติเมตร)
// ความเร็วเสียง = 0.034 เซนติเมตร/ไมโครวินาที
distance = (duration * 0.034) / 2;
// แสดงค่าระยะทาง
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(1000); // วัดทุกๆ 1 วินาที
}🏃 โค้ดตรวจจับการเคลื่อนไหว PIR
// กำหนดขา PIR Sensor
const int pirPin = 4;
void setup() {
Serial.begin(9600);
pinMode(pirPin, INPUT); // PIR เป็น Input
}
void loop() {
// อ่านค่าจาก PIR
int motion = digitalRead(pirPin);
if (motion == HIGH) {
Serial.println("Motion detected!");
// ใส่โค้ดที่ต้องการให้ทำเมื่อตรวจจับการเคลื่อนไหว
} else {
Serial.println("No motion");
}
delay(500); // ตรวจสอบทุกๆ 0.5 วินาที
}สรุป
🎓 สิ่งที่คุณได้เรียนรู้
- เซ็นเซอร์ IoT 22 ประเภทที่ใช้บ่อยที่สุด
- การเปรียบเทียบและเลือกซื้อตามงบประมาณและความต้องการ
- ตัวอย่างโค้ดสำหรับเริ่มต้นใช้งานจริง
- เคล็ดลับในการเลือกเซ็นเซอร์ที่เหมาะกับโปรเจกต์