Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
ระบบใหอาหารสตวเลยงอตโนมตดวยราสเบอรรพาย
Automatic Box Feeder for Pets with Raspberry Pi
จรภาส ทองเตม
Jirapat Thongtem
สารนพนธนเปนสวนหนงของการศกษา
หลกสตรวทยาศาสตรมหาบณฑต สาขาวชาวศวกรรมเครอขาย
คณะวทยาการและเทคโนโลยสารสนเทศ
มหาวทยาลยเทคโนโลยมหานคร
ปการศกษา 2558
I
หวขอ ระบบใหอาหารสตวเลยงอตโนมตดวยราสเบอรรพาย
ชอนกศกษา นายจรภาส ทองเตม
รหสนกศกษา 5617660004
หลกสตร วทยาศาตรมหาบณฑต สาขาวศวกรรมเครอขาย
ปการศกษา 2558
อาจารยทปรกษา ผศ.ดร.วรพล ลลาเกยรตสกล
บทคดยอ
วตถประสงคของระบบออโตเมตกบอกฟดเดอร (Automatic Box Feeder) เปนระบบให
อาหารสตวเลยงอตโนมตดวยราสเบอรรพาย โดยสรางระบบเพอเปนเครองมอชวยจดสรรอาหาร
ประเภทเมดใหกบสตวเลยง ไดแก แมว และสนข หากเกดกรณเจาของสตวเลยงอยนอกสถานท
อยอาศย ไมสามารถจดสรรอาหารได ซงการจดอาหารไมตรงเวลาจะสงผลโดยตรงใหสขภาพ
ของสตวเลยง เกดภาวะขาดอาหาร ซงกอใหเกดอาการปวยตางๆ และเปนภาระคาใชจายในการ
รกษาพยาบาลของสตวเลยงทไมจาเปนได ดงนน ออโตเมตกบอกฟดเดอร (Automatic Box
Feeder) สามารถชวยแกปญหาดงกลาวได ดวยการนาบอรดราสเบอรรพาย ทเปนคอมพวเตอร
จวทาหนาทเปนเวบเซรฟเวอร (Web Server) สงการดวยภาษาพเอชพ (PHP) รวมดวยกบ
ภาษาไพทอน (Python) ควบคมการทางานของวงจรรเลย และมอเตอร ชวยจดสรรอาหารสตว
เลยง พรอมการตดตามดวยเซอรวสเวบแคม (Webcam) บนบอรด การใชงานของระบบ
ออโตเมตกบอกฟดเดอร (Automatic Box Feeder) นจะใชการสงการผานเวบเบราวเซอร
สะดวกตอการใช มประสทธภาพในการจดสรรอาหาร และลดปญหาทางสขภาพ พรอมดแลสตว
เลยงได
II
กตตกรรมประกาศ
สารนพนธฉบบนสาเรจลงไดดวยด ดวยการใหคาปรกษา และคาแนะนาทดจาก
ผศ.ดร.วรพล ลลาเกยรตสกล อาจารยทปรกษาทไดใหคาแนะนาและความร จนสารนพนธฉบบ
นสาเรจไปไดดวยด
ขาพเจาขอขอบคณเพอนๆ สาขาวศวกรรมเครอขายโดยเฉพาะ คณศราวธ บตรราช ท
ใหความรการตอวงจรทางไฟฟา รวมทงความรเรองอปกรณอเลกทรอนกส ทสงผลใหการทา
โครงงานสาเรจลลวงไปดวยด
สดทายนสารนพนธฉบบนลลวงไปดวยด คณคาและประโยชนอนพงมาจากสารนพนธ
ฉบบน ขาพเจาขอมอบแดผมพระคณทกทาน และสาหรบผทจะนาไปพฒนาระบบตอไปในภาย
ภาคหนาแกผทสนใจศกษา
จรภาส ทองเตม
ธนวาคม 2558
III
สารบญ หนา
บทคดยอภาษาไทย. I
กตตกรรมประกาศ II
สารบญ III
สารบญรป V
สารบญตาราง VI
บทท 1 บทนา 1
1.1 ความเปนมาและความสาคญของปญหา 1
1.2 ปญหาและแรงจงใจ 1
1.3 วตถประสงคของสารนพนธ 1
1.4 ขอบเขตของสารนพนธ 1
1.5 ประโยชนของสารนพนธ 2
1.6 โครงสรางของสารนพนธ 2
บทท 2 พนฐานและทฤษฎทเกยวของ 3
2.1 บอรดราสเบอรร (Raspberry Pi) 3
2.1.1 คณสมบตทางเทคนคของบอรด Raspberry Pi 3
2.1.2 สวนประกอบของบอรด Raspberry Pi 4
2.1.3 การจดเรยงขาของ GPIO (General-Purpose Input/ Output) 5
2.1.4 ขนตอนการตดตงระบบปฎบตการของบอรด 5
2.2 หลกการทางานของรเลย (Relay) 10
2.2.1 จดตอใชงานมาตรฐาน 10
2.2.2 ประเภทของรเลย 11
2.3 ภาษาไพทอน (Python) 11
2.3.1 ความสามารถของภาษาไพทอน (Python) 12
2.3.2 หลกการทางานของไพทอน (Python) 12
2.4 ภาษาพเอชพ (PHP) 13
2.4.1 โครงสรางภาษาพเอชพ (PHP) 13
2.4.2 ความสามารถของภาษาพเอชพ (PHP) 14
IV
สารบญ (ตอ) หนา
บทท 3 การออกแบบระบบ 15
3.1 โครงสรางและการออกแบบระบบ 15
3.2 รายละเอยดโครงสรางขององคประกอบ 17
3.2.1 สวนเชอมตอผใชงานกบคอมพวเตอรและมอถอ 17
3.2.2 สวนควบคมวงจรระบบและประมวลผลของเครอง (Programing) 17 3.2.3 สวนควบคมการ ON /OFF เครอง (Relay Circuit) 17
3.3 การออกแบบโปรโตคอลทใชเชอมตอกนระหวางคอมพวเตอรและแผงวงจร 17 3.4 การออกแบบการเชอมตอสงงานกนระหวาง Raspberry กบ Relay Circuit 18
3.4.1 สวนแรกคอสวนทเปนอปกรณ Raspberry Pi 18
3.4.2 สวนท 2 วงจรรเลย (Relay Circuit) และชดควบคม 20
3.5 การออกแบบ Hardware ในสวนของวงจรรเลย (Relay Circuit) 20
บทท 4 การทดลองและผลการทดลอง 24
4.1 การทดลองแบงออกเปน 2 ตอน 25
4.1.1 การทดสอบการหมนมอเตอร 25
4.1.2 การทดสอบเซอรวสการทางานของ Webcam 26
บทท 5 สรปผลการทดลอง 30
5.1 ประโยชนจากการทาสารนพนธ 30
5.2 ปญหาและอปสรรค 30
5.3 แนวทางการนาไปพฒนาตอ 30
เอกสารอางอง 31
ภาคผนวก 32
ภาคผนวก ก 33
ภาคผนวก ข 37
V
สารบญรป หนา
รปท 2.1 สวนประกอบของบอรด Raspberry Pi B+ 4
รปท 2.2 การจดขาของ GPIO Raspberry Pi B+ 5
รปท 2.3 ระบบปฎบตการจากเวบของ Raspberry Pi 6
รปท 2.4 การแยกไฟล จะไดไฟลนามสกล *.img 6
รปท 2.5 แสดงการดาวนโหลด Win32DidkImager 7
รปท 2.6 ทาการอมเมจไฟลลงใน SD CARD 7
รปท 2.7 แสดงการเขยนอมเมจเสรจเรยบรอย 8
รปท 2.8 แสดงการตอสาย USB to TTL ของบอรด Raspberry Pi B+ 8
รปท 2.9 แสดงการตงคาของบอรด Raspberry Pi เขาใชดวยโปรแกรม PuTTY 9
รปท 2.10 การตอใชงานหลอดไฟผานขน C และ NC 11
รปท 2.11 โครงสรางการคอมไฟลของภาษา C 13
รปท 2.12 โครงสรางการอนเตอรพรเตอร 13
รปท 2.13 ตวอยางโครงสรางภาษา PHP 14
รปท 3.1 องคประกอบของระบบทงหมดโดยรวม 15
รปท 3.2 สวนประกอบของระบบ Automatic Box Feeder 16
รปท 3.3 โครงสรางการเชอมตออปกรณจากยเซอร กบ Raspberry 17
รปท 3.4 แสดงสวนของหนา Login ของเวบไซตของระบบ Box Feeder 19
รปท 3.5 แสดงสวน Main Program ของใชงานของระบบ Box Feeder 19
รปท 3.6 การออกแบบวงจรรเลยโดยรวม (Relay Circuit) 21
รปท 3.7 ชดอปกรณและวงจรไฟฟาโดยรวม 22
รปท 3.8 แสดงผงของระบบ Flow Chart 23
รปท 4.1 แสดงชดอปกรณทดลอง 24
รปท 4.2 แสดงการทดสอบการหมนรอบมอเตอร 25
รปท 4.3 แสดงการทดสอบเซอรวสของ webcam สถานะ Stop ผานทาง TTL 26
รปท 4.4 แสดงการทดสอบเซอรวสของ webcam สถานะ Start ผานทาง TTL 27
รปท 4.5 แสดงการทดสอบเซอรวสของ webcam สถานะ Stop ผานทาง Web Application 28
รปท 4.6 แสดงการทดสอบเซอรวสของ webcam สถานะ Start ผานทาง Web Application 28
VI
สารบญตาราง หนา
ตารางท 3.1 ตารางแสดงชดฟงกชน (Functions) การทางานของระบบ 18
ตารางท 4.1 แสดงผลการทดสอบการหมนรอบมอเตอร 26
ตารางท 4.2 แสดงผลการทดสอบเซอรวสของ webcam 29
1
บทท 1
บทน า
1.1 ความเปนมาและความส าคญของปญหา
ปจจบนมการดาเนนการโครงสรางทางธรกจเตบโตมากขน สงผลใหตองมการปรบปรง
โครงสรางทางคมนาคม ตองเพมความสะดวก ความคลองตวมากขน แตเนองจากปจจบน ยงคง
มปญหาการจราจรทตดขด ในตวเมอง และเขตอตสาหกรรมตางๆ ทาใหการใชชวตของบคคล
ชวงวยทางาน ใชเวลากบการเดนทางบนถนนเปนสวนใหญ พบกบปญหาเวลาการเดนทาง ไป
ยงจดหมายไมแนนอน หากครอบครวของบคคลทตองพบเจอกบการใชเวลา ไปและกลบ
เสยเวลาสวนใหญไปกบชวตในรถยนต หรอการโดยสารพาหนะตางๆ จาเปนตองดแลสตวเลยง
แสนรกไวทบาน คงจะตองประสบณกบการจดสรรอาหารของสตวเลยงดวยเปนอยางยง
1.2 ปญหาและแรงจงใจ
สารนพนธนจงไดใหความสาคญของปญหาทเกดขนในขางตน จงไดเกดแนวความคดใน
การ สรางแบบระบบเพอชวยในการเขาไปจดสรรเรองอาหารของสตวเลยง ดวยระบบวงจร
อเลคโทรนค โดยนาบอรดเอนกประสงค อยางราสเบอรรพาย (Raspberry Pi) ซงเปนทนยม
และราคายอมเยาว มาเปนอปกรณควบคมการทางานของมอเตอร เพอออกแบบการจากดการ
ใหอาหารสตวเลยง เชน สนข และแมว ไดกนอาหารตามเวลา ผานการสงงานแบบงายจาก
หนาเวปเพจ ผานอปกรณสมารทโฟน คอมพวเตอรพซ หรอคอมพวเตอรสวนบคคล ในทกท ท
ยงคงสามารถเชอมเครอขายอนเตอรเนตได
1.3 วตถประสงคของสารนพนธ
เพอสรางระบบการใหอาหารสตวเลยงผานเวบเซรฟเวอร (Web Server) ผานอปกรณ
คอมพวเตอรและโมบายโดยใชราสเบอรรพาย (Raspberry Pi)
1.4 ขอบเขตของสารนพนธ
1) ออกแบบและสรางอปกรณวงจรควบคมรเลย เพอใชปดเปดมอเตอร ตามเวลาของ
การสงหมน เพอควบคมอปกรณใหอาหาร แบบสรางตวเลอกได
2
2) สามารถสงงานการควบคมกลองเวบแคม (Webcam) บนราสเบอรรพาย
(Raspberry Pi) ผานทางเวบแอปพลเคชน (Web Application) โดยสงเลน และ
หยด เซอรวส (Service) ได
3) มหนาจอควบคมการสงใหอาหารตามปรมาณทกาหนด และมระบบตดตามดวย
กลองเวบแคม (Webcam) ใหใชงานไดงายผานทางเวบแอปพลเคชน (Web
Application)
4) สรางระบบการใหอาหารสตวเลยง ภายในเฉพาะระบบเครอขายระยะใกล
1.5 ประโยชนของสารนพนธ
1) เพอชวยดแลและจดสรร การใหอาหารสตวเลยง ในกรณทตดชวงเวลาทไมสะดวก
2) ไดศกษาการนาเทคโนโลยของบอรดราสเบอรรพาย (Raspberry Pi) มาใชในการ
ควบคมรเลย และมอเตอร มาสรางระบบควบคมการใหอาหารสตว
1.6 โครงสรางของสารนพนธ
สาหรบเนอหาของสารนพนธฉบบนจะถกแบงออกไดดงน
บทท 1 บทนากลาวถงปญหาทเกดขนในสถานการณ ใชระบบการใหอาหาร
สตวเลยง
บทท 2 ทฤษฎและหลกการทางาน เปนการศกษาการทางานของอปกรณตางๆ
ทจะนามาใชเปนขอมลเพอใชในการออกแบบระบบ
บทท 3 การออกแบบระบบและแสดงขนตอนการทางานของระบบในการ
ออกแบบระบบจะมข นตอนการทางานแตละข นตอนตางๆ เพอใหการทางานเปนไป
อยางมประสทธภาพ
บทท 4 การทดลองและผลการทดลองจะนาเอาระบบทออกแบบไวมาทดลองใช
เพอนาผลททดลองไดมาประเมนประสทธภาพของการทางาน
บทท 5 สรปผลและขอเสนอแนะ นาเอาผลทไดจากการทดลองการใชงาน เพอ
หาขอผดพลาดเพอเปนแนวทางในการปรบปรงแกไขใหดข นตอไป
3
บทท 2
พนฐานและทฤษฎทเกยวของ
2.1 บอรดราสเบอรร (Raspberry Pi) [1]
บอรดราสเบอรร เปนบอรดคอมพวเตอร 32 บต ขนาดเลกเทากบเครดตการดรองรบ
ระบบปฎบตการ Linux ทพฒนาโดยนกออกแบบคอมพวเตอรชาวองกฤษ ชอ Eben Upton ท
ชวงแรกหวงวาจะใชเปนสอการเรยนการสอนการเขยนโปรแกรมคอมพวเตอรสาหรบเดกๆ แต
ดวยเปนบอรดทมราคาไมแพงใชงานงายเมอเทยบกบบอรดอนๆ เหมาะสาหรบผทตองการ
เรมตนจงทาใหเปนทนยมรจกกนแพรหลายไปอยางรวดเรวนนเอง
2.1.1 คณสมบตทางเทคนคของบอรด Raspberry Pi B+
1) ใชซพ Soc Broadcom BCM2835 ซงรวม CPU, GPU และ SDRAM ไวใน
ตวถงเดยวกน
2) หนวยประมวลผลกลาง (CPU) 700 MHz ARM1176JZF-S core
3) หนวยประมวลผลภาพ (GPU) Broadcom VideoCore IV, OpenGL ES
2.0, OpenVG 1080P30 H.264 High-Profile Encode/decode
4) หนวยความจา SDRAM 512 MB
5) ขวตอ USB 2.0 จานวน 4 พอรต
6) ขวตอสญญาณภาพแบบแจค RCA และ HDMI เลอกใชอยางใดอยางหนง
7) ขวตอสญญาณเสยงโดยใชแจค 3.5 mm หรอ ผานทาง HDMI
8) คอนเนคเตอรสาหรบเชอมตออนพตเอาตพต (GPIO) และ UART (GPIO
ตางๆไมสามารถรบแรงดนอนพต 5 VDC ได สงสดไดแค 3.3 VDC
เทานน)
9) ระบบปฎบตการของบอรดจะทางานผาน SD CARD
10) ขวตอ LAN 10/100 Mbps.
11) ไฟเลยงบอรด 5 VDC กระแสอยางนอย 700 mA
12) ขนาดบอรด 85.0x56.0 mm.
4
2.1.2 สวนประกอบของบอรด Raspberry Pi
รปท 2.1 สวนประกอบของบอรด Raspberry Pi B+
จากรปท 2.1 มรายละเอยดดงน
1) คอนเนคเตอร SD CARD ซงจะตดตงอยใตบอรด
2) คอนเนคเตอรสาหรบเชอมตออนพตเอาตพต (GPIO) และ UART ตาแหนง
ขาตางๆ
3) คอนเนคเตอรตอสญญาณเสยงโดยใชแจค 3.5 mm
4) LED แสดงสถานะตางๆ ของบอรด Raspberry Pi
5) คอนเนคเตอร USB 2.0 จานวน 4 พอรต
6) คอนเนคเตอร LAN 10/100 Mbps สาหรบเชอมตอกบระบบเครอขาย
7) คอนเนคเตอร CSI สาหรบเชอมตอกบโมดลกลอง
8) คอนเนคเตอร HDMI สาหรบเชอมตอสญญาณภาพและเสยง ทเชอมตอกบ
จอภาพทมข วตอแบบ HDMI เชน โทรทศนหรอจอมอนเตอร
9) ชพ SoC Broadcom BCM2835 ชงรวม CPU, GPU และ SDRAM ไวใน
ตวถงเดยวกน
10) คอนเนคเตอร DSI สาหรบเชอมตอกบจอภาพ
11) คอนเนคเตอร Micro USB สาหรบจายไฟเลยงใหบอรด
12) LAN Controller
1 12
8 3
5
11
7
2
10
4
6
9
5
2.1.3 การจดเรยงขาของ GPIO (General-Purpose Input/ Output)
รปท 2.2 การจดขาของ GPIO Raspberry Pi B+
บอรด Raspberry Pi B+ มขาอนพตเอาตพตดจตอลหรอ GPIO สาหรบตดตอ
กบอปกรณภายนอกรวม 40 ขาโดยมการจดเรยงขามาตรฐานตามรปท 2.2 ดานซาย จะมการ
จดเรยงขาอนพตเอาตพต
2.1.4 ขนตอนการตดตงระบบปฎบตการของบอรด [2]
การตดตงระบบปฏบตการบน Raspberry Pi B+ ลงใน SD CARD มข นตอนดงน
1) ทาการดาวนโหลดไฟลอมเมจของระบบปฎบตการจากเวบของ Raspberry
Pi ทช อ Wheezy ใหเลอกโหลดเปน .Zip
6
รปท 2.3 ระบบปฎบตการจากเวบของ Raspberry Pi
จากรปท 2.3 แสดงใหทราบวาเปนรน Raspbian Wheezy Version May 2015 และ
สามารถเลอกชนดไฟลในการดาวนโหลดไดสองแบบ คอ Torrent และ Zip ไฟล
2) เมอดาวนโหลดเสรจเรยบรอยทาการแตกไฟล จะไดไฟล *.img แสดงดงรป
รปท 2.4 การแยกไฟล จะไดไฟลนามสกล *.img
จากรปท 2.4 เปนชนดไฟลทถกแยกออกมาจากไฟลทดาวนโหลดในขนตอนท 1
3) ทาการดาวนโหลดโปรแกรม Win32DiskImager เพอใชในการเขยนและทา
การอมเมจไฟลลงใน SD CARD แสดงดงรป
7
รปท 2.5 แสดงการดาวนโหลด Win32DidkImager
จากรปท 2.5 แสดงโปรแกรม Win32DidkImager ทจะนามาใชในการเขยนขอมลจาก
ไฟล ในขนตอนท 2 ลงใน SD Card ทเตรยมไว
4) นา SD CARD ขนาด 2GB ขนไป ทจะลงระบบปฎบตการไปเสยบเขาทตว
Card Reader จากนนใหเปดโปรแกรม Win32DiskImager คลกทไอคอน
โฟลเดอรเลอกแลวไปทอมเมจไฟลทดาวนโหลดมาดงรป
รปท 2.6 ทาการอมเมจไฟลลงใน SD CARD
5) รอจนโปรแกรมเขยนอมเมจเสรจเรยบรอยดงรปท 2.7
8
รปท 2.7 แสดงการเขยนอมเมจเสรจเรยบรอย
6) เรมตนการตอใชงานบอรด Raspberry Pi หลงจากทไดทาการลงระบบ
ปฎบตการใน SD CARD เสรจเรยบรอยแลวทาการตอบอรดกบสาย
USB to TTL
รปท 2.8 แสดงการตอสาย USB to TTL ของบอรด Raspberry Pi B+
9
จากรปท 2.8 แสดงการตอปลายสายของสาย USB to TTL โดยจะมทงหมด 4 สาย
ไดแก สายสแดง, สายสดา, สายสขาว และสายสเขยว โดยตอเขาท GPIO # 2, 6, 8 และ 10
ตามลาดบ
7) เมอเราทาการเปดระบบหลงจากนนจะแสดงขอมลการบตของระบบบอรด
Raspberry Pi
รปท 2.9 แสดงการตงคาของบอรด Raspberry Pi เขาใชดวยโปรแกรม PuTTY
จากรปท 2.9 ใชโปรแกรม PuTTY และตงคา Speed เปน 115200 เลอกชนดการ
เชอมตอเปน Serial กรณเลอกตอผานสาย USB To TTL
8) หลงจากนนบอรดจะทาการรบตใหมและใหใสลอคอน Raspberry login ให
ใส pi และกดปม Enter และใส Password เปน raspberry และกดปม
Enter
10
2.2 หลกการท างานของรเลย (Relay) [3]
รเลย (Relay) เปนอปกรณทเปลยนพลงงานไฟฟาใหเปนพลงงานแมเหลก เพอใชใน
การดงดดหนาสมผสของคอนแทคใหเปลยนสภาวะ โดยการปอนกระแสไฟฟาใหกบขดลวด เพอ
ทาการปดหรอเปดหนาสมผสคลายกบสวตชอเลกทรอนกส ซงเราสามารถนารเลยไปประยกตใช
ในการควบคมวงจรตาง ๆ ในงานชางอเลกทรอนกส รเลย ประกอบดวยสวนสาคญ 2 สวนหลก
คอ
1) สวนของขดลวด (Coil) เหนยวนากระแสตา ทาหนาทสรางสนามแมเหลกไฟฟาให
แกนโลหะไปกระทงใหหนาสมผสตอกน ทางานโดยการรบแรงดนจากภายนอกตอครอมท
ขดลวดเหนยวนาน เมอขดลวดไดรบแรงดน (คาแรงดนทรเลยตองการขนกบชนดและรนตามท
ผผลตกาหนด) จะเกดสนามแมเหลกไฟฟาทาใหแกนโลหะดานในไปกระทงใหแผนหนาสมผสตอ
กน
2) สวนของหนาสมผส (Contact) ทาหนาทเหมอนสวตชจายกระแสไฟใหกบอปกรณท
ตองการ
2.2.1 จดตอใชงานมาตรฐาน ประกอบดวย
จดตอ NC ยอมาจาก normal close หมายความวาปกตปด หรอ หากยงไมจายไฟให
ขดลวดเหนยวนาหนาสมผสจะตดกน โดยทวไปเรามกตอจดนเขากบอปกรณหรอเครองใชไฟฟา
ทตองการใหทางานตลอดเวลา
จดตอ NO ยอมาจาก normal open หมายความวาปกตเปด หรอหากยงไมจายไฟให
ขดลวดเหนยวนาหนาสมผสจะไมตดกน โดยทวไปเรา มกตอจดน เขากบอปกรณหรอ
เครองใชไฟฟาทตองการควบคมการเปดปดเชนโคมไฟสนามหนอหนาบาน
จดตอ C ยอมากจาก common คอจดรวมทตอมาจากแหลงจายไฟ
11
รปท 2.10 การตอใชงานหลอดไฟผานขน C และ NC
จากรปท 2.10 เปนลกษณะตวอยางการใชงานโดย ตอใชงานหลอดไฟผานขว C และ
NC เพอใหหลอดไฟยงคงตดสวางแมไมไดกดสวตช หากกดสวตซ สถานะหลอดไฟกจะดบลง
2.2.2 ประเภทของรเลย
แบงออกตามลกษณะการใชงานไดเปน 2 ประเภทคอ
2.2.2.1 รเลยกาลง (Power Relay) หรอมกเรยกกนวาคอนแทคเตอร
(Contactor or Magnetic contactor) ใชในการควบคมไฟฟากาลง มขนาดใหญกวารเลย
ธรรมดา
2.2.2.2 รเลยควบคม (Control Relay) มขนาดเลกกาลงไฟฟาตา ใชในวงจร
ควบคมทวไปทมกาลงไฟฟาไมมากนก หรอเพอการควบคมรเลยหรอคอนแทคเตอรขนาดใหญ
รเลยควบคม บางทเรยกกนงาย ๆ วา "รเลย"
2.3 ภาษาไพทอน (Python) [4]
ไพทอนเปนภาษาระดบสงภาษาหนง ทมความสามารถสงถกสรางขนในป 1989 โดย
Guido van Rossum ซงถกพฒนาขนโดยไมมการยดตดกบแพลตฟอรมคอสามารถรนภาษาไพ
12
ทอนไดทงระบบ Unix, Linux, Windows หรอในระบบ FreeBSD ลกษณะภาษาเปนแบบ Open
Source เหมอนอยาง PHP
2.3.1 ความสามารถของภาษาไพทอน (Python)
- งายตอการเรยนรโดยภาษาไพทอนมโครงสรางของภาษาทไมซบซอน
เขาใจงายซงจะมโครงสรางคลายกบภาษา C โดยไพทอนถกสรางขนมา
โดยใชภาษา C ทาใหผทคนเคยภาษา C จะใชงานไดไมยากนนเองและตว
ของภาษายงไดมความยดหยนทาใหจดการงานดานขอความและ Text File
ไดเปนอยางด
- ไมตองเสยคาใชจายใดๆ ทงสนเพราะตวแปรภาษาไพทอนอยภายใต
ลขสทธ GNU นนเอง
- ใชไดหลายแฟลตฟอรมในชวงแรกภาษาไพทอนไดถกออกแบบมาใชกบ
ระบบ Unix แตวาในปจจบนไดมการพฒนาตวแปลภาษาไพทอน ใหใชได
กบระบบปฎบตการไดหลากหลาย เชน Linux, Windows 95, 98, ME, NT,
200
- ไพทอนไดถกสรางขนมาเพอเอาขอดของภาษาตางๆ เขามาไวดวยกน เชน
C, C++, Java, Perl
- ไพทอนเปนภาษาประเภท Service side Script คอจะมการทางานทางดาน
ฝ ง Server แลวสงผลกลบมายง Client ทาใหมความปลอดภยสง
2.3.2 หลกการท างานของไพทอน (Python)
เมอเราไดทาการเขยนโคดขนมาตามโครงสรางของโปรแกรมภาษาใดกตามถา
หากวาเราจะใหโคดเหลานนทางานไดมนจะตองมตวแปรภาษามาจดการแปลโคดคาสง เพอให
ทางานตามทเราตองการนนเอง โดยไดแบงเปน 2 ประเภทดงน
1) คอมไพเลอร (Compiler) เปนตวแปลภาษาสาหรบภาษา C, C++, Pascal
การทางานกคอจะตรวจสอบความผดพลาดของโคดคาสงตงแตตนจนจบ
หรอเรยกวาการคอมไพลถาไมมขอผดพลาดกจะทาการแปลโคดคาสงของ
เราใหเปนไฟลนามสกล .obj (Object File) จากนนกทาการแปลไฟล .obj
ใหเปนไบนารไฟล .exe เพอใหทางานตอไปตามการคอมไฟลของภาษา C
ดงรปตอไปน
13
รปท 2.11 โครงสรางการคอมไฟลของภาษา C
2) อนเตอรพรเตอร (Interpreter) จะทางานเปนบรรทดตอบรรทด คออานโคด
คาสงมาบรรทดหนงแลวกทางานใหผลออกมาเลยดงรปตอไปน
รปท 2.12 โครงสรางการอนเตอรพรเตอร
2.4 ภาษาพเอชพ (PHP) [5]
2.4.1 โครงสรางภาษาพเอชพ (PHP)
ภาษา PHP มลกษณะเปน embedded script หมายความวาเราสามารถฝงคาสง PHP
ไวในเวบเพจรวมกบคาสง (Tag) ของ HTML ได และสรางไฟลทมนามสกลเปน .php, .php3
หรอ .php4 ซงไวยากรณทใชใน PHP เปนการนารปแบบของภาษาตางๆ มารวมกนไดแก C,
Perl และ Java ทาใหผใชทมพนฐานของภาษาเหลานอยแลวสามารถศกษา และใชงานภาษาน
ไดไมยาก
14
รปท 2.13 ตวอยางโครงสรางภาษา PHP
2.4.2 ความสามารถของภาษาพเอชพ (PHP)
- เปนภาษาทมลกษณะเปนแบบ Open source ผใชสามารถ Download และนา Source
code ของ PHP ไปใชไดโดยไมเสยคาใชจาย
- เปนสครปตแบบ Server Side Script ดงนนจงทางานบนเวบเซรฟเวอร ไมสงผลกบ
การทางานของเครอง Client โดย PHP จะอานโคด และทางานทเซรฟเวอร จากนนจง
สงผลลพธทไดจากการประมวลผลมาทเครองของผใชในรปแบบของ HTML ซงโคด
ของ PHP นผใชจะไมสามารถมองเหนได
- PHP สามารถทางานไดในระบบปฎบตการทตางชนดกน เชน Unix, Windows, Mac
OS หรอ Risc OS อยางมประสทธภาพ เนองจาก PHP เปนสครปตทตองทางานบน
เซรฟเวอร ดงนนคอมพวเตอรสาหรบเรยกใชคาสง PHP จงจาเปนตองตดตงโปรแกรม
เวบเซรฟเวอรไวดวย เพอใหสามารถประมวลผล PHP ได
- PHP สามารถทางานไดในเวบเซรฟเวอรหลายชนด เชน Personal Web
Server(PWS), Apache, OmniHttpd และ Internet Information Service (IIS) เปนตน
- ภาษา PHP สนบสนนการเขยนโปรแกรมเชงวตถ (Object Oriented Programming)
- PHP มความสามารถในการทางานรวมกบระบบจดการฐานขอมลทหลากหลาย ซง
ระบบจดการฐานขอมลทสนบสนนการทางานของ PHP เชน Oracle, MySQL,
FilePro, Solid, FrontBase, mSQL และ MS SQL เปนตน
- PHP อนญาตใหผใชสรางเวบไซตซงทางานผานโปรโตคอลชนดตางๆ ได เชน LDAP,
IMAP, SNMP, POP3 และ HTTP เปนตน
- โคด PHP สามารถเขยน และอานในรปแบบของ XML ได
15
บทท 3
การออกแบบระบบ
ในบทนจะนาเอาแนวทางปญหาทเกดขนมาออกแบบระบบและวเคราะหเพอใชในการ
แกปญหาจากบทท 1 โดยสารนพนธฉบบนจะเปนแนวทางการพฒนาซอฟตแวรโปรแกรมและ
ฮารดแวรข นมาเพอจะนาไปแกไขปญหาและความตองการดงกลาว
3.1 โครงสรางและการออกแบบระบบ
ระบบสามารถแบงออกเปน 2 สวนใหญๆ ดงน
1) สวนแรก คอสวนซอฟตแวร (Software) สวนนจะประกอบดวยการทา
โปรแกรมหลก และโปรแกรมยอยเพอควบคมอปกรณสวนตางๆ
2) สวนทสอง คอสวนฮารดแวร (Hardware) เปนการประกอบอปกรณ ใหเปน
ชนงาน
รปท 3.1 องคประกอบของระบบทงหมดโดยรวม
16
จากรปท 3.1 แสดงใหเหนวา การทางานของระบบจะตดตอกบผใชผานทางเวบ
เบราวเซอร เพอสงคาสงใหกบบอรดราสเบอรรพาย สงการกบรเลย และกลอง webcam ทางาน
ตามทกาหนดไว
รปท 3.2 สวนประกอบของระบบ Automatic Box Feeder
จากรปท 3.2 แสดงภาพรวมของสวนประกอบของระบบ Automatic Box Feeder โดย
ในสวนของซอฟตแวร นนจะแบงออกเปน 2 สวน คอสวนทหนง โปรแกรมหลก (Main
Program) ซงเปนสวนของหนาเวบแสดงผล ถกสรางดวยภาษา HTML และ PHP เปนหลก
ประกอบดวยฟงกชน (Functions) ไดแก การลอกอนเขาใชงาน (Login), กลอง webcam, และ
ระบบจดการใหอาหาร (Feeder) สวนทสอง โปรแกรมยอย (Sub Program) ประกอบดวย
Code ภาษาไพทอน กากบการทางานแตละตวเลอก ไดแก ฟงกชนกลอง เปด และปด เซอรวส
, ฟงกชนการใหอาหาร (Feed) ควบคมรเลย เพอใหรเลย สงการหมนของมอเตอร ตามตวเลอก
ท 1, 2 และ 3
17
3.2 รายละเอยดโครงสรางขององคประกอบ
รายละเอยดของโครงสรางและองคประกอบของแตละสวน ไดมการอธบายรายละเอยด
ในหวขอตางๆ ทง 3 หวขอ โดยอางองจากรปท 3.1 ดงตอไปน
3.2.1 สวนเชอมตอผใชงาน (User) กบคอมพวเตอร (Computer) หรอมอถอ (Mobile)
สวนนจะเปนการควบคมคอนโทรลการทางาน ผานชองทางโปรแกรม IE Browser หรอ
Google Chrome จากนนกจะเขาสหนาเมนของระบบในการเขาไปสงการระบบ เชน การเปด-
ปด เซอรวสกลองเวบแคม, การสงใหอาหารตามปรมาณตางๆ ทต งตวเลอกไว
3.2.2 สวนควบคมวงจรระบบและประมวลผลของเครอง (Programing)
ในสวนนจะเปนการรบเอาคาสง จากสวนผใชงาน โดยจะรบเอาคาสงจากเวบเบราวเซอร
ให PHP เปนผจดการ ตดตอโปรแกรมทสรางดวยภาษาไพทอน ในตวบอรดราสเบอรร ทางาน
3.2.3 สวนควบคมการ ON /OFF เครอง (Relay Circuit)
ในสวนนจะมหนาทหลกควบคมวงจร Relay เมอสวนทสอง สงโปรแกรมทถกพฒนา
ดวยภาษาไพทอน ทางานแลวนน สวนวงจร Relay จะเรมทางาน ทาใหไฟฟาครบวงจร สงผล
ใหมอเตอรทาการหมนอปกรณ ตามเวลาทกาหนดจากชดโปรแกรมควบคม
3.3 การออกแบบโปรโตคอลทใชเชอมตอกนระหวางอปกรณจากยเซอร กบแผงวงจร
Raspberry Pi
รปท 3.3 โครงสรางการเชอมตออปกรณจากยเซอร กบ Raspberry
18
จากรปท 3.3 แสดงการออกแบบโปรโตคอล เชอมตอระหวางอปกรณจากผใช กบบอรด
ราสเบอรร โดยทจากหนาเวบผใช สงชอผใช และรหส ไปยง Web Server เพอสงฟงกชนหนา
main.php ใหผใช และรอรบคาสงจากผใช เพอสงใหชดคาสง Python ทางาน
ตารางท 3.1 ตารางแสดงชดฟงกชน (Functions) การทางานของระบบ
ล าดบ ชอฟงกชน
(Functions)
คา
ฟงกชน
(Value)
ผลลพธ (Action) หมายเหต
1 Webcam ON ‚on‛ On service motion
2 Webcam OFF ‚off‛ Off service motion
3 Feed 100g ‘1’ เปดรเลย 4 วนาท
4 Feed 200g ‘2’ เปดรเลย 8 วนาท
5 Feed 300g ‘3’ เปดรเลย 12 วนาท
จากตารางท 3.1 แสดงชดฟงกชนการทางานของระบบทม ทงหมด 5 ฟงกชน โดยแต
ละฟงกชน มการทางานแยกสวนกน
3.4 การออกแบบการเชอมตอสงงานกนระหวาง Raspberry กบ Relay Circuit
หลกการทางานอย 2 สวนทสาคญ มดงน
3.4.1 สวนแรกคอสวนทเปนอปกรณ บอรด Raspberry Pi
สวนนจะเปนการใชคาสงในการโปรแกรมสงงานออกไปเพอใหวงจรรเลย
ทางาน โดยการเขยนโปรแกรมสงงานดวยภาษา Python ควบคม Pin Number ของ
GPIO ใหทางาน ในรปแบบเปนสญญาณทางไฟฟา Signal คอ 1 กบ 0 นนเองโดยท
เครองจะทาการ Interpreter คอแปลงคาสงแตละบรรทด ใหเปนภาษา Machine Code
เพอใหเครองเขาใจคาสงนนแลวหลงจากนนกจะทาการสงขอมลออกไปทางพอรตของ
ขา Pin ทกาหนดไว ในทนการออกแบบไดมการระบ Pin Number ดงน
- ให Pin 7 ของ GPIO เปน Output โดยกาหนดเปน Signal 3.3 VDC
- ให Pin 2 ของ GPIO เปน เปนแหลงจายไฟ +5 VDC ใหกบ Relay
- ให Pin 6 ของ GPIO เปนขา Ground ของจงจร Relay
19
รปท 3.4 แสดงสวนของหนา Login ของเวบไซตของระบบ Box Feeder
รปท 3.5 แสดงสวน Main Program ของใชงานของระบบ Box Feeder
20
3.4.2 สวนท 2 วงจรรเลย (Relay Circuit) และชดควบคม
สวนน เปนวงจรอเลกทรอนกส โดยจะมหลกการทางานเชอมตอสญญาณ
Signal กบทาง GPIO ของบอรด Raspberry Pi รวมชดใหอาหารสตวเลยง โดยจะม
อปกรณดงน
- มอเตอร ชนดทดเฟอง 12 VDC ความเรวรอบ 75 รอบตอนาท
- ชดควบคมความเรวมอเตอร (Dimmer) 1 ชด
- ชดปรบแรงดนไฟฟา (Regulator) 12 VDC 1 ชด
- บอรด Raspberry Pi B+ 1 ชด
- Adapter 5 VDC 1 ตว
- Webcam Logitech C-170 1 ตว
- รซสเตอร (Resistor) 1 K โอรม 2 ตว
- ทรานซสเตอร (Transistor) BC337 1 ตว
- แผนปรนทวงจร PCB สาเรจรป 1 แผน
- สายไฟ 1 ชด
- เทปพนสายไฟ 1 มวน
- หมอแปลง 220 VAC เปน 12 VDC
- ชดเกบอาหารสตวเลยง 1 ชด
3.5 การออกแบบ Hardware ในสวนของวงจรรเลย (Relay Circuit)
สวนนเปนสวนของการออกแบบวงจรและการประกอบวงจร เพอนาไปควบคมระบบการ
จายไฟฟาใหกบมอเตอรไฟฟากระแสตรง ขนาด 12 โวลต
21
รปท 3.6 การออกแบบวงจรรเลยโดยรวม (Relay Circuit)
จากรปท 3.6 แสดงวงจรรเลยโดยรวม โดยมหลกการทางานดงน สวนแรกบอรดราส
เบอรร ควบคม Relay Circuit โดยใชวธการปลอยกระแสไฟฟา จาก GPIO-2 (5V), GPIO-6
(GND) และ GPIO-7 (3.3V) เมอปลอยกระแสไฟฟาเขามายงขา GPIO แลววงจร Relay Circuit
จะสามารถทางานเสมอนสวตซ ชนดหนง สงผลใหวงจรสวนทสอง นนคอ มอเตอร ครบวงจร
22
รปท 3.7 ชดอปกรณและวงจรไฟฟาโดยรวม
จากรปท 3.7 แสดงชดอปกรณตนแบบ และการจดวงจรไฟฟา ทใชจรง โดยสามารถ
แจกแจงรายละเอยดได ดงน
หมายเลข 1 แสดงตาแหนงหมอแปลง ทาหนาทแปลงไฟฟากระแสสลบ 220
VAC เปนไฟฟากระแสตรง 12 VDC
หมายเลข 2 แสดงตาแหนงเรกกเลเตอร (Regulator) ทาหนาทปรบความ
เสถยรของกระแสไฟฟากระแสตรง 12 VDC
หมายเลข 3 แสดงตาแหนงดมเมอร (Dimer) ทาหนาทปรบลดทอน
กระแสไฟฟาใหลดลงตามตองการ
หมายเลข 4 แสดงตาแหนงชดวงจรรเลย
หมายเลข 5 แสดงตาแหนงของบอรดราสเบอรรพาย (Raspberry Pi)
หมายเลข 6 แสดงตาแหนงกลองเวบแคม (Webcam) ทตอจาก Port USB ตว
บอรดราสเบอรรพาย
หมายเลข 7 แสดงตาแหนงมอเตอร ชนดทดเฟองสามารถรบนาหนกได
ประมาณ 2 กโลกรม ขนาด 12 VDC
1
6 7 8
9
4
5 3
2
10 11
23
หมายเลข 8 แสดงตาแหนงชดแกนเพลาเหลกขนาด 4 มม. ตอเขากบทอพวซ
(PVC) ขนาด 1 นวเพอประกอบเปนแกนรบอาหาร
หมายเลข 9 แสดงตาแหนงตวถงใสอาหารเมดสาหรบสตวเลยง
หมายเลข 10 แสดงตาแหนงถาดรองอาหารจากตวถง
หมายเลข 11 แสดงตาแหนงลาโพง ซงจะมเสยงจากไฟล mp3 ทจะเลนจาก
บอรดราสเบอรรพาย สงออกทาง Audio Output 3.5 mm.
รปท 3.8 แสดงผงของระบบ Flow Chart GPIO
จากรปท 3.8 เปนผงของระบบการทางานของขา GPIO ขอบอรดราสเบอรร โดยทเมอ
กาหนดคาเรมตนเปน ‚1‛ เทากบ ‚true‛ กระแสไฟจะไหลปลอยจากขา GPIO ทเราเลอกไว และ
จะหยดปลอยเมอคาเปน ‚0‛ เทากบ ‚false‛ ซงเปนหลกการทไมซบซอนและมคาเปน ‚1‛ หรอ
‚0‛ เทานน
24
บทท 4
การทดลองและผลการทดลอง
จากการทไดคดและออกแบบระบบไวจากบททผานๆ มานน ทาใหมการสรางวงจรและ
การการควบคมระบบเพอใชในการแกปญหา ตามแนวความคด ซงแสดงใหเหนถงกระบวนการ
ทางานของของการเชอมตอในระบบเครอขายคอมพวเตอร กบ Raspberry Pi เพอกาหนดการ
ทางานของวงจรรเลย และจานวนรอบการหมนของมอเตอรนนเอง
รปท 4.1 แสดงชดอปกรณทดลอง
จากรปท 4.1 แสดงการตดตงอปกรณเขาชดกบโครงสรางไมประกอบ โดยการแสดงผล
ของอปกรณ จากการสงงานผานหนาเวบโปรแกรมหลก เมอกดสงใหอาหาร บอรดราสเบอรร
พายจะสงการใหรเลยเปลยนสภาพเสมอนสวตซ ทาใหไฟฟาครบวงจร มอเตอรจงทาการหมนให
อาหารทอยในทอหลนมาทถาดอาหาร เมอหมนตามเวลาทไดกาหนด (ตามฟงกชน) บอรดราส
เบอรรกจะเลนไฟลเสยง MP3 ทไดบรรจไวในบอรด
25
4.1 การทดลองแบงออกเปน 2 ตอน ดงน
1) ทดลองใชงานของวงจรรเลย ในการสงงานมอเตอร โดยจะแบงเปนทงหมด 3
ตวเลอก ไดแก 4, 8 และ 12 วนาท การทดสอบนจะใชตวเลอกบนหนาเวปแอฟพร
เคชน (Application) แลวให Code PHP เปนตวสงใหคาสงภาษาไพทอนในบอรด
ราสเบอรรพายทางาน เพอดผลการทดลอง
2) ทดลองเปด-ปด เซอรวสบนบอรดราสเบอรร เพอควบคมของกลอง Webcam ผาน
สาย USB to TTL serial และทดสอบการทางาน
4.1.1 การทดสอบการหมนมอเตอร
รปท 4.2 แสดงการทดสอบการหมนรอบมอเตอร
จากรปท 4.2 แสดงการจบเวลาการหมนของมอเตอร โดยทเรมนบจากเรมกดปม Feed
300g จากหนาเมนโปรแกรม จนกระทงหยดทางาน ซงเวลาทต งไวในโหมดนคอ 12 วนาท และ
คาการทดสอบแสดงดงตารางท 4.1
26
ตารางท 4.1 แสดงผลการทดสอบการหมนรอบมอเตอร
ล าดบ รายการ เวลาการหมน
(วนาท) หมายเหต
1 ตวเลอกการใหอาหาร 100 กรม 4.2 ตามเวลาทกาหนด
2 ตวเลอกการใหอาหาร 200 กรม 8.3 ตามเวลาทกาหนด
3 ตวเลอกการใหอาหาร 300 กรม 12.2 ตามเวลาทกาหนด
จากตารางท 4.1 พบวาเวลาทได ในแตละโหมด เกนคาทกาหนด นน จะมชวงเวลา
หนวงในขนตอนการกดสงการจากเมนโปรแกรม แตภาพรวมถอวาเปนคาทรบได
4.1.2 การทดสอบเซอรวสการท างานของ Webcam
รปท 4.3 แสดงการทดสอบเซอรวสของ webcam สถานะ Stop ผานทาง TTL
จากรปท 4.3 เปนการสงใหเซอรวส motion มสถานะ stop ดวยคาสงบน Command
Line : sudo service motion stop เพอทาการหยดการเลนของกลอง Webcam และเมอเขาใช
ผาน Sever web ดวย port : 8081 (กาหนดจากคาเรมตน) จะเหนไดวาไมมภาพเคลอนไหว
แสดงอย
27
รปท 4.4 แสดงการทดสอบเซอรวสของ webcam สถานะ Start ผานทาง TTL
จากรปท 4.4 เปนการสงใหเซอรวส motion มสถานะ start ดวยคาสงบน Command
Line : sudo service motion start เพอทาการเลนของกลอง Webcam และเมอเขาใชผาน
Sever web ดวย port : 8081 (กาหนดจากคาเรมตน) จะเหนไดวามภาพเคลอนไหวแสดงอย
28
รปท 4.5 แสดงการทดสอบเซอรวสของ webcam สถานะ Stop ผานทาง Web Application
รปท 4.6 แสดงการทดสอบเซอรวสของ webcam สถานะ Start ผานทาง Web Application
29
จากรปท 4.5 และ 4.6 เปนการสงใหเซอรวส motion มสถานะ start/ stop ดวยคาสงบน
เมนโปรแกรม เพอทาการเลน/ หยด ของกลอง Webcam โดยเมอรบคาจากปม ‚Play‛ หรอ
‚Stop‛ ภาษา PHP จะทาหนาทตดตอให Code Python ทางานแลวแสดงผลลพธออกมา
ตารางท 4.2 แสดงผลการทดสอบเซอรวสของ webcam
ล าดบ รายการ สถานะ หมายเหต
1 TTL-Command Line ‚Start‛ Service ‚Start‛
2 TTL-Command Line ‚Stop‛ Service ‚Stop‛
3 Web Application ‚Play‛ Service ‚Start‛
4 Web Application ‚Stop‛ Service ‚Stop‛
จากตารางท 4.2 แสดงผลลพธทไดจากการทดสอบ วาทงสองแนวทางโดย TTL-
Command Line และสงการจากเมนโปรแกรม ทางานและไดผลลพธทตรงกน
30
บทท 5
สรปผลการทดลอง
การนาเทคโนโลย มาประยกตใชกบชวตประจาวนนน สงผลใหชวตปจจบน มความ
คลองตวมากขน ตอบสนองภาระกจทจะตองทาไดรวดเรวเสมอนทาดวยตนเอง ดงจะเหนไดจาก
สารนพนธ ชดนทนาเอาคอมพวเตอรขนาดจวอยาง บอรดราสเบอรรพาย มาควบคมการทางาน
รเลย เพอสงมอเตอร ควบคมการสงการใหอาหารตามปรมาณทเหมาะสม โดยสงงานผานหนา
เวบแอฟพรเคชน งายตอการสงการ และตดตามผลดวยกลองเวบแคม ซงเปนเซอรวสบนตว
บอรดราสเบอรรพาย
5.1 ประโยชนจากการท าสารนพนธ
จากผลการดาเนนงานตงแตบทท 1 – 4 ไดรายละเอยดสรปผลการทดลองงานเรองการ
สงงานมอเตอร ซงควบคมผานระบบเครอขาย โดยสามารถนาไปใชงานไดจรงกบระบบ Box
Feeder การสงการใหอาหารสตวเลยงได
5.2 ปญหาและอปสรรค
ชดอปกรณ Raspberry Pi ยงมขอจากดในสวนความเรวประมวลผลทคอนขางตา แตไม
ชามาก และจะมประสทธภาพในโหมด Command Line (Terminal) จะเรวขน และระบบบอรด
ราสเบอรรพาย เปนระบบปฏบตการ Linux OS การ Configuration บางอยางจาเปนตองใช
คาสง command line ยากตอผไมคนเคย
5.3 แนวทางการน าไปพฒนาตอ
สาหรบระบบ Box Feeder นเราสามารถนาไปพฒนาตอในเรองการประยกตใชกบการ
ใหอาหารชนดอนๆ กบสตวเลยงชนดอนได โดยใชหลกการทางานเดยวกน
สาหรบตวบอรดราสเบอรรพาย นน ขอดของอปกรณ คอ มความเลกกระทดรด,
ประหยดพลงงาน, ใชซอฟแวรแบบฟรสขสทธท งหมด, สามารถทาเปนเซฟเวอรได, สามารถ
SSH/SFTP ได, มขา GPIO เชอมตอกบบอรดคอนโทรลเลอรชนดอน พรอมทงมหนาจอ GUI
และ Command Line (Terminal) ดวยคณสมบตทยดหยน จงเปนอปกรณทเปนทนยม ในการ
นาไปสรางสรรผลงานไดหลากหลาย
31
เอกสารอางอง
[1] เรมตน Raspberry Pi ตอนท 1 [online], Available : http://www.sathittham.com/
raspberry-pi/rpi-ep-1/
[2] Raspberry Pi สาหรบมอใหมกกๆ [online], Available : http://www.ezenow.com/
raspberry-pi
[3] ร เลย (Relay) [online], Available : http://www.psptech.co.th/
%E0%B8%A3%E0%B8%B5%E0%B9%80%E0%B8%A5%E0%B8%A2%E0%B9%8Crela
y%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%
E0%B8%A3-15696.page
[4] ภาษาไพทอน [online], Available : http://python.cmsthailand.com/basic_python.html
[5] ภาษา PHP [online], Available : http://www.mwit.ac.th/~jeab/40201/ch3.php
32
ภาคผนวก ก
33
ภาคผนวก ก
การตดตงโปรแกรมบนบอรดราสเบอรรพาย
หลงจากการตดตงระบบปฏบตการ Raspbian Wheezy ลงใน SD Card แลวนน ทาง
ผจดทาขอนาเสนอการตดตงโปรแกรมทตองใช ลงบอรดดวยสาย USB to TTL serial ดงจะ
แสดงขนตอนดงน
ขนตอนท 1
เตรยมสาย USB to TTL Serial โดยตอสายสแดงท GPIO NO.2, สายสดาท GPIO
NO.6, สายสขาวท GPIO NO.8 และสายสเขยวท GPIO NO.9 ตามรปท ก.1
รปท ก.1 การตอสาย USB to TTL serial
ขนตอนท 2
สงเกตตาแหนง Port ของสาย USB to TTL (ในการทดลองนอยตาแหนง COM3) แลว
เปดโปรแกรม PuTTY ขนมาตงคาดงรป ก.2 แลวคลก Open
34
รปท ก.2 การตงคา PuTTY
ขนตอนท 3
เขาส Command Line พรอมลอกอน (Login: pi Password: raspberry) เปนรหส
เรมตนของบอรด ในกรณทไมเปลยนคาเรมตน ดงรปท ก.3
รปท ก.3 หนาจอ Command Line ของบอรดราสเบอรรพาย
35
ขนตอนท 4
เปลยน IP บนราสเบอรรพาย ถาหากตองการกาหนดแบบ Static IP ดวย
พมพคาสง sudo nano /etc/network/interfaces แลวทาการแกไขไฟล กาหนดคาตามตองการ
ดงตวอยางในรปท ก.4 กด Ctrl-X เพอออก และกด Y เพอบนทก พมพ sudo reboot เพอทา
การรสตารท และตอสาย LAN เขากบชอง Ethernet ของบอรดราสเบอรรพาย เพราะจาเปนตอง
ตออนเตอรเนตเวลาลงโปรแกรม
รปท ก.4 การตงคา IP แบบคงทใหกบบอรดราสเบอรรพาย
ขนตอนท 5
เรมการลงโปรแกรมทจาเปนตองใชในการทดลองตามลาดบดงน
1) พมพคาสง sudo apt-get update เพออฟเดท Raspberry Pi (ถามถามยนยนกด Y)
2) พมพคาสง sudo apt-get upgrade เพออฟเดท Raspberry Pi (ถามถามยนยนกด Y)
3) พมพคาสง sudo apt-get install python-pip สาหรบการเขยนโปรแกรม Python (ถามถาม
ยนยนกด Y)
4) พมพคาสง sudo apt-get install apache สาหรบทา Web Sever
5) พมพคาสง sudo apt-get install php5 สาหรบเขยน Web ดวย PHP
6) พมพคาสง sudo apt-get install motion สาหรบใชเปดกลอง Webcam
7) พมพคาสง sudo apt-get install mpg321 สาหรบใชเลนไฟล MP3
36
การจดการไฟล
การจดการไฟลบนบอรดราสเบอรรพาย ในการทดลองนใชโปรแกรม FileZilla และตงคา
โปรแกรม ดงรป ก.5 เพอใชในการถายโอนไฟลจาก PC สบอรดราสเบอรรพาย
รปท ก.5 การตงคาโปรแกรม FileZilla ผาน SFTP (SSH File Transfer Protocol)
37
ภาคผนวก ข
1. Code Program สวนหนาเวบเพจ File: index.php
รปท ข.1 หนาเวบลอกอน (index.php)
จากรป ข.1 เปนหนาเวบหลก ซงไดสรางฟงกช นในการเชคผใช และพาสเวรดแบบงาย
โดยตงเพยง 1 user 1 password (User: admin, Pass: 1111) เทานน โดยแสดงตาม Code
File: index.php ดานลาง
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Welcome Box Feeder</title>
<style type="text/css">
<!--
38
body {
background-image: url();
background-color: #ECECEC;
}
.style1 {
font-size: x-large;
font-weight: bold;
}
.style9 {color: #FF0000}
.style12 {color: #F07726}
.style13 {color: #000000; }
.style14 {color: #B90000}
.style15 {font-size: xx-small}
.style16 {font-size: x-small; }
.style19 {font-size: xx-large}
.style20 {font-size: large}
.style21 {font-size: x-large}
.style22 {font-size: medium}
-->
</style></head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1">
<p align="center" class="style1 style14"> <span class="style19">BOX</span> <span
class="style19">F</span>E<span class="style20">E<span
class="style21">D</span>E</span><span class="style22">R</span>!</p>
<table width="31%" border="0" align="center">
<tr background="images/BGLOGIN.jpg">
<td colspan="2"><div align="center" class="style13"></div>
<div align="center" class="style13"><strong>LOG IN </strong></div></td>
39
</tr>
<tr background="images/BGLOGIN.jpg">
<td nowrap><div align="left" class="style13"><strong>User : </strong></div></td>
<td><div align="center" class="style13">
<input name="username" type="password" id="username">
<label><label></label></label></div></td>
</tr>
<tr background="images/BGLOGIN.jpg">
<td nowrap><div align="left" class="style13"><strong>Password :
</strong></div></td>
<td><div align="center" class="style13">
<input name="password" type="password" id="password">
</div></td>
</tr>
<tr background="images/BGLOGIN.jpg">
<td><div align="center"><span class="style12"><span class="style9"><span
class="style13"></span></span></span>
</div></td>
<td><div align="center" class="style13"> <input name="submit" type="submit"
id="submit" value="submit">
</div></td>
</tr>
</table>
<div align="center">
<p>
<?php
$username = $_POST['username'];
40
$password = $_POST['password'];
$submit = $_POST['submit'];
if($submit == "submit")
{
if($username == "admin" AND $password == 1111)
{
echo "กาลงนาทานเขาสระบบ Box Feeder! โปรดรอสกคร.......";
echo '<meta http-equiv= "refresh" content="3; url=main.php"/>';
} else {
echo "โปรดตรวจสอบรหสผาน หรอพยายามลองอกครง";
echo '<meta http-equiv= "refresh" content="1; url=index.php"/>';
}
}
?>
</p>
<p><img src="images/dog1.png" width="213" height="180" align="middle">
</p>
</div>
<p> </p>
</form>
<p align="right" class="style15"> </p>
<p align="right" class="style15"> </p>
<p align="right" class="style15"> </p>
<p align="right" class="style15"> </p>
<p align="right" class="style16">IS2-MSNE-MSMUT-1/2558</p>
<p align="right" class="style16">by 5617660004</p>
</body>
</html>
41
2. Code Program สวนหนาเวบเพจโปรแกรมหลก File: main.php
รปท ข.2 หนาเวบโปรแกรมหลก (main.php)
จากรป ข.2 เปนหนาเวบโปรแกรมหลก ประกอบดวยฟงกชนสงงานทงหมด ไดแก
ฟงกชนกลองเวบแคม โดยกดปม Play เพอเลน และปม Stop เพอหยด และฟงกชนการให
อาหารแบบสามตวเลอก 100, 200 และ 300 กรม โดยกดปม Feed! เมอสนสดการทางาน
ฟงกชนใหอาหาร ฟงกชนเลนไฟลเสยง MP3 จะเรมทางาน และสนสดเมอจบไฟลเสยงอตโนมต
โดยแสดงตาม Code File: main.php ดานลาง
<html>
<body>
<center>
สวนแสดงผลของไฟล
embed.php
42
<table width="43%" border="0" align="center" cellpadding="1" cellspacing="0"
background="images/dog2.png">
<tr>
<th width="322" height="10" scope="col"> </th>
<td width="150" rowspan="9" scope="col"><img src="images/bull-terriar.png"
width="196" height="276"></td>
</tr>
<tr>
<th scope="col"><span class="style20">BOX FEEDER! </span></th>
</tr>
<tr>
<th height="5" scope="col"> </th>
</tr>
<tr>
<td bordercolor="#FF00FF"><div align="center"><span class="style1"><img
src="http://192.168.1.99:8081/embed.php" alt="" width="320" height="240" hspace="0"
vspace="0" border="1" align="top"></span>
</div></td>
</tr>
<tr>
<td align="center" valign="middle" nowrap><div align="center" class="style21">
>>> กลอง webcam <<< </div></td>
</tr>
<tr>
<td height="46">
<form name="form1" method="post" action="">
<div align="center">
<input name="camon" type="submit" id="camon" value="Play">
<?php
43
if(isset($_POST['camon']))
{
exec('python /home/pi/camon.py');
}
?>
<input name="camoff" type="submit" id="camoff" value="Stop">
<?php
if(isset($_POST['camoff']))
{
exec('python /home/pi/camoff.py');
}
?>
</div>
</form>
</td>
</tr>
<tr>
<td align="center" valign="middle"><span class="style18">**** ตวเลอกสาหรบสงให
อาหาร **</span><span class="style22">*</span>* </td>
</tr>
<tr>
<td><form name="form2" method="post" action="">
<div align="center">
<select name="select">
<option value='1'>อาหาร 100g</option>
<option value='2'>อาหาร 200g</option>
<option value='3'>อาหาร 300g</option>
</select>
44
<input name="feed" type="submit" id="feed" value="Feed!">
<?php
switch($_POST['select']) {
case '1':
exec('python 100g-1.py');
break;
case '2':
exec('python 200g-1.py');
break;
case '3':
exec('python 300g-1.py');
break;
}
?>
</div>
</form></td>
</tr>
<tr>
<td><form name="form3" method="post" action="">
<input name="imageField" type="image" src="images/tree.png" width="200"
height="40" border="0">
<input name="imageField" type="image" src="images/art_42189620.png"
width="120" height="100" border="0">
</form></td>
</body>
</html>
3. Code Program สวนเสรมโปรแกรมหลก File: embed.php
จากรป ข.2 จะสงเกตเหนสวนเสรมเพอดภาพของกลองเวบแคม เมอเซอรวสกลอง
ทางานกจะแสดงผลออกมาเปนภาพจรง (Real Time) ณ ขณะเวลานน
45
โดยแสดงตาม Code File: embed.php ดานลาง
</head>
<body>
<?PHP
system('sudo raspistill -hf -w 320 -h 240 -o /var/www/imageembed.jpg -t 0');
$filename = "imageembed.jpg";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
echo $contents;
?>
</body>
</html>
4. Code Program สวนภาษาไพทอน (Python)
Code ทถกเขยนดวยภาษาไพทอน ในการทดลองม 2 ฟงกชน ไดแกฟงกชนกลองเวบ
แคม และฟงกชนใหอาหาร
- ฟงกชนกลองเวบแคม ประกอบดวยไฟล camon.py และ camoff.py
รปท ข.3 แสดง Code camon.py
46
รปท ข.4 แสดง Code camoff.py
- ฟงกชนใหอาหาร พรอมเลนไฟลเสยง MP3 ประกอบดวย 100g-1.py คกบ 100g.py,
200g-1.py คกบ 200g.py และ 300g-1.py คกบ 300g.py
รปท ข.5 แสดง Code 100g-1.py และ 100g.py
47
รปท ข.6 แสดง Code 200g-1.py และ 200g.py
48
รปท ข.7 แสดง Code 300g-1.py และ 300g.py