🚪 โครงงานระบบประตูอัตโนมัติด้วยการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่าน lcd1602

โครงงานระบบประตูอัตโนมัติด้วยการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่านlcd1602
ระบบประตูอัตโนมัติจากการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่าน LCD” ได้รับแรงบันดาลใจจากความต้องการดังกล่าว โดยมุ่งเน้นไปที่การประยุกต์ใช้เทคโนโลยีเพื่อสร้างระบบอัจฉริยะที่สามารถช่วยลดความเสี่ยงของการแพร่เชื้อและเพิ่มประสิทธิภาพในการควบคุมอุณหภูมิร่างกายของบุคคลก่อนเข้าพื้นที่สำคัญ เช่น สถานศึกษา โรงพยาบาล ห้างสรรพสินค้า และสถานที่ราชการ



ระบบประตูอัตโนมัติด้วยการวัดอุณหภูมิแบบไร้สัมผัสเป็นนวัตกรรมที่ตอบโจทย์ความต้องการด้านความปลอดภัยและสุขอนามัยในยุคปัจจุบัน โดยโครงงานนี้มุ่งเน้นการลดการสัมผัสโดยตรงซึ่งอาจเป็นแหล่งแพร่กระจายเชื้อโรค ระบบทำงานโดยใช้อุปกรณ์เซนเซอร์อินฟราเรดสำหรับตรวจวัดอุณหภูมิของผู้ใช้งาน เมื่อผู้ใช้อยู่ในระยะที่กำหนด ระบบจะวัดอุณหภูมิและส่งข้อมูลไปยังไมโครคอนโทรลเลอร์เพื่อประมวลผลในตัวอย่างการทำงานผู้เขียนจะใช้งาน arduino nano ซึ่งเป็นไมโครคอนโทรลเลอร์ตัวนึงที่ได้รับความนิยม และมีราคาถูกสามารถหาตัวอย่างการใช้งานได้ทั่วไป เหมาะอย่างยิ่งสำหรับมือใหม่ที่ต้องการเริ่มเรียนรู้ระบบสมองกลฝังตัว.
การแสดงผลของอุณหภูมิผ่านจอ LCD1602 เป็นส่วนสำคัญที่ช่วยให้ผู้ใช้งานสามารถรับรู้ผลการตรวจวัดได้ทันที จอ LCD1602 แสดงข้อมูลในรูปแบบตัวเลขและข้อความที่ชัดเจนและเข้าใจง่าย นอกจากนี้ ระบบยังสามารถตั้งค่าให้แจ้งเตือนในกรณีที่อุณหภูมิของผู้ใช้งานเกินค่าที่กำหนด เช่น เสียงเตือนหรือการปฏิเสธการเปิดประตู เพื่อเพิ่มระดับความปลอดภัย โครงงานนี้ยังสามารถปรับปรุงให้รองรับการเชื่อมต่อกับระบบเครือข่ายเพื่อเก็บข้อมูลการใช้งานในฐานข้อมูล
โครงงานนี้เหมาะสำหรับการใช้งานในสถานที่ที่มีความต้องการระบบรักษาความปลอดภัยสูง เช่น โรงพยาบาล อาคารสำนักงาน หรือโรงเรียน โดยระบบดังกล่าวไม่เพียงแค่เพิ่มความสะดวกสบายและความปลอดภัย แต่ยังช่วยลดภาระงานของเจ้าหน้าที่ในการตรวจวัดอุณหภูมิด้วยมือ โครงงานนี้สามารถพัฒนาเพิ่มเติมให้รองรับฟังก์ชันอื่น ๆ เช่น การตรวจจับใบหน้าหรือการใช้บัตร RFID เพื่อเพิ่มประสิทธิภาพและความหลากหลายในการใช้งานในอนาคต
ที่มาและความสำคัญของโครงงาน ☚
โครงงานนี้มีเป้าหมายเพื่อตอบสนองความต้องการในยุคสมัยใหม่ที่ต้องเผชิญกับโรคระบาด covid-19 โครงทางเดินหายใจและความไม่ปลอดภัยทางสุขภาพที่อาจเกิดขึ้นในอนาคต โดยมีการคำนึงถึงความสำคัญดังนี้:
- ลดการสัมผัส : การวัดอุณหภูมิแบบไร้สัมผัสช่วยลดโอกาสในการสัมผัสระหว่างบุคคล ลดความเสี่ยงจากการแพร่เชื้อผ่านการสัมผัสพื้นผิวและเครื่องมือวัด
- ควบคุมการเข้าถึง : ระบบประตูอัตโนมัติสามารถเปิดหรือปิดตามค่าอุณหภูมิของผู้ใช้ โดยหากตรวจพบว่าอุณหภูมิเกินเกณฑ์ที่กำหนด ประตูจะไม่เปิด เพื่อให้ผู้ที่มีอุณหภูมิสูงเกินปกติไม่ได้เข้าพื้นที่
- การแสดงผลที่ชัดเจน : การแสดงผลผ่านหน้าจอ LCD ทำให้สามารถแสดงอุณหภูมิของผู้ใช้ในทันที ช่วยให้ผู้ใช้งานและเจ้าหน้าที่สามารถตรวจสอบอุณหภูมิได้ทันทีส่งผลให้ผู้ที่ต้องการเข้าใช้งานประตูได้ทราบ จะได้ประเมินตนเองได้ว่าต้องทำอะไร อย่างไรต่อไปบ้าง
- บอกปริมาณได้ : แน่นอนว่าระบบประตูไม่มีใครมาคอยนั้งเฝ้าหรือคอยนับว่ามีผู้เข้าใช้มีจำนวนเท่าไรแล้ว หากมีการนับจำนวนแล้ว เราสามารถประเมินสถานะการได้ว่า ณ ขณะนี้ภายในห้องมีความหนาแน่นมากน้อยขนาดไหน
ขอบเขตความสามารถของโครงงาน ☚
โครงงานนี้เป็นระบบตรวจวัดอุณหภูมิแบบไร้สัมผัส โดยใช้เซ็นเซอร์วัดอุณหภูมิที่สามารถตรวจจับอุณหภูมิร่างกายของผู้ใช้ได้โดยไม่ต้องสัมผัสโดยตรง ซึ่งช่วยลดความเสี่ยงในการแพร่กระจายเชื้อโรคจากการสัมผัสร่วมกัน ทำให้การคัดกรองมีความปลอดภัย นอกจากนี้ ระบบยังสามารถควบคุมประตูอัตโนมัติได้ หากอุณหภูมิของผู้ใช้ต่ำกว่าค่าที่กำหนด ประตูจะเปิดโดยอัตโนมัติ แต่หากอุณหภูมิสูงเกินเกณฑ์ที่กำหนด ระบบจะป้องกันไม่ให้ผู้ใช้ผ่านเข้าไปในพื้นที่ เพื่อช่วยในการคัดกรองบุคคลที่อาจมีไข้หรืออาการเจ็บป่วย การแสดงผลของระบบจะทำผ่านหน้าจอ LCD ซึ่งจะแสดงอุณหภูมิของผู้ใช้ในรูปแบบที่เข้าใจง่าย ผู้ใช้สามารถรับทราบข้อมูลได้ทันที ทำให้สามารถตัดสินใจได้อย่างรวดเร็วในการดำเนินการตามมาตรการที่เหมาะสม โครงงานนี้สามารถนำไปใช้ในสถานที่ที่ต้องการคัดกรองสุขภาพ เช่น โรงพยาบาล สถานศึกษา และอาคารสำนักงาน ช่วยเพิ่มประสิทธิภาพในการตรวจสอบ ลดภาระของเจ้าหน้าที่ และสร้างความมั่นใจให้กับผู้ที่เข้าใช้สถานที่
- ตรวจวัดอุณหภูมิแบบไร้สัมผัส: ใช้เซ็นเซอร์อุณหภูมิที่สามารถตรวจวัดอุณหภูมิจากร่างกายของผู้ใช้ได้โดยไม่ต้องสัมผัสโดยตรง เพื่อให้สอดคล้องกับสุขอนามัย ไม่ให้เกิดการแพร่กระจ่ายของเชื้อโรคที่มาจากการสัมผัส
- ควบคุมประตูอัตโนมัติ: หากอุณหภูมิของผู้ใช้ต่ำกว่าที่กำหนด ประตูจะเปิดโดยอัตโนมัติ แต่หากอุณหภูมิสูงเกินปกติ ประตูจะไม่เปิดเพื่อเป็นการคัดกรองป่วยในการผ่านเข้าไปยังบริเวณที่กำหนด
- การแสดงผลผ่าน LCD: หน้าจอ LCD จะใช้ในการแสดงผลอุณหภูมิของผู้ใช้ในรูปแบบที่เข้าใจง่าย ช่วยให้ผู้ใช้ทราบอุณหภูมิของตนเองทันที
แนวคิดการออกแบบระบบ ☚
การพัฒนาระบบนี้อาศัยการรวมเทคโนโลยีต่าง ๆ เข้าด้วยกัน โดยเฉพาะการใช้เซ็นเซอร์ตรวจวัดอุณหภูมิ การประมวลผลข้อมูลจากเซ็นเซอร์ และการสั่งงานกลไกการเปิดปิดประตู โดยแนวคิดการออกแบบประกอบด้วยส่วนสำคัญดังนี้:
- เซ็นเซอร์วัดอุณหภูมิแบบอินฟราเรด (Infrared Temperature Sensor): ใช้เซ็นเซอร์แบบอินฟราเรดที่สามารถวัดอุณหภูมิได้จากระยะไกล โดยทั่วไปนิยมใช้เซ็นเซอร์ MLX90614 ซึ่งมีความแม่นยำสูงและใช้ในงานด้านการตรวจวัดอุณหภูมิแบบไร้สัมผัส
- ไมโครคอนโทรลเลอร์ (Microcontroller): เป็นอุปกรณ์ประมวลผลกลางที่ใช้ในการเชื่อมต่อเซ็นเซอร์และหน้าจอ LCD รวมถึงควบคุมการเปิดปิดประตู โดยอาจใช้ Arduino หรือ Raspberry Pi ที่มีความสามารถในการเขียนโปรแกรมและควบคุมอุปกรณ์อื่น ๆ
- หน้าจอ LCD สำหรับการแสดงผล (LCD Display): ทำหน้าที่แสดงผลอุณหภูมิที่ตรวจวัดได้ ช่วยให้ผู้ใช้สามารถทราบค่าอุณหภูมิได้ทันที โดยการออกแบบหน้าจอแสดงผลให้เข้าใจง่ายและมีขนาดที่เหมาะสม
- กลไกการเปิดปิดประตู: ใช้มอเตอร์หรือเซอร์โวมอเตอร์ในการควบคุมการเปิดปิดประตู โดยสามารถสั่งงานผ่านการส่งสัญญาณจากไมโครคอนโทรลเลอร์เมื่อได้รับค่าจากเซ็นเซอร์
การทำงานของระบบ ☚
ระบบประตูอัตโนมัติจากการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่านจอ lcd1602 ทำงานผ่านกระบวนการหลัก ๆ ดังต่อไปนี้ : (อุปกรณ์ที่อ้างอิงในเอกสารกับ การต่อใช้งานจริงอาจไม่ตรงกันทั้งหมด)
- การตรวจวัดอุณหภูมิ: เมื่อผู้ใช้ยืนอยู่ใกล้กับเซ็นเซอร์วัดอุณหภูมิ เซ็นเซอร์จะตรวจจับค่าอุณหภูมิจากร่างกายของผู้ใช้ในทันทีโดยไม่ต้องสัมผัส
- การประมวลผลค่าอุณหภูมิ: ค่าที่วัดได้จากเซ็นเซอร์จะถูกส่งไปยังไมโครคอนโทรลเลอร์ ซึ่งจะทำการประมวลผลค่าอุณหภูมิเพื่อตรวจสอบว่าค่าอุณหภูมิของผู้ใช้อยู่ในเกณฑ์ที่กำหนดหรือไม่
- การแสดงผลผ่าน LCD: หลังจากประมวลผลข้อมูลแล้ว อุณหภูมิของผู้ใช้จะถูกแสดงบนหน้าจอ LCD โดยหากค่าอุณหภูมิอยู่ในเกณฑ์ปกติ หน้าจอจะแสดงค่าอุณหภูมิพร้อมข้อความที่แจ้งให้ผู้ใช้ทราบว่าสามารถเข้าผ่านประตูได้
- การสั่งงานเปิดปิดประตู: หากอุณหภูมิของผู้ใช้ต่ำกว่าหรือเท่ากับค่าที่กำหนด ประตูจะเปิดโดยอัตโนมัติ แต่หากอุณหภูมิสูงเกินค่าที่กำหนด ประตูจะไม่เปิดและแสดงข้อความแจ้งเตือนให้ผู้ใช้ทราบ
ประโยชน์ของโครงงาน ☚
- ป้องกันการแพร่เชื้อ: ลดความเสี่ยงของการแพร่เชื้อจากบุคคลที่มีอุณหภูมิสูงหรือติดเชื้อไวรัส
- ลดความเสี่ยงในการสัมผัส: การวัดอุณหภูมิแบบไร้สัมผัสช่วยลดโอกาสในการสัมผัสกับผู้อื่นหรือพื้นผิวที่อาจปนเปื้อน
- เพิ่มความสะดวกสบาย: ระบบอัตโนมัติช่วยให้ผู้ใช้สามารถเข้าผ่านประตูได้อย่างรวดเร็วและปลอดภัย โดยไม่ต้องใช้บุคลากรในการตรวจวัดอุณหภูมิ
- เหมาะสำหรับสถานที่แออัด: สถานที่ที่มีคนพลุกพล่านสามารถใช้ระบบนี้ในการตรวจคัดกรองและควบคุมการเข้าถึงได้อย่างมีประสิทธิภาพ
ข้อจำกัดหรือขอบเขตของโครงงาน ☚
ถึงแม้โครงงานนี้จะมีประโยชน์และเหมาะสมกับสถานะการณ์ปัจจุบันเป็นอย่างมาก แต่ก็ยังมีข้อจำกัดบางประการที่ควรพิจารณาแล้วนำไปสู่การปรับปรุงแก้ไขต่อยอดให้เหมาะสมกับสถาพแวดล้อมในแต่ละบริบท ต้องพิจารณาอุปกรณ์ต่างๆในการใช้งานให้เหมาะสมกับสภาพแวดล้อมๆนั้น เพื่อให้การทำงานของโครงงานสามารถทำงานได้อย่างมีประสิทธิภาพ :
- โครงสร้างแบบจำลอง: ชิ้นงานที่เห็นเป็นรูปแบบจำลอง เพื่อการเรียนรู้เท่านั้น การนำชิ้นงานเหล่านี้ไปต่อยอดเพื่อนำไปสู่การสร้างสิ่งประดิษฐ์ที่เป็นของจริงต้องพิจรณาองค์ประกอบอื่นๆให้รอบคอบ การใช้งานอุปกรณ์อิเล็กทรอนิกส์ ความรู้ความเข้าใจเรื่องไฟฟ้า อุณหภูมิ สนามแม่เหล็ก อาจมีการเปลี่ยนแปลง อุปกรณ์ เซ็นเซอร์ เพื่อให้เหมาะสมกับสภาพแวดล้อมโดยรอบ
- ความแม่นยำของเซ็นเซอร์: การวัดอุณหภูมิแบบไร้สัมผัสอาจได้รับผลกระทบจากปัจจัยภายนอก เช่น อุณหภูมิของสิ่งแวดล้อม มองหาเซ็นเซอร์ที่มีความแม่นยำสูงแต่ก็ต้องแลกมาด้วยราคาที่สูงตามเช่นกัน
- การปรับแต่งตามสถานที่ใช้งาน: ระบบอาจต้องการการปรับแต่งให้เหมาะสมกับขนาดและความต้องการของพื้นที่ที่ติดตั้ง รูปแบบการติดตั้งเซ็นเซอร์ การทำงานของประตู การนับจำนวนคนเข้าออก
สาธิตวิธีการทำงานของโครงงานระบบประตูอัตโนมัติด้วยการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่าน lcd1602
การต่อใช้งาน
ตัวอย่างการต่อใช้งานเพื่อเป็นแนวทางในการปฎิบัติสำหรับโครงงานจำลองระบบประตูอัตโนมัติด้วยการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่าน lcd1602 ในการต่อใช้งานนี้ หากผู้อ่านที่มาจาก video จาก youtube ตัวอุปกรณ์อาจจะไม่ตรงกับหน้าเว็บไซต์นี้ เนื่องจากอุปกรณ์ที่เขียนต่อใช้งานได้มีการปรับเปลี่ยนเพื่อให้ความสะดวกในการหาซื้อและใช้งานได้ง่ายกว่า.

การต่อใช้งานขา arduino ร่วมกับอุปกรณ์หรือโมดูลอื่นๆตามรูปที่แสดงด้านบน โดยมีรายละเอียดการต่อใช้งานขาดังต่อไปนี้.
- Arduino Uno r3
- LCD1602 i2c
- SDA ⇔ a4
- SCL ⇔ a5
- Vcc ⇔ 5V
- Gnd ⇔ Gnd
- Ultrasonic HC-SR04
- TRIG ⇔ pin 3
- ECHO ⇔ pin 2
- Vcc ⇔ 5V
- Gnd ⇔ Gnd
- servo motor
- data ⇔ pin 9
- Vcc ⇔ 5V
- Gnd ⇔ Gnd
- GY-906 BBAA infrared Temperature Sensor
- data ⇔ pin A0
- Vcc ⇔ 5V
- Gnd ⇔ Gnd
*หมายเหต ฝั่งซ้ายคือเซ็นเซอร์ฝั่งขวาคือ Arduino
ชุดคำสั่งสำหรับการควบคุมการทำงานของอุปกรณ์
ลำดับถัดไปจะเป็นการเขียนชุดคำสั่ง(code) เชื่อมต่อระหว่างไมโครคอนโทรลเลอร์กับอุปกรณ์รอบข้างเช่น lcd1602,ultrasonic,temp sensor และ servo motor เพื่อให้ได้การทำงานเป็นไปตามที่เราออกแบบไว้ *มีการเปลี่ยนแปลงอุปกรณ์เล็กน้อยเนื่องจากผู้เขียนต้องการลดค่าใช่จ่าย จึงได้เปลี่ยนอุปกรณ์และขอบเขตจาก GY-906 BBAA ซึ่งเป็นเซ็นเซอร์วัดอุณหภูมิแบบไร้สัมผัส เปลี่ยนเป็นโมดู ultrasonic ทำให้การวัดอุณหภูมิหายไปจากขอบเขคที่กำหนด และสามารถตัดการทำงานของอุปกรณ์ infared วัดระยะออกด้วย เนื้องจากอุปกรณ์เป็นตัววัดระยะที่ซ้ำซ้อนกัน.
#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/
// ตัวอย่างการใช้งาน เซอโวมอเตอร์