21.12.2017 Views

Project file book

Project file book - EE-01

Project file book - EE-01

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

โครงงานเลขที่ วศ.ฟ. 01/2558<br />

ระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่ายไร้สาย<br />

ด้วย ESP8266 WiFi Module<br />

นายชินกร<br />

นายปัญญา<br />

จันทร์มล<br />

พงศ์ศุภศาสตร์<br />

โครงงานนี้เป็นส่วนหนึ่งของการศึกษาหลักสูตรวิศวกรรมศาสตรบัณฑิต<br />

สาขาวิชาวิศวกรรมไฟฟ้า<br />

มกราคม 2558<br />

ลิขสิทธิ์เป็นของมหาวิทยาลัยพะเยา


PROJECT No. EE01/2015<br />

UP shuttle bus management system using ESP8266 WiFi module<br />

Mr.Chinnakorn<br />

Mr.Panya<br />

Junmol<br />

Pongsupasart<br />

A <strong>Project</strong> Submitted in Partial Fulfillment of the Requirements<br />

for the Bachelor Degree in Electrical Engineering<br />

January 2015<br />

Copyright by University of Phayao


หัวข้อโครงงาน ระบบจัดการรถรับ-ส่งผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่ายไร้สายด้วย<br />

ESP8266 WiFi Module<br />

ผู้ด าเนินโครงงาน นายชินกร จันทร์มล<br />

นายปัญญา พงศ์ศุภศาสตร์<br />

อาจารย์ที่ปรึกษา ดร.ธนาทิพย์ จันทร์คง<br />

สาขาวิชา วิศวกรรมไฟฟ้า<br />

ปีการศึกษา 2558<br />

สาขาวิชาวิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์ มหาวิทยาลัยพะเยา อนุมัติให้โครงงานนี้ เป็น<br />

ส่วนหนึ่งของการศึกษาตามหลักสูตรปริญญาวิศวกรรมศาสตรบัณฑิต สาขาวิศวกรรมไฟฟ้า<br />

....................................................................หัวหน้าสาขาวิชาวิศวกรรมไฟฟ้า<br />

(ผู้ช่วยศาสตราจารย์ ดร.จงลักษณ์ พาหะซา)<br />

คณะกรรมการสอบโครงงาน<br />

...........................................................ประธานกรรมการ<br />

( ดร.ธนาทิพย์ จันทร์คง )<br />

............................................................กรรมการ<br />

( นายบรรเทิง ยานะ )<br />

............................................................กรรมการ<br />

( นางสาววาสนา นากุ )


ก<br />

กิตติกรรมประกาศ<br />

การท าโครงงานวิศวกรรมศาสตร์ เรื่องระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยาผ่าน<br />

เครือข่ายไร้สายด้วย ESP8266 WiFi Module ฉบับนี้ส าเร็จลุล่วงไปได้ดีโดยได้รับการสนับสนุน ให้<br />

ค าปรึกษา ให้ค าแนะน า และการดูแลเปนนอย่างดียิ่ง จากอาจารย์ธนาทิพย์ จันทร์คง ซึ่งเปนนอาจารย์ที่<br />

ปรึกษาโครงงานที่ให้ค าแนะน าที่ดีในด้านการออกแบบระบบจัดการรถรับ-ส่งผู้โดยสารช่วยแก้ปัญหา<br />

ตลอดจนให้ความรู้เกี่ยวกับการใช้โปรแกรมในการออกแบบ ความรู้ในการทดสอบระบบจัดการรถรับ-ส่งรถ<br />

ผู้โดยสาร และประสบการณ์ที่ดีในการท าโครงงานนี้ท าให้คณะผู้จัดท าสามารถจัดท าโครงงานจนส าเร็จ<br />

ลุล่วงไปด้วยดี<br />

ขอขอบพระคุณอาจารย์บรรเทิง ยานะ ที่ช่วยให้ค าแนะน าความรู้ และค าปรึกษาอยู่ตลอดเวลา<br />

ขอขอบพระคุณอาจารย์ธนาทิพย์ จันทร์คง และอาจารย์วาสนา นากุ ที่ช่วยให้ค าแนะน าในเรื่อง<br />

ของเอกสารต่างๆ ให้ส าเร็จลุล่วงไปด้วยดี<br />

ขอบคุณสาขาวิชาวิศวกรรมไฟฟ้า มหาวิทยาลัยพะเยา ที่เอื้อเฟื้อสถานที่ และอุปกรณ์ในการท า<br />

โครงงานฉบับนี้จนส าเร็จลุล่วง<br />

สุดท้ายนี้ขอกราบขอบพระคุณผู้ที่เกี่ยวข้อง และให้ความสนับสนุนในทุกด้านแก่คณะผู้จัดท าเสมอ<br />

มา<br />

นายชินกร<br />

นายปัญญา<br />

จันทร์มล<br />

พงศ์ศุภศาสตร์


ข<br />

หัวข้อโครงงาน ระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่ายไร้สายด้วย<br />

ESP8266 WiFi Module<br />

ผู้ด าเนินโครงงาน นายชินกร จันทร์มล<br />

นายปัญญา พงศ์ศุภศาสตร์<br />

อาจารย์ที่ปรึกษา ดร.ธนาทิพย์ จันทร์คง<br />

สาขาวิชา วิศวกรรมไฟฟ้า<br />

ปีการศึกษา 2558<br />

ค าส าคัญ ระบบการสื่อสารไร้สาย , Arduino UNO R3, ESP8266 Module , WiFi<br />

บทคัดย่อ<br />

โครงงานนี้เป็นการน าเสนอการศึกษา และออกแบบระบบการจัดการเดินรถโดยสาร โดยน าเอา<br />

ความรู้ทางด้านไมโครคอนโทรลเลอร์ และ เทคโนโลยีการส่งข้อมูลไร้สาย รวมไปถึงบอร์ด Arduino UNO<br />

R3 และ ESP8266 WiFi Module มาออกแบบ และประยุกต์ใช้กับโครงงาน เพื่ออ านวยความสะดวกใน<br />

การใช้รถโดยสาร โดยระบบดังกล่าวท าการรับส่งข้อมูลของผู้โดยสารผ่านทางเครือข่ายไร้สาย WiFi ไปยัง<br />

สถานีหลัก ระบบแจ้งจ านวนผู้ใช้รถโดยสารในแต่ละจุดผ่านการกดเพิ่มหรือลดจ านวนผู้โดยสาร ณ สถานี<br />

ย่อย จากนั้นอุปกรณ์ ESP8266 WiFi Module จะท าหน้าที่เป็นตัวกลางในการสื่อสารระหว่างบอร์ด<br />

Arduino UNO R3 กับสถานีหลักเพื่อให้สามารถแจ้งจ านวนผู้โดยสารที่รออยู่แต่ละสถานี และท าการ<br />

บันทึกข้อมูลไว้ในฐานข้อมูล โดยแสดงข้อมูลดังกล่าว ในรูปแบบ HTML เว็บเซิร์ฟเวอร์ เพื่อแสดงผลสู่หน้า<br />

จอคอมพิวเตอร์ หรือหน้าจอ LCD เพื่อให้เจ้าหน้าที่ ณ สถานีแม่ข่ายได้รับทราบ<br />

โครงงานนี้เป็นการทดสอบระบบการรับ-ส่งข้อมูลบนเซิร์ฟเวอร์ โดยมีการใช้อุปกรณ์ 2 ตัว ท า<br />

หน้าที่ส่งข้อมูลผู้โดยสารจาก 2 สถานีย่อยไปยังสถานีหลัก ผลการทดสอบพบว่าระบบท างานได้ตรงตาม<br />

วัตถุประสงค์ที่ต้องการ สามารถน าไปใช้งาน และประยุกต์ใช้กับการจัดการเดินรถโดยสารของมหาวิทยาลัย<br />

พะเยา ให้มีความคล่องตัวมากยิ่งขึ้น


ค<br />

<strong>Project</strong> Title UP shuttle bus management system using ESP8266 WiFi module<br />

Author<br />

Mr.Chinnakorn Junmol<br />

Mr.Panya Pongsupasart<br />

<strong>Project</strong> Advisor Dr.Thanatip Chankong<br />

Major<br />

Electrical Engineering<br />

Year 2015<br />

Keywords Wireless communication system, Arduino UNO R3, ESP8266 Module,<br />

WiFi<br />

Abstract<br />

This project proposes the designing of UP (University of Phayao) shuttle bus<br />

management system by using microcontroller and wireless network technology. Arduino<br />

UNO R3 microcontroller board and ESP8266 WiFi module are used in the proposed<br />

project to facilitate the management of UP shuttle bus. The proposed system operates as<br />

follows; number of passenger waiting at each station are sent via the station device by<br />

pressing “increase” or “decrease” button followed by “send” button. The data is sent via<br />

ESP8266 WiFi Module to the server. The number of waiting passenger at each station are<br />

recorded in the database and reported on HTML webpage which can be displayed on<br />

computer screen or LCD at the terminal station.<br />

The proposed system is tested on local testing server by using 2 devices to<br />

retrieve the number of waiting passengers from 2 stations. The testing result shows good<br />

performance. It is expected that this prototype project can be implemented and can help<br />

improving the shuttle bus management in University of Phayao to be more versatile.


ง<br />

สารบัญ<br />

บทที่ หน้า<br />

กิตติกรรมประกาศ<br />

ก<br />

บทคัดย่อภาษาไทย<br />

ข<br />

บทคัดย่อภาษาอังกฤษ<br />

ค<br />

สารบัญ<br />

ง<br />

สารบัญตาราง<br />

ฉ<br />

สารบัญรูป<br />

ช<br />

บทที่ 1 บทน า 1<br />

1.1 ที่มาและความส าคัญ<br />

1<br />

1.2 วัตถุประสงค์ของโครงงาน<br />

1<br />

1.3 ขอบเขตของโครงงาน<br />

1<br />

1.3.1 ส่วนของฮาร์ดแวร์<br />

1<br />

1.3.2 ส่วนของซอฟต์แวร์<br />

1<br />

1.3.3 การสื่อสารและการแสดงผล<br />

2<br />

1.3.4 สถานีหลักและสถานีย่อย<br />

2<br />

1.3.5 เงื่อนไขของผู้ใช้งาน<br />

2<br />

1.4 ผลที่คาดว่าจะได้รับจากโครงงาน<br />

2<br />

1.5 ระยะเวลาในการด าเนินงาน<br />

3<br />

1.6 งบประมาณที่ใช้ในการท าโครงงาน<br />

4<br />

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

2.1 บทน า<br />

5<br />

2.2 งานวิจัยที่เกี่ยวข้อง<br />

5<br />

2.3 ทฤษฎีที่เกี่ยวข้อง<br />

6<br />

2.3.1 บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

6<br />

2.3.2 ESP8266 WiFi Module<br />

9<br />

2.3.3 โปรแกรม XAMPP<br />

11<br />

2.3.4 จอ Liquid Crystal Display (LCD)<br />

15<br />

2.3.5 ความรู้เบื้องต้นเกี่ยวกับภาษา PHP<br />

19<br />

2.3.6 ความรู้เบื้องต้นเกี่ยวกับภาษา HTML<br />

22<br />

บทที่ 3 ขั้นตอนและวิธีการด าเนินงาน 27<br />

3.1 ขั้นตอนและแผนการด าเนินโครงการ<br />

3.2 ศึกษาปัญหาและทฤษฎีที่เกี่ยวข้อง<br />

3.3 วิเคราะห์เพื่อหาสาเหตุของปัญหา<br />

3.4 การออกแบบระบบ<br />

3.4.1 หลักการท างานของระบบ<br />

27<br />

28<br />

28<br />

28<br />

30


จ<br />

สารบัญ(ต่อ)<br />

บทที่ หน้า<br />

3.4.2 การออกแบบฮาร์ดแวร์ และเซิร์ฟเวอร์ภาคส่ง<br />

30<br />

3.4.3 การออกแบบซอฟต์แวร์ภาครับ<br />

43<br />

3.5 ขั้นตอนการสร้าง<br />

51<br />

3.5.1 ขั้นตอนการสร้างฮาร์ดแวร์ และซอฟต์แวร์ภาคส่ง<br />

51<br />

3.5.2 ขั้นตอนการสร้างซอฟต์แวร์ภาครับ<br />

53<br />

3.6 วิธีการวัดผล<br />

53<br />

3.6.1 กระบวนการที่ใช้ในการทดลอง<br />

53<br />

3.6.2 อุปกรณ์ที่ใช้ประกอบการทดลอง<br />

54<br />

3.6.3 ขอบเขตในการทดลอง<br />

54<br />

บทที่ 4 ผลการด าเนินงานและการวิเคราะห์ผลการทดลอง 55<br />

4.1 ผลการทดลองและวัดผล<br />

55<br />

4.1.1 ผลการทดลองของอุปกรณ์ภาคส่ง<br />

55<br />

4.1.2 ผลการทดลองของซอฟต์แวร์ภาครับ<br />

59<br />

4.2 การวิเคราะห์ผลการทดลอง<br />

64<br />

4.2.1 การวิเคราะห์ผลการทดลองของอุปกรณ์ภาคส่ง<br />

64<br />

4.2.2 การวิเคราะห์ผลการทดลองของซอฟต์แวร์ภาครับ<br />

64<br />

บทที่ 5 สรุปและข้อเสนอแนะ 66<br />

5.1 สรุปผล<br />

66<br />

5.2 ข้อเสนอแนะ<br />

67<br />

5.2.1 ปัญหา<br />

67<br />

5.2.2 อุปสรรค<br />

67<br />

5.2.3 การน าไปพัฒนา<br />

67<br />

บรรณานุกรม 69<br />

ภาคผนวก ก ตัวอย่างแบบประเมิน 72<br />

73<br />

แบบประเมินความพึงพอใจ ระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยา<br />

ผ่านเครือข่ายไร้สายด้วย ESP8266 WiFi Module คณะวิศวกรรมศาสตร์<br />

มหาวิทยาลัยพะเยา<br />

ภาคผนวก ข คู่มือการใช้งาน 74<br />

คู่มือการติดตั้งอุปกรณ์ใช้งาน<br />

75<br />

คู่มือการใช้งานของผู้โดยสาร<br />

84<br />

คู่มือการใช้งานของผู้ดูแลระบบ<br />

87<br />

การแก้ไขเบื้องต้นในกรณีที่อุปกรณ์ท างานผิดปกติ<br />

90<br />

ประวัติผู้ด าเนินโครงงาน<br />

92


ฉ<br />

สารบัญตาราง<br />

ตารางที่ หน้า<br />

บทที่ 1 บทน า 1<br />

ตารางที่ 1.1 ขั้นตอนและแผนการด าเนินโครงการ<br />

ตารางที่ 1.2 รายการอุปกรณ์และงบประมาณที่ใช้<br />

3<br />

4<br />

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

ตารางที่ 2.1 ค าสงวนที่เป็น Constant ของ Arduino<br />

ตารางที่ 2.2 ค าสงวนที่เป็น Port Variables & Constants ของ Arduino<br />

ตารางที่ 2.3 ค าสงวนที่เป็น Datatypes ของ Arduino<br />

ตารางที่ 2.4 ค าสงวนที่เป็นค าสั่งของ Arduino<br />

ตารางที่ 2.5 แสดงรูปแบบของค าสั่ง AT Command<br />

ตารางที่ 2.6 แสดงประเภทข้อมูลชนิดจ านวนเต็ม<br />

ตารางที่ 2.7 แสดงประเภทข้อมูลชนิดจ านวนทศนิยม<br />

ตารางที่ 2.8 แสดงประเภทข้อมูลส าหรับวันที่และเวลา<br />

ตารางที่ 2.9 แสดงประเภทข้อมูลส าหรับตัวอักษร<br />

ตารางที่ 2.10 ตารางขาของจอ LCD 16x2 แบบ I2C<br />

ตารางที่ 2.11 การเชื่อมต่อจอ LCD (I2C) เข้ากับ Arduino<br />

8<br />

8<br />

8<br />

9<br />

10<br />

13<br />

13<br />

13<br />

14<br />

16<br />

18<br />

บทที่ 3 ขั้นตอนการด าเนินงาน 27<br />

ตารางที่ 3.1 แสดงรายละเอียดตารางฐาน member<br />

ตารางที่ 3.2 แสดงรายละเอียดตารางฐาน tablebus1<br />

ตารางที่ 3.3 แสดงรายละเอียดตารางฐาน tablebus2<br />

46<br />

47<br />

47


ช<br />

สารบัญรูป<br />

รูปที่ หน้า<br />

บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 5<br />

รูปที่ 2.1 โครงสร้างบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 [7] 6<br />

รูปที่ 2.2 แสดงขาของ ESP8266 WiFi Module [10]<br />

10<br />

รูปที่ 2.3 แสดงการตรวจสอบการเชื่อมต่อ ของ ESP8266 WiFi Module 11<br />

รูปที่ 2.4 แสดงการตรวจสอบเวอร์ชัน<br />

11<br />

รูปที่ 2.5 แอปพลิเคชันในโปรแกรม Xampp [13]<br />

12<br />

รูปที่ 2.6 ด้านหลังจอ LCD 16x2 (I2C) [8]<br />

16<br />

รูปที่ 2.7 การเชื่อมต่อระหว่างจอ LCD (I2C) กับ PCF8574 [10]<br />

17<br />

รูปที่ 2.8 Switch Blacklight Board [10]<br />

18<br />

รูปที่ 2.9 การเชื่อมต่อจอ LCD (I2C) เข้ากับ Arduino [10]<br />

18<br />

รูปที่ 2.10 แสดงขั้นตอนการท างานของ PHP [16]<br />

20<br />

บทที่ 3 ขั้นตอนการด าเนินงาน 27<br />

รูปที่ 3.1 ขั้นตอนและแผนการด าเนินโครงการ<br />

27<br />

รูปที่ 3.2 แสดงการส่งข้อมูลจากสถานีย่อยไปยังศูนย์ควบคุมที่จุดเปลี่ยนรถ 29<br />

รูปที่ 3.3 แสดงการออกแบบระบบจัดการรถรับ-ส่งผู้โดยสารมหาวิทยาลัยพะเยาผ่าน 29<br />

เครือข่ายไร้สายด้วย ESP8266 WiFi Module<br />

รูปที่ 3.4 แสดงการท างานทั้งหมดของส่วนฮาร์ดแวร์ภาคส่ง<br />

30<br />

รูปที่ 3.5 แสดงการออกแบบอุปกรณ์ฮาร์ดแวร์ภาคส่ง<br />

31<br />

รูปที่ 3.6 Button ปุ่มกดขนาด 12 x 12 x 9 mm<br />

32<br />

รูปที่ 3.7 Buzzer แรงดันไฟ 5 โวลต์<br />

32<br />

รูปที่ 3.8 จอ LDC ขนาด 16 x 2 ตัวอักษรพร้อม I2C<br />

32<br />

รูปที่ 3.9 ESP8266 WiFi Module<br />

32<br />

รูปที่ 3.10 บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

33<br />

รูปที่ 3.11 แสดงการต่อวงจรปุ่มกดรับข้อมูลและปุ่มรีเซตอุปกรณ์ต่อเข้ากับบอร์ด 33<br />

ไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

รูปที่ 3.12 แสดงการต่อวงจรเสียงเข้ากับบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO 34<br />

R3


ซ<br />

รูปที่<br />

สารบัญรูป(ต่อ)<br />

รูปที่ 3.13 แสดงการต่อวงจรจอแสดงผล LDC ขนาด 16 x 2 ตัวอักษร พร้อม I2C<br />

เข้ากับบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

รูปที่ 3.14 แสดงการต่อวงจร ESP8266 WiFi Module เข้ากับบอร์ด<br />

ไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

รูปที่ 3.15 แสดงการต่อวงจรทั้งหมดเข้ากับบอร์ดไมโครคอนโทรลเลอร์ Arduino<br />

UNO R3<br />

รูปที่ 3.16 หลักการท างานของซอฟต์แวร์ภาคส่ง<br />

รูปที่ 3.17 โปรแกรม Arduino IDE 1.6.5<br />

รูปที่ 3.18 บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 ออกแบบ<br />

โปรแกรมควบคุมการท างานของอุปกรณ์<br />

รูปที่ 3.19 ออกแบบโปรแกรมควบคุมการท างานของอุปกรณ์ภาคส่ง<br />

รูปที่ 3.20 แผนภาพ Flow chart การท างานของฟังก์ชัน setup<br />

รูปที่ 3.21 แผนภาพ Flow chart การท างานของฟังก์ชัน loop<br />

รูปที่ 3.21 แผนภาพ Flow chart การท างานของฟังก์ชัน loop (ต่อ)<br />

รูปที่ 3.21 แผนภาพ Flow chart การท างานของฟังก์ชัน loop (ต่อ)<br />

รูปที่ 3.22 แสดงการออกแบบด้านหน้ากล่อง<br />

รูปที่ 3.23 แสดงการท างานทั้งหมดของส่วนซอฟต์แวร์ภาครับ<br />

รูปที่ 3.24 โปรแกรม Xampp เวอร์ชัน 3.2.1<br />

รูปที่ 3.25 โปรแกรม notepad++ เวอร์ชัน 6.8.3<br />

รูปที่ 3.26 แสดงฐานข้อมูล busstop<br />

รูปที่ 3.27 แสดงตารางฐานข้อมูลในฐานข้อมูล busstop<br />

รูปที่ 3.28 ออกแบบการท างานของเว็บไซต์<br />

รูปที่ 3.29 แสดงการออกแบบของหน้าล็อคอิน<br />

รูปที่ 3.30 แสดงการออกแบบหน้าจอแสดงผลหลัก<br />

รูปที่ 3.31 แสดงการออกแบบหน้าจอแสดงผลทั้งหมด<br />

รูปที่ 3.32 แสดงการออกแบบหน้าจอบันทึกข้อมูลจากฐานข้อมูลลง Microsoft<br />

Excel<br />

รูปที่ 3.33 แสดงการน าวงจรที่ได้ออกแบบไว้มาต่อเข้ากับบอร์ดไมโครคอนโทรลเลอร์<br />

รูปที่ 3.34 แสดงการน าวงจรที่ได้ต่อแล้วลงกล่อง<br />

รูปที่ 3.35 แสดงการอัพโหลดการโปรแกรมลงอุปกรณ์<br />

รูปที่ 3.36 กล่องอุปกรณ์ที่ส าเร็จรูปแล้ว<br />

52<br />

52<br />

52<br />

53<br />

บบที่ 4 ผลการด าเนินงานและการวิเคราะห์ผลการทดลอง 55<br />

รูปที่ 4.1 แสดงความผิดพลาดที่เกิดจากการพิมพ์ค าสั่ง และเกิดการความล่าช้าในการ<br />

สั่งงาน<br />

หน้า<br />

34<br />

35<br />

35<br />

36<br />

37<br />

37<br />

38<br />

38<br />

38<br />

39<br />

40<br />

41<br />

43<br />

44<br />

45<br />

45<br />

45<br />

46<br />

48<br />

49<br />

49<br />

50<br />

51<br />

55


ฌ<br />

สารบัญรูป(ต่อ)<br />

รูปที่ รูปที่ 4.2 แสดงการสั่งงานให้ ESP8266 Module WiFi ส่งข้อมูลขึ้นไปยังเซิร์ฟเวอร์<br />

ด้วยการพิมพ์ค าสั่ง<br />

รูปที่ 4.3 แสดงการใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 สั่งงานแทน<br />

การสั่งงานด้วยค าสั่งผ่านซีเรียลมอนิเตอร์<br />

รูปที่ 4.4 แสดงการใช้บอร์ด Learning shield multifunction เป็นตัวรับข้อมูล และ<br />

แสดงผล<br />

รูปที่ 4.5 แสดงการใช้ปุ่มกด Button เป็นตัวรับข้อมูลพร้อมเสียงเวลากดปุ่ม และ<br />

แสดงผลด้วยจอ LCD ขนาด 16x2 ตัวอักษร<br />

รูปที่ 4.6 การหน่วงเวลาในการรอส่งข้อมูลครั้งถัดไป<br />

รูปที่ 4.7 แสดงตารางฐานข้อมูลในฐานข้อมูล busstop<br />

รูปที่ 4.8 แสดงระบบไม่สามารถอัพเดทข้อมูลได้เองต้องท าการอัพเดทโดยผู้ใช้งาน<br />

ด้วยการกดรีเฟรชหน้าเว็บไซต์<br />

รูปที่ 4.9 แสดงการการอัพเดทข้อมูลโดยอัตโนมัติ<br />

รูปที่ 4.10 การน าข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงบนเว็บไซต์แบบทั้งหมด<br />

รูปที่ 4.11 แสดงข้อมูลก่อนล้างและหลังล้างข้อมูล<br />

รูปที่ 4.12 แสดงการจ ากัดสิทธิในการเข้าถึงหน้าเว็บไซต์<br />

รูปที่ 4.13 แสดงการบันทึกข้อมูลที่มีอยู่ในฐานข้อมูลเป็นไฟล์ Excel<br />

ภาคผนวก ข คู่มือการใช้งาน<br />

รูปที่ ข.1 การเปิดโปรแกรม Xampp<br />

รูปที่ ข.2 เริ่มใช้งาน Apache และ MySQL<br />

รูปที่ ข.3 แสดงหน้าการล็อคอินเข้าระบบ<br />

รูปที่ ข.4 หน้าเว็บไซต์แสดงผล<br />

รูปที่ ข.5 การเปิดโปรแกรม Arduino IDE<br />

รูปที่ ข.6 แสดงการเรียกเปิดไฟล์ที่ได้เขียนโปรแกรมขึ้นมา<br />

รูปที่ ข.7 แสดงต าแหน่งการแก้ไข ชื่อและ รหัสของสัญญาณ WiFi<br />

รูปที่ ข.8 แสดงต าแหน่งการแก้ไข IP address ให้ตรงกับเครื่องเซิร์ฟเวอร์<br />

รูปที่ ข.9 แสดงต าแหน่งการแก้ไขการก าหนดสถานีให้กับตัวอุปกรณ์<br />

รูปที่ ข.10 แสดงต าแหน่งการแก้ไข IP address ให้ตรงกับเครื่องเซิร์ฟเวอร์<br />

รูปที่ ข.11 แสดงการเลือกชนิดของบอร์ด<br />

รูปที่ ข.12 แสดงการเลือก Port ของอุปกรณ์<br />

รูปที่ ข.13 แสดงวิธีการดู Port อุปกรณ์<br />

รูปที่ ข.14 แสดงวิธีการดู Port อุปกรณ์ (ต่อ)<br />

รูปที่ ข.15 แสดงวิธีการดู Port อุปกรณ์ (ต่อ)<br />

รูปที่ ข.16 แสดงการอัพโหลดโปรแกรม<br />

หน้า<br />

56<br />

56<br />

57<br />

58<br />

59<br />

60<br />

61<br />

61<br />

62<br />

63<br />

63<br />

75<br />

75<br />

76<br />

76<br />

77<br />

77<br />

78<br />

78<br />

79<br />

79<br />

80<br />

80<br />

81<br />

81<br />

82<br />

82


ญ<br />

รูปที่<br />

สารบัญรูป(ต่อ)<br />

รูปที่ ข.17 แสดงอุปกรณ์ก าลังเริ่มท างาน<br />

รูปที่ ข.18 แสดงความพร้อมท างานและรับข้อมูลของอุปกรณ์<br />

รูปที่ ข.19 แสดงความพร้อมท างานและรับข้อมูลของอุปกรณ์<br />

รูปที่ ข.20 แสดงจ านวนผู้โดสารที่รอรถ<br />

รูปที่ ข.21 แสดงการส่งข้อมูลไปยังเซิร์ฟเวอร์<br />

รูปที่ ข.22 แสดงอุปกรณ์สามารถส่งข้อมูลไปยังเซิร์ฟเวอร์ได้ส าเร็จ<br />

รูปที่ ข.23 แสดงอุปกรณ์พร้อมที่จะรอการป้อนจ านวนผู้โดยสารที่รอรถ<br />

รูปที่ ข.24 แสดงหน้าล็อคอินเข้าสู่ระบบ<br />

รูปที่ ข.25 แสดงหน้าเว็บไซต์ที่แสดงผล<br />

รูปที่ ข.26 การแสดงข้อมูลแบบทั้งหมด<br />

รูปที่ ข.27 การบันทึกข้อมูลเป็นไฟล์ Excel<br />

รูปที่ ข.28 แสดงการล้างข้อมูล<br />

รูปที่ ข.29 แสดงการล็อคเอาท์ออกจากระบบ<br />

รูปที่ ข.30 แสดงต าแหน่งกดปุ่มรีเซต<br />

รูปที่ ข.31 แสดงอุปกรณ์เริ่มการท างานใหม่อีกครั้ง<br />

รูปที่ ข.32 แสดงอุปกรณ์กลับมาท างานในสภาวะปกติ<br />

หน้า<br />

83<br />

83<br />

84<br />

84<br />

85<br />

85<br />

86<br />

87<br />

87<br />

88<br />

88<br />

89<br />

89<br />

90<br />

90<br />

91


1<br />

บทที่ 1<br />

บทน ำ<br />

1.1 ที่มาและความส าคัญ<br />

เนื่องจากทางผู้ให้บริการ การเดินทางภายในมหาวิทยาลัยมีนโยบายให้นิสิตเดินทางโดยรถโดยสาร<br />

ประจ าทางที่ทางมหาวิทยาลัยจัดให้ เพื่อเป็นการลดปัญหาการคมนาคมในเขตมหาวิทยาลัยที่ติดขัด แต่<br />

ยังคงพบปัญหาส่วนหนึ่ง ในด้านการจัดการบริหารการเดินรถของพนักงานขับรถโดยสาร ที่ไม่เป็นระบบ<br />

เท่าที่ควร ดังที่ทราบกันดีว่าจ านวนนิสิตที่มารอ ณ จุดรอรถ มีจ านวนที่ไม่แน่นอน ในขณะที่ทางพนักงาน<br />

ขับรถโดยสารมีการปล่อยรถออกมาเป็นช่วงเวลาที่แน่นอน ซึ่งบางครั้งรถที่ออกมาจากสถานีหลักมีนิสิต<br />

ขึ้นมาส่วนหนึ่ง ส่งผลให้ที่นั่งไม่เพียงพอ นิสิตที่รอรถอยู่ที่สถานีย่อยไม่สามารถขึ้นรถได้อย่างที่ควรจะเป็น<br />

จากปัญหาดังกล่าว ทางสมาชิกในกลุ่มจึงได้ท าการระดมความคิด เพื่อหาวิธีการแก้ปัญหา หรือ<br />

ปรับปรุงระบบการเดินรถดังกล่าวให้มีประสิทธิภาพมากยิ่งขึ้น โดยน าเทคโนโลยีการติดต่อสื่อสารแบบไร้<br />

สาย ร่วมกับอุปกรณ์รับข้อมูลจ านวนผู้โดยสารที่สถานีย่อยของผู้โดยสาร ท าการส่งข้อมูลไปยังสถานีหลัก<br />

ผ่านทางเว็บเซิร์ฟเวอร์ เพื่อให้สถานีหลักทราบจ านวนผู้โดยสาร ในสถานีย่อยแต่ละสถานี เพื่อการจัดการรถ<br />

โดยสารอย่างมีประสิทธิภาพ ทั้งนี้ระบบดังกล่าวยังสามารถเป็นฐานข้อมูลการใช้รถโดยสารของนิสิตใน<br />

มหาวิทยาลัยพะเยา เพื่อน าข้อมูลไปใช้วิเคราะห์ และวางแผนการพัฒนาระบบในอนาคตได้อีกด้วย<br />

1.2 วัตถุประสงค์ของโครงงาน<br />

1. เพื่อศึกษา และออกแบบระบบการแจ้งจ านวนผู้โดยสารจากสถานีย่อยไปยังสถานีหลัก<br />

ของมหาวิทยาลัยพะเยา<br />

สาย<br />

2. เพื่อศึกษา ESP8266 WiFi Module มาประยุกต์ใช้กับอุปกรณ์ฮาร์ดแวร์เพื่อรับส่งข้อมูลแบบไร้<br />

1.3 ขอบเขตของโครงงาน<br />

3.1 ส่วนของฮาร์ดแวร์<br />

3.1.1 ใช้อุปกรณ์รับส่งข้อมูลไร้สาย ด้วย ESP8266 WiFi Module<br />

3.1.2 ใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

3.1.3 ใช้คอมพิวเตอร์ 1 เครื่องที่เชื่อมต่อกับเครือข่ายเน็ตเวิร์ค<br />

3.2 ส่วนของซอฟต์แวร์<br />

3.2.1 ใช้โปรแกรมจ าลองเว็บเซิร์ฟเวอร์ด้วย Xampp


2<br />

3.2.2 ใช้โปรแกรม Arduino IDE ในการควบคุมไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

3.2.3 ใช้โปรแกรม Notepad ในแก้ไข และการเขียนเว็บ<br />

3.3 การสื่อสารและการแสดงผล<br />

3.3.1 การสื่อสารไร้สาย โดยผ่านเครือข่ายไร้สายภายในมหาวิทยาลัย<br />

3.3.2 แสดงผลผ่านทางเว็บไซต์ที่สถานีหลัก และแสดงผลบนจอ LCD ที่สถานีย่อย<br />

3.4 สถานีหลักและสถานีย่อย<br />

3.4.1 ให้สถานีหลักมีเพียง 1 แห่ง คือ สถานีหลักหน้าธนาคารไทยพาณิชย์<br />

3.4.2 ให้สถานีย่อยระหว่างเส้นทางมีจ านวน 2 จุด ได้แก่ สถานีย่อยหน้าตึก<br />

คณะวิทยาศาสตร์เป็นจุดที่ 1 และให้สถานีย่อยหน้าตึกคณะวิศวกรรมศาสตร์เป็นจุดที่ 2<br />

3.4.3 ให้ต าแหน่งของอุปกรณ์อยู่ในบริเวณที่สามารถรับสัญญาณ WiFi ของมหาวิทยาลัย<br />

พะเยาได้<br />

3.4.4 ในส่วนของสถานีหลัก ผู้ดูแลระบบสามารถล้างข้อมูลจ านวนผู้โดยสารที่รอรถได้ ใน<br />

กรณีที่รถออกไปรับผู้โดยสารสถานีนั้นๆได้ทั้งหมดได้เท่านั้น<br />

3.5 เงื่อนไขของผู้ใช้งาน<br />

3.5.1 เป็นผู้โดยสารที่มีความต้องการใช้รถโดยสารตามความเป็นจริง<br />

1.4 ผลที่คาดว่าจะได้รับจากโครงงาน<br />

1. ได้อุปกรณ์ต้นแบบระบบจัดการรถรับ-ส่งผู้โดยสาร เพื่อจัดรถบริการให้เหมาะสมกับปริมาณ<br />

ผู้โดยสารแบบเรียลไทม์<br />

2. สามารถท าให้ผู้โดยสาร ได้รับความสะดวกในการใช้บริการรถโดยสารมากยิ่งขึ้น<br />

1.5 ระยะเวลาในการด าเนินงาน<br />

ขั้นตอน และแผนการด าเนินงาน เริ่มต้นจากช่วงกลางเดือนมกราคม พ.ศ. 2558 - ธันวาคม พ.ศ.<br />

2558 โดยแผนด าเนินโครงการได้แสดงในตารางที่ 1.1


3<br />

ตารางที่ 1.1 ขั้นตอนและแผนการด าเนินโครงการ<br />

ขั้นตอนและแผนการด าเนินโครงงาน<br />

1. ศึกษาปัญหาในมหาวิทยาลัย และหา<br />

วิธีแก้ปัญหา<br />

2. ศึกษาทฤษฎีที่เกี่ยวข้อง และออกแบบ<br />

ระบบที่จะใช้แก้ปัญหา<br />

3. น าเสนออาจารย์ที่ปรึกษา<br />

4. ท ารายงานเพื่อเสนอหัวข้อโครงงาน<br />

5. ศึกษาและหาข้อมูลเพิ่มเกี่ยวกับ<br />

อุปกรณ์ที่ต้องใช้<br />

6. เตรียมอุปกรณ์ และเขียน<br />

โปรแกรมควบคุม<br />

7. ทดสอบการใช้งานและปรับปรุง<br />

8. น าทดลองใช้งานจริง (หรือท า<br />

แบบจ าลองเสมือนจริง)<br />

9. เตรียมอุปกรณ์ให้พร้อมที่จะใช้งานได้<br />

จริง<br />

10. สรุปผล และจัดท ารูปเล่มโครงงาน<br />

ช่วงเวลา<br />

ม.ค. ก.พ. มี.ค. ม.ย. พ.ค. ส.ค. ก.ย. ต.ค. พ.ย. ธ.ค.<br />

หมายเหตุ :<br />

แสดงแผนการด าเนินงาน<br />

แสดงการด าเนินงานจริง


4<br />

1.6 งบประมาณที่ใช้ในการท าโครงงาน<br />

ตารางที่ 1.2 รายการอุปกรณ์และงบประมาณที่ใช้<br />

ล าดับ รายการ จ าวนวน ราคา/หน่วย ราคารวม (บาท)<br />

1 Arduino UNO R3 4 180 720<br />

2 WiFi Serial Transceiver Module (ESP8266) 4 120 480<br />

3 Learning Shield Multifunction 1 330 330<br />

4 Breadboard with Jumper 400 holes 2 80 160<br />

5 จอ LCD (16X2) 2 90 180<br />

6 จอ LCD ขนาด 16 ตัวอักษร 2 บรรทัด 2 60 120<br />

7<br />

Pin Header Dip Straight Row 1X40 Pin<br />

(Black)<br />

2 5 10<br />

8<br />

Switch On-Off ขนาด 15X21 มม. DIP2<br />

(250VAC 6A)<br />

2 7 14<br />

9<br />

Female socket 2.51 ขนาด 2.54 มม. pitch<br />

double row (2X5P)<br />

2 3 6<br />

10 Micro Switch ขนาด 12X12X9 มม. 10 4 40<br />

11 Ribbon cable 10 4 40<br />

12 Active Buzzer 2 7 14<br />

13 PCB Universal board ขนาด 7X9.5 ซม. 2 115 30<br />

14 กล่องอเนกประสงค์ ขนาด 10.2X15X5.8 ซม. 2 47 94<br />

รวมงบประมาณทั้งหมด 2238


5<br />

บทที่ 2<br />

หลักการและทฤษฎีที่เกี่ยวข้อง<br />

2.1 บทน า<br />

จากที่มาของปัญหาที่ได้กล่าวไว้ในบทที่ 1 จึงได้มีการจัดท าระบบจัดการรถรับ-ส่งรถผู้โดยสาร<br />

มหาวิทยาลัยพะเยา ผ่านเครือข่ายไร้สายด้วย ESP8266 WiFi Module ซึ่งในบทนี้จะได้กล่าวถึง งานวิจัยที่<br />

เกี่ยวข้องซึ่งมีความคล้ายคลึงกัน สามารถน ามาประยุกต์ใช้งานร่วมกันได้ รวมไปถึงทฤษฎีที่น ามาใช้ในการ<br />

ออกแบบอุปกรณ์ และความรู้เบื้องต้นของอุปกรณ์ ที่ใช้ในโครงงานนี้<br />

2.2 งานวิจัยที่เกี่ยวข้อง<br />

ระบบป้ายรถเมล์อัจฉริยะ [1] งานวิจัยนี้เป็นการน าเทคโนโลยี RFID มาใช้ในการระบุตัวตน โดย<br />

น ามาประยุกต์ใช้ในทางด้านการเก็บข้อมูลรถโดยสาร รวมไปถึงข้อมูลพนักงานขับรถ ท างานโดยอาศัย<br />

หลักการรับส่งข้อมูลไร้สายผ่านอุปกรณ์ Xbee Pro 900 Wire Antenna ระหว่างป้ายรถเมล์กับรถเมล์แต่<br />

ละคัน ซึ่งสามารถน าหลักการรับส่งข้อมูลระหว่างป้ายรถเมล์กับรถเมล์ มาประยุกต์กับการรับส่งข้อมูล<br />

ระหว่างสถานีหลักกับสถานีย่อย เพื่อแจ้งข้อมูลการเดินรถของมหาวิทยาลัยพะเยาได้<br />

ระบบจ าลองการแสดงสถานะช่องจอดภายในลานจอดรถผ่านเว็บไซต์ โดยเพิ่มผลการทดสอบ<br />

หน้าจอแสดงผล และระยะการรับส่งข้อมูลแบบไร้สาย [2] งานวิจัยนี้เป็นการน าแจ้งสถานะข้อมูลช่อง<br />

จอดรถผ่านจอแสดงผล 7-Segment ร่วมกับเว็บไซต์ให้ผู้ใช้บริการทราบ จากความสามารถของ<br />

ไมโครคอนโทรลเลอร์ ที่ท าการประมวลข้อมูลก่อนจะท าการแสดงผล ซึ่งอุปกรณ์ดังกล่าวมีการท างาน<br />

ร่วมกับอัลตราโซนิคเซ็นเซอร์ เพื่อความรวดเร็วในการตรวจจับรถ และจะท าการเก็บข้อมูลรถแต่ละคันผ่าน<br />

เทคโนโลยี RFID เพื่อใช้ในการระบุตัวตนของรถแต่ละคัน จากหลักการที่ใช้ ในการเก็บรวมรวมข้อมูล เป็น<br />

การเก็บรวบรวม และรับส่งข้อมูล ในรูปแบบฐานข้อมูล สามารถน ามาประยุกต์ ผ่านระบบเครือข่ายไร้สาย<br />

WiFi ได้เพื่อความรวดเร็วในการรับส่งข้อมูล<br />

ป้ายรถเมล์อัจฉริยะ [4] งานวิจัยนี้น าเทคโนโลยี ZigBee มาช่วยในการประมวลข้อมูลในการระบุ<br />

ต าแหน่งของรถเมล์ และข้อมูลรถเมล์ โดยจะท าการแสดงผลข้อมูลรถผ่านหลอดไฟ LED 4 สี สามารถ<br />

น าเอารูปแบบการแสดงผลข้อมูลมาใช้กับการแสดงข้อมูลรถโดยสารได้ ซึ่ง LED อาจท างานร่วมกับ 7-<br />

Segment เพื่อความชัดเจนในการแสดงผลของข้อมูล<br />

ระบบแจ้งเตือนผู้บุกรุกผ่านเครื่องแม่ข่าย โดยใช้เซ็นเซอร์ตรวจจับแบบไร้สาย [5] งานวิจัยนี้<br />

เป็นระบบแจ้งเตือนที่มีการน า ZigBee มาใช้ในการสร้างเครือข่ายไร้สาย ท างานร่วมกับ Arduino และ<br />

เซ็นเซอร์อินฟราเรด เพื่อตรวจจับสิ่งผิดปกติที่เกิดขึ้น ซึ่งจุดเด่นของการตรวจจับ คือ การใช้เซ็นเซอร์เพียโซ<br />

ดิสก์ ที่สามารถตรวจจับการสั่นสะเทือนได้ การเขียนค าสั่งควบคุม มีหลักการท างานที่สามารถน ามา


6<br />

ประยุกต์กับงานทางด้านฐานข้อมูลได้ เพียงมีการป้อนค าสั่งให้กับ Arduino UNO R3 เพื่อให้สามารถ<br />

ท างานตามวัตถุประสงค์ที่ผู้ใช้ต้องการ<br />

2.3 ทฤษฎีที่เกี่ยวข้อง<br />

2.3.1 บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

บอร์ด Arduino UNO R3 [7] เป็นบอร์ดที่ใช้ไมโครคอนโทลเลอร์รุ่น ATmega 328 เป็น MCU<br />

ประจ าบอร์ด ที่มีการพัฒนาแบบ Open Source คือมีการเปิดเผยข้อมูลทั้งด้าน ฮาร์ดแวร์ และซอฟต์แวร์<br />

ตัวบอร์ด Arduino UNO R3 ถูกออกแบบมาให้ใช้งานได้ง่าย ผู้ใช้งานยังสามารถดัดแปลง เพิ่มเติม พัฒนา<br />

ต่อยอดทั้งตัวบอร์ด หรือโปรแกรมต่อได้<br />

โครงสร้างบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 แสดงในรูปที่ 2.1<br />

รูปที่ 2.1 โครงสร้างบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 [7]<br />

1. USB Port ใช้ส าหรับต่อกับ Computer เพื่ออัพโหลดโปรแกรมเข้า MCU และจ่ายไฟให้กับ<br />

บอร์ด<br />

2. Reset Button เป็นปุ่ม Reset เมื่อต้องการให้เริ่มการท างานใหม่<br />

3. I/O Port Digital I/O ตั้งแต่ขา D0 ถึง D13<br />

4. MCU Atmega328 เป็น MCU ที่ใช้บนบอร์ด Arduino<br />

5. I/O Port Analog I/O ตั้งแต่ขา A0-A5<br />

6. Power Port ไฟเลี้ยงของบอร์ดประกอบด้วยขาไฟเลี้ยง +3.3 V, +5V, GND, V in<br />

7. Power Jack รับไฟจาก Adapter แรงดันอยู่ระหว่าง 7-12 V<br />

Arduino มีจุดเด่นในเรื่องความง่ายในการเรียนรู้ และใช้งาน เนื่องจากมีการออกแบบค าสั่งต่างๆ<br />

ขึ้นมาสนับสนุนการใช้งาน ด้วยรูปแบบที่ไม่ซับซ้อน ถึงแม้ว่า Arduino จะมีรูปแบบการใช้งาน คล้ายกับ<br />

ไมโครคอนโทรลเลอร์ แต่ก็มีจุดเด่นกว่า เช่น


7<br />

- รองรับการท างานทั้งระบบปฏิบัติการ Windows, Linux และ Macintosh OSX<br />

- มีรูปแบบค าสั่งที่ง่ายต่อการใช้งาน แต่สามารถน าไปใช้งานจริง ที่มีความซับซ้อนมากได้ และยัง<br />

สามารถสร้างค าสั่ง และ Library ใหม่ ขึ้นมาใช้งานเองได้<br />

- มีการเผยแพร่ Source Code เพื่อให้สามารถน าไปพัฒนาต่อยอดเพิ่มเติมได้<br />

โครงสร้างการเขียนโปรแกรม ภาษาซีของ Arduino<br />

ภาษาซีของ Arduino จะจัดแบ่งรูปแบบโครงสร้างของการเขียนโปรแกรมออกเป็น ส่วนย่อยๆ<br />

หลายๆส่วน โดยเรียกแต่ละส่วนว่าฟังก์ชัน และเมื่อน าฟังก์ชันมารวมเข้าด้วยกันก็จะเรียกว่าโปรแกรมโดย<br />

โครงสร้างการเขียนโปรแกรมของ Arduino นั้นทุกๆโปรแกรมจะต้องประกอบไปด้วยฟังก์ชันจ านวนเท่าใด<br />

ก็ได้แต่อย่างน้อยที่สุดต้องมีฟังก์ชันจ านวน 2 ฟังก์ชัน คือ setup() และ loop()<br />

โครงสร้างพื้นฐานของภาษาซีที่ใช้กับ Arduino นั้น จะประกอบไปด้วย 3 ส่วนใหญ่ด้วยกัน<br />

1. Header ในส่วนนี้จะมีหรือไม่มีก็ได้ ถ้ามีต้องก าหนดไว้ในส่วนเริ่มต้นของโปรแกรมซึ่งส่วนของ<br />

Header ได้แก่ ส่วนที่เป็น Compiler Directive ต่างๆรวมไปถึงส่วนของการประกาศตัวแปร และค่าคงที่<br />

ต่างๆที่จะใช้ในโปรแกรม<br />

2. Setup เป็นฟังก์ชันบังคับที่ต้องก าหนดให้มีในทุกโปรแกรมถึงแม้ว่าในบางโปรแกรมจะไม่<br />

ต้องการใช้งานก็ยังจ าเป็นต้องประกาศไว้ด้วยเสมอ เพียงแต่ไม่ต้องเขียนค าสั่งใดๆ ไว้ในระหว่างวงเล็บปีกกา<br />

{ } ที่ใช้เป็นตัวก าหนดขอบเขตของฟังก์ชันโดยฟังก์ชันนี้จะใช้ส าหรับบรรจุค าสั่งในส่วนที่ต้องการให้<br />

โปรแกรมท างานเพียงรอบเดียวตอนเริ่มต้นท างานของโปรแกรมครั้งแรกเท่านั้นซึ่งได้แก่ ค าสั่งเกี่ยวกับการ<br />

Setup ค่าการท างานต่างๆ เช่น การก าหนดหน้าที่การใช้งานของ PinMode และการก าหนดค่า Baudrate<br />

ส าหรับใช้งานพอร์ตสื่อสารอนุกรม เป็นต้น<br />

3. Loop () เป็นส่วนฟังก์ชันบังคับที่ต้องก าหนดให้มีในทุกๆโปรแกรมเช่นเดียวกันกับฟังก์ชัน<br />

setup() โดยฟังก์ชัน loop() นี้จะใช้บรรจุค าสั่งที่ต้องการให้โปรแกรมท างานเป็นวนลูปซ้ าไปจนกว่าจะจบ<br />

การท างาน<br />

Header<br />

#include <br />

------------------------------------------------------------<br />

Setup<br />

Setup ()<br />

{<br />

ค าสั่งต่างๆที่ต้องการเขียนไว้ภายใต้ฟังก์ชัน setup();<br />

}<br />

-------------------------------------------------------------<br />

Loop


8<br />

Loop ()<br />

{<br />

ค าสั่งต่างๆที่ต้องการเขียนไว้ภายใต้ฟังก์ชัน loop();<br />

}<br />

ตัวแปรใน Arduino<br />

ตัวแปร หมายถึง กลุ่มของ ตัวอักษร ตัวเลข และเครื่องหมายใดๆ ที่รวมกันเป็นชื่อเพื่อใช้ก าหนด<br />

เป็นตัวแทนของค่าข้อมูลที่เราต้องการจะอ้างถึงในโปรแกรมทั้งนี้ก็เนื่องจากว่าในการท างานของโปรแกรม<br />

จริงๆนั้นจะใช้ค่าตัวเลขที่ผู้ใช้ก าหนดให้มาท าการประมวลผล ซึ่งในการเขียนโปรแกรมถ้าเราต้องเขียน<br />

โปรแกรมโดยก าหนดเป็นค่าตัวเลขให้กับโปรแกรมโดยตรง จะท าให้โปรแกรมที่เราเขียนขึ้นเต็มไปด้วยค่า<br />

ตัวเลขหลายจ านวน ซึ่งยากต่อการอ่าน และยากต่อการท างาน<br />

การตั้งชื่อตัวแปรของ Arduino<br />

- ชื่อของตัวแปรต้องประกอบไปด้วยตัวอักษร ตัวเลข และ มีความยาวไม่เกิน 32 ตัวอักษร<br />

- ใช้เครื่องหมายพิเศษได้ 2 ตัวคือ Under Line (_) และ Dollar Sign ($)<br />

- ห้ามตั้งชื่อโดยเริ่มต้นด้วยตัวเลข หรือเครื่องหมาย และห้ามมีการเว้นวรรค<br />

- ชื่อของตัวแปร ต้องก าหนดด้วยตัวอักษรที่เป็นตัวอักษรพิมพ์เล็ก<br />

- ในการตั้งชื่อตัวแปร ห้ามน าค าสงวนมาใช้ตั้งชื่อ<br />

ค าสงวนต่างๆของ Arduino<br />

ตารางที่ 2.1 ค าสงวนที่เป็น Constant ของ Arduino<br />

HIGH LOW INPUT OUTPUT SERIAL DISPLAY PI HALF_PI<br />

TWO_PI LSBFIRST MSBFIRST CHANGE FALLING RISING False true<br />

null<br />

ตารางที่ 2.2 ค าสงวนที่เป็น Port Variables & Constants ของ Arduino<br />

DRB PINB PORTB PB0 PB1 PB2 PB3 PB4<br />

PB5 PB6 PB7 DDRC PINC PORTC PC0 PC1<br />

PC2 PC3 PC4 PC5 PC6 PC7 DDRD PIND<br />

PORTD PD0 PD1 PD2 PD3 PD4 PD5 PD6<br />

PD7<br />

ตารางที่ 2.3 ค าสงวนที่เป็น Datatypes ของ Arduino<br />

boolean Byte Char class default do Double int<br />

long Private Protected public return short Signed static<br />

Switch Throw Try unsigned void


9<br />

ตารางที่ 2.4 ค าสงวนที่เป็นค าสั่งของ Arduino<br />

abs Acos += + [ ] asin = atan<br />

atan2 & | boolean byte case Ceil char<br />

class , // ?; constrain Cos {} --<br />

default Delay delayMicroseconds / /** . else<br />

== Exp False float floor For <


10<br />

รูปที่ 2.2 แสดงขาของ ESP8266 WiFi Module [10]<br />

การต่อวงจรจากบอร์ด WiFi Module ESP8266 ไปบอร์ด Arduino<br />

1. Vcc >> 3.3V<br />

2. Gnd >> Gnd<br />

3. CH_PD >> 3.3V<br />

4. TX >> TX(ขา 1)<br />

5. Rx >> RX(ขา 0)<br />

รูปแบบของค าสั่ง AT Command<br />

ตารางที่ 2.5 แสดงรูปแบบของค าสั่ง AT Command<br />

Commands Description Type Set/Execute Parameters<br />

AT+RST รีเซตโมดูล Basic - -<br />

AT+CWQAP ออกจากโหมด AP WiFi AT+CWQAP<br />

AT+CWMODE โหมด WiFi WiFi AT+CWMODE= 1= Sta, 2= AP, 3=both<br />

AT+CWLAP รายการ WiFi WiFi AT+CWLAP<br />

AT+CWJAP เชื่อมต่อ WiFi WiFi AT+ CWJAP =,< pwd > ssid=ชื่อ,pwd=รหัส<br />

AT+CIPSTART ตั้งค่าการเชื่อมต่อ<br />

TCP และ UDP<br />

TCP/IP AT+CIPSTART=<br />

,, <br />

id = 0-4, type =<br />

TCP/UDP, addr = IP<br />

address, port= port<br />

AT+CIPSEND ส่งข้อมูล TCP/IP AT+CIPSEND= , id = 0-4,length=ความ<br />

AT+CIPCLOSE ออกจากการเชื่อมต่อ<br />

TCP และ UDP<br />

TCP/IP AT+CIPCLOSE= or<br />

AT+CIPCLOSE<br />

AT+CIFSR ตรวจสอบ address TCP/IP AT+CIFSR<br />

AT+<br />

CIPSERVER<br />

ตั้งค่าเซิร์ฟเวอร์ TCP/IP AT+ CIPSERVER=<br />

[, ]<br />

ยาวข้อมูล<br />

0=ปิดโหมดเซิร์ฟเวอร์<br />

1=เปิดโหมดเซิร์ฟเวอร์<br />

port = port<br />

AT+ CIPMUX ตั้งค่าการเชื่อมต่อ TCP/IP AT+ CIPMUX= 0 = เชื่อมต่อทางเดียว<br />

1=เชื่อมต่อหลายทาง<br />

(ที่มา : https://nurdspace.nl/ESP8266#Commands,g)


11<br />

การสั่งงานผ่านทาง AT Command<br />

โดยจะใช้ Arduino เป็นตัวกลางในการติดต่อ ผ่านทางขา RX , TX เพื่อสั่งงาน AT Command<br />

บางครั้งอาจมีโปรแกรมใน Arduino ที่ได้ท าการจองขา RX , TX จากนั้นเปิด Serial Monitor ขึ้นมาตั้งค่า<br />

baud rate 115200 และปรับช่องในรูปให้เป็น Both NL&CR จากนั้นก็พิมพ์ค าสั่ง AT แล้วกด Enter ก็<br />

จะเห็นผลลัพธ์จาก ESP8266 ตอบกลับมาว่า OK แสดงว่าเชื่อมต่อส าเร็จ<br />

รูปที่ 2.3 แสดงการตรวจสอบการเชื่อมต่อ ของ ESP8266 WiFi Module<br />

การทดสอบค าสั่ง AT Command ใน ESP8266 WiFi Module ท าได้โดยพิมพ์ค าสั่ง AT+GMR เป็น<br />

ค าสั่งตรวจสอบรุ่น เมื่อพิมพ์แล้วจะได้ผลลัพธ์ดัง รูปที่ 2.4 ว่าเป็นรุ่น 0016091 หรือรุ่น 0.91<br />

รูปที่ 2.4 แสดงการตรวจสอบเวอร์ชัน<br />

2.3.3 โปรแกรม XAMPP<br />

โปรแกรม XAMPP [13] เป็นโปรแกรมที่ได้รวบรวมแอปพลิเคชันต่างที่จ าเป็นต่อการจ าลองเว็บ<br />

เซิร์ฟเวอร์เพื่อทดสอบ สคริปต์หรือเว็บไซต์ในเครื่อง โดยไม่ต้องเชื่อมต่ออินเตอร์เน็ต และไม่มีค่าใช้จ่าย ไว้<br />

ในโปรแกรมเดียวกันเพื่อให้ง่ายต่อการเรียกใช้งาน เช่น Apache MySQL FileZilla Mercury Tomcat


12<br />

รูปที่ 2.5 แอปพลิเคชันในโปรแกรม Xampp [13]<br />

Apache คือ เป็นโปรแกรมใช้ส าหรับจ าลองเครื่องคอมพิวเตอร์ของผู้ใช้ให้เป็นเซิร์ฟเวอร์ชั่วคราว<br />

ส่วนใหญ่จะใช้ติดตั้งไว้เพื่อการทดสอบหรือใช้งานภาษาในการ พัฒนาโปรแกรมพัฒนาระบบอย่างเช่น<br />

เว็บไซต์ต่างๆ โดย Apache จึงให้ความส าคัญมากซึ่งจะท าหน้าที่เป็นตัวกลางในการติดต่อสื่อสารระหว่าง<br />

ฐานข้อมูล และเว็บบราวเซอร์ โดยใช้ภาษา Personal Home Page (PHP) ในการสื่อสารกันซึ่งเป็นภาษาที่<br />

นิยมใช้<br />

Structured Query Language (SQL) คือภาษาที่ใช้เพื่อจัดการกับฐานข้อมูลเป็นภาษามาตรฐาน<br />

บนระบบฐานข้อมูลสามารถใช้ค าสั่ง SQL กับฐานข้อมูลชนิดใดก็ได้ และค าสั่งงานเดียวกันเมื่อสั่งงานผ่าน<br />

ระบบฐานข้อมูลที่แตกต่างกันจะได้ผลลัพธ์เหมือนกันท าให้สามารถเลือกใช้ฐานข้อมูล ชนิดใดก็ได้โดยไม่ติด<br />

ยึดกับฐานข้อมูลใดฐานข้อมูลหนึ่ง นอกจากนี้แล้ว SQL ยังเป็นโปรแกรมฐานข้อมูลอีกด้วย<br />

ประโยชน์ของภาษา SQL<br />

1. สร้างตารางในฐานข้อมูล<br />

2. ใช้จัดการฐานข้อมูลเช่น การเพิ่ม การปรับปรุง และการลบข้อมูล<br />

3. การเรียกใช้หรือค้นหาข้อมูล<br />

ความสามารถของฐานข้อมูล MySQL<br />

1. ระบบจัดการบัญชีผู้ใช้<br />

2. สิทธิต่างๆ ในการเข้าใช้ฐานข้อมูล<br />

3. ระบบส ารองข้อมูล (Backup)<br />

4. ระบบคืนสภาพข้อมูล (Recovery)<br />

5. ระบบโอนถ่ายข้อมูลไปยังโปรแกรมฐานข้อมูลตัวอื่นๆ<br />

6. จัดเก็บข้อมูลได้หลายชนิดข้อมูล เช่น รูปภาพ ข้อความ ตัวเลข ฯลฯ


13<br />

การสร้างตารางข้อมูลใน Database<br />

ก่อนที่จะสร้างตารางข้อมูลเราจ าเป็นจะต้องรู้ชนิดของข้อมูลที่จะจัดเก็บก่อน และต้อง<br />

เลือกก าหนดประเภทของข้อมูลให้เหมาะสมในแต่ละฟิลด์ ประเภทของข้อมูลใน MySQL<br />

ตารางที่ 2.6 แสดงประเภทข้อมูลชนิดจ านวนเต็ม<br />

ล าดับ ชื่อประเภทข้อมูล แบบคิดเครื่องหมาย แบบไม่คิดเครื่องหมาย เนื้อที่<br />

1 TINYINT(M) -128 ถึง127 0 ถึง 255 1 byte<br />

2 SMALLINT(M) -32768 ถึง 32767 0 ถึง 65535 2 byte<br />

3 MEDIUMINT(M) -8388608 ถึง 8388607 0 ถึง16777215 3 byte<br />

4 INT(M) -2147483648 ถึง2147483647 0 ถึง4294967295 4 byte<br />

5 BIGINT(M) -9223372036854775808 ถึง 0 ถึง1844674407- 8 byte<br />

9223372036854775807 3709551615<br />

(ที่มา : http://www.appservnetwork.com)<br />

ตารางที่ 2.7 แสดงประเภทข้อมูลชนิดจ านวนทศนิยม<br />

ล าดับ ชื่อประเภทข้อมูล แบบคิดเครื่องหมาย แบบไม่คิดเครื่องหมาย เนื้อที่<br />

1 FLOAT(M,D) ค่า M เป็น<br />

จ านวนหลักที่ต้องการ<br />

แสดงผล และค่า D คือ<br />

จ านวนหลังจุดทศนิยม<br />

-3.402823466E+38 ถึง -<br />

1.175494351E-38<br />

0 และ 1.175494351E-38<br />

ถึง.402823466E+38<br />

4 byte<br />

2 DOUBLE(M,D) -1.797693134-<br />

8623157E+308<br />

ถึง -2.22507385-<br />

85072014E-308<br />

(ที่มา : http://www.appservnetwork.com)<br />

0 และ 2.225073858-<br />

5072014E-308 ถึง<br />

1.797693134-<br />

8623157E+308<br />

8 byte<br />

ตารางที่ 2.8 แสดงประเภทข้อมูลส าหรับวันที่และเวลา<br />

ล าดับที่ ชื่อประเภทข้อมูล รายละเอียด เนื้อที่<br />

1 DATE ข้อมูลชนิดวันที่ ตั้งแต่วันที่ 1 มกราคม ค.ศ.1000 ถึง 31 3 byte<br />

ธันวาคม ค.ศ.9999 การแสดงผลวันที่อยู่ในรูปแบบ ‘YYYYMM-DD’<br />

2 DATETIME ข้อมูลชนิดวันที่ และเวลา ตั้งแต่วันที่ 1 มกราคม ค.ศ. 1000 8 byte<br />

เวลา 00:00:00 ถึง 31 ธันวาคม ค.ศ.9999 เวลา 23:59:59<br />

การแสดงผลวันที่ และเวลาอยู่ในรูปแบบ ‘YYYY-MM-DD<br />

HH:MM:SS’<br />

3 TIME ข้อมูลประเภทเวลา สามารถเป็นได้ตั้งแต่ ‘- 838:59:59’ ถึง 3 byte<br />

‘838:59:59’ แสดงผลในรูปแบบ HH:MM:SS<br />

4 YEAR(2/4) ข้อมูลประเภทปี ค.ศ. โดยสามารถเลือกว่าจะใช้แบบ 2 หรือ 4หลักถ้า 1 byte<br />

เป็น 2 หลักจะใช้ได้ตั้งแต่ปี ค.ศ. 1901 ถึง 2155<br />

ถ้าเป็น 4 หลักจะใช้ได้ตั้งแต่ปี ค.ศ. 1970 ถึง 2069<br />

(ที่มา : http://www.appservnetwork.com)


14<br />

ตารางที่ 2.9 แสดงประเภทข้อมูลส าหรับตัวอักษร<br />

ล าดับ ชื่อประเภทข้อมูล รายละเอียด เนื้อที่<br />

1 CHAR(M) เป็นข้อมูลสตริงที่จ ากัดความกว้าง ไม่สามารถปรับขนาดได้<br />

ขนาดความกว้างเป็นได้ตั้งแต่ 1 ถึง 255 ตัวอักษร<br />

ตามจ านวน<br />

ตัวอักษรที่<br />

ระบุ<br />

ขนาดข้อมูล<br />

จริง+1 byte<br />

2 VARCHAR(M) คล้ายกับแบบ CHAR(M) แต่สามารถปรับขนาดตามข้อมูลที่เก็บ<br />

ในฟิลด์ได้ความกว้างเป็นได้ตั้งแต่ 1 ถึง 255 ตัวอักษร<br />

3 TINYTEXT เป็น text ที่ความกว้างเป็นได้สูงสุด 255 ตัวอักษร ขนาดข้อมูล<br />

จริง+1 byte<br />

4 TEXT เป็น text ที่ความกว้างเป็นได้สูงสุด 65,535 ตัวอักษร ขนาดข้อมูล<br />

จริง+2 byte<br />

5 MEDIUMTEXT เป็น text ที่ความกว้างเป็นได้สูงสุด 16,777,215 ตัวอักษร ขนาดข้อมูล<br />

จริง+3 byte<br />

6 LONGTEXT เป็น text ที่ความกว้างเป็นได้สูงสุด 4,294,967,295 ตัวอักษร ขนาดข้อมูล<br />

จริง+4 byte<br />

7 ENUM เป็นข้อมูลประเภทระบุเฉพาะค่าที่ต้องการ หรือถ้าไม่มีจะให้<br />

เป็นค่า NULL สามารถก าหนดค่าได้ถึง 65,535 ค่า<br />

8 SET(‘value1’,’value2’,) เป็นข้อมูลประเภทเซท ประกอบด้วยข้อมูลที่ไม่มีค่าหรือมีค่า<br />

ตามสมาชิกที่ก าหนด มีจ านวนสมาชิกได้ 64 ตัว<br />

(ที่มา : http://www.appservnetwork.com)<br />

ตามจ านวน<br />

ตัวอักษรที่<br />

ระบุ<br />

ตัวอย่างการน ามาใช้ประโยชน์ในด้านการสร้างฐานข้อมูล<br />

1. ตารางข้อมูลเจ้าหน้าที่ และผู้ดูแลระบบที่เป็นสมาชิก เป็นฐานข้อมูลที่ใช้ในการเก็บข้อมูลของ<br />

สมาชิกเพื่อการอ้างอิงตัวบุคคลสมาชิก และเก็บข้อมูล Username กับ Password ที่ใช้กับระบบ ล็อคอิน<br />

เพื่อเข้าใช้งานเว็บไซต์<br />

2. ตารางข้อมูลหลักสูตร ตารางข้อมูลหลักสูตร เป็นฐานข้อมูลที่ใช้เก็บข้อมูลของหลักสูตรการเปิด<br />

อบรมต่างๆว่ามีหัวข้อในการอบรม การสอบ การปฏิบัติกิจกรรม อย่างไร<br />

3. ตารางฐานข้อมูลผู้ใช้งานทั่วไปตารางฐานข้อมูลผู้ใช้งานทั่วไปนั้นเป็นส่วนของผู้ใช้งาน<br />

นอกเหนือจากเจ้าหน้าที่ และผู้ดูแลระบบซึ่งสามารถสมัครเพื่อเข้ารับการฝึกอบรมได้แต่จะไม่สามารถเข้าไป<br />

รับเปลี่ยนส่วนต่างๆของเว็บได้<br />

4. ตารางฐานข้อมูลข่าวสารหน้าเว็บส าหรับแสดงข่าวสารความเคลื่อนไหวต่างๆของการรับการ<br />

สมัครเข้าฝึกอบรมของศูนย์พัฒนาฝีมือแรงาน เพื่อแจ้งข่าวในรูปแบบของการประชาสัมพันธ์ การเพิ่มเติม<br />

รายละเอียดอื่นๆหรือการเปลี่ยนแปลงรายละเอียดการเข้าอบรม<br />

5. ตารางฐานข้อมูลการอัพโหลดเอกสารส าหรับผู้ใช้งานที่อยากจะน าเอกสารไปอ่านหรือไปบอกต่อ<br />

ทางเว็บเองก็ได้มีบริการให้สามารถดาวน์โหลดเอกสารออกไปเผยแพร่ได้โดยสามารถดาวน์โหลดได้ที่เว็บ


15<br />

วิธีการน าไปใช้งาน<br />

โปรแกรมฐานข้อมูล MySQL [12] ในการสร้างฐานข้อมูลเข้ามาเก็บไว้ใน เซิร์ฟเวอร์โดยการ<br />

เชื่อมต่อกับเว็บไซต์ และระบบฐานข้อมูลที่ได้สร้างไว้ เมื่อมีการกรอกข้อมูลเข้ามา ข้อมูลต่างๆ ก็จะถูกเก็บ<br />

รวบรวมไว้ในฐานข้อมูลเดียวกัน<br />

FileZilla เป็นโปรแกรมที่ใช้ติดต่อกับ FTP server ส าหรับการอัพโหลดไฟล์จากเครื่อง<br />

คอมพิวเตอร์ส่วนบุคคล ขึ้นไปยังโฮสติงเซิร์ฟเวอร์หรือเพื่อดาวน์โหลดจากโฮสติ้งเซิร์ฟเวอร์ลงมายังเครื่อง<br />

คอมพิวเตอร์ส่วนบุคคล โดยเฉพาะกับเว็บไซต์ ท าให้เหมาะส าหรับนักออกแบบเว็บไซต์ นอกจากนี้<br />

FileZilla ยังรองรับการถ่ายไฟล์อย่างปลอดภัยอีกด้วย FileZilla รองรับการถ่ายกลับของไฟล์ต่อในกรณีที่<br />

อัพโหลดหรือดาวน์โหลดล้มเหลว โดยใช้โปรโตคอล File Transfer Protocol (FTP)<br />

2.3.4 จอ Liquid Crystal Display (LCD)<br />

จอ Liquid Crystal Display (LCD) เป็นจอแสดงผลรูปแบบหนึ่งที่นิยมน ามาใช้งานกันอย่างแพร่หลาย<br />

จอ LCD มีทั้งแบบแสดงผลเป็นตัวอักขระเรียกว่า Character LCD ซึ่งมีการก าหนดตัวอักษร และอักขระที่<br />

สามารถแสดงผลไว้ได้อยู่แล้ว และแบบที่สามารถแสดงผลเป็นรูปภาพ สัญลักษณ์ต่างๆตามความต้องการ<br />

ของผู้ใช้งานเรียกว่า Graphic LCD นอกจากนี้บางชนิดเป็นจอที่มีการผลิตขึ้นมาใช้เฉพาะงานในการ<br />

แสดงผล เช่น นาฬิกาดิจิตอล เครื่องคิดเลข หรือ หน้าปัดวิทยุ เป็นต้น<br />

โครงสร้างโดยทั่วไปของ LCD<br />

โครงสร้างของ LCD โดยทั่วไปจะประกอบขึ้นด้วยแผ่นแก้ว 2 แผ่นประกบกันอยู่ โดยเว้นช่องว่าง<br />

ตรงกลางไว้ 6-10 ไมโครเมตร ผิวด้านในของแผ่นแก้วจะเคลือบด้วยตัวน าไฟฟ้าแบบใสเพื่อใช้แสดง<br />

ตัวอักษร ตรงกลางระหว่างตัวน าไฟฟ้าแบบใสกับผลึกเหลวจะมีชั้นของสารที่ท าให้โมเลกุลของผลึกรวมตัว<br />

กันในทิศทางที่แสงส่องมากระทบเรียกว่า Alignment Layer และผลึกเหลวที่ใช้โดยทั่วไปจะเป็นแบบ<br />

Magnetic โดย LCD สามารถแสดงผลให้เรามองเห็นได้ทั้งหมด 3 แบบด้วยกันคือ<br />

1.แบบใช้การสะท้อนแสง (Reflective Mode) LCD แบบนี้ใช้สารประเภทโลหะเคลือบอยู่ที่แผ่น<br />

หลังของ LCD ซึ่ง LCD ประเภทนี้เหมาะกับการน ามาใช้งานในที่ที่มีแสงสว่างเพียงพอ<br />

2.แบบใช้การส่งผ่าน (Transitive Mode) LCD แบบนี้วางหลอดไฟไว้ด้านหลังจอ เพื่อท าให้การ<br />

อ่านค่าที่แสดงผลท าได้ชัดเจน<br />

3.แบบส่งผ่าน และสะท้อน (Transflective Mode) LCD แบบนี้เป็นการน าเอาข้อดีของ<br />

จอแสดงผล LCD ทั้ง 2 แบบมารวมกัน<br />

ในหัวข้อนี้จะกล่าวถึงจอ LCD ที่แสดงผลเป็นอักขระหรือตัวอักษรโดยทั่วไปจะมีหลายแบบด้วยกัน<br />

มีทั้ง 16 ตัวอักษร 20 ตัวอักษรหรือมากกว่า และจ านวนบรรทัดจะมีตั้งแต่ 1 บรรทัด 2 บรรทัด 4 บรรทัด<br />

หรือมากกว่าตามแต่ความต้องการ และลักษณะของงานที่ใช้ ส าหรับจอ LCD ที่ใช้เป็น ขนาด 16x2


16<br />

Character หรือที่นิยมเรียกกันว่าจอ LCD 16 ตัวอักษร 2 บรรทัดเหมาะสมกับการใช้งานแสดงผลไม่มาก<br />

ในหน้าจอเดียว<br />

จอ LCD 16x2 Character ที่นิยมวางจ าหน่ายจะมีอยู่ 2 แบบด้วยกัน<br />

1. LCD แบบปกติที่เชื่อมต่อแบบขนาน (Parallel)<br />

2. LCD แบบที่เชื่อมต่ออนุกรม (Serial) แบบ I2C<br />

ในโครงงานนี้ทางผู้จัดท าจะเลือกใช้จอ LCD แบบที่เชื่อมต่ออนุกรม (Serial) แบบ I2C มี 4 ขา<br />

LCD แบบที่เชื่อมต่ออนุกรม (Serial) แบบ I2C<br />

รูปที่ 2.6 ด้านหลังจอ LCD 16x2 (I2C) [8]<br />

ตารางที่ 2.10 ตารางขาของจอ LCD 16x2 แบบ I2C<br />

Pin No Symbol Description<br />

1 GND Ground<br />

2 VCC +5VDC<br />

3 SDA Serial Data<br />

4 SCL Serial Clock<br />

(ที่มา : http://www.thaieasyelec.com)<br />

การควบคุมการแสดงผลของจอ LCD (I2C)<br />

การควบคุมหรือสั่งงาน โดยทั่วไปจอ LCD จะมีส่วนควบคุม (Controller) อยู่ในตัวแล้ว ผู้ใช้<br />

สามารถส่งรหัสค าสั่งส าหรับควบคุมการท างานของจอ LCD (I2C) เช่นเดียวกันกับจอ LCD แบบธรรมดา<br />

รหัสค าสั่งที่ใช้ในการควบคุมนั้นเหมือนกัน แต่ต่างกันตรงที่รูปแบบในการรับส่งข้อมูล จอ LCD 16x2 ที่มี<br />

การส่งข้อมูลรูปแบบ I2C ที่ใช้ขาเพียง 4 ขาที่ใช้ในการเชื่อมต่อดังนี้<br />

1. GND เป็น Ground ใช้ต่อระหว่าง Ground ของระบบ Microcontroller กับ LCD<br />

2. VCC เป็นไฟเลี้ยงวงจรที่ป้อนให้กับ LCD มีขนาด +5VDC


17<br />

3. SDA (Serial Data) เป็นขาที่ใช้ในการรับส่งข้อมูล<br />

4. SCL (Serial Clock) เป็นขาสัญญาณนาฬิกาในการรับส่งข้อมูล<br />

การเชื่อมต่อระหว่าง ไมโครคอนโทรลเลอร์ กับ LCD (I2C)<br />

การเชื่อมต่อสัญญาณระหว่าง Microcontroller กับ LCD [10] ที่มีบอร์ด I2C อยู่แล้วนั้น การส่ง<br />

ข้อมูลจาก Microcontroller จะถูกส่งออกมาในรูปแบบ I2C ไปยังบอร์ด I2C และบอร์ดจะมีหน้าที่จัดการ<br />

ข้อมูลให้ออกมาในรูปแบบปกติ หรือแบบ Parallel เพื่อใช้ในการติดต่อไปยังจอ LCD โดยที่รหัสค าสั่งที่ใช้<br />

ในการสั่งงานจอ LCD ยังคงไม่ต่างกับจอ LCD ที่เป็นแบบ Parallel โดยส่วนใหญ่บอร์ด I2C จะเชื่อมต่อกับ<br />

ตัวควบคุมของจอ LCD เพียง 4 บิตเท่านั้น<br />

รูปที่ 2.7 การเชื่อมต่อระหว่างจอ LCD (I2C) กับ PCF8574 [10]<br />

จากรูปวงจรจะเห็นได้ว่าจอ LCD และ บอร์ด I2C ได้มีการเชื่อมต่อขาส าหรับการรับส่งข้อมูลเป็น<br />

แบบ 4 บิต ขาที่เชื่อมต่อไว้คือ ขา P4 > DB4, P5 > DB5, P6 > DB6, P7 > DB7 และขา P2 > E<br />

(Enable), P1 > R/W, P0 > RS รวมไปถึงตัวต้านทานส าหรับปรับค่าความเข้มของตัวอักษร และ Switch<br />

Blacklight จากวงจรขาที่จ าเป็นในการใช้งานถูกเชื่อมต่อเข้ากับตัวบอร์ด I2C และอุปกรณ์อิเล็กทรอนิกส์<br />

เรียบร้อยแล้ว สถานะพร้อมใช้งาน


18<br />

รูปที่ 2.8 Switch Blacklight Board [10]<br />

การเชื่อมต่อระหว่าง Arduino กับจอ LCD (I2C)<br />

รูปที่ 2.9 การเชื่อมต่อจอ LCD (I2C) เข้ากับ Arduino [10]<br />

ตารางที่ 2.11 การเชื่อมต่อจอ LCD (I2C) เข้ากับ Arduino<br />

Arduino UNO R3<br />

LCD (I2C)<br />

GND GND (Pin 1)<br />

+5VDC VCC (Pin 2)<br />

A4 (SDA)<br />

SDA (Pin 3 Serial Data)<br />

A5 (SCL)<br />

SC (Pin 4 Serial Clock)<br />

(ที่มา : http://www.thaieasyelec.com)<br />

รายละเอียดชุดค าสั่งที่ใช้ในการสั่งงานระหว่าง Arduino กับจอ LCD<br />

ค าสั่งในการควบคุมจอ LCD ของ Arduino [11] นั้นทางผู้พัฒนาได้เขียนเป็น Library มา<br />

ให้เพื่อสะดวกในการน าไปใช้งานในการเขียนโปรแกรมเริ่มต้นคือการเรียกใช้ Library ของ LCD จากไฟล์ชื่อ<br />

LiquidCrystal_I2C.h เรียกใช้ฟังก์ชันที่ใช้สั่งงานจอ LCD เบื้องต้นดังนี้<br />

ฟังก์ชันแรก LiquidCrystal_I2C(); ใช้ในการประกาศ Address และขนาดของจอ รูปแบบของ<br />

LiquidCrystal_I2C lcd(Address, columns, rows);


19<br />

LiquidCrystal_I2C lcd(0x27, 16, 2); หมายถึง Address ของจอคือ 27 ขนาดของจอคือ 16<br />

ตัวอักษร 2 บรรทัด<br />

ฟังก์ชันต่อมา begin(); ใช้ในการก าหนดการเริ่มต้นในการใช้งานจอ<br />

ฟังก์ชันต่อมา setCursor(); ใช้ในการก าหนดต าแหน่งของเคอร์เซอร์<br />

lcd.setCursor(0, 1); คือให้เคอร์เซอร์ไปที่ ต าแหน่งที่ 0 บรรทัดที่ 1 การนับต าแหน่งเริ่มจาก 0<br />

ฟังก์ชัน print(); ใช้ในการก าหนดข้อความที่ต้องการแสดง<br />

lcd.print("ThaiEasyElec"); คือก าหนดให้แสดงข้อความ “ThaiEasyElec” ออกทางหน้าจอ LCD<br />

2.3.5 ความรู้เบื้องต้นเกี่ยวกับภาษา PHP<br />

PHP (Personal home page tools) [16] [18] เป็นภาษา script อย่างหนึ่งที่จะท างานในฝั่ง<br />

เซิร์ฟเวอร์ และน ามาแสดงผลยังเว็บบราวเซอร์ PHP เป็นภาษาที่จัดอยู่ในการพัฒนาแบบ Scripting<br />

Language ค าสั่งจะอยู่ในไฟล์ที่เรียกว่า สคริปต์(script) เมื่อมีการเรียกใช้งานต้องอาศัยตัวแปรชุดค าสั่ง<br />

เช่น JavaScript จัดเรียงหน้าเว็บเพ็จ เป็นต้น ลักษณะของ PHP ที่แตกต่างจากภาษาสคริปต์แบบอื่นๆ คือ<br />

PHP ได้รับการพัฒนา และออกแบบมา เพื่อใช้งานในการสร้างเอกสารแบบ HTML (Hypertext Markup<br />

Language) โดยสามารถ สอดแทรกหรือแก้ไขเนื้อหาได้โดยอัตโนมัติ ดังนั้นจึงกล่าวว่า PHP เป็นภาษาที่<br />

เรียกว่า Server Side Include (SSI) หรือ HTML-embedded scripting language เป็นเครื่องมือที่<br />

ส าคัญชนิดหนึ่งที่ช่วยให้เราสามารถสร้างเอกสารแบบ Dynamic HTML ได้อย่างมีประสิทธิภาพ<br />

ความสามารถของภาษา PHP<br />

1. เป็นภาษาที่มีลักษณะเป็นแบบ Open source ผู้ใช้สามารถดาวน์โหลด และน า Source code<br />

ของ PHP ไปใช้ได้โดยไม่เสียค่าใช้จ่าย<br />

2 .เป็นสคริปต์แบบ Server Side Script ดังนั้นจึงท างานบนเว็บเซิร์ฟเวอร์ ไม่ส่งผลกับการท างาน<br />

ของเครื่องไคลเอนต์ โดย PHP จะอ่านโค้ด และท างานที่เซิร์ฟเวอร์ จากนั้นจึงส่งผลลัพธ์ที่ได้จากการ<br />

ประมวลผลมาที่เครื่องของผู้ใช้ในรูปแบบของ HTML ซึ่งโค้ดของ PHP นี้ผู้ใช้จะไม่สามารถมองเห็นได้<br />

3. PHP สามารถท างานได้ในระบบปฏิบัติการที่ต่างชนิดกัน เช่น Windows, Mac OS เป็นต้น ได้<br />

อย่างมีประสิทธิภาพ เนื่องจาก PHP เป็นสคริปต์ที่ต้องท างานบนเซิร์ฟเวอร์<br />

4. PHP มีความสามารถในการท างานร่วมกับระบบจัดการฐานข้อมูล<br />

5. PHP อนุญาตให้ผู้ใช้สร้างเว็บไซต์ซึ่งท างานผ่านโปรโตคอลชนิดต่างๆได้<br />

6. โค้ด PHP สามารถเขียน และอ่านในรูปแบบของ XML ได้


20<br />

โครงสร้างการท างานของ PHP<br />

รูปที่ 2.10 แสดงขั้นตอนการท างานของ PHP [16]<br />

จากรูปที่ 2.10 เห็นได้ว่าเมื่อไคลเอนต์เรียกไฟล์ PHP script ผ่านทางเว็บบราวเซอร์ บราวเซอร์จะ<br />

ส่งค าร้อง (Request) ไปยังเว็บเซิร์ฟเวอร์ผ่านทางเครือข่ายอินเทอร์เน็ต เมื่อเว็บเซิร์ฟเวอร์รับค าร้องขอจาก<br />

บราวเซอร์แล้วก็จะน าสคริปต์ PHP ที่เก็บอยู่ในเซิร์ฟเวอร์มาประมวลผลด้วยโปรแกรมแปลภาษา PHP ที่<br />

เป็นอินเตอร์พรีเตอร์ กรณีที่ PHP script มีการเรียกใช้ข้อมูลก็จะติดต่อกับฐานข้อมูลต่างๆผ่านทาง ODBC<br />

(Open Database Connectivity) ถ้าเป็นฐานข้อมูลกลุ่ม Microsoft SQL Server, Microsoft Access,<br />

FoxPro หรือใช้ Function Connection ที่มีอยู่ใน PHP Library ในการเชื่อมต่อฐานข้อมูลเพื่อดึงข้อมูล<br />

ออกมาหลังจากแปลสคริปต์ PHP เสร็จแล้วจะได้รับไฟล์ HTML ใหม่ที่มีแต่ Tag HTML ไปยังเว็บ<br />

เซิร์ฟเวอร์ เว็บเซิร์ฟเวอร์ส่งไฟล์ HTML ที่ได้ผ่านการแปลแล้วกลับไปยังบราวเซอร์ที่ร้องขอผ่านทาง<br />

เครือข่ายอินเตอร์เน็ต บราวเซอร์รับไฟล์ HTML ที่เว็บเซิร์ฟเวอร์ส่งมาให้แปล HTML แสดงผลออกมาทาง<br />

จอภาพเป็นเว็บเพ็จโดยใช้ตัวแปลภาษา HTML ที่อยู่ในบราวเซอร์ซึ่งเป็นอินเตอร์พรีเตอร์เช่นเดียวกัน


21<br />

โครงสร้างของภาษา PHP<br />

ภาษา PHP [16] นี้เราสามารถฝังค าสั่ง PHP ไว้ในเว็บเพ็จร่วมกับค าสั่ง Tags ของ HTML ได้ และ<br />

สร้างไฟล์ที่มีนามสกุลเป็น .php, .php3 หรือ .php4 ซึ่งไวยากรณ์ที่ใช้ใน PHP เป็นการน ารูปแบบของ<br />

ภาษาต่างๆ มารวมกันท าให้การใช้งานภาษานี้ได้ไม่ยาก ในการใช้ PHP Tags นั้นสามารถท าได้หลาย<br />

รูปแบบดังนี้<br />

1.แบบ XML style<br />

เช่น <br />

2.แบบ Short style เช่น <br />

3.แบบ Script style<br />

4.แบบ ASP style<br />

เช่น …<br />

เช่น <br />

แบบที่นิยมใช้คือ XML style เนื่องจากสามารถใช้งานได้กับทุกเซิร์ฟเวอร์ อีกทั้งสอดคล้องกับ<br />

ไวยากรณ์ของภาษา XML อีกด้วย<br />

<br />

<br />

<br />

<br />

<br />

<br />

My Homepage<br />

<br />

จากโค้ดด้านบนส่วนที่ เป็นส่วนของ Script PHP ซึ่งเริ่มต้นด้วย<br />

ส าหรับ Script นี้เป็นการแสดงข้อความว่า “Hello”โดยใช้<br />

ค าสั่ง echo “Hello”;<br />

2.3.6 ความรู้เบื้องต้นเกี่ยวกับภาษา HTML<br />

ภาษา HTML (Hypertext Markup Language) [22] [23] เป็นภาษาที่ใช้ส าหรับสร้างเว็บเพ็จ<br />

โดยค าสั่งในภาษา HTML จะท าหน้าที่ควบคุมการแสดงผลของข้อมูลในเว็บเพ็จ ตลอดจนถึงต าแหน่ง สิ่ง<br />

ต่างๆ ที่อยู่บนเว็บเพ็จ ภาษา HTML เป็นภาษาที่ง่ายต่อการเรียนรู้ ท าให้ได้รับความนิยม และการพัฒนา<br />

อย่างต่อเนื่องเพื่อให้ใช้งานง่าย


22<br />

โครงสร้างภาษา HTML แบ่งออกเป็น 3 ดังนี้<br />

1.ส่วนประกาศ เป็นส่วนที่ก าหนดให้บราวเซอร์ทราบว่าเป็นภาษา HTML และมีค าสั่งคู่เดียวคือ<br />

… ที่หัว และท้ายไฟล์<br />

2.ส่วนหัวเรื่อง head เป็นส่วนที่แสดงผลข้อความบน Title Bar ของบราวเซอร์ และอาจมีค าสั่ง<br />

อื่นๆ อีกแทรกอยู่ระหว่างค าสั่ง …<br />

3.ส่วนเนื้อหา body เป็นส่วนที่มีความส าคัญส่วนหนึ่งเนื่องจากข้อมูลรูปแบบการแสดงผลต่างๆจะ<br />

อยู่ในส่วนนี้ทั้งหมด ซึ่งจะถูกอยู่ระหว่างค าสั่ง …<br />

รูปแบบของ Tag แบ่งออกเป็น 2 กลุ่ม คือ<br />

<br />

1. Tag เดี่ยว คือรูปแบบค าสั่งที่มีเพียงค าสั่งเดียวหรือมีเพียง Tag เดียว ก็สามารถใช้งานได้เช่น<br />

2. Tag คู่ คือ รูปแบบค าสั่งที่เป็นสองส่วน คือ มีส่วนเริ่มต้น และต้องมีส่วนจบของค าสั่งถึงจะ<br />

สามารถท างานได้สมบูรณ์โดยส่วนจบของแต่ละค าสั่งจะมีเครื่องหมาย Slash (/) ไว้หน้า Tag ค าสั่งนั้น เช่น<br />

...<br />

Tag ค าสั่งหลักของภาษา HTML<br />

การเขียนโปรแกรมด้วยภาษา HTML จะมีโครงสร้าง และการจัดวางค าสั่งหลักที่ใช้เป็นมาตรฐานเหมือนกัน<br />

ทั่วโลกโดยจะประกอบด้วย 4 ค าสั่งหลักดังนี้<br />

1. ... เป็นค าสั่งที่ท าหน้าที่บอกจุดเริ่มต้น และจุดสิ้นสุดของเอกสาร HTML<br />

2. ... เป็นค าสั่งที่หน้าที่ก าหนดส่วนหัวเรื่อง<br />

3. ... เป็นค าสั่งที่ใช้ก าหนดข้อความที่ต้องการน ามาแสดงผลบนแถบ Title Bar<br />

4. ... เป็นค าสั่งที่ก าหนดข้อความ และรูปแบบของค าสั่งต่างๆ ที่ใช้ส าหรับ<br />

ปรับแต่งเอกสารที่จะน าเสนอออกทางส่วนแสดงผลหลักของเว็บบราวเซอร์


23<br />

การก าหนดตัวอักษร<br />

1. การก าหนดตัวอักษร<br />

รูปแบบ การก าหนดแบบอักษร …


24<br />

2. การแสดงรายการแบบเมนูลิสต์<br />

รูปแบบ ข้อความส่วนหัว<br />

ข้อความย่อย<br />

<br />

3. การแสดงรายการแบบใช้ตัวเลข เลขอาราบิก, เลขโรมัน หรือตัวอักษร<br />

รูปแบบ ข้อความส่วนหัว<br />

ข้อความย่อย<br />

<br />

4. การใส่เครื่องหมายหน้าหัวข้อเป็นการแสดงรายการโดยใช้เครื่องหมายในแต่ละรายการย่อย<br />

รูปแบบ <br />

ข้อความย่อย<br />

<br />

5. การแสดงรายการโดยก าหนดหัวข้อ<br />

รูปแบบ ข้อความส่วนหัว<br />

หัวข้อ ค าอธิบาย<br />

<br />

การใส่รูปภาพ<br />

1. การใส่รูปภาพในเอกสาร<br />

รูปแบบ การใส่รูปภาพที่มี URL <br />

การก าหนดความกว้างรูปภาพ <br />

การก าหนดความสูงของรูปภาพ <br />

การก าหนดช่องว่างแนวนอนระหว่างรูปภาพกับข้อความ <br />

การก าหนดช่องว่างแนวตั้งระหว่างรูปภาพกับข้อความ


25<br />

2. การใส่พื้นหลังเป็นการน ารูปภาพมาท าเป็น background<br />

รูปแบบ การใส่พื้นหลังด้วยรูป <br />

การใส่พื้นหลังด้วยสี ก าหนดสีพื้นหลังของเว็บ<br />

การสร้างตาราง<br />

1. การสร้างตาราง ใช้ในการสร้างตารางข้อมูล<br />

รูปแบบ ก าหนดสีพื้นในตาราง … <br />

ก าหนดขนาดของขอบตาราง … <br />

ก าหนดความกว้างของตาราง” … <br />

2. ก าหนดข้อความก ากับตาราง<br />

รูปแบบ ก าหนดต าแหน่งของค าอธิบายตาราง<br />

3. การสร้างแถวของตาราง<br />

รูปแบบ ก าหนดต าแหน่งของข้อความ … <br />

ก าหนดสีพื้นหลังในตาราง … <br />

4. การสร้างหัวเรื่องของ<br />

รูปแบบ ก าหนดข้อความในตารางตามแนวนอน…<br />

ก าหนดต าแหน่งของข้อความในตาราง…<br />

ก าหนดสีพื้นของตาราง … <br />

ก าหนดความสูงของตาราง … <br />

ก าหนดความกว้างของตาราง … <br />

ก าหนดการรวมช่องเซลล์ในแนวตั้ง … <br />

ก าหนดการรวมช่องเซลล์ในแนวนอน …


26<br />

5. การสร้างเซลล์ข้อมูลใช้สร้างเซลล์ข้อมูลเพื่อใช้ในการแสดงข้อมูลรายละเอียดต่างๆ ของเอกสาร<br />

รูปแบบ ก าหนดต าแหน่งของข้อความในตารางตามแนวนอน … <br />

ก าหนดต าแหน่งของข้อความ …<br />

ก าหนดสีพื้นของตาราง … <br />

ก าหนดความสูงของตาราง … <br />

ก าหนดความกว้างของตาราง … <br />

ก าหนดการรวมช่องเซลล์ในแนวตั้ง … <br />

ก าหนดการรวมช่องเซลล์ในแนวนอน … <br />

การเชื่อมโยงเว็บเพ็จ<br />

รูปแบบ …


27<br />

บทที่ 3<br />

ขั้นตอนและวิธีการด าเนินงาน<br />

ในบทที่ 3 จะอธิบายขั้นตอน และวิธีการด าเนินงาน และการออกแบบระบบจัดการรถรับ-ส่ง<br />

ผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่ายไร้สายด้วย ESP8266 WiFi Module โดยมีอุปกรณ์คอยรับ<br />

ข้อมูลจ านวนผู้โดยที่รอรถตามจุดให้บริการต่างๆ แล้วแสดงข้อมูลผ่านทางจอ LDC ขนาด 16 x 2 ตัวอักษร<br />

จากนั้นบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 จะสั่งงานให้ ESP8266 WiFi Module ส่งข้อมูลไป<br />

ยังเซิร์ฟเวอร์ ที่จ าลองขึ้นมา และสามารถแสดงข้อมูลจ านวนนิสิตที่รอรถเมล์ในแต่ละสถานีย่อยผ่านทาง<br />

เว็บไซต์ได้<br />

3.1 ขั้นตอนและแผนการด าเนินโครงการ<br />

ขั้นตอนและแผนการด าเนินโครงการ ระบบจัดการรถรับ-ส่งผู้โดยสารมหาวิทยาลัยพะเยาผ่าน<br />

เครือข่ายไร้สายด้วย ESP8266 WiFi Module แสดงในรูปที่ 3.1<br />

ศึกษาปัญหาและทฤษฎีที่เกี่ยวข้อง<br />

วิเคราะห์หาสาเหตุของปัญหาที่พบ<br />

หาแนวทางและวิธีแก้ไขปัญหา<br />

ออกแบบระบบ<br />

สร้างระบบและอุปกรณ์<br />

ท างานไม่ถูกต้อง<br />

ทดลองใช้งาน<br />

หาสาเหตุของปัญหาและ<br />

ปรับปรุงแก้ไข<br />

สรุปผลการทดลอง<br />

ท างานถูกต้อง<br />

รูปที่ 3.1 ขั้นตอนและแผนการด าเนินโครงการ


28<br />

จากรูปที่ 3.1 แสดงขั้นตอน และแผนการด าเนินโครงการโดยเริ่มจากการศึกษาปัญหา และทฤษฎี<br />

ที่เกี่ยวข้องแล้ว จึงน าปัญหาที่พบมาวิเคราะห์หาสาเหตุของปัญหาจากนั้นทางผู้จัดท าได้ระดมความคิดเพื่อ<br />

หาแนวทาง วิธีแก้ไขปัญหา และออกแบบระบบจากนั้นท าการทดลองระบบที่ได้ ว่ามีความถูกต้องหรือไม่<br />

หากมีความผิดพลาด ท าการหาสาเหตุของปัญหา และปรับปรุงแก้ไขจนกว่าระบบจะท างานได้ถูกต้อง<br />

3.2 ศึกษาปัญหาและทฤษฎีที่เกี่ยวข้อง<br />

อันเนื่องมาจากทางมหาวิทยาลัยพะเยามีนโยบายให้นิสิตใช้การเดินทางโดยรถโดยสารประจ าทางที่<br />

ทางมหาวิทยาลัยจัดให้ เพื่อเป็นการลดปัญหาการคมนาคมในเขตมหาวิทยาลัยที่ติดขัด แต่ก็ยังคงมีปัญหา<br />

อยู่ส่วนหนึ่งเช่น รถโดยสารมีผู้โดยสารเต็มคันเมื่อมาถึงสถานีย่อย รถโดยสารมาช้าใช้เวลานานในการ<br />

เดินทางเนื่องมีการปล่อยรถออกมาเป็นช่วงเวลาที่แน่นอน ซึ่งบางครั้งรถที่ออกมาจากสถานีหลักมีนิสิตที่<br />

ขึ้นมาส่วนหนึ่งบ้างแล้ว ส่งผลให้นิสิตที่รอรถอยู่ที่สถานีย่อยดังกล่าวไม่สามารถขึ้นรถได้อย่างที่ควรจะเป็น<br />

3.3 วิเคราะห์เพื่อหาสาเหตุของปัญหา<br />

เมื่อได้ศึกษาปัญหา และทฤษฎีที่เกี่ยวข้องแล้ว จึงน าปัญหาดังที่พบมาวิเคราะห์หาสาเหตุของ<br />

ปัญหาสามารถสรุปได้ว่า รถโดยสารที่สถานีหลักจะรอผู้โดยสารขึ้นให้เต็มก่อนแล้วค่อยออกจากสถานี ท าให้<br />

รถโดยสารที่สถานีหลักออกจากสถานีไม่ตรงตามเวลาที่ก าหนดในแต่ละรอบ สถานีหลักไม่สามารถรับรู้ถึง<br />

จ านวนผู้โดยสารตามสถานีย่อยต่างๆได้ จึงไม่สามารถบริหารจัดการรถโดยสารได้อย่างเต็มประสิทธิภาพ<br />

เมื่อพบสาเหตุของปัญหาแล้ว ทางผู้จัดท าได้ระดมความคิดหาแนวทาง และวิธีแก้ไขปัญหาโดยน า<br />

เทคโนโลยีการติดต่อสื่อสารแบบไร้สาย ที่รู้จักกันดีในชื่อว่า Wireless Fidelity (WiFi) ซึ่งเทคโนโลยีนี้เป็นที่<br />

นิยมกันอย่างแพร่หลาย และง่ายต่อการใช้งานเป็นสื่อกลางในการสื่อสารรับ-ส่งข้อมูล โดยมีอุปกรณ์คอยรับ<br />

ข้อมูลซึ่งจ านวนผู้โดยที่รอรถตามจุดให้บริการแล้วส่งไปยังเซิร์ฟเวอร์ และน าข้อมูลที่ได้มาแสดงผลบนเว็บ<br />

บราวเซอร์ อีกทั้งยังสามารถเก็บเป็นฐานข้อมูลการใช้รถโดยสารของนิสิตในมหาวิทยาลัยพะเยาแห่งนี้ได้อีก<br />

ด้วย


29<br />

รูปที่ 3.2 แสดงการส่งข้อมูลจากสถานีย่อยไปยังศูนย์ควบคุมที่จุดเปลี่ยนรถ<br />

จากรูปที่ 3.2 แสดงระบบการจัดการรถดังกล่าว เห็นได้ว่ามีนิสิตที่รอรถโดยสารตามสถานีย่อย<br />

สามารถส่งข้อมูลจ านวนผู้โดยที่รอรถตามจุดบริการไปยังเซิร์ฟเวอร์ และน าข้อมูลที่ได้มาแสดงผลบนเว็บ<br />

บราวเซอร์ที่สถานีหลัก<br />

3.4 การออกแบบระบบ<br />

การออกแบบระบบจัดการรถรับ-ส่งผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่ายไร้สายด้วย<br />

ESP8266 WiFi Module ประกอบไปด้วย 2 ส่วนหลักคือ 1.ส่วนของภาคส่ง 2.ส่วนของภาครับ โดยภาคส่ง<br />

จะประกอบไปด้วย ส่วนของฮาร์ดแวร์ และซอฟต์แวร์ ในภาครับจะประกอบด้วยส่วนของซอฟต์แวร์ มี<br />

หลักการท างานดังแสดงในรูปที่ 3.3<br />

จอแสดงผล LCD<br />

ปุ่มรับข้อมูล<br />

บอร์ดไมโครคอนโทรลเลอร์<br />

Arduino UNO R3<br />

เว็บบราวเซอร์แสดงข้อมูล<br />

ตอบกลับ<br />

เซิร์ฟเวอร์<br />

ร้องขอ<br />

ESP8266 WiFi<br />

Module<br />

ร้องขอ<br />

PHP File<br />

ฐานข้อมูล<br />

ตอบกลับ<br />

ภาคส่ง<br />

ภาครับ<br />

รูปที่ 3.3 แสดงการออกแบบระบบจัดการรถรับ-ส่งผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่ายไร้สายด้วย<br />

ESP8266 WiFi Module


30<br />

3.4.1 หลักการท างานของระบบ<br />

จากรูปที่ 3.3 สามารถอธิบายหลักการท างานของระบบระบบประกอบไปด้วย 2 ส่วนหลักคือ 1.<br />

ส่วนของภาคส่ง ท าหน้าที่รับ และแสดงจ านวนผู้โดยสารที่รอรถจากสถานีย่อยตามจุดให้บริการจากนั้นๆมา<br />

ประมวลผลที่บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 เพื่อสั่งงานให้ ESP8266 WiFi Module น า<br />

ข้อมูลที่รับเข้ามานั้นส่งไปยังเซิร์ฟเวอร์ผ่านเครือข่ายไร้สาย และ 2 ส่วนของภาครับ ท าหน้าที่รับข้อมูลที่ถูก<br />

ส่งมาจากภาคส่งมายังเซิร์ฟเวอร์จ าลอง และบันทึกข้อมูลลงฐานข้อมูล เมื่อมีการร้องขอข้อมูลจากหน้า<br />

เว็บไซต์ เซิร์ฟเวอร์จะท าหน้าที่ในการน าข้อมูลจากฐานข้อมูลตามที่ได้ร้องขอไปให้ และแสดงออกมาทาง<br />

หน้าเว็บไซต์<br />

3.4.2 การออกแบบฮาร์ดแวร์ และเซิร์ฟเวอร์ภาคส่ง<br />

การออกแบบฮาร์ดแวร์<br />

ในส่วนนี้เป็นการออกแบบส่วนของฮาร์ดแวร์และการเลือกใช้อุปกรณ์เครื่องมือในการออกแบบ<br />

เพื่อให้เกิดความเหมาะสม และมีประสิทธิภาพสูงสุด<br />

จอแสดงผล LCD<br />

บอร์ดไมโครคอนโทรลเลอร์<br />

Arduino UNO R3<br />

ปุ่มรับข้อมูล<br />

ESP8266 WiFi<br />

Module<br />

ภาคส่ง<br />

รูปที่ 3.4 แสดงการท างานทั้งหมดของส่วนฮาร์ดแวร์ภาคส่ง<br />

จากรูปที่ 3.4 จะเห็นว่าฮาร์ดแวร์ภาคส่งประกอบด้วยปุ่มรับข้อมูล จอแสดงผล LCD และ<br />

ESP8266 WiFi module ถูกต่อเข้ากับใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 ซึ่งเป็นหัวใจหลัก<br />

ในภาคส่งนี้<br />

1. บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 เป็นอุปกรณ์ที่มีการพัฒนาแบบ Open Source<br />

คือมีการเปิดเผยข้อมูลทั้งด้าน ฮาร์ดแวร์ และ ซอฟต์แวร์ของตัว บอร์ด Arduino ถูกออกแบบมาให้ใช้งาน


31<br />

และง่ายต่อการพัฒนาต่อยอด ด้วยเหตุนี้ผู้จัดท าจึงเลือกใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

มาเป็นเสมือนศูนย์กลางการควบคุมการท างานของอุปกรณ์ภาคส่งโดยจะท าหน้าที่รับข้อมูลที่ได้จาก<br />

ผู้โดยสารทางปุ่มกดแล้วน ามาเก็บไว้ในตัวแปรค่าหนึ่ง แล้วน าค่าที่ได้นี้น าไปสั่งให้ ESP8266 WiFi module<br />

ส่งข้อมูลขึ้นเซิร์ฟเวอร์ และน าไปแสดงผลออกทางจอ จอ LDC ขนาด 16 x 2 ตัวอักษร<br />

2. ESP8266 WiFi Module เป็นโมดูล WiFi ขนาดเล็กสามารถเชื่อมต่อสัญญาณ WiFi ให้กับ<br />

อุปกรณ์ Arduino UNO R3 ได้สามารถเลือกโหมดท างานได้ 3 โหมดใช้พลังงานน้อย และการสื่อสารทาง<br />

ช่องทางนี้ยังเป็นที่นิยมมากทางผู้จัดท าจึงได้เลือกใช้ ESP8266 WiFi Module เป็นตัวท าหน้าที่ในการรับ<br />

ข้อมูลจากบอร์ดไมโครคอนโทรลเลอร์Arduino UNO R3 ที่สั่งมาแล้วส่งไปยังเซิร์ฟเวอร์<br />

ที่รอรถ<br />

3. จอ LDC ขนาด 16 x 2 ตัวอักษร ใช้ในการแสดงสถานะการท างานตลอดจนถึงจ านวนผู้โดยสาร<br />

4. ปุ่มกดเนื่องจากปุ่มกดมีความทนทานต่อการใช้งาน และมีให้เลือกใช้งานได้หลากหลาย ดังนั้น<br />

ผู้จัดท าจึงเลือกใช้ปุ่มกดมาท าหน้าที่เป็นตัวรับข้อมูล และตัวกลางในการติดต่อสื่อสารระหว่างบอร์ด<br />

ไมโครคอนโทรลเลอร์ Arduino UNO R3 กับผู้โดยสาร<br />

รูปที่ 3.5 แสดงการออกแบบอุปกรณ์ฮาร์ดแวร์ภาคส่ง


32<br />

อุปกรณ์ที่ใช้<br />

1. Button ปุ่มกดขนาด 12 x 12 x 9 mm จ านวน 4 ตัว ใช้เป็นตัวรับข้อมูลจากผู้โดยสารจาก<br />

สถานีย่อย<br />

รูปที่ 3.6 Button ปุ่มกดขนาด 12 x 12 x 9 mm<br />

2. Buzzer เป็นอุปกรณ์ส่งเสียงใช้แรงดันไฟ 5 โวลต์ จ านวน 1 ตัว ใช้ส่งเสียงเมื่อมีการกดปุ่ม<br />

รูปที่ 3.7 Buzzer แรงดันไฟ 5 โวลต์<br />

3. จอ LDC ขนาด 16 x 2 ตัวอักษรพร้อม I2C จ านวน 1 ตัว ใช้ในการแสดงสถานะการท างาน<br />

ตลอดจนถึงจ านวนผู้โดยสารที่รอรถ<br />

รูปที่ 3.8 จอ LDC ขนาด 16 x 2 ตัวอักษรพร้อม I2C<br />

4. ESP8266 WiFi Module จ านวน 1 ตัว ใช้เป็นตัวส่งข้อมูลขึ้นเซิร์ฟเวอร์<br />

รูปที่ 3.9 ESP8266 WiFi Module<br />

5. บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 จ านวน 1 ตัว ใช้เป็นตัวควบคุมการท างาน<br />

ของทั้งหมดของอุปกรณ์ภาคส่ง


33<br />

รูปที่ 3.10 บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

การออกแบบวงจรควบคุม<br />

วงจรควบคุมอุปกรณ์ ส่งเสียง การแส ดงผล ปุ่มรับข้อมูล ตัวส่งข้อมูล และบอร์ด<br />

ไมโครคอนโทรลเลอร์ Arduino UNO R3 เนื่องจากอุปกรณ์แต่ละตัวมีคุณสมบัติที่แตกต่างกันจึงท าให้ไม่<br />

สามารถต่อใช้งานได้โดยตรง จึงจ าเป็นต้องมีการออกแบบวงจร เพื่อให้สามารถท างานรวมกันได้<br />

1) วงจรปุ่มกดรับข้อมูลและปุ่มรีเซตอุปกรณ์<br />

รูปที่ 3.11 แสดงการต่อวงจรปุ่มกดรับข้อมูลและปุ่มรีเซตอุปกรณ์ต่อเข้ากับบอร์ดไมโครคอนโทรลเลอร์<br />

Arduino UNO R3<br />

จากรูปที่ 3.11 เห็นได้ว่าในวงจรประกอบไปด้วย สวิตช์ 4 ตัว แต่ละตัวต่ออนุกรมกับตัวต้านทาน 4<br />

ตัว และขนานกับสายลอจิก 4 สายแต่ละสายต่อเข้ากับบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

ตามล าดับ วงจรนี้จะใช้ไฟเลี้ยง 5 โวลต์จากบอร์ด สวิตช์มี 4 ตัวได้แก่ UP เป็นปุ่มกดเพิ่มจ านวนผู้โดยสาร<br />

Down เป็นปุ่มกดลดจ านวนผู้โดยสาร Send เป็นปุ่มกดเพื่อส่งข้อมูลจ านวนผู้โดยสาร Reset เป็นปุ่มกด<br />

เพื่อรีเซตอุปกรณ์ให้เริ่มการท างานใหม่


34<br />

เมื่อไม่มีการกดใช้งานค่าที่บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 ได้รับจากปุ่มกดจะมีค่า<br />

เป็นลอจิก 0 แต่ถ้ามีการกดใช้งานค่าที่บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 ได้รับจากปุ่มกดจะมี<br />

ค่าเป็นลอจิก 1 ซึ่งจะถูกน าไปประมวลผลต่อไป<br />

2) วงจรเสียง<br />

รูปที่ 3.12 แสดงการต่อวงจรเสียงเข้ากับบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

จากรูปที่ 3.12 เห็นได้ว่าในวงจรประกอบไปด้วย Buzzer เสียงหนึ่งตัวต่อเข้ากับบอร์ด<br />

ไมโครคอนโทรลเลอร์ Arduino UNO R3 อุปกรณ์ส่งเสียงนี้จะท างานเมื่อมีการกดปุ่มส่งค่าลอจิก 1 ให้กับ<br />

บอร์ด<br />

3) วงจรจอแสดงผล LDC ขนาด 16 x 2 ตัวอักษร พร้อม I2C<br />

รูปที่ 3.13 แสดงการต่อวงจรจอแสดงผล LDC ขนาด 16 x 2 ตัวอักษร พร้อม I2C เข้ากับบอร์ด<br />

ไมโครคอนโทรลเลอร์ Arduino UNO R3


35<br />

จากรูปที่ 3.13 เป็นการต่อวงจรจอแสดงผล LDC ขนาด 16 x 2 ตัวอักษร พร้อม I2C ซึ่งมีการต่อ<br />

แบบส าเร็จมาแล้วสามารถต่อใช้งานได้โดยตรงเข้ากับบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3<br />

4) วงจร ESP8266 WiFi Module<br />

รูปที่ 3.14 แสดงการต่อวงจร ESP8266 WiFi Module เข้ากับบอร์ดไมโครคอนโทรลเลอร์<br />

Arduino UNO R3<br />

จากรูปที่ 3.14 การต่อวงจร ESP8266 WiFi Module เข้ากับบอร์ดไมโครคอนโทรลเลอร์<br />

Arduino UNO R3 ภายในวงจรประกอบไปด้วยตัวต้านทานขนาด 10 กิโลโอห์ม 2 ตัว ต่ออนุกรมเข้าขา<br />

RST และขา CH_PD เพื่อป้องกันกระแสเกิน และตัวเก็บประจุ ขนาด 200 ไมโครฟารัด 1 ตัว คร่อม<br />

แหล่งจ่ายไฟบวกเพื่อป้องกันแรงดันตกระหว่างการส่งข้อมูล<br />

5) รวมวงจร<br />

รูปที่ 3.15 แสดงการต่อรวมทั้งเข้ากับบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3


36<br />

จากรูปที่ 3.15 สามารถอธิบายหลักการท างานของวงจรได้ดังนี้ เมื่อบอร์ดไมโครคอนโทรลเลอร์<br />

Arduino UNO R3 ท างาน ตัวบอร์ดจะจ่ายไฟเลี้ยงออกจากขา 5v และ 3.3v เพื่อน าไปเลี้ยงวงจรของ<br />

อุปกรณ์ที่มาต่อพ่วงให้สามารถท างานได้ ระหว่างที่จ่ายไฟออกไปเลี้ยงวงจรที่มาต่อพ่วงบอร์ดจะท างาน<br />

ตามที่ได้โปรแกรมไว้<br />

เมื่อมีการกดปุ่มรับข้อมูลจ านวนผู้โดยสารที่รอรถมาจะมีการส่งค่าลอจิก 1 ไปยังบอร์ด<br />

ไมโครคอนโทรลเลอร์ Arduino UNO R3 ที่รอรับค่าอยู่ มาท าการประมวลผลแล้วส่งค่าออกจอแสดงผล<br />

และสั่งให้อุปกรณ์ส่งเสียงมีเสียงดังขึ้น จากนั้นบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 จะสั่งงานให้<br />

ESP8266 WiFi Module ส่งข้อมูลที่ได้ขึ้นเซิร์ฟเวอร์<br />

การออกแบบซอฟต์แวร์<br />

ในส่วนนี้เป็นการออกแบบส่วนของซอฟต์แวร์เพื่อใช้ในการควบคุมการท างานของอุปกรณ์<br />

ต่างๆให้เป็นไปตามเงื่อนไขที่ได้ออกแบบไว้<br />

เริ่ม<br />

อินพุทรับข้อมูลผู้โดยสาร<br />

ประมวลผลและสั่งงาน แสดงผลการท างาน<br />

ส่งขอข้อมูลออกไปยังภาครับ<br />

จบ<br />

รูปที่ 3.16 หลักการท างานของซอฟต์แวร์ภาคส่ง


37<br />

จากรูปที่ 3.16 เป็นแผนภาพ Flow chart แสดงหลักการท างานของซอฟต์แวร์ภาคส่ง เมื่อระบบ<br />

เริ่มท างานจะท าการรับข้อมูลผู้โดยสารเข้ามาประมวลผลจากนั้นแสดงข้อมูล และค าสั่งให้อุปกรณ์ส่งข้อมูล<br />

ไปยังภาครับ และระบบจะท าการวนลูปกลับไปเริ่มใหม่<br />

อุปกรณ์ที่น ามาใช้ในการเขียนโปรแกรม<br />

1. คอมพิวเตอร์/โน็ตบุ๊คพร้อมติดตั้งโปรแกรม Arduino IDE 1.6.5<br />

2. บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 พร้อมสาย USB<br />

รูปที่ 3.17 โปรแกรม Arduino IDE 1.6.5<br />

รูปที่ 3.18 บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 ออกแบบโปรแกรมควบคุมการท างาน<br />

ของอุปกรณ์


38<br />

การออกแบบโปรแกรมควบคุมการท างานของอุปกรณ์ภาคส่ง<br />

เริ่ม<br />

ฟังก์ชัน setup<br />

ฟังก์ชัน loop<br />

รูปที่ 3.19 ออกแบบโปรแกรมควบคุมการท างานของอุปกรณ์ภาคส่ง<br />

จบ<br />

จากรูปที่ 3.19 สามารถอธิบาย Flow chart ของโปรแกรมควบคุมการท างานของอุปกรณ์ภาคส่ง<br />

ได้ดังนี้ เมื่อมีการเริ่มท างานซอฟต์แวร์จะเริ่มท างานในส่วนฟังก์ชัน setup เป็นอันดับแรกโดยการ<br />

ก าหนดค่าตัวแปรเริ่มต้นในการท างานต่างให้สามารถพร้อมใช้งาน และจะท างานเพียงครั้งเดียว จากนั้นจะ<br />

ท างานในส่วนของฟังก์ชัน loop ในฟังก์ชันนี้เป็นส่วนของลูปของการท างานต่าง ๆ รวมถึงค าสั่งในการ<br />

ควบคุมการท างานของอุปกรณ์ด้วย และจะท างานวนลูปไปเรื่อยๆ จนกว่าจะจบมีการหยุดการท างาน<br />

การออกแบบฟังก์ชัน setup<br />

เริ่ม<br />

ก าหนดค่าเริ่มต้น<br />

จบ<br />

รูปที่ 3.20 แผนภาพ Flow chart การท างานของฟังก์ชัน setup


39<br />

จาก รูปที่ 3.20 เป็นแผนภาพ Flow chart แสดงการท างานของฟังก์ชัน setup เป็นการ<br />

ก าหนดค่าตัวแปรเริ่มต้นในการท างานต่างให้สามารถพร้อมใช้งาน และจะท างานเพียงครั้งเดียว<br />

การออกแบบฟังก์ชัน loop<br />

เริ่ม<br />

Switch<br />

เท็จ<br />

Case: 0<br />

ตรวจสอบการท างานโมดูล<br />

ตรวจสอบ<br />

จริง<br />

จริง<br />

เท็จ<br />

แสดงผล<br />

เท็จ<br />

Case: 1<br />

รีสตาร์ทโมดูล<br />

ตรวจสอบ<br />

จริง<br />

จริง<br />

เท็จ<br />

แสดงผล<br />

เท็จ<br />

Case: 2<br />

เชื่อมต่อสัญญาณไวไฟ<br />

ตรวจสอบ<br />

เท็จ<br />

จริง<br />

A<br />

B<br />

รูปที่ 3.21 แผนภาพ Flow chart การท างานของฟังก์ชัน loop


40<br />

A<br />

B<br />

เท็จ<br />

Case: 3<br />

จริง<br />

ก าหนดโหมดการเชื่อมต่อ<br />

จริง<br />

ตรวจสอบ<br />

เท็จ<br />

แสดงผล<br />

เท็จ<br />

Case: 4<br />

รับค่าจากอุปกรณ์,ตั้งค่า TCP ตรวจสอบ<br />

จริง<br />

จริง<br />

เท็จ<br />

แสดงผล<br />

เท็จ<br />

Case: 5<br />

ส่งข้อมูลไปยังภาครับ<br />

ตรวจสอบ<br />

เท็จ<br />

จริง<br />

C<br />

D<br />

รูปที่ 3.21 แผนภาพ Flow chart การท างานของฟังก์ชัน loop (ต่อ)<br />

E


41<br />

D<br />

E<br />

เท็จ<br />

Case: 6<br />

ปิดการเชื่อมต่อ TCP<br />

ตรวจสอบ<br />

จริง<br />

จริง<br />

เท็จ<br />

แสดงผล<br />

C<br />

Case: 7<br />

ล้างค่าตัว<br />

เท็จ<br />

จริง<br />

Default<br />

เท็จ<br />

จริง<br />

จบ<br />

รูปที่ 3.21 แผนภาพ Flow chart การท างานของฟังก์ชัน loop (ต่อ)<br />

จากรูปที่ 3.21 เป็นแผนภาพ Flow chart แสดงการท างานในฟังก์ชัน loop การท างานของ<br />

ฟังก์ชันนี้จะรับค่าจากฟังก์ชัน setup เพื่อเข้าเงื่อนไข switch case นั้นถ้าหากการท างานส าเร็จก็จะถูกสั่ง<br />

ให้ไปท างานใน case ต่อไปหากไม่ส าเร็จจะสั่งให้วนกลับไปเริ่มท างานใหม่<br />

Case: 0<br />

การท างานในส่วนของ Case 0 นี้จะเป็นการรีสตาร์ทโมดูล WiFi ให้เริ่มท างานใหม่จากนั้นท าการ<br />

ตรวจด้วยเงื่อนไข ตรวจสอบว่าโมดูล WiFi มีการเริ่มท างานใหม่หรือไม่ หากมีการเริ่มท างานใหม่จริงจะน า<br />

ค่ามาแสดงผลและท างานใน Case ถัดไปแต่ถ้าไม่ส าเร็จจะกลับไปเริ่มท างานใหม่


42<br />

Case: 1<br />

การท างานในส่วนของ Case 1 นี้จะเป็นการสั่งความพร้อมของโมดูล WiFi จากนั้นท าการตรวจด้วยเงื่อนไข<br />

ตรวจสอบว่าสถานะของโมดุล WiFi มีความพร้อมท างานหรือไม่ หากพร้อมจริงจะน าค่ามาแสดงผล และ<br />

ท างานใน Case 2 แต่ถ้าไม่ส าเร็จจะถูกกลับไปเริ่มท างานใหม่ใน Case 0<br />

Case: 2<br />

การท างานในส่วนของ Case 2 นี้จะเป็นการเชื่อมต่อกับสัญญาณ WiFi จากนั้นท าการตรวจด้วย<br />

เงื่อนไข ตรวจสอบว่าโมดูล WiFi มีการเชื่อมต่อกับสัญญาณ WiFi ได้ส าเร็จหรือไม่ หากส าเร็จจะน าค่ามา<br />

แสดงผล และท างานใน Case 3 แต่ถ้าไม่ส าเร็จจะถูกกลับไปเริ่มท างานใหม่ใน Case 0<br />

Case: 3<br />

การท างานในส่วนของ Case 3 นี้จะเป็นการก าหนดโหมดการเชื่อมต่อจากนั้นท าการตรวจด้วย<br />

เงื่อนไข ตรวจสอบว่าโมดูล WiFi มีก าหนดโหมดการเชื่อมต่อได้ส าเร็จหรือไม่ หากส าเร็จจะน าค่ามา<br />

แสดงผลและท างานใน Case 4 แต่ถ้าไม่ส าเร็จจะถูกกลับไปเริ่มท างานใหม่ใน Case 0<br />

Case: 4<br />

การท างานในส่วนของ Case 4 นี้จะเป็นการรับค่าข้อมูลผู้โดยสารที่รอรถจากอุปกรณ์มาเก็บไว้ใน<br />

ตัวแปร และก าหนดโปรโตคอลเริ่มการสื่อสาร จากนั้นท าการตรวจด้วยเงื่อนไข ตรวจสอบว่าโมดูล WiFi มี<br />

การท างานดังกล่าวได้ส าเร็จหรือไม่ หากส าเร็จจะน าค่ามาแสดงผล และท างานใน Case 5 แต่ถ้าไม่ส าเร็จ<br />

จะถูกกลับไปเริ่มท างานใหม่ใน Case 0<br />

Case: 5<br />

การท างานในส่วนของ Case 6 นี้จะเป็นการน าข้อมูลผู้โดยสารที่รอรถ ที่ได้จากการรับข้อมูลมาใน<br />

Case 4 ส่งออกไปยังภาครับ จากนั้นท าการตรวจด้วยเงื่อนไข ตรวจสอบว่าโมดูลไวไฟมีการท างานดังกล่าว<br />

ได้ส าเร็จหรือไม่ หากส าเร็จจะท าการแสดงความคืบหน้าในการท างานออกมา และท างานใน Case 6 แต่ถ้า<br />

ไม่ส าเร็จจะถูกกลับไปเริ่มท างานใหม่ใน Case 0<br />

Case: 6<br />

การท างานในส่วนของ Case 6 นี้จะเป็นการปิดการเชื่อมต่อโปรโตคอลสื่อสาร จากนั้นท าการ<br />

ตรวจด้วยเงื่อนไข ตรวจสอบว่าโมดูล WiFi มีการปิดการเชื่อมต่อโปรโตคอลสื่อสารดังกล่าวได้ส าเร็จหรือไม่<br />

หากส าเร็จจะท าการแสดงความคืบหน้าในการท างานออกมา และท างานใน Case 7 แต่ถ้าไม่ส าเร็จจะถูก<br />

กลับไปเริ่มท างานใหม่ใน Case 0<br />

Case: 7<br />

การท างานในส่วนของ Case 7 นี้จะเป็นการล้างค่าตัวแปรต่างๆ เพื่อเตรียมกลับไปเริ่มท างานใน<br />

Case 4<br />

Default


43<br />

ในส่วนของ Default นี้จะท างานในกรณีที่ Switch case รับค่าเข้ามาแต่ไม่มีอยู่ใน Case ใดเลยจะ<br />

ถูกสั่งให้มาท างานใน Default นี้ และการท างานในส่วน Default นี้จะสั่งให้กลับไปเริ่มท างานใหม่ใน<br />

Case 0<br />

การออกแบบด้านหน้ากล่อง<br />

รูปที่ 3.22 แสดงการออกแบบด้านหน้ากล่อง<br />

จากรูปที่ 3.22 เป็นการออกแบบแสดงด้านหน้าของกล่องใส่อุปกรณ์เพื่อส่งข้อมูลจาก<br />

สถานีรอรถ เพื่อให้ผู้โดยสารเกิดความเข้าใจการใช้อุปกรณ์ และให้เกิดความสวยงาม<br />

3.4.3 การออกแบบซอฟต์แวร์ภาครับ<br />

การออกแบบซอฟต์แวร์<br />

ในส่วนนี้เป็นการออกแบบฟอนต์ของซอฟต์แวร์ ภาครับเพื่อควบคุมเรื่องของการแสดงผลผ่านหน้า<br />

เว็บไซต์ และการติดต่อกับฐานข้อมูลด้วยเซิร์ฟเวอร์


44<br />

เว็บบราวเซอร์แสดงข้อมูล<br />

ร้องขอ<br />

ตอบกลับ<br />

เซิร์ฟเวอร์<br />

ร้องขอ<br />

PHP File<br />

ฐานข้อมูล<br />

ตอบกลับ<br />

ภาครับ<br />

รูปที่ 3.23 แสดงการท างานทั้งหมดของส่วนซอฟต์แวร์ภาครับ<br />

จากรูปที่ 3.23 เป็นการแสดงการท างานของซอฟต์แวร์ภาครับซึ่งสามารถอธิบายได้ดังนี้ เมื่อมี<br />

ผู้ใช้งานร้องขอข้อมูลกับเซิร์ฟเวอร์ โดยผ่านทางเว็บบราวเซอร์ ตัวเซิร์ฟเวอร์จะท าการติดต่อกับฐานข้อมูล<br />

เพื่อร้องขอข้อมูลจากฐานข้อมูลมาให้เว็บบราวเซอร์และน าข้อมูลที่ได้มาแสดงผลในการออกแบบสิ่งที่<br />

จ าเป็นต้องมีได้แก่<br />

1. ฐานข้อมูล เป็นส่วนที่ท าหน้าคอยเก็บข้อมูล ไม่ว่าจะเป็นข้อมูลจ านวนผู้โดยสารที่รอรถแต่ละ<br />

สถานีที่ถูกส่งมาจากอุปกรณ์ภาคส่งรายชื่อผู้ที่มีสิทธิในการเข้าถึงข้อมูล Username Password ต่างๆเป็น<br />

ต้น<br />

2. เซิร์ฟเวอร์ เป็นส่วนที่ท าหน้าเป็นเสมือนศูนย์กลางในการติดต่อสื่อสารระหว่างเว็บบราวเซอร์กับ<br />

ฐานข้อมูลเมื่อมีการร้องขอข้อมูลจากผ่านเว็บบราวเซอร์มายังเซิร์ฟเวอร์ เซิร์ฟเวอร์จะท าการดึงข้อมูลจาก<br />

ฐานข้อมูลมาให้<br />

3. เว็บบราวเซอร์เป็นสื่อกลางในการติดต่อสื่อสารระหว่างผู้ใช้งานกับเซิร์ฟเวอร์ซึ่งเราไม่สามารถ<br />

ติดต่อสื่อสารได้โดยตรง<br />

อุปกรณ์ที่น ามาใช้งาน<br />

1. คอมพิวเตอร์หรือโน๊ตบุ๊ค 1 เครื่องพร้อมติดตั้งโปรแกรม Xampp เวอร์ชัน 3.2.1<br />

2. โปรแกรม notepad++ เวอร์ชัน 6.8.3


45<br />

รูปที่ 3.24 โปรแกรม Xampp เวอร์ชัน 3.2.1<br />

รูปที่ 3.25 โปรแกรม notepad++ เวอร์ชัน 6.8.3<br />

การออกแบบฐานข้อมูล<br />

ในส่วนนี้จะเป็นการออกแบบตารางฐานข้อมูลเพื่อใช้ในการเก็บข้อมูลที่ถูกส่งมาจากอุปกรณ์<br />

ฮาร์ดแวร์ภาคส่ง ข้อมูลสิทธิการเข้าถึงการใช้หน้าเว็บเพจ เป็นต้น<br />

member<br />

busstop<br />

tablebus1<br />

tablebus2<br />

รูปที่ 3.26 แสดงฐานข้อมูล busstop


46<br />

UserID<br />

ID<br />

Username<br />

Sta<br />

member<br />

Password<br />

tablebus1<br />

wNum<br />

Name<br />

total<br />

Status<br />

uTime<br />

ID2<br />

Sta2<br />

tablebus2<br />

wNum2<br />

total2<br />

uTime2<br />

รูปที่ 3.27 แสดงตารางฐานข้อมูลในฐานข้อมูล busstop<br />

ตารางฐานข้อมูล member<br />

เป็นตารางฐานข้อมูลที่ใช้ส าหรับเก็บข้อมูลผู้ที่มีสิทธิในการเข้าถึงเว็บเพจ และการสั่งงานโดยมี<br />

รายละเอียดตารางฐานข้อมูลนี้<br />

ตารางที่ 3.1 แสดงรายละเอียดตารางฐานข้อมูล member<br />

Name Type Comment<br />

UserID int (3) รหัส id ผู้ใช้งาน<br />

Username varchar (20) ชื่อบัญชีผู้ใช้งาน<br />

Password varchar (20) รหัสผ่าน<br />

Name varchar (20) ชื่อผู้ใช้งาน<br />

Status Enum ('ADMIN', 'USER') สถานะผู้ใช้งาน


47<br />

ตารางฐานข้อมูล tablebus<br />

เป็นตารางฐานข้อมูลที่ใช้ส าหรับเก็บข้อมูลจ านวนผู้โดยสารรอรถ จ านวนรวมผู้โดยสารรอรถ วัน/<br />

เวลาอัพเดท ในสถานีที่ 1 โดยมีรายละเอียดตารางฐานข้อมูลดังนี้<br />

ตารางที่ 3.2 แสดงรายละเอียดตารางฐานข้อมูล tablebus1<br />

Name Type Comment<br />

ID int (3) ล าดับข้อมูล<br />

Sta varchar (10) ชื่อสถานีที่ 1<br />

wNum varchar (10) จ านวนผู้โดยสารรอรถ<br />

total varchar (10) จ านวนรวมผู้โดยสารรอรถ<br />

uTime Timestem วัน/เวลาอัพเดท<br />

ตารางฐานข้อมูล tablebus2<br />

เป็นตารางฐานข้อมูลที่ใช้ส าหรับเก็บข้อมูลจ านวนผู้โดยสารรอรถ จ านวนรวมผู้โดยสารรอรถ วัน/<br />

เวลาอัพเดท ในสถานีที่ 2 โดยมีรายละเอียดตารางฐานข้อมูลดังนี้<br />

ตารางที่ 3.3 แสดงรายละเอียดตารางฐานข้อมูล tablebus2<br />

Name Type Comment<br />

ID2 int (3) ล าดับข้อมูล<br />

Sta2 varchar (10) ชื่อสถานีที่ 2<br />

wNum2 varchar (10) จ านวนผู้โดยสารรอรถ<br />

Total2 varchar (10) จ านวนรวมผู้โดยสารรอรถ<br />

uTime2 timestem วัน/เวลาอัพเดท


48<br />

ออกแบบหน้าเว็บไซต์<br />

ในส่วนนี้จะเป็นการออกแบบหน้าจอแสดงผลผ่านทางเว็บไซต์ โดยสามารถก าหนดสิทธิในการ<br />

เข้าถึงหน้าเว็บเพจ และรวมถึงการแสดงข้อมูลจ านวนผู้โดยสารที่รอรถ ช่วงเวลาในการอัพเดทข้อมูล ชื่อ<br />

สถานี ตลอดจนการล้างค่าในกรณีที่รถโดยสารออกไปรับผู้โดยสารแล้ว การบันทึกข้อมูลลง Microsoft<br />

Excel<br />

เริ่ม<br />

ล็อคอิน<br />

ตรวจสอบสถานะ<br />

User<br />

Admin<br />

ล้างข้อมูล<br />

ล้างข้อมูล<br />

บันทึกเป็นไฟล์ Excel<br />

แสดงข้อมูลทั้งหมด<br />

จบ<br />

รูปที่ 3.28 ออกแบบการท างานของเว็บไซต์<br />

จากแผนภาพ Flow chart จะเห็นว่าเมื่อมีการเปิดเข้าใช้งานหน้าเว็บไซต์ จะมีส่วนของการล็อค<br />

อินเข้าใช้งานหลังจากนั้นระบบจะท าการตรวจสอบสถานะการเข้าถึงข้อมูลหน้าเว็บเพจหากเป็น User จะ<br />

สามารถดูข้อมูลที่ส่งมาจากอุปกรณ์ฮาร์ดแวร์ภาคส่ง และล้างค่าในกรณีที่รถโดยสารออกไปรับผู้โดยสาร<br />

แล้วเท่านั้นส่วน Admin จะสามารถท าได้เหมือนกับ User แต่จะมีส่วนที่เพิ่มเข้ามาคือการบันทึกข้อมูลลง<br />

ในแบบของไฟล์ Microsoft Excel และแสดงข้อมูลทั้งหมดที่มีอยู่ได้


49<br />

การออกแบบหน้าล็อคอิน<br />

รูปที่ 3.29 แสดงการออกแบบของหน้าล็อคอิน<br />

จากรูปที่ 3.29 เป็นการออกแบบหน้าล็อคอินเพื่อเป็นการก าหนดสิทธิในการเข้าถึงหน้าเว็บเพจ<br />

โดยสิทธิในการเข้าถึงจะมีอยู่ 2 สถานะ คือ admin และ User เท่านั้น<br />

การออกแบบหน้าเว็บแสดงผล<br />

1<br />

2 3 4 5<br />

6<br />

7<br />

8 9 10<br />

รูปที่ 3.30 แสดงการออกแบบหน้าจอแสดงผลหลัก


50<br />

จากรูปที่ 3.30 เป็นการออกแบบหน้าจอแสดงผลบนเว็บไซต์ โดยสามารถแสดงถึงชื่อผู้ล็อคอินเข้า<br />

ใช้งานในหมายเลข 1 ปุ่มกดเพื่อแก้ไขข้อมูลของผู้ดูแลระบบในหมายเลข 2 ปุ่มล็อคเอาท์เอาจากระบบหลัง<br />

เลิกใช้งานในหมายเลข 3 ปุ่มบันทึกข้อมูลเป็นไฟล์ Excel ในหมายเลข 4 แสดงวันเวลาปัจจุบันในหมายเลข<br />

5 แสดงตารางข้อมูลผู้โดยสารที่รถในแต่ละสถานี และเวลาที่มีอัพเดทข้อมูลเข้าระบบในหมายเลข 6 แสดง<br />

ตารางข้อมูลผู้โดยสารที่รถรวม ทั้งสองสถานีในหมายเลข 7 มี ปุ่มแสดงข้อมูลทั้งหมดใช้ส าหรับแสดงข้อมูล<br />

ย้อยหลังในกรณีที่ผู้ดูแลระบบต้องการดูในหมายเลข 8 ปุ่มหมายเลข 9 เป็นการล้างข้อมูลในสถานีที่ 1 และ<br />

หมายเลข 12 เป็นการล้างข้อมูลในสถานีที่ 2<br />

รูปที่ 3.31 แสดงการออกแบบหน้าจอแสดงผลทั้งหมด<br />

จากรูปที่ 3.31 เป็นการออกแบบหน้าจอแสดงผลทั้งหมดซึ่งจะมีลักษณะคล้ายกับหน้าจอแสดงผล<br />

หลัก แต่จะใช้ตารางในการแสดงข้อมูลในสถานีที่ 1 และสถานีที่ 2 ซึ่งในแต่ละจะแสดงถึงล าดับของข้อมูล<br />

ชื่อสถานี จ านวนผู้โดยสารที่รอรถ จ านวนผู้โดยสารที่รอรถรวม และวันเวลาที่มีการอัพเดทข้อมูล เพื่อให้<br />

ผู้ดูแลระบบสามารถเปิดดูข้อมูลย้อนหลังได้


51<br />

การออกแบบการบันทึกข้อมูลลง Microsoft Excel<br />

รูปที่ 3.32 แสดงการออกแบบหน้าจอบันทึกข้อมูลจากฐานข้อมูลลง Microsoft Excel<br />

จากรูปที่ 3.32 เป็นบันทึกข้อมูลจากฐานข้อมูลลง Microsoft Excel โดยประกอบด้วย วันเวลาที่<br />

บันทึกข้อมูล ข้อมูลในสถานีที่ 1 และสถานีที่ 2 ซึ่งในแต่ละจะแสดงถึงล าดับของข้อมูล ชื่อสถานี จ านวน<br />

ผู้โดยสารที่รอรถ จ านวนผู้โดยสารที่รอรถรวม และวันเวลาที่มีการอัพเดทข้อมูล เพื่อให้ผู้ดูแลระบบสามารถ<br />

น าข้อมูลดังกล่าวไปวิเคราะห์ผลทางสถิติหรืออื่นๆ และน าไปพัฒนาระบบจัดการรถรับส่งได้<br />

3.5 ขั้นตอนการสร้าง<br />

3.5.1 ขั้นตอนการสร้างฮาร์ดแวร์ และซอฟต์แวร์ ภาคส่ง<br />

1. น าวงจรที่ได้ออกแบบไว้ในข้างต้นมาต่อเข้ากับบอร์ดไมโครคอนโทรลเลอร์<br />

2. ท ากล่องใส่อุปกรณ์ฮาร์ดแวร์ตามที่ได้ออกแบบไว้<br />

3. ท าการตรวจตรวจสอบวงจรให้ถูกต้องก่อนที่จะน าลงกล่อง<br />

4. เขียนโปรแกรมควบคุมอุปกรณ์ตามโครงสร้าง และเงื่อนไขที่ได้ออกแบบไว้<br />

5. ท าการอัพโหลดโปรแกรมลงอุปกรณ์<br />

6. ตรวจตรวจสอบดูการท างานของโปรแกรมหากผิดพลาดให้ปรับปรุงแก้ไข


52<br />

รูปที่ 3.33 แสดงการน าวงจรที่ได้ออกแบบไว้มาต่อเข้ากับบอร์ดไมโครคอนโทรลเลอร์<br />

รูปที่ 3.34 แสดงการน าวงจรที่ได้ต่อแล้วลงกล่อง<br />

รูปที่ 3.35 แสดงการอัพโหลดการโปรแกรมลงอุปกรณ์


53<br />

1<br />

5<br />

6<br />

7<br />

2<br />

3 4<br />

รูปที่ 3.36 กล่องอุปกรณ์ที่ส าเร็จรูปแล้ว<br />

จากรูปที่ 3.36 แสดงหน้าตาของอุปกรณ์ภาคส่ง โดยประกอบไปด้วย หมายเลข 1 เป็นหน้าจอ<br />

แสดงจ านวนผู้โดยสารที่รอรถในขณะที่เมื่อการรับข้อมูลจากปุ่มกด หมายเลข 2 เป็นปุ่มเพิ่มจ านวน<br />

ผู้โดยสารที่รอรถ หมายเลข 3 เป็นปุ่มลดจ านวนผู้โดยสารที่รอรถในกรณีที่มีการกดเกินจ านวน หมายเลข 4<br />

เป็นปุ่มกดส่งข้อมูลใช้กดส่งข้อมูลไปยังเซิร์ฟเวอร์หลังจากที่ป้อนข้อมูลผู้โดยสารที่รอรถตามจ านวนแล้ว<br />

หมายเลข 5 เป็นช่องจ่ายไฟเลี้ยงอุปกรณ์ หมายเลข 6 เป็นช่องเสียบสาย USB ใช้ส าหรับอัพโหลดโปรแกรม<br />

ลงอุปกรณ์ หมายเลข 7 เป็นปุ่มรีเซตเพื่อเริ่มการท างานของอุปกรณ์ใหม่ในกรณีที่อุปกรณ์ท างานผิดปกติ<br />

3.5.2 ขั้นตอนการสร้างซอฟต์แวร์ภาครับ<br />

1.สร้างฐานข้อมูลตามไว้ที่ได้ออกแบบไว้<br />

2.เขียนโปรแกรมส าหรับให้ฮาร์ดแวร์สามารถติดต่อกับเซิร์ฟเวอร์ได้<br />

3.เขียนโปรแกรมส าหรับการแสดงผลผ่านทางเว็บไซต์<br />

3.6 วิธีการวัดผล<br />

3.6.1 กระบวนการที่ใช้ในการทดลอง<br />

1. แก้ไขโปรแกรมในส่วนของการเชื่อมต่อของสัญญาณ WiFi ที่ต้องการ<br />

2. แก้ไขโปรแกรมในส่วนของไอพีแอดเดรส<br />

3. ท าการอัพโหลดโปรแกรมลงอุปกรณ์ฮาร์ดแวร์<br />

4. เมื่ออุปกรณ์ฮาร์ดแวร์เริ่มแล้วท าการเปิดโปรแกรม Xampp ขึ้นมาเพื่อเปิดใช้งานเซิร์ฟเวอร์<br />

และฐานข้อมูล


54<br />

5. เปิดเว็บไซต์ที่ได้ออกแบบขึ้นมาแล้วท าการล็อคอินเข้าสู่ระบบ<br />

ปุ่มส่ง<br />

6. เมื่อเข้าสู่หน้าเว็บไซต์ให้ท าการกดปุ่มเพิ่มจ านวนผู้โดยสารที่รอรถ ที่ตัวอุปกรณ์ฮาร์ดแวร์แล้วกด<br />

7. กดปุ่มรับสถานีที่ 1 บนเว็บไซต์ในกรณีที่ต้องการออกไปรับผู้โดยสารในสถานีนั้น<br />

8. กดปุ่มแสดงข้อมูลทั้งหมดในกรณีที่ต้องการดูข้อมูลย้อนหลังทั้งหมด<br />

9. กดปุ่มบันทึกเป็นไฟล์ Excel ในกรณีที่ต้องการข้อมูลไปวิเคราะห์ผล และเก็บข้อมูลเก็บข้อมูลไว้<br />

10. ท าการล็อคเอาท์ออกจากระบบหลังเลิกใช้งาน<br />

3.6.2 อุปกรณ์ที่ใช้ประกอบการทดลอง<br />

1. อุปกรณ์ฮาร์ดแวร์ที่ออกแบบไว้<br />

2. คอมพิวเตอร์หรือโน๊ตบุ๊คเครื่องที่เราได้ท าการจ าลองเซิร์ฟเวอร์ไว้<br />

3. แหล่งปล่อยสัญญาณ WiFi<br />

3.6.3 ขอบเขตในการทดลอง<br />

1. พื้นที่ในการทดลองอยู่ในบริเวณที่สัญญาณ WiFi มีก าลังส่งถึง<br />

2. ทดลองส่งข้อมูลไปยังเซิร์ฟเวอร์ที่จ าลองขึ้นบนคอมพิวเตอร์<br />

3. แสดงผลบนเว็บไซต์ของเครื่องที่จ าลองขึ้น


55<br />

บทที่ 4<br />

ผลการด าเนินงาน และการวิเคราะห์ผลการทดลอง<br />

จากการทดลองในบทที่ 3 สามารถวิเคราะห์ผลการด าเนินงาน ผลการทดลอง และวิธีวัดผลของ<br />

ระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยา ผ่านเครือข่ายไร้สายด้วย ESP8266 WiFi Module<br />

โดยแบ่งออกเป็น 2 ส่วนหลัก คือ ผลการทดลองของฮาร์ดแวร์ ซอฟต์แวร์ภาคส่ง และผลการทดลองของ<br />

ซอฟต์แวร์ภาครับ<br />

4.1 ผลการทดลองและวัดผล<br />

4.1.1 ผลการทดลองของอุปกรณ์ภาคส่ง<br />

ในส่วนนี้จะเป็นการทดลองเกี่ยวกับการเชื่อมต่อกับสัญญาณ WiFi การติดต่อสื่อสารกับโมดูล WiFi<br />

การรับข้อมูลจากปุ่มกดมาแสดงผล และการควบคุมการสั่งงาน และการส่งข้อมูลขึ้นเซิร์ฟเวอร์<br />

การทดลองการสั่งงาน การเชื่อมต่อกับสัญญาณ WiFi และการส่งข้อมูลขึ้นเซิร์ฟเวอร์<br />

การทดลองที่ 1 ใช้ AT Command ติดต่อกับ ESP8266 Module WiFi ผ่าน Serial monitor<br />

ผลการทดลองที่ 1<br />

จากการทดลองที่ 1 ใช้ AT Command ติดต่อกับ ESP8266 Module WiFi ผ่าน Serial<br />

monitor นั้นไม่เหมาะสมกับงาน เนื่องจาก เกิดความผิดพลาดจากการพิมพ์ค าสั่ง และเกิดการความล่าช้า<br />

ในการสั่งงาน<br />

รูปที่ 4.1 แสดงความผิดพลาดที่เกิดจากการพิมพ์ค าสั่ง และเกิดการความล่าช้าในการสั่งงาน


56<br />

รูปที่ 4.2 แสดงการสั่งงานให้ ESP8266 Module WiFi ส่งข้อมูลขึ้นไปยังเซิร์ฟเวอร์<br />

ด้วยการพิมพ์ค าสั่ง<br />

การทดลองที่ 2 ใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 สั่งงานแทนการสั่งงานด้วยค าสั่ง<br />

ผ่านซีเรียลมอนิเตอร์<br />

ผลการทดลองที่ 2<br />

จากการทดลองที่ 2 ใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 สั่งงานแทนการสั่งงานด้วย<br />

ค าสั่งผ่านซีเรียลมอนิเตอร์ สามารถส่งข้อมูลไปยังเซิร์ฟเวอร์ได้ผลดี และมีความเหมาะสมกับงาน เนื่องจาก<br />

สามารถแก้ปัญหาที่เกิดขึ้นในการทดลองที่ 1 ได้ในระดับหนึ่งแต่ยังพบปัญหาในการส่งข้อมูลที่ส่งไป ยังเป็น<br />

ชุดเดิมที่ซ้ า จึงไม่สามารถควบคุมข้อมูลที่ส่งไปได้<br />

รูปที่ 4.3 แสดงการใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 สั่งงานแทนการสั่งงานด้วยค าสั่ง<br />

ผ่านซีเรียลมอนิเตอร์


57<br />

การทดลองรับข้อมูลจากปุ่มกดและการแสดงผล<br />

การทดลองที่ 3 ใช้บอร์ด Learning shield multifunction เป็นตัวรับข้อมูล และแสดงผล<br />

ผลการทดลองที่ 3<br />

จากการทดลองที่ 3 ใช้บอร์ด Learning shield multifunction เป็นตัวรับข้อมูล และแสดงผล<br />

อุปกรณ์สามารถท างานได้ดีแต่ไม่เหมาะสมกับงาน เนื่องจากเป็นบอร์ดส าเร็จรูปที่มีขาใช้งานที่ถูกก าหนด<br />

มาแล้ว ปุ่มกดมีขนาดเล็ก และพื้นในการแสดงผลมีอยู่จ ากัด ท าให้ยากต่อการน าพัฒนาต่อยอด<br />

รูปที่ 4.4 แสดงการใช้บอร์ด Learning shield multifunction เป็นตัวรับข้อมูล และแสดงผล<br />

การทดลองที่ 4 ใช้ปุ่มกด Button เป็นตัวรับข้อมูลพร้อมเสียงเมื่อกดปุ่ม และแสดงผลด้วยจอ LCD<br />

ขนาด 16x2 ตัวอักษร<br />

ผลการทดลองที่ 4<br />

จากการทดลองที่ 4 ใช้ปุ่มกด Button เป็นตัวรับข้อมูลพร้อมเสียงเมื่อกดปุ่ม และแสดงผลด้วยจอ<br />

LCD ขนาด 16x2 ตัวอักษร ซึ่งสามารถแสดงผลได้ 2 บรรทัด บรรทัดละ 16 ตัวอักษร พบว่าอุปกรณ์<br />

สามารถท างานได้ดี และมีความเหมาะสมกับงาน เนื่องจากปุ่มกดมีหลายขนาดเลือกขนาด สามารถเลือก<br />

ขนาดให้เหมาะสมกับการใช้งานได้ จอแสดงผลสามารถแสดงข้อมูลได้เพียงพอ และมีความสะดวกในการ<br />

เปลี่ยนอุปกรณ์ในกรณีที่อุปกรณ์เสีย


58<br />

รูปที่ 4.5 แสดงการใช้ปุ่มกด Button เป็นตัวรับข้อมูลพร้อมเสียงเวลากดปุ่ม และแสดงผลด้วยจอ LCD<br />

ขนาด 16x2 ตัวอักษร<br />

การทดลองรวมระบบการสั่งงาน การเชื่อมต่อกับสัญญาณ WiFi การส่งข้อมูลขึ้นเซิร์ฟเวอร์ การรับ<br />

ข้อมูล และแสดงผล<br />

การทดลองที่ 5 ใช้ปุ่มกด Button รับข้อมูลพร้อมเสียงเวลากดปุ่ม และสั่งงานให้บอร์ด<br />

ไมโครคอนโทรลเลอร์ Arduino UNO R3 สั่งงานให้ ESP8266 Module WiFi ส่งข้อมูลยังภาครับและ<br />

มีการแสดงข้อมูลออกทางจอ LCD<br />

ผลการทดลองที่ 5<br />

ในการทดลองที่ 5 ได้น าการทดลองการสั่งงาน การเชื่อมต่อกับสัญญาณ WiFi และการส่งข้อมูลขึ้น<br />

เซิร์ฟเวอร์ในการทดลองที่ 2 เป็นการใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 สั่งงานแทนการ<br />

สั่งงานด้วยค าสั่งผ่านซีเรียลมอนิเตอร์ และน าการทดลองรับข้อมูลจากปุ่มกด และการแสดงผลใน<br />

การทดลองที่ 4 เป็นการใช้ปุ่มกด Button เป็นตัวรับข้อมูลพร้อมเสียงเมื่อกดปุ่ม และแสดงผลด้วยจอ LCD<br />

ขนาด 16x2 ตัวอักษร มาประยุกต์รวมเข้าด้วยกันเป็นระบบเดียว<br />

พบว่าอุปกรณ์สามารถท างานร่วมกันได้สอดคล้อง และเหมาะสม เนื่องจากระบบสามารถรับข้อมูล<br />

จากปุ่มกด Button พร้อมเสียงเมื่อกดปุ่ม และสั่งงานให้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 ส่ง<br />

ข้อมูลผ่าน ESP8266 Module WiFi ไปยังภาครับและแสดงข้อมูลออกทางจอ LCD ระบบสามารถท างาน<br />

ได้ตามเงื่อนไขที่ก าหนดอย่างไรก็ตามระบบยังมีการหน่วงเวลาในการรอส่งข้อมูลครั้งถัดไป เนื่องจากระบบ<br />

ต้องรอตรวจสอบการตอบกลับของโมดูล


59<br />

รูปที่ 4.6 การหน่วงเวลาในการรอส่งข้อมูลครั้งถัดไป<br />

4.1.2 ผลการทดลองของซอฟต์แวร์ภาครับ<br />

ในส่วนนี้จะเป็นการทดลองเกี่ยวกับการสร้างฐานข้อมูล การน าข้อมูลที่มีอยู่ในฐานข้อมูล<br />

มาแสดงข้อมูลบนหน้าเว็บไซต์ การติดต่อกับฐานข้อมูล การก าหนดสิทธิในการใช้งาน การบันทึกข้อมูลจาก<br />

ฐานข้อมูลลงไฟล์ Excel<br />

การทดลองสร้างฐานข้อมูล<br />

การทดลองที่ 6 สร้างฐานข้อมูลส าหรับเก็บข้อมูลจ านวนผู้โดยสารที่รอรถในแต่ละสถานีและข้อมูล<br />

สมาชิกที่มีสิทธิเข้าใช้งาน<br />

ผลการทดลองที่ 6<br />

จากการทดลองที่ 6 สร้างฐานข้อมูลส าหรับเก็บข้อมูลจ านวนผู้โดยสารที่รอรถในแต่ละสถานี และ<br />

ข้อมูลสมาชิกที่มีสิทธิเข้าใช้งาน สามารถน าข้อมูลเข้าหรือน าข้อมูลจากฐานข้อมูลได้อย่างเหมาะสม<br />

เนื่องจากระบบมีความจ าเป็นที่จะต้องมีฐานข้อมูลไว้ส าหรับเก็บข้อมูลที่ถูกส่งมาจากอุปกรณ์ภาคส่ง และ<br />

ข้อมูลสมาชิกที่มีสิทธิเข้าใช้งานที่มีการเพิ่มเข้าระบบจากหน้าเว็บไซต์


60<br />

ตารางฐานข้อมูล member<br />

ตารางฐานข้อมูล tablebus1<br />

ตารางฐานข้อมูล tablebus2<br />

รูปที่ 4.7 แสดงตารางฐานข้อมูลในฐานข้อมูล busstop<br />

การทดลองแสดงผลทางหน้าเว็บไซต์<br />

การทดลองที่ 7 น าข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงบนเว็บไซต์<br />

ผลการทดลองที่ 7<br />

จากการทดลองที่ 7 น าข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงบนเว็บไซต์ ระบบสามารถน าข้อมูลที่มีอยู่<br />

ในฐานข้อมูลมาแสดงผลได้ แต่ยังไม่สามารถแสดงข้อมูลได้อย่างต่อเนื่อง เนื่องจากระบบไม่สามารถอัพเดท<br />

ข้อมูลได้เองต้องท าการอัพเดทโดยผู้ใช้งานด้วยการกดรีเฟรชหน้าเว็บไซต์ท าให้ขาดความต่อเนื่องในการ<br />

แสดงผล<br />

รูปที่ 4.8 แสดงระบบไม่สามารถอัพเดทข้อมูลได้เองต้องท าการอัพเดทโดยผู้ใช้งานด้วยการกดรีเฟรชหน้า<br />

เว็บไซต์


61<br />

การทดลองที่ 8 น าข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงบนเว็บไซต์โดยให้มีการอัพเดทข้อมูลโดยอัตโนมัติ<br />

ผลการทดลองที่ 8<br />

จากการทดลองที่ 8 น าข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงบนเว็บไซต์โดยให้มีการอัพเดทข้อมูลโดย<br />

อัตโนมัติ ระบบสามารถอัพเดทข้อมูลโดยอัตโนมัติได้ และมีความเหมาะสมกับงาน เนื่องจากข้อมูลที่ใช้<br />

แสดงผลนั้นจ าเป็นต้องเป็นมีการอัพเดทข้อมูลอยู่ตลอด และจะมีผลต่อการบริหารจัดการรถโดยสาร<br />

รูปที่ 4.9 แสดงการการอัพเดทข้อมูลโดยอัตโนมัติ<br />

การทดลองที่ 9 น าข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงบนเว็บไซต์แบบทั้งหมด<br />

ผลการทดลองที่ 9<br />

จากการทดลองที่ 9 น าข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงบนเว็บไซต์แบบทั้งหมด ระบบสามารถน า<br />

ข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงผลได้ และมีความเหมาะสมกับงาน เนื่องจากในกรณีที่ผู้ดูแลระบบ<br />

ต้องการดูข้อมูลก่อนหน้านั้นหรือข้อมูลเก่าก็สามารถเรียกดูได้<br />

รูปที่ 4.10 การน าข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงบนเว็บไซต์แบบทั้งหมด


62<br />

การทดลองล้างข้อมูลบนหน้าเว็บไซต์แสดงผล<br />

การทดลองที่ 10 การล้างข้อมูลบนหน้าเว็บไซต์ในแต่ละสถานีในกรณีที่รถโดยสารออกไปรับแล้ว<br />

ผลการทดลองที่ 10<br />

จากการทดลองที่ 10 เมื่อกดปุ่มรับสถานีที่ 1 หรือ รับสถานีที่ 2 โปรแกรมจะล้างค่าตัวแปรจ านวน<br />

ผู้โดยสารที่รอรถบนหน้าจอ เพื่อให้เริ่มนับจ านวนใหม่ทั้งนี้การล้างค่าบนเว็บไซต์จะไม่กระทบกับข้อมูล<br />

จ านวนผู้โดยสารที่บันทึกไว้ในฐานข้อมูล ซึ่งระบบนี้มีความเหมาะสมกับงาน เนื่องจากกรณีที่มีการแสดง<br />

ข้อมูลผู้โดยสารอยู่แล้วหากออกไปรับผู้โดยสารสถานีนั้นแล้ว โดยไม่มีการล้างข้อมูลชุดเดิมก่อน ท าให้ไม่<br />

สามารถแยกข้อมูลผู้โดยสารชุดใหม่กับชุดเก่าได้<br />

รูปที่ 4.11 แสดงข้อมูลก่อนล้างและหลังล้างข้อมูล<br />

การทดลองการจ ากัดสิทธิในการเข้าถึงและการบันทึกข้อมูล<br />

การทดลองที่ 11 การจ ากัดสิทธิในการเข้าถึงหน้าเว็บไซต์ และการบันทึกข้อมูลที่มีอยู่ในฐานข้อมูลเป็น<br />

ไฟล์ Excel<br />

ผลการทดลองที่ 11<br />

จากการทดลองที่ 11 จ ากัดสิทธิในการเข้าถึงหน้าเว็บไซต์ และบันทึกข้อมูลที่มีอยู่ในฐานข้อมูลเป็น<br />

ไฟล์ Excel ระบบสามารถได้ และมีความเหมาะสมกับงาน เนื่องจากเพื่อเป็นการป้องกันข้อมูลจากผู้ไม่<br />

ประสงค์ดี และก าหนดสิทธิในการเข้าข้อมูลส าหรับผู้ที่มีส่วนเกี่ยว และไม่เกี่ยวข้องได้ อีกทั้งยังน าข้อมูลมา<br />

บันทึกเป็นไฟล์ Excel ซึ่งจะสามารถน าไปวิเคราะห์ผลทางสถิติ และอื่นๆได้


63<br />

รูปที่ 4.12 แสดงการจ ากัดสิทธิในการเข้าถึงหน้าเว็บไซต์<br />

รูปที่ 4.13 แสดงการบันทึกข้อมูลที่มีอยู่ในฐานข้อมูลเป็นไฟล์ Excel


64<br />

4.2 การวิเคราะห์ผลการทดลอง<br />

4.2.1 การวิเคราะห์ผลการทดลองของอุปกรณ์ภาคส่ง<br />

จากการทดลองการสั่งงาน การเชื่อมต่อกับสัญญาณ WiFi และการส่งข้อมูลขึ้นเซิร์ฟเวอร์ ในการ<br />

การทดลองที่ 1 จะเห็นมีทั้งผลส าเร็จและเกิดข้อบกพร่องในบางส่วนไม่ว่าจะเป็นเพราะอุปกรณ์หรือผู้<br />

ทดลองแต่ยังสามารถท างานได้ตามที่ก าหนด และได้น าปัญหาดังกล่าวมาแก้ไขในการทดลองที่ 2 โดยการ<br />

เปลี่ยนมาใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 แทนการสั่งงานด้วยค าสั่งผ่านซีเรียล<br />

มอนิเตอร์<br />

จากนั้นท าการทดลองรับข้อมูลจากปุ่มกด และการแสดงผลในการทดลองที่ 3 เพื่อหาวิธีการแก้ไข<br />

ปัญหาในเรื่องการส่งข้อมูลที่ส่งไปเป็นชุดเดิมที่ส่งไปซ้ าไม่สามารถควบคุมข้อมูลที่ส่งไปได้ โดยใช้บอร์ด<br />

Learning shield multifunction เป็นตัวรับข้อมูล และแสดงผลซึ่งอุปกรณ์สามารถท างานได้ดีแต่ไม่<br />

เหมาะสมกับงาน จึงท าการทดลองที่ 4 ใช้ปุ่มกด Button เป็นตัวรับข้อมูลพร้อมเสียงเมื่อกดปุ่ม และ<br />

แสดงผลด้วยจอ LCD เป็นการแก้ไขปัญหาข้อจ ากัด ในการทดลองที่ 3<br />

ได้ผลส าเร็จในการทดลองที่ 5 โดยน าการทดลองการสั่งงาน การเชื่อมต่อกับสัญญาณ WiFi และ<br />

การส่งข้อมูลขึ้นเซิร์ฟเวอร์ในการทดลองที่ 2 และน าการทดลองรับข้อมูลจากปุ่มกดและการแสดงผลในการ<br />

ทดลองที่ 4 มาประยุกต์รวมเข้าด้วยกันเป็นระบบเดียว และอุปกรณ์สามารถท างานร่วมกันได้สอดคล้องและ<br />

เหมาะสม อย่างไรก็ตามระบบยังมีการหน่วงเวลาในการรอส่งข้อมูลครั้งถัดไป เนื่องจากระบบต้องรอ<br />

ตรวจสอบการตอบกลับของโมดูลอยู่<br />

4.2.2 การวิเคราะห์ผลการทดลองของซอฟต์แวร์ภาครับ<br />

จากการทดลองสร้างฐานข้อมูล ในการทดลองที่ 6 เป็นการสร้างฐานข้อมูลส าหรับเก็บข้อมูล<br />

จ านวนผู้โดยสารที่รอรถในแต่ละสถานี และข้อมูลสมาชิกที่มีสิทธิเข้าใช้งาน เนื่องจากระบบมีความจ าเป็นที่<br />

จะต้องมีฐานข้อมูลไว้ส าหรับเก็บข้อมูลที่ถูกส่งมาจากอุปกรณ์ภาคส่ง และข้อมูลสมาชิกที่มีสิทธิเข้าใช้งานที่<br />

เพิ่มเข้าระบบจากหน้าเว็บไซต์<br />

จากการทดลองแสดงผลบนเว็บไซต์ ในการทดลองที่ 7 เห็นว่าระบบสามารถท างานได้ตามเงื่อนไข<br />

แต่ยังไม่เหมาะสมกับงานเนื่องจากในการแสดงผลยังไม่มีความต่อเนื่อง จึงท าการทดลองที่ 8 เพื่อหาแนว<br />

ทางแก้ไขปัญหา โดยท าให้ระบบมีการอัพเดทข้อมูลโดยอัตโนมัติ เนื่องจากข้อมูลที่ใช้แสดงผลนั้นต้องมีการ<br />

อัพเดทข้อมูลอยู่ตลอด และเพื่อให้สามารถบริหารจัดการรถโดยสารได้อย่างมีประสิทธิภาพ เมื่อสามารถน า<br />

ข้อมูลมาแสดงผลได้ตามต้องการแล้ว และท าการทดลองที่ 9 น าข้อมูลที่มีอยู่ในฐานข้อมูลมาแสดงบน<br />

เว็บไซต์แบบทั้งหมด เพื่อใช้แสดงข้อมูลในกรณีที่ผู้ดูแลระบบต้องการดูข้อมูลย้อนหลังหรือข้อมูลเก่าก็<br />

สามารถเรียกดูได้


จากการทดลองล้างข้อมูลบนหน้าเว็บไซต์แสดงผลในการทดลองที่ 10 เป็นการล้างข้อมูลในแต่ละ<br />

สถานีในกรณีที่รถโดยสารออกไปรับแล้ว หากไม่ได้ท าการล้างข้อมูลก่อนจะท าให้ไม่สามารถแยกข้อมูล<br />

ผู้โดยสารชุดใหม่กับชุดเก่าได้ และเพื่อให้เกิดความปลอดภัยกับข้อมูลจึงท าการทดลองการจ ากัดสิทธิในการ<br />

เข้าถึง และการบันทึกข้อมูลในการทดลองที่ 11 เพื่อเป็นการป้องกันข้อมูลจากผู้ไม่ประสงค์ดี และก าหนด<br />

สิทธิในการเข้าถึงข้อมูลส าหรับผู้ที่ไม่มีส่วนเกี่ยวข้อง อีกทั้งยังสามารถน าข้อมูลที่มีอยู่ในฐานข้อมูลมาบันทึก<br />

เป็นไฟล์ Excel ซึ่งจะสามารถน าไปวิเคราะห์ผลทางสถิติ และอื่นๆได้<br />

65


66<br />

บทที่ 5<br />

สรุปและข้อเสนอแนะ<br />

จากการศึกษา และออกแบบระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่าย<br />

ไร้สายด้วย ESP8266 WiFi Module ในส่วนนี้จะเป็นการกล่าวถึงบทสรุป รวมไปถึงปัญหาที่พบ และ<br />

อุปสรรคในการท าโครงงานนี้ รวมถึงข้อเสนอแนะในการน าเอาโครงงานนี้ไปประยุกต์พัฒนาต่อยอดเพื่อให้มี<br />

ประสิทธิภาพและเกิดประโยชน์สูงสุดแก่ผู้ที่สนใจศึกษา<br />

5.1 สรุปผล<br />

โครงงานระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่ายไร้สายด้วย ESP8266<br />

WiFi Module นี้เป็นการการศึกษา และออกแบบระบบเพื่อน ามาแก้ไขปัญหาเรื่องระบบจัดการรถรับ-ส่ง<br />

รถผู้โดยสารมหาวิทยาลัยพะเยา ดังที่ได้กล่าวไว้เบื้องต้นในบทที่ 1<br />

ทางผู้จัดท าได้ศึกษาหาข้อมูล ทฤษฎี และงานวิจัยที่เกี่ยวข้อง จึงได้น าเอาเทคโนโลยีการสื่อสารไร้<br />

สายมาใช้งานซึ่งมีความสอดคล้องกับงาน สภาพแวดล้อม และปัญหา โดยระบบจัดการรถรับ-ส่งรถ<br />

ผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่ายไร้สายด้วย ESP8266 WiFi Module ประกอบไปด้วย 2 ส่วน<br />

หลักคือ ส่วนของภาคส่ง ท าหน้าที่รับและแสดงจ านวนผู้โดยสารที่รอรถจากสถานีย่อยตามจุดให้บริการ<br />

จากนั้นท าการประมวลผลที่บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 เพื่อสั่งงานให้ ESP8266 WiFi<br />

Module ส่งข้อมูลไปยังเซิร์ฟเวอร์ผ่านเครือข่ายไร้สาย และส่วนของภาครับ ท าหน้าที่รับข้อมูลที่มาจาก<br />

ภาคส่งมายังเซิร์ฟเวอร์ที่ได้จ าลองไว้ในเครื่องคอมพิวเตอร์ และบันทึกข้อมูลลงฐานข้อมูล เมื่อมีการร้องขอ<br />

ข้อมูลจากหน้าเว็บไซต์เซิร์ฟเวอร์ก็จะท าหน้าที่ในการดึงข้อมูลจากฐานข้อมูลตามที่ได้ร้องขอ และแสดงผล<br />

ทางหน้าเว็บไซต์<br />

ในขั้นตอนการสร้าง และออกแบบระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยาผ่าน<br />

เครือข่ายไร้สายด้วย ESP8266 WiFi Module ได้พบกับปัญหา และอุปสรรคต่างๆ ตลอดการท างาน เช่น<br />

ขาดความรู้ทางด้านการใช้งานอุปกรณ์บางตัว ท าให้ต้องเริ่มท าการศึกษาใหม่ตั้งแต่แรก และเกิดความล่าช้า<br />

ในการท างาน ขาดความช านาญทางด้านการเขียนโปรแกรม Arduino การเขียนเว็บไซต์ จึงท าให้ผลลัพธ์<br />

ออกมาได้ไม่ดีเท่าที่ควร เป็นต้น<br />

จากผลการทดลองการท างานของระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยาผ่าน<br />

เครือข่ายไร้สายด้วย ESP8266 WiFi Module ระบบสามารถท างานได้ตามขอบเขต และเงื่อนไขที่ได้<br />

ออกแบบไว้ดังนี้


67<br />

1. สามารถรับข้อมูลจ านวนผู้โดยสารที่รอรถตามสถานีย่อยได้ด้วยปุ่มกด<br />

2. สามารถส่งข้อมูลขึ้นบนเซิร์ฟเวอร์เครื่องที่จ าลองขึ้นได้<br />

3. สามารถน าข้อมูลมาแสดงผลผ่านทางเว็บไซต์ได้<br />

4. สามารถจ ากัดสิทธิ์ในการเข้าถึงข้อมูลได้<br />

5. สามารถบันทึกข้อมูลการใช้รถส่งออกเป็นไฟล์ Excel ได้<br />

6. สามารถล้างข้อมูลจ านวนผู้โดยสารที่รอรถได้ ในกรณีที่รถออกไปรับผู้โดยสารสถานีนั้นๆ โดย<br />

สมมติฐานว่ารถโดยสารสามารถรับผู้รอรถได้ทั้งหมด โดยไม่มีผู้โดยสารตกค้างที่สถานี<br />

5.2 ข้อเสนอแนะ<br />

5.2.1 ปัญหา<br />

1. ระบบดังกล่าวยังเป็นการสื่อสารแบบทางเดียว คือ ผู้โดยสารมีส่งข้อมูลมายังสถานี แต่<br />

ไม่มีการสื่อสารจากทางสถานีตอบกลับมายังผู้โดยสารที่รอรถอยู่<br />

5.2.2 อุปสรรค<br />

1. ขาดความรู้ประสบการณ์ และความช านาญทางด้านการใช้อุปกรณ์บางตัว ท าให้ใช้<br />

เวลาในการศึกษา และออกแบบ และเลือกซื้ออุปกรณ์<br />

2. ขาดความช านาญทางด้านการเขียนโปรแกรม Arduino และเขียนเว็บไซต์<br />

5.2.3 การน าไปพัฒนา<br />

1. เพิ่มขนาดหน้าจอแสดงผล การแสดงผลกราฟิกขึ้น เพื่อเพิ่มพื้นที่การแสดงผล และ<br />

ความหลากหลายในการแสดงผล<br />

2. เพิ่มระบบแจ้งหมายเลขรถโดยสารที่ออกไปรับให้ผู้โดยสารที่รออยู่ตามสถานีย่อย<br />

เพื่อให้ทราบถึงหมายเลขรถที่ตนขึ้นได้<br />

3. เปลี่ยนจากการจ าลองเซิร์ฟเวอร์บนเครื่องคอมพิวเตอร์มาใช้เป็นเซิร์ฟเวอร์ออนไลน์<br />

เพื่อให้สามารถเว็บไซต์สามารถแสดผลแบบออนไลน์ได้<br />

4. พัฒนาระบบให้เป็นการสื่อสารแบบสองทาง คือ ผู้โดยสารสามารถส่งข้อมูลไปถึงสถานี<br />

และสถานีมีการตอบกลับ เช่น แจ้งหมายเลขรถที่จะมารับ เวลาโดยประมาณที่รถจะออกมารับ<br />

เป็นต้น


5. หากต้องการทราบว่าระบบมีประสิทธิภาพ และความเหมาะสมกับการน าไปใช้งานมาก<br />

น้อยเพียงใด อาจมีการท าแบบสอบถามการใช้งาน ทั้งส่วนของผู้ดูแลระบบ และผู้ใช้งานโดยสาร<br />

เพื่อความชัดเจนในการน าไปพัฒนาระบบให้มีคุณภาพมากยิ่งขึ้น<br />

68


บรรณานุกรม<br />

69


70<br />

บรรณานุกรม<br />

[1] พรทิพย์ คืนผล และภัทราภรณ์ หาพา. (2555). ระบบป้ายรถเมล์อัจฉริยะ. ปริญญานิพนธ์ วท.บ.,<br />

มหาวิทยาลัยราชภัฏบ้านสมเด็จเจ้าพระยา, กรุงเทพฯ.<br />

[2] ชัยศักดิ์ สกุลวัยเจริญสิน และพีรศักดิ์ สบเหมาะ. (2555). ระบบช่วยแนะน าที่จอดรถในอาคารจอดรถ.<br />

ปริญญานิพนธ์ วศ.บ., มหาวิทยาลัยเทคโนโลยีราชมงคลธัญบุรี, กรุงเทพฯ.<br />

[3] ธนชัย โตสวัสดิ์ และธนพล เจนสุทธิเวชกุล. (2554). ระบบจ าลองการแสดงสถานะช่องจอดภายใน<br />

ลานจอดรถผ่านเว็บไซต์ โดยเพิ่มผลการทดสอบหน้าจอแสดงผลและระยะการรับส่งข้อมูลแบบไร้สาย.<br />

ปริญญานิพนธ์ วท.บ., มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ,กรุงเทพฯ.<br />

[4] นันทนา วลีขจรเลิศ และกฤษวรรณ พิมพ์ดี. (2554). ป้ายรถเมล์อัจฉริยะ. ปริญญานิพนธ์ วศ.บ.,<br />

มหาวิทยาลัยขอนแก่น,ขอนแก่น.<br />

[5] กายรัฐ เจริญราษฏร์ และภิเศก ภัทรเวสารัช. (2557). ระบบแจ้งเตือนผู้บุกรุกผ่านเครื่องแม่ข่ายโดย<br />

ใช้เซ็นเซอร์ตรวจจับแบบไร้สาย. ปริญญานิพนธ์ วศ.บ., มหาวิทยาลัยเกษตรศาสตร์,กรุงเทพฯ.<br />

[6] เอกชัย มะกา. (2552). เรียนรู้เข้าใจใช้งานไมโครคอนโทรลเลอร์ตระกูล AVR ด้วย Arduino<br />

(พิมพ์ครั้งที่ 1). กรุงเทพฯ: อีทีที.<br />

[7] (ม.ป.ป.). Arduino UNO. สืบค้นเมื่อ 4 เมษายน 2558,<br />

จาก: http://arduino.cc/en/Main/arduinoBoardUno#.UyvRHaiSxfg<br />

[8] ภาณุพงศ์ ปัญญาดี.(ม.ป.ป.). AppServer. สืบค้นเมื่อ 4 เมษายน 2558,<br />

จาก: http://www.appservnetwork.com<br />

[9] ปริศนา มัชฌิมา. (2555). ต ารารายวิชาการพัฒนาฐานข้อมูลบนเว็บ (Web Database<br />

Development). มหาวิทยาลัยราชภัฏสวนดุสิต, กรุงเทพฯ.<br />

[10] (ม.ป.ป.). ESP8266 WiFi Module. สืบค้นเมื่อ 4 เมษายน 2558,<br />

จาก: http://www.arduinoall.com/article/สอน-วิธี-ใช้งาน-arduino-wi-fi-module-esp8266<br />

[11] (ม.ป.ป.). ความรู้เบื้องต้นเกี่ยวกับโปรแกรม Dreamweaver CS6. สืบค้นเมื่อ 4 เมษายน 2558,<br />

จาก: http://www.slideshare.ne t/Kunkrootum/dreamweaver-cs6-40448393


71<br />

[12] (ม.ป.ป.). MySQL. สืบค้นเมื่อ 4 เมษายน 2558,<br />

จาก: http://industrial.uru.ac.th/dbproject/pdf/chapter2_1398816076.pdf<br />

[13] (ม.ป.ป.). โปรแกรม Xampp. สืบค้นเมื่อ 4 เมษายน 2558,<br />

จาก: http://www.mindphp.com/คู่มือ/73-คืออะไร/2637-xampp-คืออะไร.html<br />

[14] (ม.ป.ป.). ความส าคัญของ FTP. สืบค้นเมื่อ 5 เมษายน 2558,<br />

จาก: http://www.mindphp.com/<br />

[15] (ม.ป.ป.). โปรโตคอล HTTPS. สืบค้นเมื่อ 12 ตุลาคม 2558,<br />

จาก: http://thaieasyelec.com, http://thaieasyelec.com/article-wiki/review-product-article<br />

[16] (ม.ป.ป.). ความรู้เบื้องต้นเกี่ยวกับภาษา PHP. สืบค้นเมื่อ 12 ตุลาคม 2558,<br />

จาก: https://sakorn-55.wikispaces.com, http://kuk14331.blogspot.com/2013/01/4.html<br />

[17] ศุภชัย สมพานิช. (2556). Basic HTML5 with CSS3 & jQuery (พิมพ์ครั้งที่ 1). นนทบุรี: ไอดีซีฯ.<br />

[18] ชาญชัย ศุภอรรถกร. (2556). PHP MySQL + AJAX jQuery ฉบับสมบูรณ์ (พิมพ์ครั้งที่ 2).<br />

กรุงเทพฯ: รีไวว่า.<br />

[19] จีรวุธ วารินทร์ (2556). PHP+MySQL + Dreamweaver CS6 (พิมพ์ครั้งที่ 1). กรุงเทพฯ: รีไวว่า.<br />

[20] สมศักดิ์ โชคชัยชุติกุล (2547). อินไซท์ PHP 5 (พิมพ์ครั้งที่ 1). กรุงเทพฯ: โปรวิชั่น.<br />

[21] สุดา เธียรมนตรี (2555). คู่มือเรียนเขียนโปรแกรมภาษา Java ฉบับสมบูรณ์ (พิมพ์ครั้งที่ 1).<br />

นนทบุรี: ไอดีซีฯ.<br />

[22] วรเศรษฐ สุวรรณิก (2556). เขียนโปรแกรม Java เบื้องต้น 2 nd Edition (พิมพ์ครั้งที่ 1). กรุงเทพ:<br />

ซีเอ็ดยูเคชั่น.<br />

[23] (ม.ป.ป.). การสร้างเว็บเพ็จ. สืบค้นเมื่อ 28 พฤศจิกายน 2558,<br />

จาก: http://patch-patcharin.blogspot.com/2010/08/3-html.html<br />

[24] ณัชติพงศ์ อูทอง. (ม.ป.ป.). การสร้างเว็บเพ็จ(ภาษา HTML). สืบค้นเมื่อ 28 พฤศจิกายน 2558,<br />

จาก: http://e- learninghtml.comoj.com/4-1.html


72<br />

ภาคผนวก ก<br />

ตัวอย่างแบบประเมิน


73<br />

แบบประเมินความพึงพอใจ ระบบจัดการรถรับ-ส่งรถผู้โดยสารมหาวิทยาลัยพะเยาผ่านเครือข่ายไร้สายด้วย<br />

ESP8266 WiFi Module คณะวิศวกรรมศาสตร์ มหาวิทยาลัยพะเยา<br />

ค าชี้แจง แบบสอบถาม (ส าหรับผู้ใช้ที่บริการรถโดยสาร)<br />

โปรดเติมเครื่องหมาย และกรอกข้อความให้สมบูรณ์<br />

ส่วนที่ 1 : ข้อมูลทั่วไปของผู้ตอบแบบสอบถาม<br />

1. เพศ ชาย หญิง<br />

2. สถานะ นักศึกษา อาจารย์ บุคลากร<br />

3. สังกัดคณะ/ส านัก /สถาบัน /หน่วยงาน ………………………………………………………………………………….…<br />

4. วุฒิการศึกษา ต่ ากว่าปริญญาตรี ปริญญาตรี สูงกว่าปริญญาตรี<br />

5. อายุ ต่ ากว่า 20 ปี 20-40 ปี 41 ปีขึ้นไป<br />

ส่วนที่ 2 : ความพึงพอใจต่อโครงการ<br />

รายละเอียด<br />

1. การใช้งาน<br />

1.1 การใช้งานง่ายไม่ซับซ้อน<br />

1.2 อุปกรณ์ท างานได้ดี<br />

2. การอ านวยความสะดวก<br />

2.1 ลดระยะเวลาในการรอรถโดยสาร<br />

2.2 การติดตั้งอุปกรณ์ในต าแหน่งที่เหมาสม<br />

2.3 ขนาดเหมาะสมกับการท างาน<br />

3. ประโยชน์ที่ได้รับ<br />

3.1 การน าไปประยุกต์ใช้ในชีวิตประจ าวัน<br />

3.2 ประโยชน์ที่ท่านได้รับจากระบบครั้งนี้<br />

3.3 ระบบนี้เอื้ออ านวยต่อการเดินทางในมหาวิทยาลัย<br />

3.4 ลดระยะเวลาในการรอรถโดยสาร<br />

4. ความพึงพอใจของท่านต่อภาพรวมของโครงการ<br />

4.1 ภาพรวมของระบบ<br />

มากที่สุด<br />

5<br />

ระดับความพึงพอใจ<br />

มาก ปานกลาง น้อย<br />

4 3 2<br />

น้อย<br />

ที่สุด<br />

1<br />

ส่วนที่ 3 : แสดงข้อคิดเห็นและข้อเสนอแนะ<br />

3.1 แสดงข้อคิดเห็น<br />

.................................................................................................................................................................................................<br />

.................................................................................................................................................................................................<br />

3.2 ข้อเสนอแนะ<br />

.................................................................................................................................................................................................<br />

.................................................................................................................................................................................................


74<br />

ภาคผนวก ข<br />

คู่มือการใช้งาน


75<br />

คู่มือการติดตั้งอุปกรณ์ใช้งาน<br />

1. คลิก Start >> Xampp Control Panel v.3.2.1<br />

รูปที่ ข.1 การเปิดโปรแกรม Xampp<br />

2. คลิก Start Apache และ MySQL<br />

รูปที่ ข.2 เริ่มใช้งาน Apache และ MySQL


76<br />

3. เปิดเว็บไซต์ http://localhost/public/login.php ขึ้นมาเพื่อท าการล็อคอินเข้าระบบ<br />

รูปที่ ข.3 แสดงหน้าการล็อคอินเข้าระบบ<br />

4. จะได้หน้าเว็บไซต์แสดงผลที่พร้อมใช้งานดังนี้<br />

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


77<br />

5. คลิก Start >>Arduino>>เปิดไฟล์ที่ได้เขียนโปรแกรมไว้ขึ้นมา<br />

รูปที่ ข.5 การเปิดโปรแกรม Arduino IDE<br />

6. จะแสดงโปรแกรมดังรูปที่ ข.6<br />

รูปที่ ข.6 แสดงการเรียกเปิดไฟล์ที่ได้เขียนโปรแกรมขึ้นมา


78<br />

7. แก้ไข ชื่อและรหัส ผ่านให้ตรงกับสัญญาณที่เครื่องเซิร์ฟเวอร์ที่เชื่อมต่ออยู่<br />

รูปที่ ข.7 แสดงต าแหน่งการแก้ไข ชื่อและ รหัสของสัญญาณ WiFi<br />

8. เปลี่ยน IP address ให้ตรงกับเครื่องเซิร์ฟเวอร์<br />

รูปที่ ข.8 แสดงต าแหน่งการแก้ไข IP address ให้ตรงกับเครื่องเซิร์ฟเวอร์


79<br />

9. เลือกสถานีให้กับตัวอุปกรณ์ Sta=1 คือ สถานีที่ 1, Sta2=2 คือ สถานีที่ 2<br />

รูปที่ ข.9 แสดงต าแหน่งการแก้ไขการก าหนดสถานีให้กับตัวอุปกรณ์<br />

10. เปลี่ยน IP address ให้ตรงกับเครื่องเซิร์ฟเวอร์<br />

รูปที่ ข.10 แสดงต าแหน่งการแก้ไข IP address ให้ตรงกับเครื่องเซิร์ฟเวอร์


80<br />

11. เลือกชนิดของ Board >> Arduino/Genuino UNO<br />

รูปที่ ข.11 แสดงการเลือกชนิดของ Board<br />

12. เลือก Port ของอุปกรณ์<br />

รูปที่ ข.12 แสดงการเลือก Port ของอุปกรณ์


81<br />

13. วิธีดู Port อุปกรณ์<br />

13.1 คลิกเมนู Start >> Control Panel<br />

รูปที่ ข.13 แสดงวิธีการดู Port อุปกรณ์<br />

13.2 คลิกที่ Device Manger<br />

รูปที่ ข.14 แสดงวิธีการดู Port อุปกรณ์ (ต่อ)


82<br />

13.3 คลิกที่ Ports (COM & LPT) จะแสดงชื่อ Port ของอุปกรณ์ออกมา<br />

รูปที่ ข.15 แสดงวิธีการดู Port อุปกรณ์ (ต่อ)<br />

14. คลิกอัพโหลดโปรแกรมและรอจนเสร็จ<br />

รูปที่ ข.16 แสดงการอัพโหลดโปรแกรม


83<br />

15. เมื่ออัพโหลดโปรแกรมเสร็จอุปกรณ์จะเริ่มท างาน<br />

รูปที่ ข.17 แสดงอุปกรณ์ก าลังเริ่มท างาน<br />

16. อุปกรณ์อยู่ในสถานะพร้อมใช้งานแล้ว<br />

รูปที่ ข.18 แสดงความพร้อมท างานและรับข้อมูลของอุปกรณ์


84<br />

คู่มือการใช้งานของผู้โดยสาร<br />

1. กดปุ่มเพิ่มหรือลดจ านวนผู้โดยสารที่รอรถตามจ านวน<br />

รูปที่ ข.19 แสดงความพร้อมท างานและรับข้อมูลของอุปกรณ์<br />

จากรูปที่ ข.19 โดยปุ่มเพิ่ม เป็นการเพิ่มจ านวนผู้โดยสารที่มารอรถและ ปุ่มลด เป็นการลดจ านวน<br />

ผู้โดยสารที่มารอรถในกรณีที่กดเกิน<br />

2. หลังจากเพิ่มจ านวนผู้โดยสารที่รอรถแล้ว กดปุ่มส่งเพื่อเป็นการส่งข้อมูลจ านวนผู้โดยสารขึ้น<br />

เซิร์ฟเวอร์<br />

รูปที่ ข.20 แสดงจ านวนผู้โดสารที่รอรถ


85<br />

3.อุปกรณ์จะท าการส่งข้อมูลไปยังเซิร์ฟเวอร์<br />

รูปที่ ข.21 แสดงการส่งข้อมูลไปยังเซิร์ฟเวอร์<br />

4.อุปกรณ์ส่งข้อมูลได้ส าเร็จ<br />

รูปที่ ข.22 แสดงอุปกรณ์สามารถส่งข้อมูลไปยังเซิร์ฟเวอร์ได้ส าเร็จ


86<br />

5. อุปกรณ์พร้อมที่จะรับข้อมูลครั้งใหม่แล้ว<br />

รูปที่ ข.23 แสดงอุปกรณ์พร้อมที่จะรอการป้อนจ านวนผู้โดยสารที่รอรถ


87<br />

คู่มือการใช้งานของผู้ดูแลระบบ<br />

1. เปิดเว็บไซต์ http://localhost/public/login.php ขึ้นมาท าการล็อคอินเข้าระบบ<br />

รูปที่ ข.24 แสดงหน้าล็อคอินเข้าสู่ระบบ<br />

2. จะได้หน้าเว็บไซต์ที่แสดงผลและพร้อมใช้งานดังนี้<br />

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


88<br />

จากรูปที่ ข.25 แสดงหน้าเว็บไซต์ที่แสดงผลประกอบไปด้วย ปุ่มรับสถานีที่ 1 หรือ 2 เป็นการล้าง<br />

ข้อมูลก่อนออกไปรับผู้โดยสาร ปุ่มแสดงข้อมูลทั้งหมดเป็นรูปแบบการแสดงข้อมูลแบบทั้งหมด และปุ่ม<br />

บันทึกข้อมูลเป็นไฟล์ Excel เป็นการบันทึกข้อมูลจากฐานข้อมูลมาเป็นไฟล์ Excel<br />

3. หากต้องการแสดงข้อมูลทั้งหมดโดยกดปุ่มแสดงข้อมูลทั้งหมด<br />

รูปที่ ข.26 การแสดงข้อมูลแบบทั้งหมด<br />

4. หากต้องการบันทึกข้อมูลเป็นไฟล์ Excel โดยกดปุ่มบันทึกข้อมูลเป็นไฟล์ Excel<br />

รูปที่ ข.27 การบันทึกข้อมูลเป็นไฟล์ Excel


89<br />

5. เมื่อต้องการออกไปรับผู้โดยสารในสถานีย่อย ให้ท าการกดปุ่มรับสถานีที่ 1 หรือ 2 ก่อนเพื่อเป็น<br />

การล้างข้อมูล<br />

รูปที่ ข.28 แสดงการล้างข้อมูล<br />

6. เมื่อเลิกใช้งานให้ท าการออกจากระบบทุกครั้ง<br />

รูปที่ ข.29 แสดงการล็อคเอาท์ออกจากระบบ


90<br />

การแก้ไขเบื้องต้นในกรณีที่อุปกรณ์ท างานผิดปกติ<br />

1. กดปุ่ม Reset เพื่อเริ่มการท างานใหม่อีกครั้ง<br />

รูปที่ ข.30 แสดงต าแหน่งกดปุ่ม Reset<br />

2. ระบบจะเริ่มท างานใหม่<br />

รูปที่ ข.31 แสดงอุปกรณ์เริ่มการท างานใหม่อีกครั้ง


91<br />

3. อุปกรณ์กลับมาท างานในสภาวะปกติ<br />

รูปที่ ข.32 แสดงอุปกรณ์กลับมาท างานในสภาวะปกติ


ประวัติผู้ด ำเนินโครงงำน<br />

92


93<br />

ประวัติกำรศึกษำ<br />

ชื่อ-นำมสกุล นายชินกร จันทร์มล<br />

Mr.Chinnakorn Junmol<br />

วัน เดือน ปี เกิด 3 พฤษภาคม 2536<br />

ภูมิล ำเนำ 310 หมู่ที่ 4 บ้านแม่อาง ต.บ้านแลง อ.เมือง<br />

จ.ล าปาง<br />

E-mail Chinnakorn57ok@gmail.com<br />

ประวัติกำรศึกษำ มัธยมปลาย โรงเรียนวิสุทธิ์วิทยากร จังหวัดล าปาง<br />

ปัจจุบัน ก าลังศึกษาในระดับปริญญาตรีชั้นปีที่ 4 สาขาวิชา<br />

วิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์ มหาวิทยาลัยพะเยา


94<br />

ประวัติกำรศึกษำ<br />

ชื่อ-นำมสกุล นายปัญญา พงศ์ศุภศาสตร์<br />

Mr.Panya Pongsupaart<br />

วัน เดือน ปี เกิด 28 กันยายน 2536<br />

ภูมิล ำเนำ 305 หมู่ที่ 18 บ้านใหม่จตุจักร ต.ป่าสัก อ.เมือง<br />

จ.ล าพูน<br />

E-mail pongsupasart@gmail.com<br />

ประวัติกำรศึกษำ มัธยมปลาย โรงเรียนเมธีวุฒิกร จังหวัดล าพูน<br />

ปัจจุบัน ก าลังศึกษาในระดับปริญญาตรีชั้นปีที่ 4 สาขาวิชา<br />

วิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์ มหาวิทยาลัยพะเยา

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!