ผู้เขียนบทความ : 098 ปรีชา สาริเสะ , 054 เตชินท์ แก้วศรี #15
คณะวิศวกรรมศาสตร์ : สาขาวิศวกรรมคอมพิวเตอร์
วิชา : 04-513-201 การโปรแกรมคอมพิวเตอร์ชั้นสูง 1/2566
1.ความเป็นมา
ในปัจุบันการระบาดของเชื้อโคโรนาไวรัสสายพันธุ์ใหม่ (2019-nCov) หรือ Coronavirus (COVID19) เมื่อปลายปี ค.ศ. 2019 เป็นวิกฤตที่นานาประเทศให้ความสนใจอย่างใกล้ชิด ด้านสาธารณสุข ระหว่างประเทศ ในวันที่ 30 มกราคม 2563 โดยนอกจากความเสียหายต่อชีวิตแล้ว วิกฤตการณ์นี้ยังส่งผลไปถึงด้านสังคมและเศรษฐกิจของมนุษย์อีก
การป้องกันและการรักษาสุขอนามัยคือ รักษาระยะห่าง จากผู้อื่น อย่างน้อย 2 เมตร เลี่ยงการไปในพื้นที่หนาแน่นหรือ แออัด หากมีอาการที่แสดงถึงโรคติดเชื้อโคโรนา ไวรัส 2019 ควรปรึกษาแพทย์ทันทีและคอยติดตาม ข่าวสารจากแหล่งข้อมูลที่น่าเชื่อถือ ประเทศไทยเป็นหนึ่งในประเทศที่มีความเสี่ยงสูงและได้รับผลกระทบจากการแพร่กระจายของเชื้อไวรัส ดังนั้น การมีความรู้และความเข้าใจต่อการระบาดของเชื้อไวรัสโคโรนาสายพันธุ์ใหม่ที่ถูกต้องจึงมีความสำคัญ ในการสร้าง ความตระหนักรู้เพื่อลดโอกาสเสี่ยงที่จะติดเชื้อ และเพื่อป้องกันไม่ให้เกิดความตื่นตระหนักจนเกินไป
จากการศึกษาปัญหาด้านโรควิด 19 พบว่า เราสามารถสร้างอุปกรณ์อิเล็กทรอนิกส์ เพื่อช่วยในการแจ้งเตือน การป้องกันและตรวจโรคโควิดผ่าน ระบบตรวจสอบสุขภาพบน ระบบ IoT เพื่อวัดอุณหภูมิและแจ้งเตือน เพื่อแก้ปัญหา จึงประดิษฐ์ ระบบวัดตรวจสอบอุณหภูมิร่างกายและวัตถุแบบไร้การสัมผัส Smart Infrared
2.วัตถุประสงค์
1.เพื่อตรวจจับอุณหภูมิของผู้คนที่ผ่านเข้ามาในบริเวณที่ตรวจจับไว้
2.เพื่อแจ้งเตือนผ่านเสียงเมื่อมีคนที่มีอุณหภูมิสูงกว่าที่กำหนดผ่านเข้ามา
3.เพื่อออกแบบและสร้างนวัตกรรมช่วยรักษาความปลอดภัยจากโรคโควิด 19
4.เพื่อเฝ้าระวังโรคโควิด19 ที่แพร่ระบาดได้ง่าย
3. ขอบเขต
1.ใช้ ESP32 เพื่อรับค่าอุณภูมิจากเซนเซอร์อินฟาเรด GY-906 MLX90614
2.ใช้จอ I2C LCD แสดงค่าอุณหภูมิออกมาเมื่อทำการวัดอุณหภูมิทันที
3.ใช้ ESP32 เพื่อส่งแจ้งเตือนออนไลน์ ผ่านLine Notify เมื่อตวรจพบอุณภูมิ มากกว่า 37C
4.ใช้ active buzzer ส่งเสียง บี้ป แจ้งเตือนทันที เมื่อตวรจพบอุณภูมิ มากกว่า 37C
5.ใช้เซนเซอร์อินฟาเรด E18-D80NK ตรวจจับวัตถุที่เข้ามาใกล้ เพื่อทำการสั่งให้เซนเซอร์ GY-906 MLX90614 อ่านค่าอุณภูมิ
4. ประโยชน์ที่คาดว่าจะได้รับ
1.สามารถวัดอุณหภูมิคนที่เข้ามาในพื้นที่ได้
2.แจ้งเตือนเมื่อมีคนที่มีอุณหภูมิสูงผิดปกติเข้ามา
3.ส่งข้อมูลผ่านเข้าไปใน Line เพื่อแจ้งเตือนคนที่มีอุณหภูมิผิดปกติ
4.แสดงค่าอุณหภูมิผ่านจอ Lcd เมื่อทำการวัดอุณหภูมิทันที
5.ความรู้ที่เกี่ยวข้อง
1.การเขียน C++ OOP
OOP หรือ Object-Oriented Programming (OOP) คือ กระบวนการเขียนโปรแกรมเชิงวัตถุที่ยึดตามหลักแนวคิดของ “แม่แบบ (Class)” และ “วัตถุ (Object)” ให้เรามองว่า Class คือ พิมพ์เขียว (blueprint) ส่วน Object คือ การนำพิมพ์เขียวนี้ไปสืบทอดใช้งาน
2.ESP32 เป็น Micro Controller ที่รองรับการเชื่อมต่อ WiFi , Bluetooth – BLE ในตัว ภาษาที่ใช้ในการพัฒนาโปรแกรมคือ ภาษา C หรือ Python ภาษา Python ต้องทำการอัพเกรดเฟิร์มแวร์ให้รองรับ Python การพัฒนาโปรแกรมขึ้นอยู่กับผู้ที่พัฒนา โปรแกรม IDE ที่ใช้พัฒนาคือ Arduino IDE หรือ Visual Studio สำหรับ Visual Studio จำเป็นต้องติดตั้ง Plugin Espressif IDF หรือ PlatformIO IDE และต้อง Enable (Arduino)
ในการทำงานครั้งนี้จะเน้นการดำเนินการด้วย Arduino IDE 2
การใช้ ESP32 เป็นไมโครคอนโทรลเลอร์ที่มีความสามารถมากมายและถูกนำมาใช้ในหลายๆ แอปพลิเคชันต่างๆ ทั้งงาน IoT, การพัฒนาเว็บเซิร์ฟเวอร์, หุ่นยนต์, และโปรเจกต์อิเล็กทรอนิกส์ทั่วไป. ต่อไปนี้คือขั้นตอนพื้นฐานในการใช้ ESP32:
-
การเตรียมโปรแกรมพัฒนา:
- ดาวน์โหลดและติดตั้ง Arduino IDE หรือ PlatformIO เพื่อเตรียมสภาพแวดล้อมพัฒนา.
-
ติดตั้งบอร์ด ESP32:
- ใน Arduino IDE, ไปที่ “Tools” > “Board” > “Boards Manager”.
- ค้นหา “ESP32” และติดตั้งไลบรารีสำหรับ ESP32.
-
เชื่อมต่อ ESP32:
- ต่อ ESP32 กับคอมพิวเตอร์โดยใช้สาย USB.
-
เลือกบอร์ด:
- ใน Arduino IDE, ไปที่ “Tools” > “Board” และเลือกบอร์ด ESP32 ที่คุณใช้.
-
เขียนโปรแกรม:
- เขียนโค้ดโปรแกรมใน Arduino IDE หรือ PlatformIO และอัปโหลดลงใน ESP32.
-
ตั้งค่าพอร์ต:
- ทำการตั้งค่าพอร์ตที่ใช้ในการเชื่อมต่อ ESP32 ใน “Tools” > “Port.”
-
ทดสอบ:
- ทดสอบโปรแกรมบน ESP32 และตรวจสอบผลลัพธ์ใน Serial Monitor.
-
การใช้ Wi-Fi:
- ใช้ไลบรารี Wi-Fi เช่น
WiFi.h
เพื่อเชื่อมต่อ ESP32 กับเครือข่าย Wi-Fi.
- ใช้ไลบรารี Wi-Fi เช่น
-
การใช้ GPIO:
- ในโปรแกรม, ใช้ฟังก์ชัน
digitalRead
,digitalWrite
,analogRead
,analogWrite
เพื่อควบคุมขา GPIO.
- ในโปรแกรม, ใช้ฟังก์ชัน
-
การใช้ Sensor หรือ Module:
- ติดต่อเซนเซอร์หรือโมดูลต่างๆ ผ่าน GPIO และใช้ไลบรารีที่เหมาะสม.
-
การใช้ Library:
- นำเข้าและใช้งานไลบรารีที่ต้องการ เช่น Sensor libraries, Display libraries, หรือ Communication libraries.
-
การใช้งาน BLE (Bluetooth Low Energy) (ถ้าต้องการ):
- นำเข้าไลบรารี BLE และเขียนโปรแกรมสำหรับการใช้งาน BLE.
-
การตรวจสอบ Document:
- ตรวจสอบเอกสารและ API Reference เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันและการใช้งาน.
การใช้ ESP32 นั้นมีความหลากหลายและสามารถปรับใช้ในโปรเจกต์ต่างๆ ตามความต้องการ.
3.Active Buzzer คือโมดูลลำโพงเสียงเตือน ใช้ได้กับหลายบอร์ด เช่น Arduino ESP8266 ESP32 เป็นต้น สามารถใช้งานได้ง่าย มีให้เลือกหลากหลายแบบ เลือกโทนเสียงที่ต้องการได้
การใช้งาน Active Buzzer นั้นเริ่มต้นด้วยการเชื่อมต่อขาของ Active Buzzer กับแหล่งจ่ายไฟและไมโครคอนโทรลเลอร์ ตามขั้นตอนนี้:
-
เชื่อมต่อแหล่งจ่ายไฟ:
- ต่อขา VCC ของ Active Buzzer กับแหล่งจ่ายไฟบวก.
- ต่อขา GND ของ Active Buzzer กับแหล่งจ่ายไฟติดลบ.
-
ถ้า Active Buzzer มีขา Control/Signal:
- ต่อขา Control/Signal ของ Active Buzzer กับขา Output จากไมโครคอนโทรลเลอร์ หรือ GPIO (General Purpose Input/Output) ที่ต้องการใช้ควบคุมเสียง.
-
เขียนโปรแกรม:
- ในโปรแกรมที่รันบนไมโครคอนโทรลเลอร์, ให้กำหนดคำสั่งเพื่อส่งสัญญาณไปที่ขา Control/Signal ของ Active Buzzer.
- สามารถให้ Active Buzzer สร้างเสียงตามต้องการ เช่น เสียงเตือน, สัญญาณตั้งเวลา, หรือแจ้งเตือน.
-
ทดสอบ:
- ทดสอบโปรแกรมที่เขียนบนไมโครคอนโทรลเลอร์เพื่อดูว่า Active Buzzer สามารถสร้างเสียงตามที่ต้องการหรือไม่.
- ปรับแต่งโปรแกรมตามความต้องการของโปรเจกต์.
ต้องระวังที่จะไม่ให้กำหนดแรงดันไฟที่เกินกว่าที่ Active Buzzer รับได้ เพื่อป้องกันการเสียหาย.
4.การใช้เซนเซอร์GY-906 MLX90614 เป็นเซ็นเซอร์วัดอุณหภูมิแบบไร้การสัมผัส โดยใช้หลักการแปลงแสงอินฟาเรดที่ส่งออกจากตัววัตถุซึ่งจะมีสีแตกต่างกัน ให้เป็นค่าอุณหภูมิ โมดูลวัดอุณหภูมิแบบอินฟาเรดไร้การสัมผัส ใช้ชิฟ MLX90614ESF สำหรับ Arduino ไฟเลี้ยง 3V-5V เชื่อมต่อแบบ I2C สามารถวัดอุณหภูมิที่เป้าหมายแบบไร้การสัมผัสที่ -70 ถึง 380 องศาเซลเซียส และยังสามารถวัดอุณหภูมิของสิ่งแวดล้อมได้ที่ -40 ถึง 125 องศาเซลเซียส ความละเอียดของอุณหภูมิที่วัดได้ 0.02 องศาเซลเซียส
เซนเซอร์ GY-906 MLX90614 เป็นเซนเซอร์อินฟราเรดที่ใช้ในการวัดอุณหภูมิโดยไม่ต้องติดต่อกับวัตถุตรงๆ โดยตัวเซนเซอร์นี้สามารถวัดอุณหภูมิของวัตถุหรือสิ่งแวดล้อมโดยให้ค่าอุณหภูมิเป็นออกแบบ Digital. ต่อไปนี้คือขั้นตอนในการใช้เซนเซอร์ GY-906 MLX90614:
-
การต่อวงจร:
- เชื่อมต่อขา VCC ของ GY-906 MLX90614 กับแหล่งจ่ายไฟบวก.
- เชื่อมต่อขา GND ของ GY-906 MLX90614 กับแหล่งจ่ายไฟติดลบ.
- เชื่อมต่อขา SDA ของ GY-906 MLX90614 กับขา SDA ของไมโครคอนโทรลเลอร์หรือวงจรที่ใช้งาน.
- เชื่อมต่อขา SCL ของ GY-906 MLX90614 กับขา SCL ของไมโครคอนโทรลเลอร์หรือวงจรที่ใช้งาน.
-
ติดตั้งไลบรารี:
- ใน IDE ที่ใช้ (Arduino IDE เป็นต้น), ติดตั้งไลบรารี Adafruit MLX90614 หรือไลบรารีที่เหมาะสมกับไมโครคอนโทรลเลอร์ที่คุณใช้.
-
เขียนโปรแกรม:
- ในโปรแกรม, เรียกใช้ไลบรารีที่ติดตั้งและกำหนดที่อยู่ของ GY-906 MLX90614.
- ใช้ฟังก์ชันเพื่ออ่านค่าอุณหภูมิจากเซนเซอร์.
-
ทดสอบ:
- ทดสอบโปรแกรมบนไมโครคอนโทรลเลอร์เพื่อดูค่าอุณหภูมิที่วัดได้จาก GY-906 MLX90614.
-
ปรับแต่ง (ถ้าจำเป็น):
- บางครั้งคุณอาจต้องปรับแต่งโปรแกรมหรือค่าตั้งค่าต่างๆ เพื่อให้ได้ค่าอุณหภูมิที่ถูกต้อง.
เซนเซอร์ GY-906 MLX90614 นี้มีความสามารถในการวัดอุณหภูมิที่น่าสนใจในการประยุกต์ใช้งานต่างๆ เช่นในโปรเจกต์วัดอุณหภูมิรอบขอบเมืองหรือโปรเจกต์ที่ต้องการการวัดอุณหภูมิไม่ต้องติดต่อกับวัตถุโดยตรง.
5.การใช้เซนเซอร์ E18-D80NK คือเซนเซอร์ตรวจจับวัตถุโดยใช้ Infrared เอาท์พุตเป็นแบบ Digital (NPN) สามารถกำหนดระยะตรวจจับได้ 3 ถึง 80 cm ประยุกต์ใช้งานได้หลากหลายเช่นตรวจจับคนเดินผ่าน หรือตรวจจับสิ่งของ
ในการติดตั้งใช้งานครั้งแรก จะต้องปรับระยะการทำงานที่ต้องการก่อน โดยการหมุนปรับค่าVR หลังเซนเซอร์ หาระยะที่จะใช้งาน เมื่อได้ระยะที่ต้องการแล้วก็สามรถนำไปใช้งานได้
-
การต่อวงจร:
- เชื่อมต่อขา VCC ของเซนเซอร์กับแหล่งจ่ายไฟบวก.
- เชื่อมต่อขา GND ของเซนเซอร์กับแหล่งจ่ายไฟติดลบ.
- เชื่อมต่อขา OUT ของเซนเซอร์กับขา Input ของไมโครคอนโทรลเลอร์หรือวงจรที่ต้องการให้รับสัญญาณ.
-
การใช้งานกับไมโครคอนโทรลเลอร์:
- ในโปรแกรมไมโครคอนโทรลเลอร์, ให้ตั้งค่าขา Input ที่เชื่อมกับขา OUT ของเซนเซอร์เป็น Input Digital.
- ในบางกรณี, ความไวของเซนเซอร์อินฟราเรดนี้อาจทำให้เราต้องใช้งานกับไลบรารีหรือโค้ดที่เฉพาะเจาะจงกับไมโครคอนโทรลเลอร์ที่เราใช้.
-
ทดสอบและปรับแต่ง:
- นำวัตถุหรือมือของคุณมาตรวจทดสอบเซนเซอร์.
- ปรับตัวของเซนเซอร์หรือระยะที่ต้องการตรวจจับโดยปรับตัวปรับที่มีบนเซนเซอร์.
-
การอ่านข้อมูล:
- ในโปรแกรม, ให้ตรวจสอบสถานะของขา Input ที่เชื่อมกับขา OUT ของเซนเซอร์ เพื่อดูว่ามีการตรวจจับหรือไม่.
6.การใช้งาน LCD ผ่าน I2C เป็นวิธีที่สะดวกและเรียบง่ายในการควบคุมการแสดงผลบน LCD ในโปรเจกต์อิเล็กทรอนิกส์และไมโครคอนโทรลเลอร์ โดยลดจำนวนสายที่ต้องใช้. ขั้นตอนหลักประกอบด้วยการเชื่อมต่อ, ติดตั้งไลบรารี, กำหนดที่อยู่ของ LCD I2C, และใช้คำสั่งการแสดงผล.
LCD I2C ทำหน้าที่แปลงสัญญาณ I2C เพื่อให้ LCD ทราบถึงคำสั่งการแสดงผล, ทำให้การเขียนโปรแกรมเป็นไปได้ง่ายและกระชับ. การทดสอบจะยืนยันว่าข้อมูลถูกแสดงบน LCD ได้อย่างถูกต้อง.
การใช้งาน LCD I2C ช่วยลดความซับซ้อนในการเชื่อมต่อและควบคุม LCD, เปิดโอกาสให้นักพัฒนาสามารถผลิตโปรเจกต์ที่มีการแสดงผลที่มีประสิทธิภาพและสวยงามได้อย่างง่ายดาย.
-
เชื่อมต่อ LCD I2C:
- ต่อ LCD I2C กับไมโครคอนโทรลเลอร์ ผ่านสาย SDA และ SCL.
- ตรวจสอบที่อยู่ของ LCD I2C ที่อาจต้องใช้ตามค่าที่กำหนด (default คือ 0x27 หรือ 0x3F).
-
ติดตั้งไลบรารี:
- ใน IDE (Integrated Development Environment) ที่ใช้, ติดตั้งไลบรารีที่รองรับการใช้งาน LCD I2C เช่น “LiquidCrystal_I2C” หรือไลบรารีที่เกี่ยวข้อง.
-
เขียนโปรแกรม:
- ใช้คำสั่งเรียกใช้ไลบรารีและกำหนดที่อยู่ของ LCD I2C.
- ใช้คำสั่งเรียกใช้ฟังก์ชัน LCD เพื่อแสดงข้อมูล, ตัวเลข, หรือตัวอักษรบน LCD.
-
ทดสอบ:
- รันโปรแกรมบนไมโครคอนโทรลเลอร์เพื่อตรวจสอบว่าข้อมูลถูกแสดงบน LCD หรือไม่.
นอกจากนี้, หลายไลบรารีมักจะมีตัวอย่างโปรแกรมที่สามารถปรับใช้ได้ตามความต้องการของโปรเจกต์.
7.LineNotify เป็นการแจ้งเตือนผ่านแชทLineส่วนตัว สามารถกำหนดข้อความที่ต้องการให้แจ้งเตือนได้อิสระ โดยจะต้องใช้Token ที่ Generate มาจากเว็ปไซต์ notify-bot.line.me/my/ เพื่อนำไปใส่ในโค้ด และใช้คำสั่งLINE.notify เพื่อส่งแจ้งเตือนเป็นข้อความได้
8. Library และ Plugin เสริมที่เกี่ยวข้อง
TridentTD_LineNotify ใช้สำหรับการทำงานของ LineNotify
https://github.com/TridentTD/TridentTD_LineNotify
Adafruit_MLX90614 ใช้สำหรับการทำงานของ เซนเซอร์ตรวจจับอุณภูมิ
https://github.com/adafruit/Adafruit-MLX90614-Library
LiquidCrystal_I2C ใช้สำหรับการทำงานของหน้าจอแสดงผลอุณภูมิแบบLCD i2C
https://github.com/johnrickman/LiquidCrystal_I2C
ESP32 ใช้สำหรับทำให้ Arduino IDE สื่อสารกับ ESP32ได้
https://github.com/espressif/arduino-esp32
6.ผลการดำเนินงาน
Diagram : การทำงานของระบบ
การทำงานของระบบ
ขั้นตอนที่ 1 การศึกษาการทำงานและการรองรับ : เมื่อทำการเปิดสวิตช์ หน้าจอ Lcd ก็จะแสดงคำว่า Ready และ come on baby หมายความว่าเครื่องพร้อมใช้งานแล้ว
ขั้นตอนที่ 2 การทดสอบการใช้งาน : นำฝ่ามือเข้าใกล้เซนเซอร์อินฟราเรดตัวเซนเซอร์ E18-D80NK กับ GY-906 MLX90614 จากนั้น E18-D80NK จะทำการตรวจจับวัตถุและสั่งให้ เซนเซอร์วัดอุณหภูมิแบบอินฟราเรด หรือ GY-906 MLX90614 ทำงานเพื่อวัดค่า 1 รอบและจะหยุดทำงานเพื่อไม่ให้เซนเซอร์วัดอุณหภูมิแบบอินฟราเรด หรือ GY-906 MLX90614 ทำงานวัดอุณหภูมิตลอดเวลา และเมื่อวัดเสร็จค่าอุณหภูมิที่ได้ก็จะแสดงผ่านจอ Lcd 1602 บรรทัด บน จะเป็น ค่าอุณหภูมิวัตถุที่ตรวจจับได้ ส่วนบรรทัดที่ ล่าง จะเป็น ค่าอุณหภูมิโดยรอบหรืออุณหภูมิสิ่งแวดล้อม หลังจากที่ระบบทำการวัดอุณหภูมิและแสดงค่าผ่านจอแอลซีดีเรียบร้อยแล้ว ระบบก็จะทำการส่งข้อความไปยังแอปพลิเคชัน Line
ขั้นตอนที่ 3 การทดลอง : การทดสอบการวัดอุณหภูมิแบบไร้สัมผัส มีการทำงานของระบบได้อย่างมีประสิทธิภาพ และ สามารถนำไปใช้งานได้ตามปกติ เนื่องจากมีการแสดงค่าอุณหภูมิอย่างละเอียด และมีการแจ้งเตือนผ่านไลน์
Code OOP
#include <WiFi.h>
#include <WiFiClient.h>
#include <Wire.h>
#include "LiquidCrystal_I2C.h"
#include <Adafruit_MLX90614.h>
#include <TridentTD_LineNotify.h>
class TemperatureMonitor {
private:
const int IR_SENSOR_PIN = 34;
const int BUZZER_PIN = 27;
const char* LINE_TOKEN = "2dUkMOqfO3bRakAaaboV26tnaPHiHNxaKwm2WbtF9Dx";
char ssid[20] = "preecha_46"; // WiFi name
char pass[20] = "11111111"; // WiFi password
LiquidCrystal_I2C lcd;
Adafruit_MLX90614 mlx;
public:
TemperatureMonitor()
: lcd(0x27, 16, 2) {
// Constructor: Initialize hardware components and libraries
}
void setup() {
pinMode(IR_SENSOR_PIN, INPUT);
Wire.begin();
lcd.init();
LINE.setToken(LINE_TOKEN);
WiFi.begin(ssid, pass);
mlx.begin();
lcd.backlight();
lcd.setCursor(4, 0);
lcd.print("*Ready*");
lcd.setCursor(0, 1);
lcd.print("**come on baby**");
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
int irSensorValue = digitalRead(IR_SENSOR_PIN);
if (irSensorValue == HIGH) {
float objectTempC = mlx.readObjectTempC();
float ambientTempC = mlx.readAmbientTempC();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Object T:");
lcd.print(objectTempC);
lcd.setCursor(0, 1);
lcd.print("Ambient T:");
lcd.print(ambientTempC);
if (objectTempC > 37.00) {
LINE.notify("High Temperature Detected");
for (int i = 0; i < 10; i++) {
tone(BUZZER_PIN, 1000);
delay(500);
noTone(BUZZER_PIN);
delay(300);
}
} else {
noTone(BUZZER_PIN);
}
delay(1000);
}
}
};
TemperatureMonitor tempMonitor;
void setup() {
tempMonitor.setup();
}
void loop() {
tempMonitor.loop();
}
โค้ดในส่วนของ Main Code
TemperatureMonitor tempMonitor;
void setup() {
tempMonitor.setup();
}
void loop() {
tempMonitor.loop();
}
โค้ดในส่วนของ Variable
int sensorValue; // ประกาศตัวแปรชนิด int เพื่อเก็บค่าจากเซ็นเซอร์
float temperature; // ประกาศตัวแปรชนิด float เพื่อเก็บอุณหภูมิ
void setup() {
// การกำหนดค่าเริ่มต้นให้กับตัวแปร
sensorValue = 0;
temperature = 0.0;
// ...
}
void loop() {
// การใช้ตัวแปรในการดำเนินการ
sensorValue = analogRead(A0); // อ่านค่าจากขา A0 และเก็บในตัวแปร sensorValue
temperature = sensorValue * 0.48876; // คำนวณอุณหภูมิจากค่า sensorValue
// ...
}
บันทึกผลการทดลองของการใช้เครื่องใช้ไฟฟ้าเพื่อวัดค่า อุณหภูมิ
บันทึกผลการทดลองของการวัดอุณหภูมิ
ทดสอบ | ผลทดสอบ | เปอร์เซ็นความถูกต้อง |
10 | 10 | 100% |
บันทึกผลการทดลองการส่งเสียงของ Active Buzzer
ทดสอบ | ผลทดสอบ | เปอร์เซ็นความถูกต้อง |
10 | 10 | 100% |
บันทึกผลการทดลองการแจ้งเตือนผ่านไลน์
ทดสอบ | ผลทดสอบ | เปอร์เซ็นความถูกต้อง |
10 | 10 | 100% |
ขั้นตอนที่ 4 สรุปผลการทดลอง
การทดลองในส่วนต่างๆของอุปกรณ์ การวัดอุณหภูมิ ซึ่งได้เปอร์เซ็นความถูกต้องอยู่ที่ 100% ส่วนต่อไปคือการทดลองการส่งเสียงของActive Buzzerเมื่อทำการวัดอุณหภูมิ ซึ่งได้เปอร์เซ็นความถูกต้องอยู่ที่ 100% และส่วนสุดท้ายคือการแจ้งเตือนผ่านแอปพลิเคชัน Line ซึ่งได้เปอร์เซ็นความถูกต้องอยู่ที่ 100% เฉลี่ยในแต่ละคน ได้รับเปอร์เซ็นความถูกต้องไม่ต่ำว่า 100%
ปัญหาที่พบในการทดลอง
1.ตัว E18-D80NK วัตถุได้ไม่ถึง100% อาจมีผิดพลาด เช่น ยื่นฝ่ามือเพื่อทำการวัดแต่ E18-D80NK ไม่จับวัตถุ แก้ไขไม่อยากโดยทำการยื่นฝ่ามือเข้าไปอีกรอบ
7.สรุปผลการทดลอง
การทดลองในส่วนต่างๆของอุปกรณ์ การวัดอุณหภูมิ ซึ่งได้เปอร์เซ็นความถูกต้องอยู่ที่ 100% ส่วนต่อไปคือการทดลองการส่งเสียงของActive Buzzerเมื่อทำการวัดอุณหภูมิ ซึ่งได้เปอร์เซ็นความถูกต้องอยู่ที่ 100% และส่วนสุดท้ายคือการแจ้งเตือนผ่านแอปพลิเคชัน Line ซึ่งได้เปอร์เซ็นความถูกต้องอยู่ที่ 100% เฉลี่ยในแต่ละคน ได้รับเปอร์เซ็นความถูกต้องไม่ต่ำว่า 100%
ข้อเสนอแนะ / การนำไปต่อยอด
1.สามารถนำไปใช้งานในบ้านหรือที่พักที่มีผู้สูงอายุหรืองานประชุมต่างๆที่มีผู้คนอยู่ใกล้ชิดกัน เพื่อให้ทราบถึงอุณหภูมิร่างกายและไม่ให้แพร่เชื้อต่อผู้อื่นได้
2.เปลี่ยนจากการเสียบปลั๊กเป็นการใช้ไฟจากถ่านไฟ 5v จะทำให้พกพาได้สะดวกเมื่อต้องการวัดก็สามารถใช้งานได้เลย
8.ข้อมูลอ้างอิง
[1] กรมควบคุมโรค กระทรวงสาธารณสุข[ออนไลน์] 2563. [สืบค้นวันที่ 25 ตุลาคม 2566]. จาก https://ddc.moph.go.th/viralpneumonia/int_protection.php
[2] Cybertice. สอนการใช้งานและการทำงานของโมดูลวัดอุณหภูมิแบบอินฟราเรด. [ออนไลน์] 2563.
[สืบค้นวันที่ 25 ตุลาคม 2566]. จาก https://tinyurl.com/mwpw63sf
[3] Ken RobotSiam. การใช้งาน IR Infrared Obstacle Avoidance Sensor Module. [ออนไลน์] 2559. [สืบค้นวันที่ 30 ตุลาคม 2566]. จาก https://robotsiam.blogspot.com/2016/10/ir-infrared-obstacle-avoidance-sensor.html
[4] Cybertice. สอนการใช้งานและการทำงานของโมดูลวัดตรวจจับวัตถุแบบอินฟราเรดต่อกับ Buzzer. [ออนไลน์] 2560. [สืบค้นวันที่ 25 ตุลาคม 2566]. จาก https://tinyurl.com/r795b9hu
[5] บริษัท เอไอซีเอส จำกัด. สอนใช้งานโมดูลเซ็นเซอร์ตรวจจับวัตถุ IR Infrared กับ Arduino UNO. [ออนไลน์] 2565. [สืบค้นวันที่ 30 ตุลาคม 2566]. จาก https://www.ai-corporation.net/2022/02/07/ir-infrared-with-arduino-uno/