🚪 โครงงานระบบประตูอัตโนมัติด้วยการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่านlcd1602
โครงงานระบบประตูอัตโนมัติด้วยการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่านlcd1602
การพัฒนาเทคโนโลยีด้านสุขภาพและการป้องกันโรคระบาดมีบทบาทสำคัญอย่างยิ่งในยุคปัจจุบัน โดยเฉพาะอย่างยิ่งเมื่อเกิดสถานการณ์การแพร่ระบาดของโรคโควิด-19 🦠 ที่ส่งผลกระทบทั้งทางเศรษฐกิจ สังคม และวิถีชีวิตประจำวัน ด้วยเหตุนี้ จึงมีการพัฒนาระบบที่ช่วยป้องกันการแพร่ระบาดและลดการสัมผัสระหว่างบุคคลเพื่อเพิ่มความปลอดภัยให้แก่ประชาชนทั่วไป
ซึ่งโครงงาน “ระบบประตูอัตโนมัติจากการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่าน LCD” ได้รับแรงบันดาลใจจากความต้องการดังกล่าว โดยมุ่งเน้นไปที่การประยุกต์ใช้เทคโนโลยีเพื่อสร้างระบบอัจฉริยะที่สามารถช่วยลดความเสี่ยงของการแพร่เชื้อและเพิ่มประสิทธิภาพในการควบคุมอุณหภูมิร่างกายของบุคคลก่อนเข้าพื้นที่สำคัญ เช่น สถานศึกษา โรงพยาบาล ห้างสรรพสินค้า และสถานที่ราชการ
1. ความสำคัญและแรงจูงใจในการสร้างโครงงาน ☚
โครงงานนี้มีเป้าหมายเพื่อตอบสนองความต้องการในยุคสมัยใหม่ที่ต้องเผชิญกับโรคระบาด covid-19 โครงทางเดินหายใจและความไม่ปลอดภัยทางสุขภาพที่อาจเกิดขึ้นในอนาคต โดยมีการคำนึงถึงความสำคัญดังนี้:
- ลดการสัมผัส: การวัดอุณหภูมิแบบไร้สัมผัสช่วยลดโอกาสในการสัมผัสระหว่างบุคคล ลดความเสี่ยงจากการแพร่เชื้อผ่านการสัมผัสพื้นผิวและเครื่องมือวัด
- ควบคุมการเข้าถึง: ระบบประตูอัตโนมัติสามารถเปิดหรือปิดตามค่าอุณหภูมิของผู้ใช้ โดยหากตรวจพบว่าอุณหภูมิเกินเกณฑ์ที่กำหนด ประตูจะไม่เปิด เพื่อให้ผู้ที่มีอุณหภูมิสูงเกินปกติไม่ได้เข้าพื้นที่
- การแสดงผลที่ชัดเจน: การแสดงผลผ่านหน้าจอ LCD ทำให้สามารถแสดงอุณหภูมิของผู้ใช้ในทันที ช่วยให้ผู้ใช้งานและเจ้าหน้าที่สามารถตรวจสอบข้อมูลได้อย่างง่ายดายและรวดเร็ว
2. ขอบเขตความสามารถของโครงงาน ☚
โครงงานนี้มีวัตถุประสงค์หลักในการสร้างระบบที่สามารถตรวจวัดอุณหภูมิของผู้ใช้โดยอัตโนมัติ และนำข้อมูลมาใช้ในการเปิดปิดประตูเพื่อควบคุมการเข้าถึงสถานที่สำคัญ โดยมีรายละเอียดดังนี้:
- ตรวจวัดอุณหภูมิแบบไร้สัมผัส: ใช้เซ็นเซอร์อุณหภูมิที่สามารถตรวจวัดอุณหภูมิจากร่างกายของผู้ใช้ได้โดยไม่ต้องสัมผัสโดยตรง เพื่อให้สอดคล้องกับสุขอนามัย ไม่ให้เกิดการแพร่กระจ่ายของเชื้อโรคที่มาจากการสัมผัส
- ควบคุมประตูอัตโนมัติ: หากอุณหภูมิของผู้ใช้ต่ำกว่าที่กำหนด ประตูจะเปิดโดยอัตโนมัติ แต่หากอุณหภูมิสูงเกินปกติ ประตูจะไม่เปิดเพื่อเป็นการคัดกรองป่วยในการผ่านเข้าไปยังบริเวณที่กำหนด
- การแสดงผลผ่าน LCD: หน้าจอ LCD จะใช้ในการแสดงผลอุณหภูมิของผู้ใช้ในรูปแบบที่เข้าใจง่าย ช่วยให้ผู้ใช้ทราบอุณหภูมิของตนเองทันที
3. แนวคิดการออกแบบระบบ ☚
การพัฒนาระบบนี้อาศัยการรวมเทคโนโลยีต่าง ๆ เข้าด้วยกัน โดยเฉพาะการใช้เซ็นเซอร์ตรวจวัดอุณหภูมิ การประมวลผลข้อมูลจากเซ็นเซอร์ และการสั่งงานกลไกการเปิดปิดประตู โดยแนวคิดการออกแบบประกอบด้วยส่วนสำคัญดังนี้:
- เซ็นเซอร์วัดอุณหภูมิแบบอินฟราเรด (Infrared Temperature Sensor): ใช้เซ็นเซอร์แบบอินฟราเรดที่สามารถวัดอุณหภูมิได้จากระยะไกล โดยทั่วไปนิยมใช้เซ็นเซอร์ MLX90614 ซึ่งมีความแม่นยำสูงและใช้ในงานด้านการตรวจวัดอุณหภูมิแบบไร้สัมผัส
- ไมโครคอนโทรลเลอร์ (Microcontroller): เป็นอุปกรณ์ประมวลผลกลางที่ใช้ในการเชื่อมต่อเซ็นเซอร์และหน้าจอ LCD รวมถึงควบคุมการเปิดปิดประตู โดยอาจใช้ Arduino หรือ Raspberry Pi ที่มีความสามารถในการเขียนโปรแกรมและควบคุมอุปกรณ์อื่น ๆ
- หน้าจอ LCD สำหรับการแสดงผล (LCD Display): ทำหน้าที่แสดงผลอุณหภูมิที่ตรวจวัดได้ ช่วยให้ผู้ใช้สามารถทราบค่าอุณหภูมิได้ทันที โดยการออกแบบหน้าจอแสดงผลให้เข้าใจง่ายและมีขนาดที่เหมาะสม
- กลไกการเปิดปิดประตู: ใช้มอเตอร์หรือเซอร์โวมอเตอร์ในการควบคุมการเปิดปิดประตู โดยสามารถสั่งงานผ่านการส่งสัญญาณจากไมโครคอนโทรลเลอร์เมื่อได้รับค่าจากเซ็นเซอร์
4. การทำงานของระบบ ☚
ระบบประตูอัตโนมัติจากการวัดอุณหภูมิแบบไร้สัมผัสนี้ทำงานผ่านกระบวนการหลัก ๆ ดังนี้:
- การตรวจวัดอุณหภูมิ: เมื่อผู้ใช้ยืนอยู่ใกล้กับเซ็นเซอร์วัดอุณหภูมิ เซ็นเซอร์จะตรวจจับค่าอุณหภูมิจากร่างกายของผู้ใช้ในทันทีโดยไม่ต้องสัมผัส
- การประมวลผลค่าอุณหภูมิ: ค่าที่วัดได้จากเซ็นเซอร์จะถูกส่งไปยังไมโครคอนโทรลเลอร์ ซึ่งจะทำการประมวลผลค่าอุณหภูมิเพื่อตรวจสอบว่าค่าอุณหภูมิของผู้ใช้อยู่ในเกณฑ์ที่กำหนดหรือไม่
- การแสดงผลผ่าน LCD: หลังจากประมวลผลข้อมูลแล้ว อุณหภูมิของผู้ใช้จะถูกแสดงบนหน้าจอ LCD โดยหากค่าอุณหภูมิอยู่ในเกณฑ์ปกติ หน้าจอจะแสดงค่าอุณหภูมิพร้อมข้อความที่แจ้งให้ผู้ใช้ทราบว่าสามารถเข้าผ่านประตูได้
- การสั่งงานเปิดปิดประตู: หากอุณหภูมิของผู้ใช้ต่ำกว่าหรือเท่ากับค่าที่กำหนด ประตูจะเปิดโดยอัตโนมัติ แต่หากอุณหภูมิสูงเกินค่าที่กำหนด ประตูจะไม่เปิดและแสดงข้อความแจ้งเตือนให้ผู้ใช้ทราบ
5. ประโยชน์ของโครงงาน ☚
- ป้องกันการแพร่เชื้อ: ลดความเสี่ยงของการแพร่เชื้อจากบุคคลที่มีอุณหภูมิสูงหรือติดเชื้อไวรัส
- ลดความเสี่ยงในการสัมผัส: การวัดอุณหภูมิแบบไร้สัมผัสช่วยลดโอกาสในการสัมผัสกับผู้อื่นหรือพื้นผิวที่อาจปนเปื้อน
- เพิ่มความสะดวกสบาย: ระบบอัตโนมัติช่วยให้ผู้ใช้สามารถเข้าผ่านประตูได้อย่างรวดเร็วและปลอดภัย โดยไม่ต้องใช้บุคลากรในการตรวจวัดอุณหภูมิ
- เหมาะสำหรับสถานที่แออัด: สถานที่ที่มีคนพลุกพล่านสามารถใช้ระบบนี้ในการตรวจคัดกรองและควบคุมการเข้าถึงได้อย่างมีประสิทธิภาพ
6. ข้อจำกัดของโครงงาน ☚
ถึงแม้โครงงานนี้จะมีประโยชน์และเหมาะสมกับสถานะการณ์ปัจจุบันเป็นอย่างมาก แต่ก็ยังมีข้อจำกัดบางประการที่ควรพิจารณาแล้วนำไปสู่การปรับปรุงแก้ไขต่อยอดให้เหมาะสมกับสถาพแวดล้อมในแต่ละบริบท:
- โครงสร้างแบบจำลอง: ชิ้นงานที่เห็นเป็นรูปแบบจำลอง เพื่อการเรียนรู้เท่านั้น การนำชิ้นงานเหล่านี้ไปต่อยอดเพื่อนำไปสู่การสร้างสิ่งประดิษฐ์ที่เป็นของจริงต้องพิจรณาองค์ประกอบอื่นๆให้รอบคอบ การใช้งานอุปกรณ์อิเล็กทรอนิกส์ ความรู้ความเข้าใจเรื่องไฟฟ้า อุณหภูมิ สนามแม่เหล็ก อาจมีการเปลี่ยนแปลง อุปกรณ์ เซ็นเซอร์ เพื่อให้เหมาะสมกับสภาพแวดล้อมโดยรอบ
- ความแม่นยำของเซ็นเซอร์: การวัดอุณหภูมิแบบไร้สัมผัสอาจได้รับผลกระทบจากปัจจัยภายนอก เช่น อุณหภูมิของสิ่งแวดล้อม มองหาเซ็นเซอร์ที่มีความแม่นยำสูงแต่ก็ต้องแลกมาด้วยราคาที่สูงตามเช่นกัน
- การปรับแต่งตามสถานที่ใช้งาน: ระบบอาจต้องการการปรับแต่งให้เหมาะสมกับขนาดและความต้องการของพื้นที่ที่ติดตั้ง รูปแบบการติดตั้งเซ็นเซอร์ การทำงานของประตู การนับจำนวนคนเข้าออก
การต่อใช้งานขา arduino ร่วมกับอุปกรณ์แวดล้อม
- SDA ⇔ a4
- SCL ⇔ a5
- Vcc ⇔ 5V
- Gnd ⇔ Gnd
- TRIG ⇔ pin 3
- ECHO ⇔ pin 2
- Vcc ⇔ 5V
- Gnd ⇔ Gnd
- data ⇔ pin 9
- Vcc ⇔ 5V
- Gnd ⇔ Gnd
- data ⇔ pin A0
- Vcc ⇔ 5V
- Gnd ⇔ Gnd
ชุดคำสั่งสำหรับการควบคุมการทำงานของอุปกรณ์
ลำดับถัดไปจะเป็นการเขียนชุดคำสั่ง(code) เชื่อมต่อระหว่างไมโครคอนโทรลเลอร์กับอุปกรณ์รอบข้างเช่น lcd1602,ultrasonic,temp sensor และ servo motor เพื่อให้ได้การทำงานเป็นไปตามที่เราออกแบบไว้
#include(LiquidCrystal_I2C.h)
#include(Servo.h)
Servo myservo; //สร้าง obj โดยไม่กำหนดคอนสตั๊ก
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
#define ECHO_PIN 2
#define TRIG_PIN 3
bool f1 = true;
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
unsigned int sum1;
unsigned int sum2;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("test");
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(A0,INPUT);
myservo.attach(9);
lcd.clear();
}
void loop() {
lcd.setCursor(0,0);
lcd.print("pass : ");
lcd.setCursor(0,1);
lcd.print("Not pass : ");
myservo.write(0);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// การอ่านค่าแบบนี้ใช้ได้เฉพาะในเว็บไซต์เท่านั้นไม่สามารถใช้งานของจริงได้
int duration = pulseIn(ECHO_PIN, HIGH);
int a1 = duration/58;
Serial.print("Distance in CM: ");
Serial.println(a1);
// lcd.setCursor(0,0);
// lcd.print("distan : ");
// lcd.print(a1);
//อ่านค่าอุณหภูมิจาก NTC thermistor ของจริงไม่ได้ใช้งานตัวนี้
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println(" ℃");
// lcd.setCursor(0,1);
// lcd.print("temp : ");
// lcd.print(int(celsius));
delay(200);
// การใช้งาน servo ต้องจ่ายการทำงานด้วย pwm เท่านั้น
// ทดสอบหมุนของ servo
if(a1>20 && a1<40 && f1 ){
// กรณีผ่าน
if(int(celsius)<40 && int(celsius)>=35){
sum1++;
myservo.write(90);
delay(3000);
f1 = false;
lcd.setCursor(8,0);
lcd.print(sum1);
}
//กรณีไม่ผ่าน
else{
sum2++;
lcd.setCursor(12,1);
lcd.print(sum2);
delay(1000);
}
}
if(a1>40)f1 = true; // รีเซ็น bool เพื่อให้ระยะห่างออกจากเซ็นเซอร์ก่อน
}
// โครงงาน ระบบวัดอุณหภูมิแบบไร้สัมผัสเพื่อเปิดประตูพร้อมนับจำนวนแสดงผลผ่านจอ lcd
//https://blog.wokwi.com/learn-servo-motor-using-wokwi-logic-analyzer/
// ตัวอย่างการใช้งาน เซอโว