โครงงานระบบประตูอัตโนมัติ

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

door-auto

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

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

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

ระบบประตูอัตโนมัติด้วยการวัดอุณหภูมิแบบไร้สัมผัสเป็นนวัตกรรมที่ตอบโจทย์ความต้องการด้านความปลอดภัยและสุขอนามัยในยุคปัจจุบัน โดยโครงงานนี้มุ่งเน้นการลดการสัมผัสโดยตรงซึ่งอาจเป็นแหล่งแพร่กระจายเชื้อโรค ระบบทำงานโดยใช้อุปกรณ์เซนเซอร์อินฟราเรดสำหรับตรวจวัดอุณหภูมิของผู้ใช้งาน เมื่อผู้ใช้อยู่ในระยะที่กำหนด ระบบจะวัดอุณหภูมิและส่งข้อมูลไปยังไมโครคอนโทรลเลอร์เพื่อประมวลผลในตัวอย่างการทำงานผู้เขียนจะใช้งาน arduino nano ซึ่งเป็นไมโครคอนโทรลเลอร์ตัวนึงที่ได้รับความนิยม และมีราคาถูกสามารถหาตัวอย่างการใช้งานได้ทั่วไป เหมาะอย่างยิ่งสำหรับมือใหม่ที่ต้องการเริ่มเรียนรู้ระบบสมองกลฝังตัว.

การแสดงผลของอุณหภูมิผ่านจอ LCD1602 เป็นส่วนสำคัญที่ช่วยให้ผู้ใช้งานสามารถรับรู้ผลการตรวจวัดได้ทันที จอ LCD1602 แสดงข้อมูลในรูปแบบตัวเลขและข้อความที่ชัดเจนและเข้าใจง่าย นอกจากนี้ ระบบยังสามารถตั้งค่าให้แจ้งเตือนในกรณีที่อุณหภูมิของผู้ใช้งานเกินค่าที่กำหนด เช่น เสียงเตือนหรือการปฏิเสธการเปิดประตู เพื่อเพิ่มระดับความปลอดภัย โครงงานนี้ยังสามารถปรับปรุงให้รองรับการเชื่อมต่อกับระบบเครือข่ายเพื่อเก็บข้อมูลการใช้งานในฐานข้อมูล

โครงงานนี้เหมาะสำหรับการใช้งานในสถานที่ที่มีความต้องการระบบรักษาความปลอดภัยสูง เช่น โรงพยาบาล อาคารสำนักงาน หรือโรงเรียน โดยระบบดังกล่าวไม่เพียงแค่เพิ่มความสะดวกสบายและความปลอดภัย แต่ยังช่วยลดภาระงานของเจ้าหน้าที่ในการตรวจวัดอุณหภูมิด้วยมือ โครงงานนี้สามารถพัฒนาเพิ่มเติมให้รองรับฟังก์ชันอื่น ๆ เช่น การตรวจจับใบหน้าหรือการใช้บัตร RFID เพื่อเพิ่มประสิทธิภาพและความหลากหลายในการใช้งานในอนาคต


ที่มาและความสำคัญของโครงงาน

โครงงานนี้มีเป้าหมายเพื่อตอบสนองความต้องการในยุคสมัยใหม่ที่ต้องเผชิญกับโรคระบาด covid-19 โครงทางเดินหายใจและความไม่ปลอดภัยทางสุขภาพที่อาจเกิดขึ้นในอนาคต โดยมีการคำนึงถึงความสำคัญดังนี้:

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

ขอบเขตความสามารถของโครงงาน

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

  • ตรวจวัดอุณหภูมิแบบไร้สัมผัส: ใช้เซ็นเซอร์อุณหภูมิที่สามารถตรวจวัดอุณหภูมิจากร่างกายของผู้ใช้ได้โดยไม่ต้องสัมผัสโดยตรง เพื่อให้สอดคล้องกับสุขอนามัย ไม่ให้เกิดการแพร่กระจ่ายของเชื้อโรคที่มาจากการสัมผัส
  • ควบคุมประตูอัตโนมัติ: หากอุณหภูมิของผู้ใช้ต่ำกว่าที่กำหนด ประตูจะเปิดโดยอัตโนมัติ แต่หากอุณหภูมิสูงเกินปกติ ประตูจะไม่เปิดเพื่อเป็นการคัดกรองป่วยในการผ่านเข้าไปยังบริเวณที่กำหนด
  • การแสดงผลผ่าน LCD: หน้าจอ LCD จะใช้ในการแสดงผลอุณหภูมิของผู้ใช้ในรูปแบบที่เข้าใจง่าย ช่วยให้ผู้ใช้ทราบอุณหภูมิของตนเองทันที

แนวคิดการออกแบบระบบ

การพัฒนาระบบนี้อาศัยการรวมเทคโนโลยีต่าง ๆ เข้าด้วยกัน โดยเฉพาะการใช้เซ็นเซอร์ตรวจวัดอุณหภูมิ การประมวลผลข้อมูลจากเซ็นเซอร์ และการสั่งงานกลไกการเปิดปิดประตู โดยแนวคิดการออกแบบประกอบด้วยส่วนสำคัญดังนี้:

  1. เซ็นเซอร์วัดอุณหภูมิแบบอินฟราเรด (Infrared Temperature Sensor): ใช้เซ็นเซอร์แบบอินฟราเรดที่สามารถวัดอุณหภูมิได้จากระยะไกล โดยทั่วไปนิยมใช้เซ็นเซอร์ MLX90614 ซึ่งมีความแม่นยำสูงและใช้ในงานด้านการตรวจวัดอุณหภูมิแบบไร้สัมผัส
  2. ไมโครคอนโทรลเลอร์ (Microcontroller): เป็นอุปกรณ์ประมวลผลกลางที่ใช้ในการเชื่อมต่อเซ็นเซอร์และหน้าจอ LCD รวมถึงควบคุมการเปิดปิดประตู โดยอาจใช้ Arduino หรือ Raspberry Pi ที่มีความสามารถในการเขียนโปรแกรมและควบคุมอุปกรณ์อื่น ๆ
  3. หน้าจอ LCD สำหรับการแสดงผล (LCD Display): ทำหน้าที่แสดงผลอุณหภูมิที่ตรวจวัดได้ ช่วยให้ผู้ใช้สามารถทราบค่าอุณหภูมิได้ทันที โดยการออกแบบหน้าจอแสดงผลให้เข้าใจง่ายและมีขนาดที่เหมาะสม
  4. กลไกการเปิดปิดประตู: ใช้มอเตอร์หรือเซอร์โวมอเตอร์ในการควบคุมการเปิดปิดประตู โดยสามารถสั่งงานผ่านการส่งสัญญาณจากไมโครคอนโทรลเลอร์เมื่อได้รับค่าจากเซ็นเซอร์

การทำงานของระบบ

ระบบประตูอัตโนมัติจากการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่านจอ lcd1602 ทำงานผ่านกระบวนการหลัก ๆ ดังต่อไปนี้ : (อุปกรณ์ที่อ้างอิงในเอกสารกับ การต่อใช้งานจริงอาจไม่ตรงกันทั้งหมด)

  1. การตรวจวัดอุณหภูมิ: เมื่อผู้ใช้ยืนอยู่ใกล้กับเซ็นเซอร์วัดอุณหภูมิ เซ็นเซอร์จะตรวจจับค่าอุณหภูมิจากร่างกายของผู้ใช้ในทันทีโดยไม่ต้องสัมผัส
  2. การประมวลผลค่าอุณหภูมิ: ค่าที่วัดได้จากเซ็นเซอร์จะถูกส่งไปยังไมโครคอนโทรลเลอร์ ซึ่งจะทำการประมวลผลค่าอุณหภูมิเพื่อตรวจสอบว่าค่าอุณหภูมิของผู้ใช้อยู่ในเกณฑ์ที่กำหนดหรือไม่
  3. การแสดงผลผ่าน LCD: หลังจากประมวลผลข้อมูลแล้ว อุณหภูมิของผู้ใช้จะถูกแสดงบนหน้าจอ LCD โดยหากค่าอุณหภูมิอยู่ในเกณฑ์ปกติ หน้าจอจะแสดงค่าอุณหภูมิพร้อมข้อความที่แจ้งให้ผู้ใช้ทราบว่าสามารถเข้าผ่านประตูได้
  4. การสั่งงานเปิดปิดประตู: หากอุณหภูมิของผู้ใช้ต่ำกว่าหรือเท่ากับค่าที่กำหนด ประตูจะเปิดโดยอัตโนมัติ แต่หากอุณหภูมิสูงเกินค่าที่กำหนด ประตูจะไม่เปิดและแสดงข้อความแจ้งเตือนให้ผู้ใช้ทราบ

ประโยชน์ของโครงงาน

  • ป้องกันการแพร่เชื้อ: ลดความเสี่ยงของการแพร่เชื้อจากบุคคลที่มีอุณหภูมิสูงหรือติดเชื้อไวรัส
  • ลดความเสี่ยงในการสัมผัส: การวัดอุณหภูมิแบบไร้สัมผัสช่วยลดโอกาสในการสัมผัสกับผู้อื่นหรือพื้นผิวที่อาจปนเปื้อน
  • เพิ่มความสะดวกสบาย: ระบบอัตโนมัติช่วยให้ผู้ใช้สามารถเข้าผ่านประตูได้อย่างรวดเร็วและปลอดภัย โดยไม่ต้องใช้บุคลากรในการตรวจวัดอุณหภูมิ
  • เหมาะสำหรับสถานที่แออัด: สถานที่ที่มีคนพลุกพล่านสามารถใช้ระบบนี้ในการตรวจคัดกรองและควบคุมการเข้าถึงได้อย่างมีประสิทธิภาพ

ข้อจำกัดหรือขอบเขตของโครงงาน

ถึงแม้โครงงานนี้จะมีประโยชน์และเหมาะสมกับสถานะการณ์ปัจจุบันเป็นอย่างมาก แต่ก็ยังมีข้อจำกัดบางประการที่ควรพิจารณาแล้วนำไปสู่การปรับปรุงแก้ไขต่อยอดให้เหมาะสมกับสถาพแวดล้อมในแต่ละบริบท ต้องพิจารณาอุปกรณ์ต่างๆในการใช้งานให้เหมาะสมกับสภาพแวดล้อมๆนั้น เพื่อให้การทำงานของโครงงานสามารถทำงานได้อย่างมีประสิทธิภาพ :

  • โครงสร้างแบบจำลอง: ชิ้นงานที่เห็นเป็นรูปแบบจำลอง เพื่อการเรียนรู้เท่านั้น การนำชิ้นงานเหล่านี้ไปต่อยอดเพื่อนำไปสู่การสร้างสิ่งประดิษฐ์ที่เป็นของจริงต้องพิจรณาองค์ประกอบอื่นๆให้รอบคอบ การใช้งานอุปกรณ์อิเล็กทรอนิกส์ ความรู้ความเข้าใจเรื่องไฟฟ้า อุณหภูมิ สนามแม่เหล็ก อาจมีการเปลี่ยนแปลง อุปกรณ์ เซ็นเซอร์ เพื่อให้เหมาะสมกับสภาพแวดล้อมโดยรอบ
  • ความแม่นยำของเซ็นเซอร์: การวัดอุณหภูมิแบบไร้สัมผัสอาจได้รับผลกระทบจากปัจจัยภายนอก เช่น อุณหภูมิของสิ่งแวดล้อม มองหาเซ็นเซอร์ที่มีความแม่นยำสูงแต่ก็ต้องแลกมาด้วยราคาที่สูงตามเช่นกัน
  • การปรับแต่งตามสถานที่ใช้งาน: ระบบอาจต้องการการปรับแต่งให้เหมาะสมกับขนาดและความต้องการของพื้นที่ที่ติดตั้ง รูปแบบการติดตั้งเซ็นเซอร์ การทำงานของประตู การนับจำนวนคนเข้าออก




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




การต่อใช้งาน

ตัวอย่างการต่อใช้งานเพื่อเป็นแนวทางในการปฎิบัติสำหรับโครงงานจำลองระบบประตูอัตโนมัติด้วยการวัดอุณหภูมิแบบไร้สัมผัสและแสดงผลผ่าน lcd1602 ในการต่อใช้งานนี้ หากผู้อ่านที่มาจาก video จาก youtube ตัวอุปกรณ์อาจจะไม่ตรงกับหน้าเว็บไซต์นี้ เนื่องจากอุปกรณ์ที่เขียนต่อใช้งานได้มีการปรับเปลี่ยนเพื่อให้ความสะดวกในการหาซื้อและใช้งานได้ง่ายกว่า.

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


การต่อใช้งานขา 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 วัดระยะออกด้วย เนื้องจากอุปกรณ์เป็นตัววัดระยะที่ซ้ำซ้อนกัน.

C++
#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/
// ตัวอย่างการใช้งาน เซอโวมอเตอร์