16/08/2025
ระบบควบคุมอัตโนมัติ (Automated Control System) ด้วย Arduino สำหรับการเรียนการสอนเรื่องการนำค่าจากเซ็นเซอร์มาควบคุมการเคลื่อนไหวของอุปกรณ์
***ขออภัยผู้ชมค่ะ***
เวลา 1.07 มีเสียบสายไฟเส้นสีเหลืองเส้นแรกผิด
เวลา 2.03 แก้ไขสายไฟเส้นสีเหลืองเส้นแรกให้ถูกต้องแล้ว
---------------------------------------------------------
สิ่งที่ต้องเตรียม
1.บอร์ด Arduino Uno
2.เซ็นเซอร์ DHT11 (เซนเซอร์วัดความชื้นและอุณหภูมิ)
3.Servo Motor Module
4.สาย Jumper ผู้-เมีย 3 เส้น
5.สาย Jumper ผู้-ผู้ 3 เส้น
เงื่อนไขในการทำงาน (กำหนดเองได้) :
ถ้า อุณหภูมิ มากกว่า ที่กำหนด แล้ว
ให้เซอร์โวมอเตอร์ หมุน 90 องศา
ถ้า อุณหภูมิ น้อยกว่า ที่กำหนด แล้ว
ให้เซอร์โวมอเตอร์ หมุน 0 องศา
สิ่งที่จะได้เรียนรู้:
การนำข้อมูลไปใช้งาน: นักเรียนจะเข้าใจว่าข้อมูลจากเซ็นเซอร์สามารถนำมาควบคุมการเคลื่อนไหวเชิงกลได้
ระบบอัตโนมัติ: เป็นตัวอย่างของระบบที่ทำงานได้เองโดยไม่ต้องมีการป้อนคำสั่งจากมนุษย์
/// โค้ด/////
"DHT.h"
// กำหนดการเชื่อมต่อสำหรับเซ็นเซอร์ DHT11
DHTPIN 2 // ขา Digital ที่ต่อกับเซ็นเซอร์
DHTTYPE DHT11 // ชนิดของเซ็นเซอร์ DHT
// กำหนดการเชื่อมต่อสำหรับ Servo Motor
SERVO_PIN 9 // ขา Digital ที่ต่อกับสัญญาณ Servo
// กำหนดค่าตำแหน่งของ Servo Motor
OPEN_POSITION 90 // ตำแหน่งเปิด (ในองศา)
CLOSE_POSITION 0 // ตำแหน่งปิด (ในองศา)
// สร้าง Object สำหรับควบคุมเซ็นเซอร์และ Servo
DHT dht(DHTPIN, DHTTYPE);
Servo myservo;
void setup() {
Serial.begin(9600); // เริ่มต้น Serial Monitor สำหรับดูค่า
Serial.println("DHT11 and Servo Motor Automatic Control");
dht.begin(); // เริ่มต้นการทำงานของเซ็นเซอร์ DHT
myservo.attach(SERVO_PIN); // เชื่อมต่อ Servo กับขาที่กำหนด
myservo.write(CLOSE_POSITION); // สั่งให้ Servo อยู่ในตำแหน่งปิด
delay(1000);
}
void loop() {
// อ่านค่าจากเซ็นเซอร์ DHT11 ทุก 2 วินาที
delay(2000);
float temperature = dht.readTemperature();
// ตรวจสอบว่าอ่านค่าได้หรือไม่
if (isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Current Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
// เงื่อนไขในการควบคุม Servo Motor
if (temperature > 30) {
// ถ้าอุณหภูมิสูงกว่า 30 องศา ให้ Servo หมุนไปที่ตำแหน่งเปิด
myservo.write(OPEN_POSITION);
Serial.println("Temperature is HIGH, Servo is OPEN.");
} else if (temperature < 28) {
// ถ้าอุณหภูมิลดลงต่ำกว่า 28 องศา ให้ Servo หมุนกลับไปที่ตำแหน่งปิด
myservo.write(CLOSE_POSITION);
Serial.println("Temperature is LOW, Servo is CLOSED.");
}
}
สนใจสั่งซื้อ
1.บอร์ด Arduino Uno https://s.shopee.co.th/AA70eKn5JR
2.เซ็นเซอร์ DHT11 (เซนเซอร์วัดความชื้นและอุณหภูมิ) https://s.shopee.co.th/4L9DhG8U9w
3.Servo Motor Module https://s.shopee.co.th/7V6FTeZQs0
4.สาย Jumper ผู้-เมีย 3 เส้น https://s.shopee.co.th/8fICs89zq1
5.สาย Jumper ผู้-ผู้ 3 เส้น https://s.shopee.co.th/8fICs89zq1