You are on page 1of 75

ระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน

DURIAN TRACKING AND MEASUREMENT

โดย
นายชนายุ คำสะสม
นายนพสินธุ์ ศรีจันทร์
นายบวรวิทย์ นาไร

โครงงานนี้เป็นส่วนหนึ่งของการศึกษาตามหลักสูตรปริญญาวิศวกรรมศาสตรบัณฑิต
ภาควิชาวิศวกรรมโทรคมนาคม
คณะวิศวกรรมศาสตร์
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
ปีการศึกษา 2566
ระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน
DURIAN TRACKING AND MEASUREMENT

โดย
นายชนายุ คำสะสม 63010193
นายนพสินธุ์ ศรีจันทร์ 63010488
นายบวรวิทย์ นาไร 63010538

อาจารย์ที่ปรึกษา
ศ. ดร.ปราโมทย์ วาดเขียน

โครงงานนี้เป็นส่วนหนึ่งของการศึกษาตามหลักสูตรปริญญาวิศวกรรมศาสตรบัณฑิต
ภาควิชาวิศวกรรมโทรคมนาคม
คณะวิศวกรรมศาสตร์
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
ปีการศึกษา 2566
โครงงานปีการศึกษา 2566
ภาควิชาวิศวกรรมโทรคมนาคม
คณะวิศวกรรมศาสตร์ สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
เรื่อง ระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน
DURIAN TRACKING AND MEASUREMENT

ผู้จัดทำ
1. นายชนายุ คำสะสม 63010193
2. นายนพสินธุ์ ศรีจันทร์ 63010488
3. นายบวรวิทย์ นาไร 63010538

.............................................................................. อาจารย์ที่ปรึกษา
( ศ. ดร.ปราโมทย์ วาดเขียน )
I

กิตติกรรมประกาศ

การดำเนินโครงงานเรื่อง “ระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน” จะไม่


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

ขอขอบคุณคณาจารย์และเจ้าหน้าที่ประจำภาควิช าวิศวกรรมโทรคมนาคม คณะ


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

ขอกราบขอบพระคุณ บิดา มารดา และครอบครัว ที่ให้ความรัก ความห่วงใย และเป็น


กำลังใจทีส่ ำคัญเสมอมาและที่สำคัญคือสนับสนุนให้โอกาสทางด้านการศึกษาอันมีค่ายิ่งแก่ผู้จัดทำ

นายชนายุ คำสะสม
นายนพสินธุ์ ศรีจันทร์
นายบวรวิทย์ นาไร
ผู้จัดทำ
II

ระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน
DURIAN TRACKING AND MEASUREMENT

โดย นายชนายุ คำสะสม 63010193


นายนพสินธุ์ ศรีจันทร์ 63010488
นายบวรวิทย์ นาไร 63010538

อาจารย์ที่ปรึกษา ศ. ดร.ปราโมทย์ วาดเขียน

บทคัดย่อ
ในการเก็บเกี่ยวผลผลิตของชาวสวนทุเรียนนั้น ปกติจะทำการเช็คระดับตามความ
อ่อนแก่ของทุเรียนด้วยการใช้การนับอายุซึ่งให้ประสิทธิภาพแค่ 80 เปอร์เซ็นต์เท่านั้น ทำให้ผลผลิต
ไม่ได้มาตรฐานและคุณภาพที่มั่นคง โดยจุดประสงค์ของโครงงานนี้จึงต้องการที่จะเพิ่มประสิทธิภาพ
ผลผลิตของทุเรียนและเพิ่มความสะดวกสบายในการทำการเกษตรโดยการนำเทคโนโลยีเข้ามามี
บทบาทมากขึ้น จากงานวิจัยพบว่าเราสามารถตรวจสอบความอ่อนแก่ของทุเรียนได้จากระดับน้ำตาล
ที่ขั้วของทุเรียน ซึ่งให้ผลยืนยันความอ่อนแก่ได้ถูกต้องแม่นยำกว่าการนับอายุ ของทุเรียน เราจึง
ต้องการที่จะสร้างเครื่องวัดน้ำตาลขึ้นเพื่อเพิ่มประสิทธิภาพและความแม่นยำในการเก็บเกี่ยวและได้
พัฒนาการแสดงข้อมูลของผลทุเรียนผ่านหน้าต่าง GUI (Graphical User Interface) โดยการใช้
เทคโนโลยี RFID (Radio Frequency Identification) ในการติดตามและนับจำนวนอายุของทุเรียน
เพื่อความสะดวกในการตรวจสอบอายุของทุเรียนในการทำการเกษตรเพิ่มมากขึ้น ยกตัวอย่างเช่น
ช่วงเวลาที่ทุเรียนแต่ละลูกต้องทำการฉีดพ่นอาหารเสริมและสารป้องกันโรคและแมลง หรือช่วงเวลา
ในการเก็บเกี่ยวผลผลิตแต่ละลูกโดยไม่จำเป็นต้องทำการนับวันด้วยตัวชาวเกษตรกรเองแต่เป็นการใช้
เทคโนโลยีเข้ามามีบทบาทมากขึ้นในการทำการเกษตร
III

ABSTRACT
The purpose of this project is to increase the efficiency of durian
production and improve the convenience of agricultural activities by incorporating
technology. Traditionally, durian farmers rely on age-based assessments, which are
only 80% accurate, leading to non-standardized and inconsistent yields. The
research has revealed that assessing durian ripeness based on sugar levels at the
fruit's stem provides more accurate and precise results than age counting. To
enhance efficiency and accuracy in harvesting, we aim to develop a sugar level
measuring device. Additionally, we plan to implement RFID (Radio Frequency
Identification) technology to track and count the age of durians, simplifying the
process of checking durian age in agriculture. For example, during specific periods
when durians require fertilization and protection against diseases or insects, or during
harvest time, RFID technology eliminates the need for manual counting by farmers.
Instead, it integrates technology more significantly into agricultural practices, making
the process more efficient and reducing the manual workload for farmers.
IV

สารบัญ

หน้า
กิตติกรรมประกาศ I
บทคัดย่อ II
สารบัญ IV
สารบัญรูป VI
สารบัญตาราง IX

บทที่ 1 บทนำ 1
1.1 ความเป็นมาและความสำคัญของปัญหา 1
1.2 วัตถุประสงค์ 1
1.3 ขอบเขตของโครงงาน 1

บทที่ 2 ทฤษฎีและหลักการที่เกี่ยวข้อง 2
2.1 ทุเรียน 2
2.2 NFC (Near Field Communication) 5
2.3 RFID (RADIO FREQUENCY IDENTIFICATION) 6
2.4 `อุปกรณ์ที่เกี่ยวข้อง 7
2.5 มาตรฐานการส่ง 18
2.6 รหัสสถานะตอบกลับ HTTP 19
2.7 ARDUINO IDE 22
2.8 VISUAL STUDIO CODE 23
2.9 XAMPP 23
2.10 PHPMYADMIN 24
2.11 ภาษา SQL 25
2.12 ภาษา PHP 25
2.13 JSON 26
V

สารบัญ (ต่อ)

หน้า
2.14 ภาษา HTML 27
2.15 ภาษา CSS 28

บทที่ 3 การออกแบบและการจัดทำปริญญานิพนธ์ 29
3.1 การออกแบบ 29
3.2 เครื่องมือที่ใช้ในการทดลอง 36
3.3 การจัดเก็บผลการทดลอง 38

บทที่ 4 ผลการทดลอง 40
4.1 ทดสอบการเชื่อมต่อระหว่างอุปกรณ์ 40
4.2 ทดสอบการบันทึกข้อมูลยูไอดีของแท็กอาร์เอฟไอดีไปยังฐานข้อมูล 45
4.3 ทดสอบการแสดงผลข้อมูลจากฐานข้อมูลบน WEB SERVER 48

บทที่ 5 สรุปผลและข้อเสนอแนะ 50
5.1 สรุปผล 50
5.2 ข้อเสนอแนะ 51

บรรณานุกรม 52

ภาคผนวก ตัวอย่างคำสั่งการทำงานของระบบติดตามผลทุเรียน 55
VI

สารบัญรูป

หน้า
รูปที่
2.1 ตัวอย่างลำดับการเจริญเติบโตของทุเรียนภายในพื้นที่ภาคใต้ตอนล่าง 2
2.2 ระยะการติดผลของต้นทุเรียน 3
2.3 ภาพตัวอย่างต้นทุเรียนในระยะสุกแก่ 5
2.4 พอร์ตการเชื่อมต่อ ESP-WROOM-32 8
2.5 รูปตัวอย่างอุปกรณ์ ISO 14443 Type A 9
2.6 รูปตัวอย่างอุปกรณ์เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M 10
2.7 รูปแสดงระดับแรงดัน TTL 18
2.8 รูปตัวอย่างแสดงการสื่อสารแบบ Synchronous 19
2.9 รูปตัวอย่างแสดงการสื่อสารแบบอะซิงโครนัส 19
2.10 โปรแกรม Arduino IDE 22
2.11 รูปแสดงไอคอนของโปรแกรม Visual Studio Code 23
2.12 รูปแสดงไอคอนของโปรแกรม XAMPP 24
2.13 รูปแสดงไอคอนของโปรแกรม phpMyAdmin 25
2.14 รูปแสดงไอคอนของภาษา HTML 28
2.15 รูปแสดงไอคอนของภาษา CSS 28
3.1 บล็อกไดอะแกรมของระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน 29
3.2 วงจรการเชื่อมต่อระบบติดตามของผลทุเรียน 30
3.3 รูปแสดงการจำลองการต่อวงจรทดสอบการส่งข้อมูลแบบเลขฐาน 16 ของ 31
โมดูล ESP32
3.4 รูปแสดงการจำลองการต่อวงจรทดสอบการรับข้อมูลระหว่าง ESP- 31
WROOM-32 และ เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M
3.5 วงจรสำหรับเครื่องอ่านอาร์เอฟไอดีโมดูล SL025M และ ESP-WROOM- 32
32
3.6 การเชื่อมต่อลายเส้น (Route Traces) ของวงจร 32
VII

สารบัญรูป (ต่อ)

หน้า
รูปที่
3.7 การเชื่อมต่อรอยเส้นเงื่อนไขการทำงานของ ESP-WROOM-32 33
3.8 การกัดแผ่นปริ้นวงจร 34
3.9 การเจาะแผ่นปริ้นวงจร 34
3.10 การบัดกรีแผ่นปริ้นวงจร 34
3.11 ประกอบอุปกรณ์เข้ากับแผ่นปริ้นวงจร 35
3.12 ด้านนอกของกล่องอุปกรณ์ 35
3.13 ภาพดึงอุปกรณ์ออกมาจากกล่อง 35

3.14 อุปกรณ์ทั้งหมดภายในกล่อง 36
3.15 สายไมโครยูเอสบี 37
4.1 รูปแสดงสัญญาณข้อมูลที่ได้รับจากการทดสอบการส่งข้อมูลแบบเลขฐาน 40
16ของโมดูล ESP32

4.2 รูปแสดงสัญญาณความถี่ที่ตรวจจับได้จากเครื่องอ่านอาร์เอฟไอดีโมดูล 41
SL025M
4.3 รูปแสดงสัญญาณข้อมูลที่ส่ง 42
4.4 รูปแสดงสัญญาณข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 1 42
4.5 รูปแสดงผลเฟรมข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 1 43
4.6 รูปแสดงสัญญาณข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 2 43
4.7 รูปแสดงผลเฟรมข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 2 44
4.8 รูปแสดงสัญญาณข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 3 44
4.9 รูปแสดงผลเฟรมข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 3 45
4.10 รูปแสดงผลตอบรับจากการส่งคำขอ HTTP POST สำเร็จ 47
4.11 รูปแสดงข้อมูลที่ส่งไปเก็บในฐานข้อมูลได้สำเร็จ 47
VIII

สารบัญรูป (ต่อ)

หน้า
รูปที่
4.12 ภาพแสดงข้อมูลภายในฐานข้อมูลที่ใช้ในการแสดงผล 48
4.13 รูปภาพแสดงหน้าต่าง LOGIN ก่อนทำการเข้าสู่ระบบ 48
4.14 รูปแสดงผลข้อมูลบนหน้าต่างเว็บไซต์ 49
IX

สารบัญตาราง

หน้า
ตารางที่
2.1 ระยะการติดผลของต้นทุเรียน 5
2.2 แสดงพินของอุปกรณ์เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M 10
2.3 การตั้งค่าการสื่อสาร 11
2.4 รูปแบบการสื่อสาร Host to SL025 11
2.5 รูปแบบการสื่อสาร SL025M to Host 12
2.6 ตารางแสดงคำสั่ง 12
2.7 ตารางแสดงสถานะ 13
2.8 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเลือกการ์ด Mifare 13
2.9 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเลือกการ์ด Mifare 13
2.10 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเข้าสู่เซ็กเตอร์ 14
2.11 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเข้าสู่เซ็กเตอร์ 14
2.12 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งดาวน์โหลดกุญแจเข้า SL025M 14
2.13 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งดาวน์โหลดกุญแจเข้า SL025M 14
2.14 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเข้าสู่เซ็กเตอร์ผ่านกุญแจที่เก็บไว้ 14
2.15 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเข้าสู่เซ็กเตอร์ผ่านกุญแจที่เก็บ 14
ไว้
2.16 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งอ่านข้อมูลบล็อก 14
2.17 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งอ่านข้อมูลบล็อก 15
2.18 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเขียนข้อมูลบล็อก 15
2.19 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเขียนข้อมูลบล็อก 15
2.20 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งอ่านค่าบล็อก 15
2.21 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งอ่านค่าบล็อก 15
2.22 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งกำหนดค่าเริ่มต้นบล็อกค่า 15
X

สารบัญตาราง (ต่อ)

หน้า
ตารางที่
2.23 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งกำหนดค่าเริ่มต้นบล็อกค่า 15
2.24 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเขียนกุญแจหลัก 16
2.25 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเขียนกุญแจหลัก 16
2.26 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเพิ่มค่า 16
2.27 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเพิ่มค่า 16
2.28 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งลดค่า 16
2.29 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งลดค่า 16
2.30 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งคัดลอกค่า 16
2.31 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งคัดลอกค่า 16
2.32 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งอ่านหน้าข้อมูล (UltraLight & 17
NTAG203)
2.33 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งอ่านหน้าข้อมูล (UltraLight & 17
NTAG203)
2.34 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเขียนหน้าข้อมูล (UltraLight & 17
NTAG203)
2.35 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเขียนหน้าข้อมูล (UltraLight & 17
NTAG203)
2.36 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งจัดการไฟ LED สีแดง 17
2.37 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งจัดการไฟ LED สีแดง 17
2.38 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งรับเวอร์ชันเฟิร์มแวร์ 17
2.39 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งรับเวอร์ชันเฟิร์มแวร์ 17
4.1 ตารางแสดงองค์ประกอบหน้าต่างเว็บไซต์แสดงผล 49
1

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

1.2 วัตถุประสงค์
1. ออกแบบการใช้ Radio Frequency Identification (RFID) ในการติดตามผลผลิต
2. ออกแบบและพัฒนา Graphical User Interface (GUI) เพื่อแสดงข้อมูลของผลผลิต
3. เพื่อศึกษาและใช้งานเครื่องวัดระดับน้ำตาลของผลทุเรียนด้วยเทคนิค Near Infrared
(NIR)

1.3 ขอบเขตของปริญญานิพนธ์
ได้ออกแบบและสร้างระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน โดยการออกแบบ
และพัฒนา Graphical User Interface (GUI) เพื่อแสดงข้อมูล ต่าง ๆ ของผลทุเรียน ซึ่งจะจัดเก็บ
ข้อมูลด้วยฐานข้อมูลโดยใช้ Structured Query Language (SQL) โดยการใช้ Radio Frequency
Identification (RFID) ในการติดตามผลผลิต และตรวจสอบระดับน้ำตาลของผลทุเรียนด้วยเครื่องวัด
น้ำตาลจากเทคนิคทางสเปกโตรสโกปี (NIR) เพื่อทำให้ประสิทธิภาพในการเก็บเกี่ยวผลทุเรียนมีมาก
ขึ้น
2

บทที่ 2
ทฤษฎีและหลักการที่เกี่ยวข้อง

โครงงานเรื่อง “ระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน” ได้ทำการรวบรวม


หลักการที่เกี่ยวข้องกับเทคโนโลยีอาร์เอฟไอดี ฐานข้อมูลและหน้าต่างเว็บไซต์แสดงผล ออกแบบและ
พัฒนาการติดตามและวัดความอ่อนแก่ของทุเรียน ซึง่ มีทฤษฎีและหลักการที่เกี่ยวข้องดังต่อไปนี้

2.1 ทุเรียน
2.1.1 ระยะการติดผลของต้นทุเรียน
การดูแลต้นทุเรียนระหว่างการเติบโตของทุเรียนเป็นสิ่งสำคัญ ซึ่งจะสามารถทำให้ต้น
ทุเรียนออกดอกติดผลได้มากขึ้น ทำให้ผลผลิตมีคุณภาพดีการเตรียมต้นทุเรียนให้พร้อมที่จะออกดอก
จึงเป็นสิ่งที่จำเป็น โดยการทำให้มีใบแก่พร้อมกันทั้งต้น เพื่อให้มีการสร้างอาหารให้กับลำต้นได้อย่าง
เต็มที่ ทำให้มีการสะสมอาหารในลำต้นเพียงพอต่อการออกดอก และเมื่อมีสภาพแวดล้อมที่เหมาะสม
มีความชื้นตํ่า อากาศเย็นลงเล็กน้อยมีช่วงแล้งที่เหมาะสมต่อการกระตุ้นให้เกิดการออกดอกได้ ดังนั้น
จึงต้องมีการเตรียมความพร้อมและดำเนินการภายหลังการเก็บเกี่ยวผลผลิตทันที ตัวอย่างลำดับการ
เจริญเติบโตของทุเรียนภายในพื้นที่ภาคใต้ตอนล่าง แสดงดังภาพที่ 2.1 ระยะการติดผลของต้นทุเรียน
แสดงดังภาพที่ 2.2 [1]

รูปที่ 2.1 ตัวอย่างลำดับการเจริญเติบโตของทุเรียนภายในพื้นที่ภาคใต้ตอนล่าง [1]


3

รูปที่ 2.2 ระยะการติดผลของต้นทุเรียน [1]

2.1.2 แนวทางการปฎิบัติแต่ละระยะของทุเรียน
ภาพตัวอย่างต้นทุเรียนในระยะสุกแก่แสดงดังภาพที่ 2.3 ระยะการติดผลของต้นทุเรียน
แสดงดังตารางที่ 2.1 [1]
2.1.2.1 ระยะดอกบาน
1) ช่วยผสมเกสรด้วยวิธีการปัดดอก ในช่วงเวลา 19.00-21.00 น.
2) จดบันทึกวันดอกบาน เพื่อมากำหนดปฏิทินในการดูแลทุเรียนในแต่ล ะ
ระยะและวางแผนในการเก็บเกี่ยว
2.1.2.2 ระยะ 10 วันหลังดอกบาน
ระยะนี้ทุเรียนจะเริ่มเข้าสู่ระยะการติดผล
1) ควรฉีดพ่นสารป้องกันโรคและแมลง (เพลี้ยไฟ) เพื่อป้องกันการเกิดปัญหา
ทุเรียนหนามจีบ
2) ค่อย ๆ เพิ่มปริมาณการให้น้ำ ไม่ควรให้น้ำมากจนเกินไปจะทำให้ผลทุเรียน
ร่วงได้
2.1.2.3 ระยะ 4-5 สัปดาห์หลังดอกบาน (ระยะไข่ไก่)
ระยะนี้ทุเรียนกำลังเข้าสู่การพัฒนาเปลือกและเมล็ด ควรมีแนวทางดังนี้
1) ตัดแต่งผลทุเรียนที ่ไ ม่ส มบูร ณ์ และอยู่ ในตำแหน่ง ที่ ไ ม่เหมาะสมออก
(คงเหลือไว้ 2-3 เท่าของจำนวนที่ต้องการไว้ผล)
2) ใส่ปุ๋ยบำรุงผล อาจจะใส่เพียงครั้งเดียวหรือแบ่งใส่ 2 ครั้งห่างกัน 7 วัน
4

3) ฉีดพ่นอาหารเสริมและสารป้องกันกำจัดโรคและแมลง (หนอนเจาะเมล็ด)
2.1.2.4 ระยะ 5-8 สัปดาห์หลังดอกบาน (ระยะกระป๋องนม)
ระยะนี้ทุเรียนสร้างเมล็ดเสร็จสมบูรณ์และกำลังพัฒนาเนื้ออย่างรวดเร็ว
1) ตัดแต่งผลทุเรียนที่ไม่สมบูรณ์และในตำแหน่งที่ไม่เหมาะสม (เหลือไว้ตาม
จำนวนที่ต้องการไว้ผล)
2) ใส่ปุ๋ยบำรุงผล อาจจะใส่เพียงครั้งเดียวหรือแบ่งใส่ 2 ครั้งห่างกัน 7 วัน
3) ฉีดพ่นอาหารเสริมและสารป้องกันกำจัดโรคและแมลง (หนอนเจาะเมล็ด)
4) ควรโยงกิ่งให้มีความมั่นคง แข็งแรงสามารถรับน้ำหนักผลผลิตต่อกิ่งได้
5) ควรมีการให้น้ำอย่างสม่ำเสมอ
2.1.2.5 ระยะ 8-10 สัปดาห์หลังดอกบาน (ระยะขยายพู)
1) ตัดแต่งผลทุเรียนที่ไม่สมบูรณ์และในตำแหน่งที่ไม่เหมาะสม (เหลือไว้ตาม
จำนวนที่ต้องการไว้ผล)
2) ใส่ปุ๋ยบำรุงผล อาจจะใส่เพียงครั้งเดียวหรือแบ่งใส่ 2 ครั้งห่างกัน 7 วัน
3) ฉีดพ่นอาหารเสริมและสารป้องกันกำจัดโรคและแมลง (หนอนเจาะเมล็ด)
4) ควรโยงกิ่งให้มีความมั่นคงแข็งแรงสามารถรับน้ำหนักผลผลิตต่อกิ่งได้
5) ควรมีการให้น้ำอย่างสม่ำเสมอ
2.1.2.6 ระยะ 10-12 สัปดาห์หลังดอกบาน (ระยะเริ่มสุกแก่)
(ควรงดน้ำก่อนเก็บเกี่ยวอย่างน้อย 3-4 วัน)
1) ควรตัดทุเรียนที่มีความแก่ประมาณ 75 เปอร์เซ็นต์หรือวัดแป้งได้ 32
เปอร์เซ็นต์
2) ก่อนเก็บเกี่ยวทุเรียน 3-4 วันต้องตรวจสอบเปอร์เซ็นต์ความแก่ของทุเรียน
3) ขณะเก็บเกี่ยว ห้ามวางทุเรียนกับพื้นดินโดยเด็ดขาด ปริมาณการให้น้ำ
150 ลิตร/ต้น/วัน (ห้ามฉีดพ่นสารเคมี/สารชีวภัณฑ์ทุกชนิด)
5

รูปที่ 2.3 ภาพตัวอย่างต้นทุเรียนในระยะสุกแก่ [2]

ตารางที่ 2.1 ระยะการติดผลของต้นทุเรียน


ลักษณะผลทุเรียน ระยะเวลาเริ่มลักษณะ หมายเหตุ
ระยะนี้ทุเรียนจะเริ่มเข้าสู่ระยะการ
ดอกบาน เริ่มระยะดอกบาน
ติดผล
หางแย้ ระยะถัดจากระยะดอกบาน ระยะถัดจากระยะดอกบาน
ระยะนี้ทุเรียนกำลังเข้าสู่การพัฒนา
ไข่ไก่ 4-5 สัปดาห์หลังดอกบาน
เปลือกและเมล็ด
ระยะนี้ทุเรียนสร้างเมล็ดเสร็จ
กระป๋องนม 5-8 สัปดาห์หลังดอกบาน สมบูรณ์และ
กำลังพัฒนาเนื้ออย่างรวดเร็ว
ผล 90 วัน 8-10 สัปดาห์หลังดอกบาน ระยะขยายพู
ผล 120 วัน 10-12 สัปดาห์หลังดอกบาน ระยะเริ่มสุกแก่

2.2 NFC (Near Field Communication)


เนียร์ฟิลด์คอมมิวนิเคชัน คือเทคโนโลยีการสื่อสารไร้สายระยะสั้นระหว่างอุปกรณ์ที่
รองรับที่อนุญาตการสื่อสารไร้สายระหว่างอุปกรณ์สองเครื่องที่ใช้คลื่นความถี่วิทยุ โดยเนียร์ฟิลด์คอม
มิวนิเคชันใช้คลื่นความถี่วิทยุความถี่ 13.56 เมกะเฮิรตซ์ ในการสื่อสารระหว่างอุปกรณ์ที่อยู่ใกล้กัน
6

โดยเนียร์ฟิลด์คอมมิวนิเคชัน สามารถใช้ในการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ เช่น การแชร์ไฟล์


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

2.3 RFID (Radio Frequency Identification)


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

2.4 อุปกรณ์ที่เกี่ยวข้อง
2.4.1 ไมโครคอนโทรลเลอร์ ESP-WROOM-32
ESP-WROOM-32 เป็นโมดูลไมโครคอนโทรลเลอร์ที่พัฒนาโดย Espressif Systems
เป็ น โมดู ล สื ่ อ สารไร้ ส ายคลื ่ น ความถี ่ 2.4 กิ ก ะเฮิ ร ตซ์ จาก Espressif ESP-WROOM-32 มี
ความสามารถในการเชื่อมต่อไวไฟและบลูทูธ 4.2 รวมถึงการใช้งานแบบพลังงานต่ำ สำหรับอุปกรณ์
IoT ต่ า ง ๆ โดย ESP-WROOM-32 มีความสามารถในการประมวลผลแบบ Dual Core และมี
ความเร็ว 240 เมกะเฮิรตซ์ รวมถึงมีหน่วยความจำแบบแฟรชขนาด 4 เมกะไบต์ และแรมขนาด 520
กิโลไบต์ โดยมีขนาดเล็กและมีความสามารถในการใช้งานได้หลากหลาย นอกจากนี้ยังมีความสามารถ
ในการปรับแต่งตามความต้องการของแต่ละโปรเจกได้อีกด้วยใช้ไฟเลี้ยงโมดูลแรงดัน 2.2 – 3.6 โวลต์
พอร์ตการเชื่อมต่อ ESP-WROOM-32 แสดงดังรูปที่ 2.4 [5]
7

มาตรฐานที่เกี่ยวข้องกับอุปกรณ์:
1) ไวไฟ: มาพร้ อ มกั บ ความสามารถในการเชื ่ อ มต่ อ ไวไฟตามมาตรฐาน IEEE
802.11b/g/n ซึ่งอนุญาตให้อุปกรณ์เชื่อมต่อกับเครือข่ายไร้สายเพื่อการสื่อสารและการเข้าถึงข้อมูล
ในเครือข่าย
2) บลูทูธ: มีความสามารถในการรองรับเทคโนโลยีบลูทูธและรองรับบลูทูธพลังงานต่ำใน
รุ่นที่รองรับ
3) ความเร็วสูง: มีความเร็วในการประมวลผลและการทำงานที่สูง ด้วยชิปที่มีความเร็ว
ของ CPU สูง และหน่วยความจำแรมที่มาก
4) GPIO (General Purpose Input/Output): มาพร้อมกับขา GPIO หลายขาที่
สามารถกำหนดใช้งานได้ตามความต้องการ เพื่อความยืดหยุ่นในการเชื่อมต่ออุปกรณ์ภายนอก
5) SPI (Serial Peripheral Interface): มาตรฐานการเชื่อมต่ออุปกรณ์ต่าง ๆ ผ่าน
ช่องสื่อสาร SPI
6) I2C (Inter-Integrated Circuit): มาตรฐานการเชื่ อ มต่ อ อุป กรณ์ต ่า ง ๆ ผ่า น
ช่องสื่อสาร I2C
7) UART (Universal Asynchronous Receiver-Transmitter): มาตรฐานการ
เชื่อมต่ออุปกรณ์ต่าง ๆ ผ่านช่องสื่อสาร UART
8) ADC (Analog-to-Digital Converter): มาตรฐานการแปลงสัญญาณแอนะล็อกเป็น
ดิจิทัล
9) RTC (Real-Time Clock): มาตรฐานการเก็บเวลาจริง
10) ความปลอดภัย: มีความสามารถในการรองรับการเข้ารหัส และการรักษาความ
ปลอดภัยของข้อมูล
11) การพัฒนาซอฟต์แวร์: รองรับการพัฒนาซอฟต์แวร์ด้วยภาษา C++ และมีเครื่องมือ
พัฒนาซอฟต์แวร์ที่สามารถใช้งานได้กับ Arduino IDE, Platform IO, และเครื่องมืออื่น ๆ
8

รูปที่ 2.4 พอร์ตการเชื่อมต่อ ESP-WROOM-32 [6]

2.4.2 แท็กอาร์เอฟไอดีมาตรฐาน ISO 14443 Type A


ISO 14443 Type A เป็นส่วนหนึ่งของคอลเลกชันมาตรฐาน ISO 14443 เป็นมาตรฐาน
สื่อสารไร้สัมผัสที่ใช้ในการติดต่อระหว่างอุปกรณ์อิเล็กทรอนิกส์ที่มีความสัมพันธ์กับการ์ดหรือแท็กที่มี
ชิปไร้สัมผัส มาตรฐานนี้มีบทบาทสำคัญในการพัฒนาเทคโนโลยีอาร์เอฟไอดีและเนียร์ฟิลด์คอมมิวนิเค
ชันความถูกต้องและความปลอดภัยของข้อมูลเป็นคุณสมบัติที่สำคัญของมาตรฐานนี้ เพื่อให้การใช้งาน
ระบบเป็นไปได้อย่างราบรื่นและปลอดภัย เพื่อการใช้งานในหลายสาขาอุตสาหกรรม เช่น การเงินและ
การชำระเงิน การควบคุมการเข้าถึง การเข้าถึงสิทธิ์ การจัดการพัสดุ และอื่น ๆ รูปตัวอย่างอุปกรณ์
ISO 14443 Type A แสดงดังรูปที่ 2.5 [7]
คุณสมบัติของ ISO 14443 Type A:
1) ความถี่ในการสื่อสาร: ใช้ความถี่ในการสื่อสารที่ 13.56 เมกะเฮิรตซ์ ซึ่งเป็นความถี่ที่
พบในเทคโนโลยีอาร์เอฟไอดีและเนียร์ฟิลด์คอมมิวนิเคชันสำหรับการสื่อสารแบบไร้สัมผัสในระยะใกล้
2) โหมดการสื่อสาร: มีโหมดการสื่อสารสองโหมดหลักคือการส่งข้อมูลจากอุปกรณ์ใด ๆ
ไปยังแท็ก (Reader-to-Tag) และการรับข้อมูลจากแท็กมายังอุปกรณ์ (Tag-to-Reader) โหมดทั้งสอง
นี้สามารถทำงานพร้อมกันได้ แต่ไม่ใช่ในเวลาเดียวกัน เพื่อป้องกันการชนกันในการสื่อสาร
3) การสื่อสารและโครงสร้างข้อมูล: มาตรฐานนี้ใช้เทคนิคการสื่อสารแบบไร้สัมผัสโดย
การใช้สัญญาณไร้สัมผัสระหว่างอุปกรณ์ที่อยู่ใกล้กัน การสื่อสารจะเป็นแบบความถี่เสียง ( load
modulation) ซึ่งแท็กจะเปลี่ยนแปลงการส่งสัญญาณไปยังอุปกรณ์โดยการเปลี่ยนแปลงความคืบหน้า
ของกระแสไฟฟ้าในวงจร
9

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

รูปที่ 2.5 รูปตัวอย่างอุปกรณ์ ISO 14443 Type A [7]

2.4.3 Mifare RFID Reader/Writer Module SL025M


เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M เป็นอุปกรณ์อาร์เอฟไอดีที่ใช้เพื่ออ่านและเขียน
ข้อมูลในแท็กอาร์เอฟไอดีด้วยเทคโนโลยีอาร์เอฟไอดีเนียร์ฟิลด์คอมมิวนิเคชันเพื่อให้สามารถอ่านและ
เขียนข้อมูลในระยะใกล้ได้อย่างมีประสิทธิภาพ โมดูลนี้สามารถใช้ในการติดตามวัตถุหรือบุคคล และ
จัดเก็บข้อมูลที่เกี่ยวข้อง เช่น รหัสประจำตัวหรือข้อมูลผลิตภัณฑ์ รูปตัวอย่างอุปกรณ์ เครื่องอ่านอาร์
เอฟไอดีโมดูล SL025M แสดงดังรูปที่ 2.6 พินของอุปกรณ์เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M
แสดงดังตารางที่ 2.2 [8]
2.4.3.1 SL025M และมาตรฐานการทำงาน
1) ความถี่: อาจรองรับความถี่ที่เฉพาะเจาะจง เช่น 13.56 เมกะเฮิรตซ์ ซึ่ง
เป็นความถี่มาตรฐานสำหรับการทำงานในระดับ HF (High Frequency) ในโลกอาร์เอฟ
ไอดี
2) โหมดการทำงาน: อาจมีโหมดการทำงานที่รองรับการอ่านและเขียนข้อมูล
ในแท็กอาร์เอฟไอดี ในระยะใกล้และอาจมีความสามารถในการทำงานในโหมดต่าง ๆ
เพื่อให้ความสะดวกแก่การใช้งาน
10

3) อินเตอร์เฟซ: SL025M อาจมีอินเตอร์เฟซที่สามารถเชื่อมต่อกับระบบหรือ


ไมโครคอนโทรลเลอร์ต่าง ๆ ได้ เช่น UART, SPI, I2C เพื่อสื่อสารระหว่างอุปกรณ์
4) ความสามารถในการอ่านและเขียน: SL025M อาจมีความสามารถในการ
อ่านและเขียนข้อมูลในแท็กอาร์เอฟไอดีในรูปแบบที่ต่างกัน อาจรองรับการเขียนข้อมูล
ในแท็กอาร์เอฟไอดีโดยเฉพาะเพื่อให้สามารถจัดเก็บข้อมูลเพิ่มเติมในแท็กได้
5) ความเข้ากันได้กับมาตรฐาน: SL025M อาจปฏิบัติตามมาตรฐานอาร์เอฟ
ไอดีหรือโปรโตคอลที่รู้จักในอุตสาหกรรม เช่น ISO 14443 เป็นต้น ที่กำหนดคุณสมบัติ
และการสื่อสารระหว่างอุปกรณ์

รูปที่ 2.6 รูปตัวอย่างอุปกรณ์เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M [8]

ตารางที่ 2.2 แสดงพินของอุปกรณ์เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M


พิน ประเภท คำอธิบาย
IO Output สัญญาณการตรวจจับแท็ก
ระดั บ ต่ ำ แสดงถึ ง การตรวจจั บ แท็ ก อยู่
ในช่วงตรวจจับ
ระดับสูงแสดงถึงการตรวจจับแท็กที่ไม่อยู่
ในช่วงตรวจจับ
TXD Output พอร์ตส่งข้อมูลซีเรียล
RXD Input พอร์ตรับข้อมูลซีเรียล
VCC PWR แหล่งจ่ายไฟ
GND PWR Ground
11

2.4.3.2 ตั้งค่าอัตราการส่งข้อมูล (baud rate)


ใช้ตัวต้านทานสองตัวที่มีค่า 820 โอห์ม คือ R6 และ R7 เพื่อตั้งค่าอัตราการ
ส่งข้อมูล (baud rate) ตามตารางที่ 2.3
ตารางที่ 2.3 แสดงอัตราการส่งข้อมูล
R6 R7 Baud rate bps
no no 9,600
yes no 19,200
Assembled no yes 57,600
115,200
yes yes
(default)
2.4.3.3 การตั้งค่าการสื่อสาร (Communication Setting)
โปรโตคอลการสื่อสารเป็นระบบที่ตั้งอยู่ที่ระดับไบต์ (byte oriented) ทั้งการ
ส่งและการรับไบต์ทำในรูปแบบฮีกซาเดซิมัล (hexadecimal) พารามิเตอร์การสื่อสารมี
ดังนี้
บอร์ดเรต: 9,600 ~ 115,200 bps
ข้อมูล: 8 บิต
สต็อป: 1 บิต
แบบแตกต่าง: ไม่มี
การควบคุมการไหล: ไม่มี
2.4.3.4 รูปแบบการสื่อสาร (Communication Format)
ตารางแสดงรูปแบบการสื่อสารแสดงดังตารางที่ 2.4 และ 2.5
ตารางที่ 2.4 รูปแบบการสื่อสาร Host to SL025
Preamble Len Command Data Checksum
Preamble: 1 ไบต์ เท่ากับ 0xBA
Len: 1 ไบต์ ที่ระบุจำนวนไบต์ตั้งแต่คำสั่งไปจนถึงตำแหน่ง Checksum
Command: 1 ไบต์ รหัสคำสั่งดูที่ตารางที่ 2.6
Data: ความยาวที่แปรปรวนขึ้นอยู่กับประเภทคำสั่ง
Checksum: 1 ไบต์ การ XOR ของทุกรายการจาก Preamble ไปจนถึง
Data
12

ตารางที่ 2.5 รูปแบบการสื่อสาร SL025M to Host


Preamble Len Command Status Data Checksum
Preamble: 1 ไบต์ เท่ากับ 0xBD
Len: 1 ไบต์ ที่ระบุจำนวนไบต์ตั้งแต่คำสั่งไปจนถึงตำแหน่ง Checksum
Command: 1 ไบต์ รหัสคำสั่งดูที่ตารางที่ 2.6
Status: 1 ไบต์ สถานะคำสั่งดูที่ตารางที่ 2.7
Data: ความยาวที่แปรปรวนขึ้นอยู่กับประเภทคำสั่ง
Checksum: 1 ไบต์ การ XOR ของทุกรายการจาก Preamble ไปจนถึง
Data
2.4.3.5 ภาพรวมคำสั่ง (Command Overview)
ตารางแสดงคำสั่งแสดงดังตารางที่ 2.6 ตารางแสดงสถานะแสดงดังตารางที่
2.7

ตารางที่ 2.6 ตารางแสดงคำสั่ง


Command Description
0x01 เลือกการ์ด Mifare
0x02 เข้าสู่เซ็กเตอร์
0x03 อ่านข้อมูลบล็อก
0x04 เขียนข้อมูลบล็อก
0x05 อ่านค่าบล็อก
0x06 กำหนดค่าเริ่มต้นบล็อกค่า
0x07 เขียนกุญแจหลัก (กุญแจ A)
0x08 เพิ่มค่า
0x09 ลดค่า
0x0A คัดลอกค่า
0x10 อ่านหน้าข้อมูล (UltraLight & NTAG203)
0x11 เขียนหน้าข้อมูล (UltraLight & NTAG203)
0x12 ดาวน์โหลดกุญแจ
0x13 เข้าสู่เซ็กเตอร์ผ่านกุญแจที่เก็บไว้
13

0x40 จัดการไฟ LED สีแดง


0xF0 รับเวอร์ชันเฟิร์มแวร์

ตารางที่ 2.7 ตารางแสดงสถานะ

Status Description
0x00 ดำเนินการสำเร็จ
0x01 ไม่มีแท็ก
0x02 เข้าสู่ระบบสำเร็จ
0x03 เข้าสู่ระบบล้มเหลว
0x04 การอ่านล้มเหลว
0x05 การเขียนล้มเหลว
0x06 ไม่สามารถอ่านหลังจากเขียน
0x08 ที่อยู่เกินขอบเขต
0x09 การดาวน์โหลดกุญแจล้มเหลว
0x0D ไม่ได้รับการรับรองตัวตน
0x0E ไม่ใช่บล็อกค่า
0x0F ความยาวของรูปแบบคำสั่งไม่ถูกต้อง
0xF0 ข้อผิดพลาดในการตรวจสอบ
0xF1 ข้อผิดพลาดรหัสคำสั่ง
2.4.3.6 รายการคำสั่ง (Command List)
1) เลือกการ์ด Mifare
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.8 ตารางแสดงเฟรมข้อมูล
ที่ได้รับตอบกลับมาแสดงดังตารางที่ 2.9
ตารางที่ 2.8 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเลือกการ์ด Mifare
0xBA Len 0x01 Checksum
ตารางที่ 2.9 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเลือกการ์ด Mifare
0xBD Len 0x01 Status UID Type Checksum
14

2) เข้าสู่เซ็กเตอร์
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.10 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.11
ตารางที่ 2.10 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเข้าสู่เซ็กเตอร์
0xBA Len 0x02 Sector Type Key Checksum
ตารางที่ 2.11 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเข้าสู่เซ็กเตอร์
0xBD Len 0x02 Status Checksum

3) ดาวน์โหลดกุญแจเข้า SL025M
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.12 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.13
ตารางที่ 2.12 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งดาวน์โหลดกุญแจเข้า SL025M
0xBA Len 0x12 Sector Type Key Checksum
ตารางที่ 2.13 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งดาวน์โหลดกุญแจเข้า SL025M
0xBD Len 0x12 Status Checksum

4) เข้าสู่เซ็กเตอร์ผ่านกุญแจที่เก็บไว้
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.14 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.15
ตารางที่ 2.14 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเข้าสู่เซ็กเตอร์ผ่านกุญแจที่เก็บไว้
0xBA Len 0x13 Sector Type Checksum
ตารางที่ 2.15 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเข้าสู่เซ็กเตอร์ผ่านกุญแจที่เก็บไว้
0xBD Len 0x13 Status Checksum

5) อ่านข้อมูลบล็อก
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.16 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.17
ตารางที่ 2.16 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งอ่านข้อมูลบล็อก
0xBA Len 0x03 Block Checksum
15

ตารางที่ 2.17 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งอ่านข้อมูลบล็อก


0xBD Len 0x03 Status Data Checksum

6) เขียนข้อมูลบล็อก
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.18 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.19
ตารางที่ 2.18 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเขียนข้อมูลบล็อก
0xBA Len 0x04 Block Data Checksum
ตารางที่ 2.19 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเขียนข้อมูลบล็อก
0xBD Len 0x04 Status Data Checksum

7) อ่านค่าบล็อก
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.20 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.21
ตารางที่ 2.20 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งอ่านค่าบล็อก
0xBA Len 0x05 Block Checksum
ตารางที่ 2.21 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งอ่านค่าบล็อก
0xBD Len 0x05 Status Value Checksum

8) กำหนดค่าเริ่มต้นบล็อกค่า
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.22 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.23
ตารางที่ 2.22 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งกำหนดค่าเริ่มต้นบล็อกค่า
0xBA Len 0x06 Block Value Checksum
ตารางที่ 2.23 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งกำหนดค่าเริ่มต้นบล็อกค่า
0xBD Len 0x06 Status Value Checksum

9) เขียนกุญแจหลัก (กุญแจ A)
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.24 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.25
16

ตารางที่ 2.24 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเขียนกุญแจหลัก


0xBA Len 0x07 Sector Key Checksum
ตารางที่ 2.25 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเขียนกุญแจหลัก
0xBD Len 0x07 Status Key Checksum

10) เพิ่มค่า
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.26 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.27
ตารางที่ 2.26 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเพิ่มค่า
0xBA Len 0x08 Block Value Checksum
ตารางที่ 2.27 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเพิ่มค่า
0xBD Len 0x08 Status Value Checksum

11) ลดค่า
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.28 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.29
ตารางที่ 2.28 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งลดค่า
0xBA Len 0x09 Block Value Checksum
ตารางที่ 2.29 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งลดค่า
0xBD Len 0x09 Status Value Checksum

12) คัดลอกค่า
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.30 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.31
ตารางที่ 2.30 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งคัดลอกค่า
0xBA Len 0x0A Source Destination Checksum
ตารางที่ 2.31 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งคัดลอกค่า
0xBD Len 0x0A Status Value Checksum
17

13) อ่านหน้าข้อมูล (UltraLight & NTAG203)


ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.32 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.33
ตารางที่ 2.32 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งอ่านหน้าข้อมูล (UltraLight & NTAG203)
0xBA Len 0x10 Page Checksum
ตารางที่ 2.33 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งอ่านหน้าข้อมูล (UltraLight & NTAG203)
0xBD Len 0x10 Status Data Checksum

14. เขียนหน้าข้อมูล (UltraLight & NTAG203)


ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.34 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.35
ตารางที่ 2.34 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งเขียนหน้าข้อมูล (UltraLight & NTAG203)
0xBA Len 0x11 Page Data Checksum
ตารางที่ 2.35 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งเขียนหน้าข้อมูล (UltraLight & NTAG203)
0xBD Len 0x11 Status Data Checksum

15. จัดการไฟ LED สีแดง


ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.36 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.37
ตารางที่ 2.36 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งจัดการไฟ LED สีแดง
0xBA Len 0x40 Code Checksum
ตารางที่ 2.37 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งจัดการไฟ LED สีแดง
0xBD Len 0x40 Status Checksum

16. รับเวอร์ชันเฟิร์มแวร์
ตารางแสดงเฟรมข้อมูลตอนส่งแสดงดังตารางที่ 2.38 ตารางแสดงเฟรมข้อมูล
ที่ได้รับกลับมาแสดงดังตารางที่ 2.39
ตารางที่ 2.38 ตารางแสดงเฟรมข้อมูลตอนส่งของคำสั่งรับเวอร์ชันเฟิร์มแวร์
0xBA Len 0xF0 Checksum
ตารางที่ 2.39 ตารางแสดงเฟรมข้อมูลตอบกลับของคำสั่งรับเวอร์ชันเฟิร์มแวร์
0xBD Len 0xF0 Status Data Checksum
18

2.5 มาตรฐานการส่ง
2.5.1 TTL (Transistor-Transistor Logic)
รูปแสดงระดับแรงดัน TTL แสดงดังรูปที่ 2.7 [9] TTL เป็นระดับแรงดันที่ถูกกำหนดขึ้น
ในยุคแรก ๆ เพื่อใช้ระหว่าง Transistor กับ Transistor ภายในวงจรรวม (IC) ดังนั้น TTL จะใช้ระดับ
แรงดัน อยู่ที่ 0 – 5 โวลต์ แต่ในปัจจุบันมีอุปกรณ์หลายเบอร์ที่ทำงานในช่วง 0 – 3.3 โวลต์ (เรียก
แรงดันระดับนี้ว่า LVTTL) ซึ่งผู้ใช้ควรตรวจสอบจากคู่มือการใช้งานของอุปกรณ์ที่ใช้เสียก่อนว่าเป็น
ระดับแรงดันแบบใด เพราะหากใช้ผิดประเภทจะทำให้อุปกรณ์เสียหาย

รูปที่ 2.7 รูปแสดงระดับแรงดัน TTL [9]

2.5.2 UART (Universal Asynchronous Receiver Transmitter)


UART หมายถึงอุปกรณ์ที่ทำหน้าที่รับและส่งข้อมูลแบบอะซิงโครนัส (Asynchronous)
ซึ่งเป็นส่วนหนึ่งในการสื่อสารอนุกรมแบบอะซิงโครนัส [9]
การสื่อสารแบบอนุกรมจะแบ่งเป็น 2 แบบ คือ
1) การสื่อสารอนุกรมแบบ Synchronous เป็นรูปแบบที่ใช้วิธีส่งข้อมูล โดยใช้สัญญาณ
Clock มาเป็นตัวกำหนดจังหวะการรับส่งข้อมูล การส่งข้อมูลแบบนี้ เป็นการรับส่งที่ค่อน ข้ างมี
คุณภาพ และส่งได้ที่ความเร็วสูง มีโอกาสที่ข้อมูลจะสูญหายระหว่างการส่งน้อย ตัวอย่างการส่งข้อมูล
ลักษณะนี้เช่น I2C, I2S, SPI ข้อเสียของการส่งข้อมูลแบบนี้คือ ต้องใช้สายสัญญาณมาก เพราะว่าต้อง
ส่ง Clock ไปด้วย รูปตัวอย่างแสดงการสื่อสารแบบ Synchronous แสดงดังรูปที่ 2.8
19

รูปที่ 2.8 รูปตัวอย่างแสดงการสื่อสารแบบ Synchronous [9]

2) การสื่อสารอนุกรมแบบ Asynchronous เป็นการส่งข้อมูล ที่ไม่ต้องใช้ส ัญ ญาณ


Clock มาเป็นตัวกำหนดจังหวะการรับส่งข้อมูลแต่ ใช้วิธีกำหนดรูปแบบ Format การรับส่งข้อมูล
ขึ้นมาแทน และอาศัยการกำหนดความเร็วของการรับและส่งที่เท่ากันทั้งฝั่งรับและฝั่งส่ง ข้อดีของการ
ใช้ Asynchronous คือสามารถสื่อสารแบบ Full Duplex รับ และ ส่งได้ในเวลาเดียวกัน แต่
Asynchronous มีโอกาสที่ข้อมูลจะสูญหายขณะรับส่งข้อมูล หรือ รับส่งข้อมูลผิดพลาดได้มากกว่า
แบบ Synchronous
สรุปกล่าวคือ UART หมายถึง รูปแบบการส่งข้อมูล ที่ถูกกำหนดขึ้นมาเพื่อใช้รับส่งข้อมูล
แบบอะซิงโครนัส รูปตัวอย่างแสดงการสื่อสารแบบอะซิงโครนัส แสดงดังรูปที่ 2.9

รูปที่ 2.9 รูปตัวอย่างแสดงการสื่อสารแบบอะซิงโครนัส [9]

เริ่มต้นจาก Start Bit เป็น Logic 0 จากนั้นจะตามด้วยข้อมูลที่เราส่ง แล้วจะถูกปิดด้วย


STOP Bit เป็น Logic 1

2.6 รหัสสถานะการตอบกลับ HTTP


รหัสการตอบกลับ HTTP คือรหัสที่ใช้บอกสถานะของการร้องขอ (request) ใน HTTP
ว่าเป็นการร้องขอที่สำเร็จหรือไม่สำเร็จ รหัสการตอบกลับ HTTP ถูกแบ่งออกเป็น 5 กลุ่ม [10]
2.6.1 รหัสการตอบกลับเพื่อให้ข้อมูล (Informational responses) รหัส 100 –
199
20

1. 100 Continue (ดำเนินการต่อ): การตอบกลับชั่วคราวนี้แสดงว่าไคลเอ็นต์ควร


ดำเนินการต่อหรือละเว้นการตอบกลับหากคำขอได้เสร็จสมบูรณ์แล้ว
2. 101 Switching Protocols (การเปลี่ยนโปรโตคอล): รหัสนี้ถูกส่งเป็นการตอบกลับ
ต่อคำขอ Upgrade จากไคลเอ็นต์และระบุโปรโตคอลที่เซิร์ฟเวอร์กำลังเปลี่ยน
3. 102 Processing (WebDAV) (กำลังประมวลผล): รหัสนี้บ่งชี้ว่าเซิร์ฟเวอร์ได้รับและ
กำลังประมวลผลคำขอ แต่ยังไม่มีการตอบกลับที่พร้อมใช้งาน
4. 103 Early Hints (คำแนะนำล่วงหน้า): รหัสนี้ใช้หลักการเพื่อให้ไคลเอ็นต์เริ่มการ
โหลดทรัพยากรขณะที่เซิร์ฟเวอร์เตรียมการตอบหรือการเชื่อมต่อล่วงหน้าไปยังต้นฉบับที่จำเป็น
2.6.2 รหัสการตอบกลับเพื่อบอกว่าการร้องขอสำเร็จ (Successful responses)
รหัส 200 – 299
1. 200 OK (เรียบร้อย): คำขอสำเร็จ มีข้อมูลผลลัพธ์ขึ้นอยู่กับวิธีการ HTTP
2. 201 Created (สร้างแล้ว): คำขอสำเร็จ และทรัพยากรใหม่ถูกสร้าง
3. 202 Accepted (ได้รับแล้ว): คำขอได้รับ แต่ยังไม่ได้ดำเนินการ ใช้ในกรณีที่
กระบวนการหรือเซิร์ฟเวอร์อื่น ๆ จัดการคำขอ
4. 203 Non-Authoritative Information (ข้อมูลไม่เป็นทางการ): คำขอนี้หมายถึง
ข้อมูลที่ส่งกลับไม่ได้ตรงกับที่มีจากเซิร์ฟเวอร์ต้นฉบับ
5. 204 No Content (ไม่มีเนื้อหา): ไม่มีข้อมูลที่จะส่งกลับ แต่หัวข้ออาจมีประโยชน์
6. 205 Reset Content (รีเซ็ตเนื้อหา): บอกให้ไคลเอ็นต์รีเซ็ตเอกสารที่ส่งคำขอนี้
7. 206 Partial Content (เนือ้ หาบางส่วน): ใช้เมื่อไคลเอ็นต์ต้องการเฉพาะบางส่วน
ของทรัพยากร
2.6.3 รหัสการตอบกลับเพื่อบอกว่ามีการเปลี่ยนเส้นทาง (Redirection
messages) รหัส 300 – 399
1. 300 Multiple Choices (ตัวเลือกหลายตัว): คำขอมีมากกว่าหนึ่งการตอบกลับที่
เป็นไปได้
2. 301 Moved Permanently (ย้ายถาวร): URL ของทรัพยากรที่ร้องขอได้ถูก
เปลี่ยนไปอย่างถาวร
3. 302 Found (พบ): URI ของทรัพยากรที่ร้องขอได้เปลี่ยนไปชั่วคราว
4. 303 See Other (ดูที่อื่น): เซิร์ฟเวอร์ส่งการตอบกลับนี้เพื่อแนะนำไคลเอ็นต์ให้ดึง
ทรัพยากรที่ร้องขอได้ที่ URI อื่น ๆ
21

5. 304 Not Modified (ไม่ได้ถูกแก้ไข): ใช้สำหรับการให้ทราบว่าการตอบกลับยังไม่ได้


รับการแก้ไข สามารถใช้ข้อมูลจากแคช
6. 307 Temporary Redirect (เปลี่ยนที่ชั่วคราว): เหมือนกับ 302 Found แต่
จำเป็นต้องใช้วิธีการเดียวกับคำขอก่อนหน้า
7. 308 Permanent Redirect (เปลี่ยนที่ถาวร): เหมือนกับ 301 Moved
Permanently แต่จำเป็นต้องใช้วิธีการเดียวกับคำขอก่อนหน้า
2.6.4 รหัสการตอบกลับเพื่อบอกว่ามีข้อผิดพลาดจากผู้ใช้ (Client error
responses) รหัส 400 – 499
1. 400 Bad Request (คำขอไม่ถูกต้อง): ไม่สามารถประมวลผลคำขอได้
2. 401 Unauthorized (ไม่ได้รับอนุญาต): ไคลเอ็นต์ต้องรับรองตัวตนเพื่อรับคำขอ
3. 403 Forbidden (ถูกห้าม): ไคลเอ็นต์ไม่ได้รับสิทธิ์ในการเข้าถึงทรัพยากร
4. 404 Not Found (ไม่พบ): ไม่พบทรัพยากรที่ร้องขอ
5. 405 Method Not Allowed (วิธีการไม่ได้รับอนุญาต): วิธีการที่ร้องขอไม่ได้รับ
อนุญาต
6. 406 Not Acceptable (ไม่ยอมรับ): ไม่มีข้อมูลที่เป็นไปตามเกณฑ์ที่ไคลเอ็นต์ระบุ
7. 407 Proxy Authentication Required (ต้องรับรองตัวตนผ่านพร็อกซี): ต้องรับรอง
ตัวตนผ่านพร็อกซี
2.6.5 รหัสการตอบกลับเพื่อบอกว่ามีข้อผิดพลาดจากเซิร์ฟเวอร์ (Server error
responses) รหัส 500 – 599
1. 500 Internal Server Error (ข้อผิดพลาดภายในเซิร์ฟเวอร์): เซิร์ฟเวอร์พบ
สถานการณ์ที่ไม่สามารถจัดการได้
2. 501 Not Implemented (ไม่ได้นำมาใช้): เซิร์ฟเวอร์ไม่รองรับวิธีการที่ร้องขอ
3. 502 Bad Gateway (เกตเวย์ไม่ถูกต้อง): เกิดข้อผิดพลาดขณะทำหน้าที่เป็นเกตเวย์
4. 503 Service Unavailable (บริการไม่พร้อมให้บริการ): เซิร์ฟเวอร์ไม่พร้อมจัดการ
คำขอ
5. 504 Gateway Timeout (เกตเวย์หมดเวลา): เกิดข้อผิดพลาดเมื่อเซิร์ฟเวอร์ทำ
หน้าที่เป็นเกตเวย์และไม่ได้รับการตอบกลับทันที
6. 505 HTTP Version Not Supported (เวอร์ชัน HTTP ไม่ได้รับการสนับสนุน):
เซิร์ฟเวอร์ไม่รองรับเวอร์ชัน HTTP ที่ร้องขอ
22

7. 511 Network Authentication Required (ต้องรับรองตัวตนผ่านเครือข่าย):


ไคลเอ็นต์ต้องรับรองตัวตนเพื่อเข้าถึงเครือข่าย

2.7 Arduino IDE


Arduino IDE ดั ง แสดงรู ป ที ่ 2.10 ส่ ว น IDE ย่ อ มาจก (Integrated Development
Environment) คื อ ส่ ว นเสริ ม ของระบบการพั ฒ นา หรื อ ตั ว ช่ ว ยต่ า ง ๆ ที ่ จ ะคอยช่ ว ยเหลื อ
Developer หรือช่วยเหลือคนที่พัฒนา Application เพื่อเสริมให้เกิดความรวดเร็ว ถูกต้อง แม่นยำ
ตรวจสอบระบบที่จัดทำได้ ทำให้การพัฒนางานต่าง ๆ เร็วมากขึ้น Arduino IDE เป็นโปรแกรมที่ใช้
งานลักษณะ Open source ซึ่ง Arduino IDE จะทำหน้าที่ติดต่อระหว่างคอมพิวเตอร์ ไม่ว่าจะเป็น
ระบบปฏิบัติการ Windows Mac OS X หรือ Linux กับบอร์ด Arduino ซึ่งโปรแกรมนี้ออกแบบให้
ง่ายต่อการเขียนโค้ดและอัปโหลดโปรแกรมที่เราเขียนเข้า ลงบอร์ด Arduino หรือบอร์ดตัวอื่น ๆ ที่
คล้ายกัน เช่น Generic ESP8266 modules NodeMCU หรือ WeMos D1 เป็นต้น ส่วนในการเขียน
โปรแกรมและคอมไพล์ลงบอร์ด โดยขนาดของโปรแกรม Arduino โดยปกติแล้วจะใหญ่กว่าโค้ด AVR
ปกติ เนื่องจากโค้ด AVR เป็นการเข้าถึงจากรีจิสเตอร์โดยตรง แต่โค้ด Arduino เข้าถึงผ่านฟังก์ชั่น
เพื่อให้สามารถเขียนโค้ดได้ง่ายมากกว่าการเขียนโค้ดแบบ AVR หรือเวอร์ชันอื่น ๆ ของ Arduino [11]

รูปที่ 2.10 โปรแกรม Arduino IDE [11]


23

2.8 Visual Studio Code


Visual Studio Code เป็นโปรแกรมแก้รหัส (source code editor) ที่ฟรี ซึ่งรองรับ
การทำงานทั้งบนเดสก์ทอปและบนเว็บ และสามารถใช้งานบนระบบปฏิบัติการ Windows, macOS,
Linux, และ Raspberry Pi OS ได้ โปรแกรมนี ้ ม ี ก ารสนั บ สนุ น สำหรั บ ภาษา JavaScript,
TypeScript, และ Node.js อยู่ในตัว และมีนิเวศน์หลายร้อยตัวเสริมสำหรับภาษาโปรแกรมอื่น ๆ
(เช่น C++, C#, Java, Python, PHP, และ Go), การรัน (เช่น .NET และ Unity), สภาพแวดล้อม
(เช่น Docker และ Kubernetes), และคลาวด์ (เช่น Amazon Web Services, Microsoft Azure,
และ Google Cloud Platform) รูปแสดงไอคอนของโปรแกรม Visual Studio Code แสดงดังรูปที่
2.11 [12]

รูปที่ 2.11 รูปแสดงไอคอนของโปรแกรม Visual Studio Code [13]

2.9 XAMPP
XAMPP คือโปรแกรมสำหรับจำลองเครื่องคอมพิวเตอร์ส่วนบุคคลของเรา ให้ทำงานใน
ลักษณะของ Web Server นั่นคือเครื่องคอมพิวเตอร์ของเราจะเป็นทั้งเครื่องแม่ และเครื่องลูกใน
เครื่องเดียวกัน ทำให้ไม่ต้องเชื่อมต่อกับ อินเทอร์เน็ต ก็สามารถทดสอบเว็บไซต์ที่สร้างขึ้น เอง ได้ทุกที่
ทุกเวลา ปัจจุบันได้รับความนิยมจากผู้ใช้ CMS ในการสร้างเว็บไซต์
XAMPP ประกอบด้ ว ย Apache, PHP, MySQL, phpMyAdmin, Perl ซึ ่ ง เป็ น
โปรแกรมพื้นฐานที่รองรับการทำงาน CMS ซึ่งเป็นชุดโปรแกรม สำหรับออกแบบเว็บไซต์ที่ได้รับความ
นิยมในปัจจุบัน ไฟล์สำหรับติดตั้ง XAMPP นั้นอาจมีขนาดใหญ่ เนื่องจากมีชุดควบคุมการทำงานที่
ช่วยให้การปรับแต่งส่วนต่าง ๆ ง่ายขึ้น XAMPP นั้นรองรับระบบปฏิบัติการหลายตัว เช่น Windows,
Linux, Apple ทำงานได้ทั้งบนระบบปฏิบัติการแบบ 32 bit และ 64 bit รูปแสดงไอคอนของ
โปรแกรม XAMPP แสดงดังรูปที่ 2.12 [14]
24

รูปที่ 2.12 รูปแสดงไอคอนของโปรแกรม XAMPP [15]

2.10 phpMyAdmin
phpMyAdmin เป็นเครื่องมือฟรีที่เขียนด้วย PHP ซึ่งออกแบบมาเพื่อใช้ในการบริหาร
จัดการ MySQL ผ่านทางเว็บ phpMyAdmin รองรับการดำเนินการต่าง ๆ บน MySQL และ
MariaDB อย่างหลากหลาย การดำเนินการที่ใช้บ่อย (เช่น การจัดการฐานข้อมูล , ตาราง, คอลัมน์,
ความสัมพันธ์, ดัชนี, ผู้ใช้, การให้สิทธิ์, และอื่น ๆ ) สามารถทำผ่านอินเตอร์เฟซของผู้ใช้ได้ และคุณยัง
สามารถ execute คำสั่ง SQL ตรง ๆ ได้เช่นกัน รูปแสดงไอคอนของโปรแกรม phpMyAdmin แสดง
ดังรูปที่ 2.13 [16]
phpMyAdmin มีคุณสมบัติดังนี้:
1. การบริหารและจัดการด้วย phpMyAdmin: เป็นเครื่องมือฟรีที่เขียนด้วย PHP ซึง่
ช่วยในการบริหารจัดการ MySQL ผ่านทางเว็บ มันรองรับการดำเนินการต่าง ๆ บน MySQL และ
MariaDB เช่น การจัดการฐานข้อมูล, ตาราง, คอลัมน์, ความสัมพันธ์, ดัชนี, ผู้ใช้, การให้สิทธิ์, และอื่น

2. การเรียนรู้เพิ่มเติมด้วยหนังสือ: นอกจากเอกสารและแหล่งข้อมูลออนไลน์ที่มีให้ใน
phpMyAdmin, ยังมีหนังสือชื่อ "Mastering phpMyAdmin for Effective MySQL
Management" ที่สามารถช่วยให้คุณเรียนรู้เพิ่มเติมเกี่ยวกับการใช้งาน phpMyAdmin และ MySQL
อย่างมีประสิทธิภาพ
3. การรองรับหลายภาษา: รองรับการแปลเป็นภาษา 72 ภาษาที่แตกต่างกัน ซึ่งทำให้มี
ความสะดวกสบายในการใช้งานสำหรับผู้ใช้ที่ใช้ภาษาต่าง ๆ
4. โครงการที่เสถียรและยืดหยุ่น: เป็นโครงการที่มีรหัสซอร์สมั่นคงและยืดหยุ่น มันได้รับ
ความนิยมและการยอมรับมากในชุมชนของนักพัฒนาและผู้ใช้ MySQL
25

รูปที่ 2.13 รูปแสดงไอคอนของโปรแกรม phpMyAdmin [16]

2.11 ภาษา SQL


Structured Query Language (SQL) เป็นภาษาโปรแกรมมิ่งที่มีมาตรฐานที่ใช้ในการ
บริหารจัดการฐานข้อมูลรูปแบบริเลชันและปฏิบัติการต่าง ๆ บนข้อมูลในฐานข้อมูลเหล่านี้ ถูกสร้าง
ขึ้นเริ่มแรกในยุคที่ 1970s และ SQL ถูกใช้โดยผู้ดูแลฐานข้อมูลและนักพัฒนาที่เขียนสคริปต์การ
ผสานข้อมูลและนักวิเคราะห์ข้อมูลที่ต้องการตั้งค่าและเรียกใช้คิวรีทางวิเคราะห์ [17]
SQL ถูกใช้ในการดำเนินการต่าง ๆ ดังนี้:
1. การปรับเปลี่ยนโครงสร้างของตารางและดัชนีในฐานข้อมูล
2. การเพิ่ม, การปรับปรุง และการลบแถวข้อมูล
3. การเรียกดึงข้อมูลส่วนหนึ่งจากภายในระบบจัดการฐานข้อมูลรูปแบบริเลชัน
(RDBMS) ข้อมูลเหล่านี้สามารถใช้สำหรับการประมวลผลทางธุรกรรม, แอนาลิติกแอปพลิเคชันและ
แอปพลิเคชันอื่น ๆ ที่ต้องการสื่อสารกับฐานข้อมูลรูปแบบริเลชัน
คิวรี SQL และการดำเนินการอื่น ๆ มีรูปแบบเป็นคำสั่งที่เขียนเป็นคำสั่งและรวมเข้า
ด้วยกันเป็นโปรแกรมที่ช่วยให้ผู้ใช้เพิ่ม, ปรับเปลี่ยน หรือเรียกดูข้อมูลจากตารางฐานข้อมูล ตารางเป็น
หน่วยพื้นฐานที่ เล็กที่สุดของฐานข้อมูลและประกอบด้วยแถวและคอลัมน์ของข้อมูล ตารางเดียว
รองรับรายการข้อมูล และแต่ละรายการถูกเก็บไว้ในแถวของตาราง ตารางเป็นองค์ประกอบที่ใช้มาก
ที่สุดในฐานข้อมูลแบบริเลชัน หรือโครงสร้างที่เก็บหรืออ้างอิงข้อมูลในฐานข้อมูลแบบริเลชัน

2.12 ภาษา PHP


PHP เป็นภาษาโปรแกรมมิ่งฝั่งเซิร์ฟเวอร์ที่เปิดตัวเป็นโอเพนซอร์ส ซึ่งสามารถใช้สร้าง
เว็บไซต์, แอปพลิเคชัน, ระบบการจัดการลูกค้าและอื่น ๆ ได้ เป็นภาษาที่ใช้กันอย่างแพร่หลายที่มี
26

ลักษณะทั่วไปและสามารถฝังลงใน HTML ได้ ความสามารถในการทำงานร่วมกับ HTML ทำให้ PHP


เป็นภาษาที่ยังคงได้รับความนิยมอย่างสูงจากนักพัฒนา เนื่องจากมันช่วยในการทำให้รหัส HTML ง่าย
ขึ้น [18]
การเขียนโปรแกรม PHP สามารถใช้สร้างสิ่งต่าง ๆ ที่นักพัฒนาซอฟต์แวร์ต้ อ งการ
อย่างไรก็ตาม มีสามอย่างหลัก ๆ ที่เป็นข้อได้เปรียบของ PHP:
1. การสคริปต์ฝั่งเซิร์ฟเวอร์ (Server-side scripting): การสคริปต์ฝั่งเซิร์ฟเวอร์เป็น
ความแข็งแกร่งหลักของ PHP สคริปต์ฝั่งเซิร์ฟเวอร์คุณจะต้องมีตัวแยกวิเคราะห์ PHP, เว็บเซิร์ฟเวอร์,
และเบราว์เซอร์เว็บ
2. การสคริปต์บรรทัดคำสั่ง (Command-line scripting): การสคริปต์บรรทัดคำสั่ง
เหมาะสำหรับสคริปต์ที่สร้างขึ้นโดยใช้ cron (Linux) หรือ Task Scheduler (Windows) มันยัง
เหมาะสำหรับการประมวลผลข้อความอย่างง่าย
3. การเขียนแอปพลิเคชันบนเดสก์ทอป (Writing desktop applications): บางครั้ง
PHP อาจไม่ใช่ภาษาที่ดีที่สุดในการสร้างแอปพลิเคชันบนเดสก์ทอป แต่สำหรับนักพัฒนาเว็บที่มีความ
ชำนาญมาก ทำให้มีตัวเลือกมากมาย
แน่ น อนว่ า PHP สามารถทำอะไรได้ ห ลายอย่ า ง เช่ น ช่ ว ยในการรวบรวมข้ อ มู ล
แบบฟอร์ม, การเข้ารหัสข้อมูลผู้ใช้, การส่งและรับคุกกี้ หนึ่งในคุณสมบัติสำคัญของ PHP คือเข้ากันได้
กับระบบปฏิบัติการที่สำคัญทุกประเภท ทำให้สามารถเขียนโค้ดได้ไม่ว่าจะใช้เทคโนโลยีอะไร

2.13 JSON
JSON ย่อมาจาก (JavaScript Object Notation) เป็นมาตรฐานในการแลกเปลี่ยน
ข้อมูล (Data Interchange Format) ที่ได้รับความนิยมแทบจะสูงที่สุดในปัจจุบัน ก่อกำเนิดขึ้นในช่วง
ต้นยุค 2000 ซึ่ง JSON เป็นที่นิยมโดยเฉพาะในงานด้านการทำ APIs แม้ว่าจะมีรูปแบบข้อมูลอื่น ๆ
อีกมากมายเช่น XML, CSV, YAML และอื่น ๆ เป็นต้น โดยปกติแล้วส่วนใหญ่ JSON จะถูกนำไปใช้
งานเกี่ยวกับงานด้าน API Development เช่น การทำ RESTful APIs เป็นต้น [19]
ประเภทของข้อมูลใน JSON:
String: ข้อมูลประเภทข้อความ ตัวอักษร
Number: ข้อมูลประเภทตัวเลข
Boolean: ข้อมูลประเภทจริงหรือเท็จ
Array: ชุดข้อมูลที่อยู่ใน array ในเครื่องหมาย [...] ข้อมูลแบบนี้เราจะเรียกว่า JSON
Array
27

Object: คือชุดข้อมูลแบบ key: value โดยอยู่ในเครื่องหมายปีกกา {...} โดยข้อมูล


ประเภทนี้เราจะเรียกว่า JSON Object เช่นกัน
Null: ชุดข้อมูลแบบว่างเปล่า

2.14 ภาษา HTML


ภาษาเครื่องหมาย HTML (HyperText Markup Language) เป็นชุดของสัญลักษณ์
หรือรหัสที่ถูกแทรกเข้าไปในไฟล์ที่ตั้งใจใช้ในการแสดงผลบนอินเทอร์เน็ต สัญลักษณ์หรือรหัสเหล่านี้
บอกให้เบราว์เซอร์เว็บรู้ว่าจะแสดงคำและรูปภาพบนหน้าเว็บอย่างไร แต่ละสัญลักษณ์หรือรหัสที่ถูก
ใช้ แ ตกต่ า งกั น เรี ย กว่ า องค์ ป ระกอบ แม้ ว ่ า บางครั ้ ง คนอาจเรี ย กว่ า แท็ ก ด้ ว ย เราจะพบว่ า บาง
องค์ประกอบมาในคู่ที่บ่งชี้เมื่อเอฟเฟกต์การแสดงผลบางอย่างเริ่มและเมื่อจะสิ้นสุด รูปแสดงไอคอน
ของภาษา HTML แสดงดังรูปที่ 2.14 [20]
HTML เป็นภาษาคอมพิวเตอร์ที่เป็นตัวอำนวยความสะดวกในการสร้างเว็บไซต์ ภาษานี้
มีคำสั่งและไวยากรณ์เหมือนกับภาษาอื่น ๆ และเรียนรู้ได้ง่ายเป็นไปตามเวลา และมีความทรงพลัง
มากขึ้น ในการสร้างสรรค์สิ่งต่าง ๆ HTML ยังคงพัฒ นาต่อเพื่อตอบสนองต่อความต้องการและ
ข้ อ กำหนดของอิ น เทอร์ เ น็ ต ภายใต้ ก ารดู แ ลและออกแบบขององค์ ก ร World Wide Web
Consortium ตัวอย่างเช่น กับการเปลี่ยนจาก Web 1.0 ไปสู่ Web 2.0
โครงสร้างพื้นฐานของภาษา HTML
<html>
<head>
<title>หัวข้อเว็บเพจ</title>
</head >
<body>
…ส่วนของเนื้อหา หรือข้อความที่จะใช้แสดงเนื้อหาในเว็บเพจ
</body>
</html>
28

รูปที่ 2.14 รูปแสดงไอคอนของภาษา HTML [21]

2.15 ภาษา CSS


ภาษาสไตล์ชีทแบบแพร่กระจาย (Cascading Style Sheets หรือ CSS) เป็นภาษา
สไตล์ชีทที่ใช้ในการระบุการนำเสนอของเอกสารที่เขียนด้วย HTML หรือ XML โดย CSS ช่วยกำหนด
วิธีการแสดงผลองค์ประกอบต่าง ๆ บนหน้าเว็บ เป็นการกำหนดรูปแบบที่องค์ประกอบควรถูกแสดง
บนหน้าจอคอมพิวเตอร์ หน้ากระดาษพิมพ์ สื่อเสียง หรือสื่ออื่น ๆ รูปแสดงไอคอนของภาษา CSS
แสดงดังรูปที่ 2.15 [22]
CSS เป็นหนึ่งในภาษาหลักของโลกเว็บที่เปิดตัวให้ผู้ใช้ทั่วไปเข้าถึง และมีมาตรฐานตาม
ข้อมูลจากองค์กร World Wide Web Consortium (W3C)

รูปที่ 2.15 รูปแสดงไอคอนของภาษา CSS [23]


29

บทที่ 3
การออกแบบและการจัดทำปริญญานิพนธ์
3.1 การออกแบบ
3.1.1 การออกแบบการทำงานของระบบ
การเก็บเกี่ยวผลผลิตของชาวสวนทุเรียน ปกติจะทำการเช็คระดับตามความอ่อนแก่ของ
ทุเรีย นด้ว ยการใช้การนับอายุซึ่งให้ประสิทธิภ าพแค่ 80 เปอร์เซ็นต์เท่านั้น ทำให้ผ ลผลิตไม่ได้
มาตรฐานและคุณภาพที่มั่นคง โดยจุดประสงค์ของโครงงานนี้จึงต้องการที่จะออกแบบและพัฒนาการ
แสดงข้อมูลของผลทุเรียนผ่านหน้าต่าง GUI โดยการใช้เทคโนโลยีอาร์เอฟไอดีในการติดตามและนับ
จำนวนอายุของทุเรียนเพื่อความสะดวกในการตรวจสอบอายุของทุเรียนและเพิ่มประสิทธิภาพการเก็บ
เกี่ยวเพิ่มขึ้นโดยการใช้เครื่องวัดน้ำตาล ซึ่งจากงานวิจัยพบว่าเราสามารถตรวจสอบความอ่อนแก่ของ
ทุเรียนได้จากระดับน้ำตาลที่ขั้วของทุเรียน ซึ่งให้ผลยืนยันความอ่ อนแก่ได้ถูกต้องแม่นยำกว่าการนับ
อายุ
บล็อกไดอะแกรมของอุปกรณ์แสดงดังรูปที่ 3.1 โดยจะทำการเก็บข้อมูลจากต้น
ทุเรียน 2 วิธี วิธีที่ 1 ใช้ แท็กอาร์เอฟไอดีติดที่ผลทุเรียนและจะใช้เครื่องอ่านอาร์เอฟไอดีในการสแกน
เก็บข้อมูลผลทุเรียนส่งผ่านไปให้ ESP-WROOM-32 และจัดเก็บข้อมูลลงในฐานข้อมูลพร้อมกับการ
นับเวลา ซึ่งสามารถเปิดดูข้อมูลผลทุเรียนในฐานข้อมูลโดยเว็บไซต์ผ่านหน้าต่าง GUI วิธีที่ 2 เป็นการ
ตรวจสอบความอ่อนแก่ของทุเรียนด้วยเครื่องวัดระดับน้ำตาล

รูปที่ 3.1 บล็อกไดอะแกรมของระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน


30

3.1.2 การออกแบบวงจร
3.1.2.1 การออกแบบวงจรของระบบติดตามของผลทุเรียน
ผู้จัดทำได้ทำการออกแบบวงจรของระบบติดตามและวัดความอ่อนแก่ของผล
ทุ เ รี ย น โดยเริ ่ ม ด้ ว ยการทำงานของเทคโนโลยี แ ท็ ก อาร์ เ อฟไอดี , เครื ่ อ งอ่ า นอาร์ เ อฟไอดี แ ละ
ไมโครคอนโทรลเลอร์ ได้แก่ ISO 14443 Type A, เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M และ ESP-
WROOM-32 ตามลำดับ ทำการติดแท็กอาร์เอฟไอดี ติดไว้ที่ขั้วของทุเรียนซึ่งจะทำการติดตามผล
ทุเรียน และใช้เครื่องอ่านอาร์เอฟไอดีสแกนแท็กอาร์เอฟไอดีซึ่งจะทำงานตามเงื่อนไขที่กำหนดในการ
สแกน และทำการส่งเฟรมข้อมูลที่ได้รับจากการสแกนแท็กอาร์เอฟไอดี ไปยัง ESP-WROOM-32
บอร์ดไมโครคอนโทรลเลอร์ เพื่อส่งเฟรมข้อมูล ที่ต้องการไปจัดเก็บในฐานข้อมูล และแสดงผลบน
หน้าต่างเว็บไซต์ วงจรการเชื่อมต่อระบบแสดงดังรูปที่ 3.2

รูปที่ 3.2 วงจรการเชื่อมต่อระบบติดตามของผลทุเรียน

3.1.2.2 การออกแบบวงจรการส่งข้อมูลของโมดูล ESP-WROOM-32


ทำการออกแบบวงจรการส่งข้อมูลของโมดูล ESP-WROOM-32 โดยทำบน
โปรแกรม EasyEDA ทำการต่อวงจร ESP-WROOM-32 กับเครื่องออสซิลโลสโคปและ GND เพื่อทำ
การวัดสัญญาณไฟ การจำลองการต่อวงจรแสดงดังรูปที่ 3.3
31

รูปที่ 3.3 รูปแสดงการจำลองการต่อวงจรทดสอบการส่งข้อมูลแบบเลขฐาน 16 ของโมดูล ESP32

3.1.2.3 การออกแบบวงจรการรับข้อมูลระหว่าง ESP-WROOM-32 เครื่อง


อ่านอาร์เอฟไอดีโมดูล SL025M
ทำการออกแบบวงจรการรับข้อมูลระหว่าง ESP-WROOM-32 เครื่องอ่านอาร์
เอฟไอดี โ มดู ล SL025M โดยทำบนโปรแกรม EasyEDA โดยต่ อ อุ ป กรณ์ ท ั ้ ง สองกั บ เครื ่ อ ง
ออสซิลโลสโคปและ GND เพื่อทำการวัดสัญญาณไฟ รูปแสดงการจำลองการต่อวงจรแสดงดังรูปที่
3.4

รูปที่ 3.4 รูปแสดงการจำลองการต่อวงจรทดสอบการรับข้อมูลระหว่าง ESP-WROOM-32 และ


เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M

3.1.2.4 การออกแบบวงจรทำแผ่นปริ้นวงจร
ทำการออกแบบวงจรสำหรับทำแผ่นปริ้นวงจรโดยทำบนโปรแกรม EasyEDA
โดยเป็นวงจรสำหรับใส่อุปกรณ์คือ เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M และ ESP-WROOM-32
32

วงจรสำหรับเครื่องอ่านอาร์เอฟไอดีโมดูล SL025M และ ESP-WROOM-32 แสดงดังรูปที่ 3.5 การ


เชื่อมต่อลายเส้น (Route Traces) ของวงจรแสดงดังรูปที่ 3.6

รูปที่ 3.5 วงจรสำหรับเครื่องอ่านอาร์เอฟไอดีโมดูล SL025M และ ESP-WROOM-32

รูปที่ 3.6 การเชื่อมต่อลายเส้น (Route Traces) ของวงจร


33

3.1.3 การออกแบบเงื่อนไขการทำงานของ ESP-WROOM-32


ภาพแสดงเงื่อนไขการทำงานของ ESP-WROOM-32 แสดงดังภาพที่ 3.7

รูปที่ 3.7 การเชื่อมต่อรอยเส้นเงื่อนไขการทำงานของ ESP-WROOM-32

3.1.4 การออกแบบกล่องใส่อุปกรณ์
3.1.4.1 ทำแผ่นปริ้นวงจรสำหรับกล่องใส่อุปกรณ์
ทำแผ่นปริ้นวงจรสำหรับเครื่องอ่านอาร์เอฟไอดีโมดูล SL025M และ ESP-
WROOM-32 เพื่อนำไปใส่ในกล่องอุปกรณ์ โดยใช้วงจรจากรูปที่ 3.5 การกัดแผ่นปริ้นวงจรแสดงดังรูป
ที่ 3.8 การเจาะแผ่นปริ้นวงจรแสดงดังรูปที่ 3.9 การบัดกรีแผ่นปริ้นวงจรแสดงดังรูปที่ 3.10 ประกอบ
อุปกรณ์เข้ากับแผ่นปริ้นวงจรแสดงดังรูปที่ 3.11
34

รูปที่ 3.8 การกัดแผ่นปริ้นวงจร

รูปที่ 3.9 การเจาะแผ่นปริ้นวงจร

รูปที่ 3.10 การบัดกรีแผ่นปริ้นวงจร


35

รูปที่ 3.11 ประกอบอุปกรณ์เข้ากับแผ่นปริ้นวงจร

3.1.4.2 ทำกล่องใส่สำหรับอุปกรณ์
ทำการออกแบบการทำกล่องสำหรับใส่เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M
และ ESP-WROOM-32 ทำการออกแบบกล่องโดยวัดขนาดอ้างอิงจากอุปกรณ์ ซึ่งกล่องที่เลือกใช้มี
วัสดุเป็นไม้ ใช้สีสเปรย์สีดำพ่นรอบนอกของตัวกล่อง โดยกล่องสามารถดึงอุปกรณ์ออกมาได้ เพื่อที่จะ
สามารถแก้ ไ ขหรื อ อั พ เดท Code ในไมโครคอนโทรลเลอร์ ESP-WROOM-32 ได้ กล่องมี ข นาด
14*6*2.5 ซม. ยาว กว้าง และสูงตามลำดับ ด้านนอกของกล่องอุปกรณ์แสดงดังรูปที่ 3.12 ภาพดึง
อุปกรณ์ออกมาจากกล่องแสดงดังรูปที่ 3.13 อุปกรณ์ทั้งหมดภายในกล่องแสดงดังรูปที่ 3.14

รูปที่ 3.12 ด้านนอกของกล่องอุปกรณ์

รูปที่ 3.13 ภาพดึงอุปกรณ์ออกมาจากกล่อง


36

รูปที่ 3.14 อุปกรณ์ทั้งหมดภายในกล่อง

3.2 เครื่องมือที่ใช้ในการทดลอง
ในโครงงานนี้ มีอุปกรณ์และเครื่องมือที่ใช้ในการทดลอง ดังนี้
3.2.1 ไมโครคอนโทรลเลอร์ ESP-WROOM-32
ผู้จัดทำเลือกใช้ บอร์ดไมโครคอนโทรลเลอร์ ESP-WROOM-32 ใช้สำหรับการทำงานกับ
เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M รับและส่งข้อมูลจาก ESP-WROOM-32 เพื่อประมวลผลแล้ว
ส่งข้อมูลไปยังฐานข้อมูลหรือหน้าต่างเว็บไซต์ ดังแสดงในรูปที่ 2.4
3.2.2 ISO 14443 Type A
ผู้จัดทำเลือกใช้ ISO 14443 Type A ในโครงงานใช้สำหรับติดกับผลทุเรียน เพื่อในการ
ติดตามและวัดความอ่อนแก่ของผลทุเรียน ดังแสดงในรูปที่ 2.5
3.2.3 Mifare RFID Reader/Writer Module SL025M
ผู้จัดทำเลือกใช้เครื่องอ่านอาร์เอฟไอดี Module SL025M ในโครงงานใช้สำหรับสแกน
แท็กอาร์เอฟไอดี ISO 14443 Type A เพื่อส่งคำสั่งต่าง ๆ เช่น การขอข้อมูลของแท็กอาร์เอฟไอดี ดัง
แสดงในรูปที่ 2.6
3.2.4 สาย Micro USB
ผู้จัดทำเลือกใช้สายไมโครยูเอสบี ในโครงงานใช้สำหรับจ่ายไฟและอัปโหลดโค้ดให้กับ
ESP-WROOM-32 ดังแสดงในรูปที่ 3.15
37

รูปที่ 3.15 สายไมโครยูเอสบี

3.2.5 Power bank


ผู ้ จ ั ด ทำเลื อ กใช้ Power bank เป็ น แหล่ ง พลั ง งานไฟฟ้ า สำหรั บ จ่ า ยไฟให้ กั บ
ไมโครคอนโทรลเลอร์ ESP-WROOM-32
3.2.6 Oscilloscope
เป็นเครื่องมือวัดค่าไฟฟ้าที่ใช้ในการวัดและแสดงผลค่าแรงดันไฟฟ้าตามเวลา โดยมีหน้า
จอแสดงผลเป็นกราฟที่แสดงค่าแรงดันไฟฟ้าตามเวลา โดยสามารถวัดค่าแรงดันไฟฟ้าตรง (DC) และ
แรงดันไฟฟ้าสลับ (AC) ได้ รวมถึงวัดค่าเวลา คาบเวลา และความถี่ของสัญญาณไฟฟ้า นอกจากนี้ยัง
สามารถวัดผลต่างทางเฟสของสัญญาณไฟฟ้าได้
3.2.7 Arduino IDE
ผู้จัดทำเลือกใช้ Arduino IDE ในโครงงานใช้สำหรับการเขียน Code การส่งคำสั่งต่าง ๆ
เพื่ออัปโหลดลง ESP-WROOM-32 ในการทำโครงงาน ดังแสดงในรูป 2.10
3.2.8 Visual Studio Code
ผู้จ ัดทำเลือกใช้ Visual Studio Code ในโครงงาน ใช้ส ำหรับ สร้างและออกแบบ
หน้าต่างเว็บไซต์แสดงผล ดังแสดงในรูปที่ 2.11
3.2.9 XAMPP
ผู้จัดทำเลือกใช้ XAMPP ในโครงงาน ใช้สำหรับในนการเปิดเซิร์ฟเวอร์ Local Host ดัง
แสดงในรูปที่ 2.12
3.2.10 phpMyAdmin
ผู้จัดทำเลือกใช้ phpMyAdmin ในโครงงาน ใช้สำหรับฐานข้อมูลไว้จัดเก็บและออกแบบ
วิธีเก็บข้อมูลต่าง ๆ ดังแสดงในรูปที่ 2.13
38

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

3.3 การจัดเก็บผลการทดลอง
3.3.1 ทดสอบการส่งข้อมูลแบบเลขฐาน 16 ของโมดูล ESP-WROOM-32
ทดสอบการส่งข้อมูลของโมดูล ESP-WROOM-32 ว่าสามารถส่งข้อมูลได้ถูกต้องและ
เพื่อเช็คอุปกรณ์ที่ใช้งานไม่มีการชำรุดหรือว่าความเสียหาย
3.3.2 ทดสอบการตรวจจับความถี่ที่เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M ส่งออก
ทดสอบการตรวจจับความถี่ที่เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M ส่งออก ว่าความถี่
ที่ถูกส่งออกมามีความถูกต้องตามทฤษฎีของอุปกรณ์
3.3.3 ทดสอบการรับข้อมูลระหว่าง ESP-WROOM-32 เครื่องอ่านอาร์เอฟไอดี
โมดูล SL025M
ทดสอบการรับข้อมูลระหว่าง ESP-WROOM-32 เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M
โดยการส่งคำสั่งเลือกแท็กตามคู่มือการใช้งานเครื่องอ่านอาร์เอฟไอดีโมดูล SL025M เพื่อตรวจสอบว่า
สามารถส่งและรับข้อมูลระหว่างสองอุปกรณ์ได้
3.3.4 ทดสอบการบันทึกข้อมูล UID (Unique Identifier) ของแท็กอาร์เอฟไอดีไป
ยังฐานข้อมูล
ทดสอบการบันทึกข้อมูลยูไอดีของแท็กอาร์เอฟไอดีไปยังฐานข้อมูล โดยการส่งข้อมูลที่
ได้รับมาจากแท็กอาร์เอฟไอดี ผ่าน ESP-32 และใช้โปรแกรม XAMPP ในการเปิดเซิร์ฟเวอร์ Local
host เพื่อเปิดใช้งานเซิร์ฟเวอร์ในการจัดเก็บข้อมูลยูไอดีของแท็กอาร์เอฟไอดี โดยจะจัดเก็บข้อมูลนี้ไป
ยังเซิร์ฟเวอร์โดยทำการรับค่า (get) ที่ได้จากการใช้ HTTP POST ของโปรแกรม Arduino-IDE เก็บ
ข้อมูลไปที่ฐานข้อมูล
39

3.3.5 ทดสอบการแสดงผลข้อมูลจากฐานข้อมูลบน Web Server


ทดสอบการแสดงผลข้อมูลจากฐานข้อมูลบน Web Server ด้วยภาษา HTML, CSS
และ PHP โดยทำการจัดแสดงข้อมูลบนเว็บไซต์ คือ ไอดี, ยูไอดีของแท็กอาร์เอฟไอดี, วันเวลาที่เริ่มทำ
การติดแท็กอาร์เอฟไอดีและจำนวนวันที่ที่ผ่านมาหลังจากเริ่มติดอาร์เอฟไอดี
40

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

4.1 ทดสอบการเชื่อมต่อระหว่างอุปกรณ์
4.1.1 ทดสอบการส่งข้อมูลแบบเลขฐาน 16 ของโมดูล ESP-WROOM-32
ทดสอบอุปกรณ์ ESP-WROOM-32 โดยการทดลองส่งข้อมูลระหว่างขา RX2 และ TX2
ของ ESP-WROOM-32 เชื่อมเข้ากับคอมพิวเตอร์ด้วยสายไมโครยูเอสบี แล้วใช้โปรแกรม Arduino ใน
การเขียนคำสั่งส่งข้อมูล ซึ่งทดลองการส่งข้อมูลแบบเลขฐาน 16 และทำการตรวจจับสัญญาณที่ส่ง
ด้วยเครื่องออสซิลโลสโคป เพื่อตรวจสอบว่าข้อมูลที่ส่งมีความถูกต้อง โดยสัญญาณที่รับได้จะขึ้นที่
เครื่องออสซิลโลสโคป แบบสัญญาณสูง-ต่ำ โดยทำการอ่านค่าสัญญาณที่ขึ้นแสดงบนจอ ซึ่งสัญญาณที่
อ่านได้จะเป็นข้อมูลเลขฐาน 2 เฟรมข้อมูลที่ทดสอบได้ผลออกมาถูกต้อง สอดคล้องกับทฤษฎีของ
อุปกรณ์ ESP-WROOM-32 การจำลองการต่อวงจรแสดงดังรูปที่ 3.3 และรูปแสดงสัญญาณข้อมูลที่
ได้รับแสดงดังรูปที่ 4.1

รูปที่ 4.1 รูปแสดงสัญญาณข้อมูลที่ได้รับจากการทดสอบการส่งข้อมูลแบบเลขฐาน 16 ของโมดูล


ESP32

โดยตามเฟรมข้อมูลที่ได้รับจะได้ค่าเมื่อแปลงกลับมาเป็นเลขฐาน 16 คือ “BA”


41

4.1.2 ทดสอบการตรวจจับความถี่ที่เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M ส่งออก


ทำการทดสอบด้วยการตรวจจับสัญญาณความถี่ที่เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M
ส่งออกมา ด้วยเครื่องสเปกตรัม รูปแสดงสัญญาณความถี่ที่ทำการตรวจจับแสดงดังรูปที่ 4.2

รูปที่ 4.2 รูปแสดงสัญญาณความถี่ที่ตรวจจับได้จากเครื่องอ่านอาร์เอฟไอดีโมดูล SL025M

4.1.3 ทดสอบการรับข้อมูลระหว่าง ESP-WROOM-32 และ เครื่องอ่านอาร์เอฟไอดี


โมดูล SL025M
ทดสอบการรับข้อมูลระหว่าง ESP-WROOM-32 และเครื่องอ่านอาร์เอฟไอดีโ มดูล
SL025M เพื่อจะหา รหัสยูไอดีของแท็กอาร์เอฟไอดีด้วยการใช้เครื่องอ่านอาร์เอฟไอดีในการสแกน ซึ่ง
ส่งข้อมูลเป็นรูปแบบคำสั่งตามคู่มือของเครื่องอ่านอาร์เอฟไอดีโมดูล SL025M โดยการทดลองส่ง
ข้อมูลระหว่างขา RX2 และ TX2 ของ ESP-WROOM-32 และขา RXD และ TXD ของเครื่องอ่านอาร์
เอฟไอดีโมดูล SL025M โดยต่อแบบไขว้กันระหว่างตัวรับและส่ง เชื่อมเข้ากับคอมพิวเตอร์ด้วยสายไม
โครยูเอสบี แล้วใช้โปรแกรม Arduino ในการเขียนคำสั่งส่ง-รับข้อมูล ซึ่งเป็นการส่งข้อมูลเลขฐาน 16
โดยตั้งค่า Baud rate เป็น 115,200 bps และทำการตรวจจับสัญญาณที่ฝั่งรับที่ขา RX2 ด้วยเครื่อง
ออสซิลโลสโคป เพื่อตรวจสอบข้อมูลที่ได้รับ โดยสัญญาณจะขึ้นที่เครื่องออสซิลโลสโคป ในลักษณะ
สัญญาณสูง-ต่ำ และจะอ่านข้อมูลได้ในลักษณะเลขฐาน 2 เฟรมข้อมูลที่ได้รับตอบกลับจากการสแกน
แท็กอาร์เอฟไอดี มีความถูกต้องสอดคล้องกับทฤษฎีของเครื่องอ่านอาร์เอฟไอดีโ มดูล SL025M
รูปแสดงการจำลองการต่อวงจรแสดงดังรูปที่ 3.4 แสดงเฟรมข้อมูลที่ทำการส่งแสดงดัง ตารางที่ 2.8
รูปแสดงสัญญาณข้อมูลที่ส่งแสดงดังรูปที่ 4.3 แสดงเฟรมข้อมูลที่ได้รับแสดงดังตารางที่ 2.9 รูปแสดง
42

สัญญาณข้อมูลที่ได้รับแสดงดังรูปที่ 4.4, 4.6 และ 4.8 และรูปแสดงผลเฟรมข้อมูลตอบกลับแสดงดัง


รูปที่ 4.5, 4.7 และ 4.9

รูปที่ 4.3 รูปแสดงสัญญาณข้อมูลที่ส่ง

รูปที่ 4.4 รูปแสดงสัญญาณข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 1


43

รูปที่ 4.5 รูปแสดงผลเฟรมข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 1

โดยตามเฟรมข้อมูลที่ได้รับจะได้ค่ายูไอดีของบัตรมีค่า 62 38 2A ED

รูปที่ 4.6 รูปแสดงสัญญาณข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 2


44

รูปที่ 4.7 รูปแสดงผลเฟรมข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 2

โดยตามเฟรมข้อมูลที่ได้รับจะได้ค่ายูไอดีของบัตรมีค่า FA 15 10 92

รูปที่ 4.8 รูปแสดงสัญญาณข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 3


45

รูปที่ 4.9 รูปแสดงผลเฟรมข้อมูลที่ได้รับจากการแตะบัตรแท็กอาร์เอฟไอดีใบที่ 3

โดยตามเฟรมข้อมูลที่ได้รับจะได้ค่ายูไอดีของบัตรมีค่า 7A 0C 10 92

4.2 ทดสอบการบันทึกข้อมูลยูไอดีของแท็กอาร์เอฟไอดีไปยังฐานข้อมูล
เขียนคำสั่งในโปรแกรม Arduino โดยจะใช้ HTTPClient.h ไลบรารี ใช้สร้าง HTTP
client บน Arduino เพื่อส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์เว็บ และ WiFi.h ไลบรารี ใช้เพื่อ
เชื่อมต่อ Arduino กับเครือข่ายไวไฟ สองไลบรารีนี้เป็นสิ่งที่จำเป็นสำหรับการเชื่อมต่อ
Arduino กับเครือข่ายไวไฟและการทำคำขอ HTTP เพื่อเชื่อมต่อกับ ไวไฟที่จะใช้งาน รูป
แสดงผลตอบรับจากการส่งคำขอ HTTP POST สำเร็จแสดงดังรูปที่ 4.10 รูปแสดงข้อมูลที่
ส่งไปเก็บในฐานข้อมูลได้สำเร็จแสดงดังรูปที่ 4.11
คำอธิบายเมื่อทำการรันโค้ด
1. การเชื่อมต่อไวไฟ:
Arduino เริ่มต้นโดยการเชื่อมต่อกับเครือข่ายไวไฟ ที่กำหนดด้วยชื่อ (SSID) และ
รหัสผ่านที่เรากำหนด (SSID password)
2. การตรวจสอบข้อมูลอาร์เอฟไอดี:
Arduino อ่านสถานะจากขาข้อมูลของอาร์เอฟไอดี (ที่เชื่อมต่อกับขา 13 หรือ D13)
หาก Arduino ตรวจจับอาร์เอฟไอดี ถ้าค่า `val` น้อยกว่า 0.5 โวลต์ โค้ดจะส่งข้อมูลคำสั่งพิเศษผ่าน
พอร์ตซีเรียล เพื่อเรียกใช้งานอาร์เอฟไอดี
3. การอ่านข้อมูลอาร์เอฟไอดี:
46

Arduino รอรับข้อมูลจากพอร์ตซีเรียลโดยใช้ `Serial.available()` เพื่อตรวจสอบว่ามี


ข้อมูลเข้าสู่พอร์ตหรือไม่ หากมีข้อมูลเข้าสู่พอร์ต โค้ดจะอ่านข้อมูลอาร์เอฟไอดีที่มีความยาว 10 ไบต์
และบันทึกลงในอาร์เรย์ `UID` โค้ดยังตรวจสอบว่าข้อมูลอาร์เอฟไอดีที่อ่านมานั้นซ้ำกับข้อมูล อาร์เอฟ
ไอดีที่อ่านมาก่อนหน้าหรือไม่ ถ้าไม่ซ้ำกัน ข้อมูลอาร์เอฟไอดีใหม่จะถูกเก็บไว้ในอาร์เรย์ `UID`
4. การสร้างข้อมูล JSON:
หลังจากอ่านข้อมูลอาร์เอฟไอดีแล้ว โค้ดจะสร้างข้อมูล JSON จาก UID ที่ได้อ่าน และ
เรียงต่อกันเป็นสตริง JSON
5. การส่งข้อมูล JSON ไปยังเว็บแอป PHP ผ่าน HTTP POST:
โค้ดจะสร้างอ็อบเจ็กต์ `HTTPClient` เพื่อทำการส่งคำขอ HTTP POST ไปยังเซิร์ฟเวอร์
เว็บที่ระบุ (serverAddress) รายการหัวเรื่องของข้อมูลที่ส่งไปเป็น JSON จะถูกกำหนดโดยใช้
`http.addHeader("Content-Type", "application/json")` หลังจากนั้น คำขอ HTTP POST จะถูก
ส่งไปยังเซิร์ฟเวอร์เว็บพร้อมกับข้อมูล JSON โค้ดจะรอรับคำตอบจากเซิร์ฟเวอร์และแสดงรหัสการ
ตอบสนองและข้อมูลการตอบสนองผ่าน Serial Monitor
6. การรอคอยและทำซ้ำ:
หลังจากการส่งข้อมูลไปยังเซิร์ฟเวอร์ โค้ดจะรอคอยเป็นเวลา 5 วินาที ก่อนที่จะทำซ้ำ
กระบวนการอ่านอาร์เอฟไอดี และส่งข้อมูลอีกครั้ง
โดยสรุป โค้ด Arduino นี้ทำหน้าที่ตรวจจับข้อมูลจากอาร์เอฟไอดีแล้วส่งข้อมูลนี้ไปยัง
เซิร์ฟเวอร์เว็บที่ระบุผ่าน HTTP POST ในรูปแบบข้อมูล JSON โดยอ่านข้อมูลอาร์เอฟไอดีจากพอร์ต
ซีเรียลและทำการส่งข้อมูลในลูปเพื่อตรวจสอบอาร์เอฟไอดีต่อเนื่อง
47

ถ้าคำขอ HTTP POST สำเร็จ เซิร์ฟเวอร์จะ


ส่ง HTTP Response code : 200 กลับมา

รูปที่ 4.10 รูปแสดงผลตอบรับจากการส่งคำขอ HTTP POST สำเร็จ

โดย HTTP Response 200 เป็นการบอกว่าคำขอที่ร้องขอไปสำเร็จ (Success) ผลการ


ทดสอบสอดคล้องกับทฤษฎีรหัสสถานะการตอบกลับ HTTP

รูปที่ 4.11 รูปแสดงข้อมูลทีส่ ่งไปเก็บในฐานข้อมูลได้สำเร็จ


48

4.3 ทดสอบการแสดงผลข้อมูลจากฐานข้อมูลบน Web Server


ทำการเขียนเว็บไซต์ในโปรแกรม Visual Studio Code ด้วยภาษา HTML, CSS และ
PHP โดยทำการจัดแสดงข้อมูลบนเว็บไซต์ คือ ไอดี, ยูไอดีของแท็กอาร์เอฟไอดี, วันที่นำเข้าข้อมูล
และจำนวนวันตั้งแต่การนำเข้าข้อมูล ซึ่งทำการส่งข้อมูลขึ้นแสดงบนเว็บไซต์โดยใช้ PHP รูปแสดง
ข้อมูลภายในฐานข้อมูลที่ใช้ในการแสดงผลแสดงดังรูปที่ 4.12 รูปแสดงหน้าต่าง LOGIN ก่อนทำการ
เข้าสู่ระบบแสดงดังรูปที่ 4.13 รูปแสดงผลข้อมูลบนหน้าต่างเว็บไซต์แสดงดังรูปที่ 4.14 ตารางแสดง
องค์ประกอบหน้าต่างเว็บไซต์แสดงผลแสดงดังตารางที่ 4.1

รูปที่ 4.12 ภาพแสดงข้อมูลภายในฐานข้อมูลที่ใช้ในการแสดงผล

รูปที่ 4.13 รูปภาพแสดงหน้าต่าง LOGIN ก่อนทำการเข้าสู่ระบบ


49

รูปที่ 4.14 รูปแสดงผลข้อมูลบนหน้าต่างเว็บไซต์

ตารางที่ 4.1 ตารางแสดงองค์ประกอบหน้าต่างเว็บไซต์แสดงผล


ลำดับตำแหน่ง ความหมาย
1 แสดงลำดับของ ID
2 แสดงหมายเลข UID
3 แสดงวันที่นำเข้าข้อมูล
4 แสดงจำนวนวันตั้งแต่การนำเข้าข้อมูล
5 แสดงสถานะของทุเรียน
6 ปุ่มลบข้อมูล
7 ปุ่มล็อกเอาท์หรือไปสู่หน้าล็อกอิน
50

บทที่ 5
สรุปผลและข้อเสนอแนะ
5.1 สรุปผล
โครงงานนี้ ม ี เ ป้ า หมายที ่ จ ะเพิ ่ ม ประสิ ท ธิ ภ าพผลผลิ ต ของทุ เ รี ย นและเพิ ่ ม ความ
สะดวกสบายในการทำการเกษตรโดยการนำเทคโนโลยีเข้ามามีบทบาทมากขึ้น ทางเราได้พัฒนาระบบ
การแสดงผลข้อมูลของผลทุเรียนผ่านหน้าต่าง GUI โดยการใช้เทคโนโลยีอาร์เอฟไอดีในการติดตามผล
ทุเรียน โดยการติดแท็กเพื่อนับวันตั้งแต่เริ่มต้นทำให้ทราบถึงอายุของทุเรียนตั้งแต่ทำการติดแท็ก ทำ
ให้ทราบถึงระยะต่าง ๆ ของผลทุเรียนได้ เช่น ผ่านไป 5-8 สัปดาห์หลังระยะดอกบาน (ระยะกระป๋อง
นม) ควรโยงกิ่งให้มีความมั่นคงแข็งแรง สามารถรับน้ำหนักผลผลิตต่อกิ่งได้ จึงเป็นประโยชน์ต่อ
ชาวสวนทุเรียนอย่างมาก ทำให้ชาวสวนทุเรียนไม่จำเป็นต้องทำการนับวันหรือจดบันทึกด้วยตนเอง
เป็นการใช้เทคโนโลยีเข้ามามีบทบาทมากขึ้นในการทำการเกษตร ทำให้ประหยัดเวลาได้มากขึ้นและ
ยังเป็นการเพิ่มความสะดวกสบายในการดูแลและเก็บเกี่ยวผลผลิตอีกด้วย
ผู้จัดทำได้ออกแบบและจัดทำระบบติดตามและวัดความอ่อนแก่ของผลทุเรียน โดยทำ
การทดสอบการทำงานของอาร์เอฟไอดี ได้แก่ แท็กอาร์เอฟไอดี ISO 14443 Type A, เครื่องอ่านอาร์
เอฟไอดีโ มดูล SL025M และไมโครคอนโทรลเลอร์ ESP-WROOM-32 พบว่าเมื่อทำการเชื่ อ มต่ อ
อุปกรณ์เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M และ ESP-WROOM-32 เพื่อทำการอัปโหลดคำสั่งใน
การสแกนแท็กอาร์เอฟไอดี โดยส่งคำสั่งอ้างอิงจากทฤษฎีของเครื่องอ่านอาร์เอฟไอดีโมดูล SL025M
ดังตารางที่ 2.8 ส่งผลให้ เครื่องอ่านอาร์เอฟไอดีโมดูล SL025M สามารถสแกนแท็กอาร์เอฟไอดีและ
ได้รับการตอบกลับ คือเฟรมข้อมูลของแท็กอาร์เอฟไอดีซึ่งรวมถึงยูไอดี ที่เป็นตัวระบุที่ไม่ซ้ำกันของแต่
ละแท็ก ทดสอบการบันทึกข้อมูลไปยังฐานข้อมูล โดยใช้โปรแกรม XAMPP ในการเปิดเซิร์ฟเวอร์
Local host เพื่อเปิดใช้งานเซิร์ฟเวอร์ในการจัดเก็บข้อมูล ซึ่งจะจัดเก็บข้อมูลนี้ไปยังเซิร์ฟเวอร์ จาก
การใช้ HTTP POST ซึ่งเป็นหนึ่งในวิธีการร้องขอ HTTP ที่รองรับการส่งข้อมูลจากผู้ใช้งานไปยังเว็บ
เซิร์ฟเวอร์ โดยจะส่งข้อมูลที่ต้องการจัดเก็บในฐานข้อมูลในรูปแบบ JSON สตริง ไปยังเซิร์ฟเวอร์ และ
เซิร์ฟเวอร์ได้ส่งรหัสสถานะการตอบกลับคือ HTTP 200 ซึ่งหมายความว่าการร้องขอสำเร็จ และข้อมูล
สามารถบันทึกลงฐานข้อมูลได้สำเร็จ ทดสอบการแสดงผลข้อมูลจากฐานข้อมูลบนเว็บเซิร์ฟเวอร์ ด้วย
ภาษา HTML, CSS และ PHP โดยทำการจัดแสดงข้อมูลบนเว็บไซต์ คือ ไอดี , ยูไอดีของแท็กอาร์เอฟ
ไอดี, วันและเวลาที่เริ่มทำการติดแท็กอาร์เอฟไอดี และจำนวนวันที่ที่ผ่านมา หลังจากเริ่มติดแท็กอาร์
เอฟไอดี ซึง่ สามารถแสดงผลข้อมูลจากฐานข้อมูลบนเว็บไซต์ได้สำเร็จ แสดงดังรูปที่ 4.14
51

5.2 ปัญหาและข้อเสนอแนะ
ปัญหาที่พบ คณะผู้จัดทำได้ออกแบบโดยทำการจัดแสดงข้อมูลบนเว็บไซต์ คือ ไอดี, ยูไอ
ดีของแท็กอาร์เอฟไอดี , วันและเวลาที่เริ่มทำการติดแท็ก อาร์เอฟไอดี และจำนวนวันที่ ที่ผ่ านมา
หลังจากการติดแท็กอาร์เอฟไอดี ซึ่งทำการส่งข้อมูลขึ้นแสดงบนเว็บไซต์แบบเรียลไทม์ ซึ่งจากการที่
ตัวเครื่องอ่านอาร์เอฟไอดีโมดูล SL025M ต้องทำการอ่านค่าข้อมูลหมายเลขยูไอดีที่เข้ามาและทำการ
แสดงผลไปที่หน้าต่างเว็บไซต์ได้นั้น จำเป็นต้องมีการเชื่อมต่ออินเตอร์เน็ต หากอินเทอร์เน็ตที่ใช้ในการ
เชื่อมต่อมีความไม่เสถียรหรือเกิดความล่าช้า อาจทำให้การแสดงผลข้อมูลผ่านเว็บไซต์นั้นมีความล่าช้า
หรือการเชื่อมต่อกับอินเตอร์เน็ตอาจหลุดการเชื่อมต่อได้หากเป็นพื้นที่อับสัญญาณ ซึ่งทำให้การใช้งาน
ตัวอุปกรณ์นั้นมีข้อจำกัด โดยจำเป็นต้องใช้งานในพื้นที่ที่มีสัญญาณเข้าถึง สามารถพัฒนาต่อได้โดย
การเก็บข้อมูลไว้ในตัว ESP-WROOM-32 ก่อนชั่วคราว และเมื่อถึงจุดที่มีสัญญาณจะทำให้สามารถส่ง
หมายเลขยูไอดีไปแสดงผลที่เว็บไซต์ได้
52

บรรณานุกรม

[1] กรมวิชาการเกษตร. “ระยะการติดผลของต้นทุเรียน.” [ออนไลน์]. เข้าถึงได้จาก:


https://www.doa.go.th/share/attachment.php?aid=2973. (วันที่ค้นข้อมูล : 10
ตุลาคม 2566).
[2] naewna. “ภาพตัวอย่างต้นทุเรียนในระยะสุกแก่.” [ออนไลน์]. เข้าถึงได้จาก: https://
www.naewna.com/likesara/657156. (วันที่ค้นข้อมูล : 10 ตุลาคม 2566).
[3] KO Digitized Company. “NFC (Near Field Communication).” [ออนไลน์].
เข้าถึงได้จาก: https://www.ko.in.th/nfc-near-field-communication. (วันที่ค้น
ข้อมูล : 5 กันยายน 2566).
[4] Kanyawee Jin. “RFID (Radio Frequency Identification).” [ออนไลน์]. เข้าถึงได้
จาก: https://www.zipeventapp.com/blog/2022/08/18/what-is-rfid/.
(วันที่ค้นข้อมูล : 5 กันยายน 2566).
[5] Espressif. “ไมโครคอนโทรลเลอร์ ESP-WROOM-32.” [ออนไลน์]. เข้าถึงได้จาก:
https://www.espressif.com/sites/default/files/documentation/esp32-
wroom-32_datasheet_en.pdf. (วันที่ค้นข้อมูล : 7 กันยายน 2566).
[6] amazon. “พอร์ตการเชื่อมต่อ ESP-WROOM-32.” [ออนไลน์]. เข้าถึงได้จาก:
https://www.amazon.com/ESP-WROOM-32-Development-Microcontroller-
Integrated-Compatible/dp/B08D5ZD528?th=1. (วันที่ค้นข้อมูล : 7 กันยายน
2566).
[7] ThaiEasyElec. “แท็กอาร์เอฟไอดีมาตรฐาน ISO 14443 Type A .” [ออนไลน์].
เข้าถึงได้จาก: https://blog.thaieasyelec.com/rfid-ch4-how-to-use-rfid-
mifare/. (วันที่ค้นข้อมูล : 7 กันยายน 2566).
[8] StrongLink. “Mifare RFID Reader/Writer Module SL025M.” [ออนไลน์]. เข้าถึง
ได้จาก: http://www.stronglink- rfid.com/download/SL025M_
User_Manual_V3.0.pdf. (วันที่ค้นข้อมูล : 7 กันยายน 2566).
[9] ThaiEasyElec. “มาตรฐานการส่ง.” [ออนไลน์]. เข้าถึงได้จาก:
https://blog.thaieasyelec.com/whats-about-uart-ttl-rs232-max232-
max3232/. (วันที่ค้นข้อมูล : 15 กันยายน 2566).
53

[10] Mozilla Foundation. “รหัสสถานะการตอบกลับ HTTP 10.” [ออนไลน์]. เข้าถึงได้


จาก: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status.
(วันที่ค้นข้อมูล : 10 ตุลาคม 2566).
[11] ai-corporation.net. “"รู้จักและใช้งาน Arduino IDE เป็นใน 4 ขั้นตอน.” [ออนไลน์].
เข้าถึงได้จาก: https://www.ai-corporation.net/2021/11/18/what-is-arduino-
ide/#1648794579978-4ac5b2e6-420a. (วันที่ค้นข้อมูล : 8 กันยายน 2566).
[12] Martin Heller. “Visual Studio Code.” [ออนไลน์]. เข้าถึงได้จาก:
https://www.infoworld.com/article/3666488/what-is-visual-studio-code-
microsofts-extensible-code-editor.html. (วันที่ค้นข้อมูล : 7 กันยายน 2566).
[13] Wikipedia. “รูปแสดงไอคอนของโปรแกรม Visual Studio Code.” [ออนไลน์]. เข้าถึง
ได้จาก: https://en.m.wikipedia.org/wiki/File:Visual_Studio_
Code_1.35_icon.svg. (วันที่ค้นข้อมูล : 7 กันยายน 2566).
[14] Alongkorn Tengsamut. “XAMPP.” [ออนไลน์]. เข้าถึงได้จาก:
https://www.ninetechno.com/a/website/873-xampp.html. (วันที่ค้นข้อมูล : 2
กันยายน 2566).
[15] Wikipedia. “รูปแสดงไอคอนของโปรแกรม XAMPP.” [ออนไลน์]. เข้าถึงได้จาก:
https://it.m.wikipedia.org/wiki/File:Xampp_logo.svg. (วันที่ค้นข้อมูล : 2
กันยายน 2566).
[16] phpmyadmin.net. “phpMyAdmin.” [ออนไลน์]. เข้าถึงได้จาก:
https://www.phpmyadmin.net/. (วันที่ค้นข้อมูล : 2 กันยายน 2566).
[17] TechTarget. “ภาษา SQL.” [ออนไลน์]. เข้าถึงได้จาก:
https://www.techtarget.com/searchdatamanagement/definition/SQL.
(วันที่ค้นข้อมูล : 3 กันยายน 2566).
[18] codeinstitute.net. “ภาษา PHP.” [ออนไลน์]. เข้าถึงได้จาก:
https://codeinstitute.net/global/blog/what-is-php-programming/. (วันที่ค้น
ข้อมูล : 3 กันยายน 2566).
54

[19] devhub. “JSON.” [ออนไลน์]. เข้าถึงได้จาก: https://devhub.in.th/blog/what-is-


json. (วันที่ค้นข้อมูล : 6 กันยายน 2566).
[20] Investopedia. “ภาษา HTML.” [ออนไลน์]. เข้าถึงได้จาก:
https://www.investopedia.com/terms/h/html.asp#:~:text=HyperText%20
Markup%20Language%20(HTML)%20is,web%20page's%20words%20and%
20images. (วันที่ค้นข้อมูล : 7 กันยายน 2566).
[21] Wikipedia. “รูปแสดงไอคอนของภาษา HTML” [ออนไลน์]. เข้าถึงได้จาก:
https://en.m.wikipedia.org/wiki/File:HTML5_logo_and_wordmark.svg.
(วันที่ค้นข้อมูล : 7 กันยายน 2566).
[22] Mozilla Foundation. “ภาษา CSS.” [ออนไลน์]. เข้าถึงได้จาก:
https://developer.mozilla.org/en-US/docs/Web/CSS. (วันที่ค้นข้อมูล : 7
กันยายน 2566).
[23] Wikipedia. “รูปแสดงไอคอนของภาษา CSS.” [ออนไลน์]. เข้าถึงได้จาก:
https://en.wikipedia.org/wiki/CSS. (วันที่ค้นข้อมูล : 7 กันยายน 2566).
55

ภาคผนวก
ตัวอย่างคำสั่งการทำงานของระบบติดตามผลทุเรียน
56

#include <WiFi.h>
#include <HTTPClient.h>

const char* ssid = "Fivelittlemonkeyjumpingonthebed"; // ชื่อของเครือข่าย Wi-Fi


const char* password = "Nop12345"; // รหัสผ่านของเครือข่าย Wi-Fi
const char* serverAddress = "http://172.20.10.3/duriansystem/rfid_Success_Ver2.php";
// URL ของเซิร์ฟเวอร์ที่จะส่งข้อมูล UID ไป

#define RXD2 16 // กำหนดขา RXD2


#define TXD2 17 // กำหนดขา TXD2
char incomingByte;
int inpin = 13; // กำหนดขาที่ใช้ในการตรวจสอบข้อมูลจากอุปกรณ์ RFID
int val; //ตัวแปรสำหรับกำหนดค่า Volt ที่ผ่านเงื่อนไข

const int arraySize = 100; // ขนาดของอาร์เรย์ UID


byte UID[arraySize][4]; // ตัวแปรเก็บ UID ที่อ่านได้
bool UIDSent[arraySize] = {false}; // สถานะของการส่ง UID
int UIDIndex = 0; // ดัชนีของ UID ในอาร์เรย์

void setup() {
Serial.begin(115200, SERIAL_8E2, RXD2, TXD2); // เริ่มต้นการใช้งาน Serial
Communication
pinMode(inpin, INPUT); // กำหนดขา inpin
WiFi.begin(ssid, password); // เริ่มต้นการเชื่อมต่อ Wi-Fi

while (WiFi.status() != WL_CONNECTED) { // รอจนกว่าการเชื่อมต่อ Wi-Fi จะสำเร็จ


delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
}
57

void loop() {
val = digitalRead(inpin); // อ่านค่าจากขา inpin
if (val < 0.5) { //ถ้าค่า Volts ของขา input ที่เข้ามาน้อยกว่า 0.50 Volts ให้อ่านค่า
Serial.write(0xBA); //ทำการส่งเฟรมให้กับ RFID
delay(2);
Serial.write(0x02); //ทำการส่งเฟรมให้กับ RFID
delay(2);
Serial.write(0x01); //ทำการส่งเฟรมให้กับ RFID
delay(2);
Serial.write(0xB9); //ทำการส่งเฟรมให้กับ RFID
delay(2);
}

delay(600);

while (Serial.available()) { // เริ่มต้น Serial


for (int j = 0; j < 10; j++) {
incomingByte = Serial.read(); //คำสั่งอ่านค่าที่เข้ามาใน Serial
if (j >= 3 && j <= 6) {
UID[UIDIndex][j-3] = incomingByte; //เก็บข้อมูลที่เข้ามาแค่ 4 bytes ตั้งแต่ ตำแหน่งที่
1-4
}
}

bool isDuplicate = false; //เป็นตัวแปร ที่ใช้เพื่อติดตามว่า UID ที่อ่านมาซ้ำหรือไม่ โดย


กำหนดค่าเริ่มต้นเป็นเท็จ (false)
for (int k = 0; k < UIDIndex; k++) { //ไล่ตามดัชนี k จาก 0 ถึง UIDIndex เพื่อ
เปรียบเทียบ UID ที่อ่านมา (UID[UIDIndex]) กับ UID ที่อยู่ในอาร์เรย์ (UID[k])
bool match = true;
58

for (int j = 0; j < 4; j++) { //ลูป for ภายในนอกสุด (ควบคุมโค้ดด้านบน) ไล่ตามดัชนี j


จาก 0 ถึง 3 (4 ตำแหน่ง) เพื่อเปรียบเทียบแต่ละบายต์ของ UID.
if (UID[UIDIndex][j] != UID[k][j]) {
match = false; //ถ้ามีค่าบายต์ใดบายต์หนึ่งที่ไม่เท่ากันระหว่าง UID[UIDIndex][j]
break; //กับ UID[k][j] แล้วจะกำหนด match เป็นเท็จ (false) และจะออกจาก
ลูปภายในทันทีโดยใช้คำสั่ง break.
}
}
if (match) {
isDuplicate = true; //ถ้า match ยังคงเป็นจริง (true) หลังจากลูป for ภายในสิ้นสุดลง
หรือถ้าไม่มี UID ที่ตรงกันเจอ ค่า isDuplicate จะถูกกำหนดเป็นเท็จ (false) และโค้ดในบรรทัด
ถัดไปจะถูกดำเนินการ.
break;
}
}

if (!isDuplicate) {
UIDIndex++;
if (UIDIndex >= arraySize) { //ในกรณีที่ isDuplicate เป็นเท็จ (false), ดัชนี UIDIndex
จะถูกเพิ่มขึ้น 1 หาก UIDIndex เกินขนาดที่กำหนดใน arraySize แล้ว UIDIndex จะถูกกำหนดให้
เป็น 0.
UIDIndex = 0;

}
}
delay(0);
}

for (int k = 0; k < UIDIndex; k++) {


if (UIDSent[k]) { // Skip sending if UID is marked as sent
continue;
59

//ลูป for ด้านล่างไล่ตามดัชนี k จาก 0 ถึง UIDIndex เพื่อตรวจสอบและแสดงข้อมูล UID ที่


ไม่ได้ถูกส่งไปยังเซิร์ฟเวอร์
//โดยสังเกตค่า UIDSent[k] ถ้าค่าเป็นเท็จ (false) ถึงแม้ค่า isDuplicate จะเป็นจริง (true) ก็
ตาม
// และแสดง UID ในรูปแบบสตริง.
}
//แสดงค่า UID ที่ได้รับเข้ามา
Serial.print("UID ");
Serial.print(k);
Serial.print(": ");
for (int j = 0; j < 4; j++) {
Serial.print(UID[k][j], HEX);
Serial.print(" ");
}
Serial.println();

//ส่งข้อมูลด้วย Json
String jsonString = "{\"uid\":\""; //ระบุ "uid" เป็นชื่อของ attribute ใน JSON.
for (int j = 0; j < 4; j++) {
//ลูป for ถัดมาใช้เพื่อผลิตสตริง HEX จาก UID ที่อยู่ในอาร์เรย์ UID[k][j]
//แล้วเพิ่มลงในสตริง JSON ที่กำลังสร้าง
if (UID[k][j] < 0x10) jsonString += "0";
//ในกรณีที่ค่าใน UID[k][j] เป็นเลข HEX ที่มีหลักเดียว (น้อยกว่า 0x10)
//จะถูกเติมด้วย "0" นำหน้าเพื่อให้เป็นตัวเลขคู่ให้เห็นตัวเลข HEX
สวยงาม.
jsonString += String(UID[k][j], HEX);

}
jsonString += "\"}";

// ส่ง JSON ไป Web HTTP POST


60

HTTPClient http; //สร้างอ็อบเจกต์ HTTPClient เพื่อเตรียมสำหรับส่งข้อมูล HTTP request


ไปยังเซิร์ฟเวอร์.
http.begin(serverAddress); // เพื่อกำหนด URL ของเซิร์ฟเวอร์ที่จะส่งข้อมูล JSON ไป.
http.addHeader("Content-Type", "application/json"); //กำหนดหัวเรื่อง (header) ของ
HTTP request เป็น "application/json" ซึ่งระบุว่าข้อมูลที่ส่งไปเป็น JSON.

int httpResponseCode = http.POST(jsonString); //ส่งข้อมูล JSON ไปยังเซิร์ฟเวอร์ด้วย


HTTP POST request และรับค่า HTTP response code จากเซิร์ฟเวอร์.

if (httpResponseCode > 0) {
String response = http.getString(); //รับค่า HTTP response code จากเซิร์ฟเวอร์.
Serial.println("HTTP Response code: " + String(httpResponseCode));
// Serial.println(response);
} else {
//ถ้าไม่ได้รับมูลให้แสดงข้อความ "Error in HTTP request" เพื่อรายงานว่ามีข้อผิดพลาดในการ
ส่ง HTTP request.
Serial.println("Error in HTTP request");
}

http.end();

UIDSent[k] = true;
}

delay(100);
}

You might also like