Upload
dangthuy
View
248
Download
7
Embed Size (px)
Citation preview
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม i
ชอโครงงาน Arduino & Raspberry Pi ส าหรบวดอณหภม
ผจดท า นาย ปณม ขอศานต 5335512012
ภาควชา วศวกรรมคอมพวเตอร
ปการศกษา 2556
บทคดยอ
อารดยโน (Arduino) เปนไมโครคอนโทรลเลอรชนดหนงทเปนแบบ Open Hardware คอมแบบสวนประกอบเปนมาตรฐานทเปดเผย สามารถคนหาขอมลไดงาย ราคาถกมซอฟตแวรใหใชงานฟร และมผน ามาใชงานเปนจ านวนมาก จดวาเปนรปแบบทมขอมลบนอนเตอรมากทสด
บอรด Raspberry Pi เปนบอรดคอมพวเตอร 32 บต ขนาดเลกขนาดเทากบเครดตการด รองรบระบบปฏบตการ Linux ทพฒนาโดย Raspberry Pi Foundation ทชวงแรกหวงวาจะใชเปนสอการเรยนการสอน การเขยนโปรแกรมคอมพวเตอรส าหรบเดกๆ แตดวยเปนบอรดทราคาไมแพงมาก ใชงานงายเมอเทยบกบบอรดอนๆ เหมาะส าหรบผเรมตน ท าใหเปนทนยมแพรหลายสบคคลทวไปอยางรวดเรว
ผพฒนาจงเกดแนวคดออกแบบท าเครองมอวดอณหภมในพนทนนๆ เพอใหกลมคนทไมมเวลาวางไดทราบถงภมอากาศในพนทของตนเองผานทางโทรศพทในชวงเวลาท างานหรอตดธระ
โดยใชบอรด Arduino เปนตวรบคาอณหภมเนองจากเปนเครองมอทจะท าใหคอมพวเตอรสามารถรบสญญาณจากภายนอกและสงสญญาณไปควบคมอปกรณภายนอกไดอยางมประสทธภาพมากกวาใชเครองพซตงโตะ และตวบอรดสามารถประกอบขนใชเอง หรอจะซอส าเรจทมขาย สวน
โปรแกรมพฒนา Arduino สามารถดาวนโหลดไดฟรโดยมความคาดหวงวาผลงานจะเปนแนวทางการศกษาแกผสนใจเพอน าไปใชในการพยากรณสภาพอากาศและเกษตรกรรมในพนทตางๆ
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม ii
Project Title Arduino & Raspberry Pi for the thermometer
Author Mr. Punnamee Khosanti 5335512012
Department Computer Engineering
Academic Year 2556
Abstract
Arduino microcontroller is a type of Open Hardware is a component model is a standard disclosure. Can find information easily Is a software to free applications and has led to a lot considered a form containing information on the Internet.
Raspberry Pi computer board 32-bit index is smaller than a credit card. Supports the Linux operating system developed by the Raspberry Pi Foundation is hoping to use the home as a medium of instruction computer programming for children. However, with a board that is very affordable. Easy to use compared to other boards. Suitable for beginners made to the widely popular guest quickly.
Thus was born the concept design developed for measuring temperature in the area. To a group of people who do not have time to know the weather in their area via phone during working hours or busy using Arduino board to get the temperature as it is a tool that enables your computer to receive signals from outside and send signals to control external devices more efficiently than a desktop PC and the board can make up your own or to buy success with sales. The Arduino development program can be downloaded for free, with the expectation that the work would be interesting to study to be used in forecasting weather and farming in the area.
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม iii
หนงสอรบรองความเปนเอกลกษณ
ขาพเจาผลงนามขางทายน ขอรบรองวารายงานฉบบนเปนรายงานทมความเปนเอกลกษณ โดยทขาพเจามไดคดลอกมาจากทใดทหนง และถาหากวาไดท าการคดลอกขอความใด ขอความหนงมา ขาพเจากไดอางองถงเอกสารตนฉบบอยางเหมาะสม และขอรบรองวารายงานฉบบนเปนรายงานทยงมไดเสนอตอสถาบนใดมากอน
ผจดท า
12 มนาคม 2557
ลงชอ …………………………………………
(นายปณม ขอศานต)
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม iv
กตตกรรมประกาศ
โครงงานโปรแกรมจ าลองการผนน าลงสทะเลดวยเครองผลกดนน าน จะเกดขนไมได หากไมไดรบความเออเฟอ ชวยเหลอ และเอาใจใสจาก ดร. วโรดม วระพนธ อาจารยทปรกษาโครงการ และคณาจารย รวมทงบคลากรภาควชาวศวกรรมศาสตรคอมพวเตอร มหาวทยาลยสงขลานครนทร วทยาเขตภเกต ทกทานทใหความรและแนะแนวทางตางๆอนเปนประโยชนตอการท าโครงงานน จงขอขอบพระคณมา ณ ทน
นายปณม ขอศานต
ผจดท า
12 มนาคม 2557
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม v
สารบญ
เรอง
บทคดยอ .................................................................................................................................................... i
Abstract….. ............................................................................................................................................... ii
หนงสอรบรองความเปนเอกลกษณ............................................................................................................iii
กตตกรรมประกาศ......................................................................................................................................iv
สารบญ.........................................................................................................................................................v
สารบญรปภาพ...........................................................................................................................................vii
สารบญตาราง............................................................................................................................................viii
บทท 1 บทน า ............................................................................................................................................ 1
1.1 ความเปนมา (Motivation) .............................................................................................................. 1
1.2 วตถประสงคของโครงงาน ............................................................................................................ 2
1.3 ขอบเขตของโครงงาน .................................................................................................................... 2
1.4 ขนตอนในการด าเนนงาน .............................................................................................................. 2
1.5 ประโยชนทคาดวาจะไดรบ ............................................................................................................ 3
1.6 สถานทท าโครงงาน ....................................................................................................................... 3
1.7 เครองมอทใชในการพฒนา ............................................................................................................ 3
บทท 2 ความรพนฐาน ............................................................................................................................... 5
2.1 ทฤษฎ ............................................................................................................................................ 5
2.1.1 Arduino Board ....................................................................................................................... 5
2.1.2 Chip และ IC ภายใน Arduino Board ทส าคญ ........................................................................ 8
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม vi
2.1.3 ค าสงพนฐานในโปรแกรม ................................................................................................... 15
2.1.4 Sensor ทใชในการวดอณหภม ............................................................................................ 20
2.1.5 Xbee ................................................................................................................................... 23
2.1.6 16x2 LCD (ACM1602B-FL-GBH) ..................................................................................... 24
2.1.7 C# ....................................................................................................................................... 25
2.1.8 Raspberry Pi ....................................................................................................................... 26
บทท 3 รายละเอยดการท างาน ................................................................................................................. 30
3.1 Software Specification ............................................................................................................... 30
3.2 System Architecture................................................................................................................... 31
3.3 System Design ........................................................................................................................... 32
3.4 System Implementation ............................................................................................................. 33
3.5 แผนการด าเนนงาน ....................................................................................................................... 42
บทท4 การทดลองและสรปผล ............................................................................................................... 43
4.1 การทดลอง .................................................................................................................................. 43
4.2 สรปผลการทดลอง ...................................................................................................................... 44
4.3 ปญหาและอปสรรค ..................................................................................................................... 44
4.4 ขอเสนอแนะ / แนวทางการพฒนาตอ .......................................................................................... 45
บรรณานกรม..............................................................................................................................................46
ภาคผนวก ก (การตดตงโปรแกรม) ...........................................................................................................47
ภาคผนวก ข (Source Code) ………..........................................................................................................50
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม vii
สารบญรปภาพ
รปท 2-1 Arduino Board ........................................................................................................................... 5
รปท 2- 2 ซพย ATMEGA328P ขนาด 28 ขา ............................................................................................. 8
รปท 2-3 เปรยบเทยบการจดการหนวยความจ าของสถาปตยกรรม แบบ Von-Neumann และ Harvard ..... 9
รปท 2- 4 แสดง pin ของ Arduino Board ................................................................................................ 10
รปท 2-5 Block Diagram ........................................................................................................................ 11
รปท 2-6 แสดงการเชอมตอ MAX3421E กบ Microprocessor ดวย pin 3, 4 ............................................ 11
รปท 2-7 Pin Configurations .................................................................................................................. 13
รปท 2-8 IC FT232RL ............................................................................................................................ 13
รปท 2-9 แสดง Block Diagram ของ FT232RL .................................................................................. …14
รปท 2-10 แสดง Device Pin Out ............................................................................................................ 14
รปท 2-11 แสดง Schematics ของ FT232RL ตอกบ USB ....................................................................... 15
รปท 2-12 DHT22 (AM2302) ............................................................................................................... .21
รปท 2-13 DHT11 ................................................................................................................................. .22
รปท 2-14 Xbee Series1 Pro Whipant……………………...…………........……………………………23
รปท 2-15 16x2 LCD (ACM1602B-FL-GBH)……...…..………………………………………………24
รปท 2-16 Raspberry Pi………………....……...……………....……………………………….………27
รปท 2-17 สวนประกอบของ Raspberry Pi...……...……...…………………………………………..…28
รปท 2-18 Port ของ Raspberry Pi...………..……...…………………………………………………….29
รปท 3-1 การแสดงภาพการควบคมการท างานของ Sensor…………….…………………..…………....31
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม viii
สารบญรปภาพ (ตอ)
รปท 3-2 ภาพแสดงโครงสรางของ Raspberry Pi กบ Sensor Temperature32………..…………………32
รปท 3-3 ผลการวดทแสดงผานทาง ใช Microsoft Visual Studio 2010………………………………….33
รปท 3-4 โปรแกรมทเขยนเพออานคาจาก Serial Port………………………………………..……….…33
รปท 3-5 แสดงคาทวดไดจาก Sensor ผานทางLCD 16*4……………………………………………….34
รปท 3-6 เปนการสรางแบบวงจรทจะกด………………………………………………………………...35
รปท 3-7 เปนเสนทใชกดบอรด..................................................................................................................35
รปท 3-8 การบอรดดวยน ายากดดวยเครองเขยาแผนPCB ของทางภาควชา……………………………...36
รปท 3-9 การใช Raspberry Pi กบ กลอง...................................................................................................36
รปท 3-10 ผลทดลองการใช Raspberry Pi กบ กลอง................................................................................37
รปท 3-11 ผลการวดจากเซนเซอรผานทาง Hyper terminal……………………………………………..37
รปท 3-12 การเกบคาวดจากเซนเซอรใน Googledocs..………………………………………………….38
รปท 3-13 การเขยน Script auto run..........................................................................................................38
รปท 3-14 ผลการวดจาก auto run โปรแกรม...………………..………………………………………...39
รปท 3-15 การแสดงการเกบคาวดจากเซนเซอร PHPpmyadmin…….………………………………….40
รปท 3-16 การแสดงคาจากเซนเซอรทวดไดผานทาง LCD Display……………………………………..41
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม ix
สารบญตาราง ตารางท 2-1 Technical Specification: ..................................................................................................... 21 ตารางท 2-2 Technical Specification: ................................................................................................... ..22 ตารางท 2-3 ต าแหนงของขาและหนาทการใชงานของ LCD โมดล..........................................................25 ตารางท 3-1 แสดงการด าเนนงาน..…………………………………………………………..…………..42
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 1
บทท 1 บทน า
บทนจะเปนการกลาวถงภาพรวมของโครงงาน ซงประกอบดวยความเปนมา วตถประสงคและขอบเขตการท างานของการวดอณหภมในอากาศ
1.1 ความเปนมา (Motivation) จากสภาพอากาศในปจจบนทมการเปลยนแปลงอยางตอเนอง ไมวาจะเกดขนเองตาม
ธรรมชาต หรอมลพษทเกดจากฝมอมนษยท าใหการพยากรณอากาศทวไป พยากรณอากาศการเกษตร และพยากรณอตนยมวทยาอทกฯลฯ อาจเกดความผดพลาดและคลาดเคลอนจง สงผลกระทบใหเกดสภาพอากาศทแปรปรวน อณหภมสงขน ฝนตกไมถกตองตามฤดกาลมความแหงแรงในพนทตางๆ อกทงผคนทออกไปท างานตองเจอกบสภาพอากาศทเปลยนแปลงบอยครงโดยไมรตว ท าใหเกดการลมปวย และโรคระบาดเปนผลกระทบตามมาในหลายๆดาน จากสภาพอากาศทเปลยนแปลงบอยนขาพเจาจงเกดแนวคดออกแบบท าเครองมอวดอณหภมในพนทนนๆเพอใหกลมคนทไมมเวลาวางไดทราบถงภมอากาศในพนทของตนเองผานทางโทรศพทในชวงเวลาท างานหรอ
ตดธระโดยใชบอรด Arduino เปนตวรบคาอณหภม เปนเครองมอทจะท าใหคอมพวเตอรสามารถรบสญญาณจากภายนอกและสงสญญาณไปควบคมอปกรณภายนอกไดอยางมประสทธภาพมากกวาใชเครองพซตงโตะ และตวบอรดสามารถประกอบขนใชเอง หรอจะซอส าเรจทมขาย และไดเปลยนมาใชบอรด Raspberry Pi เนองจากเปนบอรดคอมพวเตอร 32 บต ขนาดเลกขนาดเทากบเครดตการด สามารถรองรบระบบปฏบตการ Linux ทพฒนาโดย Raspberry Pi Foundation เปนบอรดทราคาไมแพงมาก ใชงานงายเมอเทยบกบบอรดอนๆ ท าใหเปนทนยมแพรหลายสบคคลทวไปอยางรวดเรว สวนโปรแกรมพฒนา Raspberry Pi สามารถดาวนโหลดไดฟร โดยมความคาดหวงวาผลงานจะเปนแนวทางการศกษาแกผสนใจเพอน าไปใชในการพยากรณสภาพอากาศ และเกษตรกรรมในพนทตางๆ
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 2
1.2 วตถประสงคของโครงงาน 1. เพอเขาใจหลกการท างานของบอรด Raspberry Pi
2. เพอประยกตใชงานบอรด Raspberry Pi เขากบ Sensor temperature DHT22
3. เพอใชวดการเปลยนแปลงของอณหภมในสภาพอากาศปจจบนวามมากนอยเพยงใด
4. เพอน าไปใชใหเกดประโยชนในดานการพยากรณสภาพอากาศ และดานอนๆ
1.3 ขอบเขตของโครงงาน Prepare project
สามารถใชงานบอรด Arduino โดยแสดงผลการท างานผานทาง LED
สามารถใชงานบอรด Arduino โดยแสดงผลการท างานผานทาง 7-segment
Project I
ประยกตsensor วดอณหภมใหใชงานรวมกบบอรด Arduino ได
เชอมตอบอรด Arduino เขากบระบบปฏบตการ Android
แสดงอณหภมทไดจากการวดผานทางระบบปฏบตการ Android
Project II
สามารถใชงานบอรด Raspberry Pi โดยแสดงผลการท างานผานทางกลอง
สามารถใชงานบอรด Raspberry Pi Sensor temperature DHT22
สามารถใชงานบอรด Raspberry Pi ในการสรางฐานขอมลเกบขอมล
สามารถใชงานบอรดในการสงอปกรณตางๆ เชน พดลม หลอดไฟ
1.4 ขนตอนในการด าเนนงาน 1. ศกษาสวนประกอบตางๆภายในบอรด Arduino
2. ศกษาค าสงทใชในการเขยน Sourcecode เพอใหใชงานบอรด Arduino ได
3. ศกษา Sensorทใชวดอณหภมและสามารถใชงานกบบอรด Arduino ได
4. เขยน Sourcecode ควบคมบอรด Arduino ใหแสดงผลผานทาง LED
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 3
5. เชอมตอ Sensor เขากบบอรด Arduino ใหแสดงผลอยางงาย
6. เชอมตอบอรด Arduino เขากบระบบปฏบตการ Android
7. แสดงอณหภมทไดจากการวดผานทางระบบปฏบตการ Android
8. ศกษาการใชงานบอรด Raspberry Pi
9. ศกษาสวนประกอบตางๆภายในบอรด Raspberry Pi
10. เชอมตอ Sensor เขากบบอรด Raspberry Pi ใหบนทกผลใน Google docs
11. สามารถสรางฐานขอมลใน Raspberry Pi เพอเกบคาทวดได
12. Raspberry Pi สามารถสงงานอปกรณเสรมได
1.5 ประโยชนทคาดวาจะไดรบ 1. เพอน าไปใชในดานการพยากรณสภาพอากาศ
2. เพอเพมความสะดวกสบายใหกบกลมคนทตองรเกยวกบสภาพอากาศ
3. เพอน าไปประกอบการตดสนใจในการด าเนนกจการของตนได
4. เพอใชในการวางแผนการจดการทรพยากรธรรมชาต
5. เพอใชในการวางแผน และเตรยมตวปองกนบรรเทาลดภยธรรมชาตทอาจจะเกดไดใน
อนาคต
6. มการพฒนาและเกดกระบวนการเรยนรในเทคโนโลยใหมสามารถน ามาประยกตใน
การปฏบตงานใหเกดประโยชนสงสดได
1.6 สถานทท าโครงงาน หองชมรมฮารดแวรคลบ ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร
มหาวทยาลยสงขลานครนทร วทยาเขตภเกต
1.7 เครองมอทใชในการพฒนา Hardware
Arduino board ATMEGA32A Sensor temperature DHT22 Xbee
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 4
LCD Display 16*2 Raspberry Pi
Software ภาษาทใช Arduino 0023
C#
Eagle
Python
Linux OS
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 5
บทท 2ความรพนฐาน
ส าหรบบทนจะกลาวถงความรพนฐานทจ าเปนส าหรบการจดท าโครงงานนขนมาโดยในบทนไดกลาวถงความรเกยวกบ Arduino สวนประกอบตางๆภายใน Arduino Board ค าสงทใชในการเขยนและ Sensor ทใชในการวดอณหภม
2.1 ทฤษฎ
2.1.1 Arduino Board [1][2][3][4]
รปท 2-1 Arduino Board
จากรปท 2-1 เปน plat form ของ I/O บอรดอยางงายๆ ทม I/O ขนพนฐานทพอเพยงกบการ
ใชงานและ การเรยนร โดยตวบอรดจะมาพรอมกบชดค าสงทใชควบคม port I/O ไมวาจะเปน port digital, port analog, PWM และ Serial port ซง Arduino นนเปนเครองมอทจะท าใหคอมพวเตอรสามารถรบสญญาณจากภายนอกและสงสญญาณไปควบคมอปกรณภายนอกไดอยางมประสทธภาพมากกวาใชเครองพซตงโตะ ตวบอรดออกแบบจากไมโครคอมพวเตอรชพเดยว และ
มโปรแกรมพฒนาส าหรบเขยนโปรแกรมใหบอรดท างาน Arduino สามารถประยกตท าเครองใชอจฉรยะ รบสญญาณจากสวทซ หรอเซนเซอร และควบคม หลอดไฟ มอเตอร หรออปกรณอนๆ
โปรเจค Arduino เปนไดทงแบบท างานอสระ หรอท างานตดตอกบโปรแกรมทท างานบน
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 6
เครองพซ ตวบอรดสามารถประกอบขนใชเองหรอจะซอส าเรจทมขาย สวนโปรแกรมพฒนา
Arduino สามารถดาวนโหลดไดฟร
Arduino เปนภาษาอตาล ซงใชเปนชอของโครงการพฒนาไมโครคอนโทรลเลอรตระกล
AVRแบบ Open Sourceทไดรบการปรบปรงมาจากโครงการพฒนา Open Source ของ AVR อก
โครงการหนงทชอวา “Wiring” แตเรองจากโครงการของ “Wiring” เลอกใช AVR เบอร
ATmega128 ซงเปนไมโครคอนโทรลเลอร ทมจ านวนของหนวยความจ า และ I/O คอนขางมากและทส าคญ ATmega128 เปนชพทมตวถงแบบ SMD จงท าใหเปนอปสรรคส าหรบผเรมตนในการสรางบอรดและตอวงจรขนมาใชงานกนเอง และบอรดจะมขนาดคอนขางใหญ ซงอาจดวาเกน
ความจาเปนส าหรบผเรมตน จงไมคอยไดรบความนยมเทาทควร แตหลงจากททมงาน Arduino น าSource Code ของ “Wiring” มาพฒนาปรบปรงใหมโดยใหสามารถใชงานกบ
ไมโครคอนโทรลเลอรขนาดเลกเชน Mega8, Mega168, Mega328 ไดจงท าใหระบบวงจรของบอรดมขนาดเลกลงกวา “Wiring”มากและยงใชอปกรณนอยชนท าใหงายตอการตอวงจรใชงานกนเอง และยงประหยดตนทนในการสรางบอรดไปไดมาก ดวยเหตนเองทท าให “Arduino” ไดรบความนยมจากผใชงานทวโลกเปนอยางมากในระยะเวลาอนรวดเรว
Arduino มจดเดนในเรองของความงายตอการเรยนรและใชงาน เนองจากมการออกแบบค าสงตางๆขนมาสนบสนนการใชงาน ดวยรปแบบทงายไมซบซอน ในตลาดไมโครคอนโทรลเลอร
มตวเลอกมากมาย เชน Parallax Basic Stamp, Netmedia's BX-24, Pidgets, MIT's Handyboard และอกหลายเจาทมคณสมบตใกลเคยงกน คอท าโปรเจคใหใชงานงาย และเนนการโปรแกรมไมโครคอนโทรลเลอรเปนหลก Arduino กเชนเดยวกนแตมขอแตกตางทเหนไดชดคอ
มราคาไมแพง เนองจากม Source Code และวงจรแจกฟร สามารถตอวงจรขนมาใชงานไดเอง
ท างานไดหลายแพลตฟอรม - โปรแกรมพฒนา Arduino ท างานไดทงบนวนโดวส
Macintosh OSX และ บนลนกซ ในขณะทบอรดอนท างานไดเฉพาะบนวนโดวส
ใชงานงาย มโปรแกรมพฒนาทไมซบซอน มโปรแกรมพฒนา Arduino ใชงานงายส าหรบมอใหม และมความสามารถครบความตองการของนกพฒนามออาชพ
เปดเผยซอรสโคด และ น าไปพฒนาตอยอดได โปรแกรม Arduino ตพมพแบบเปดเผย
ซอรสโคด และสามารถเพมเตมความสามารถผาน C++ library ถาตองการศกษาใหลกซง
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 7
สามารถขามไปเลน AVR C ซงเปนตนแบบของ Arduino และสามารถเพมเตม AVR – C โคดไดโดยตรง
เปดเผยวงจร และน าไปพฒนาขยาย Hardware ได Arduino ใชไมโครคอนโทรลเลอร
ของ Atmel วงจรของบอรดตพมพแบบเปดเผยวงจรภายใต Creative Commons License สามารถน าไปดดแปลงตอขยายและเพมประสทธภาพ เพอศกษาการท างานของไดฟร
Arduino เปนบอรดไมโครคอนโทรลเลอรโดยใช AVR ขนาดเลกเปนตวประมวลผลและสงงานเหมาะส าหรบน าไปใชในการศกษาเรยนรระบบไมโครคอนโทรลเลอร และน าไป
ประยกตใชงานเกยวกบการควบคมอปกรณ Input / Output ตางๆไดมากมาย ทงในแบบทเปนการท างานตวเดยวอสระ หรอเชอมตอสงงานรวมกบอปกรณอนๆ เชน คอมพวเตอร PC ทงนก
เนองมาจากวา Arduino สนบสนนการเชอมตอกบอปกรณ Input / Output ตางๆไดมากมาย ทงแบบ Digital และ Analog เชน การรบคาจากสวตซ หรออปกรณตรวจจบ (Sensor) แบบตางๆ รวมไปถง การควบคมอปกรณ Output ตางๆ ตงแต LED หลอดไฟ มอเตอร รเลย ฯลฯ โดยระบบ
ฮารดแวรของ Arduino สามารถสรางและประกอบขนใชงานไดเอง ในกรณทผใชพอมความรดานอเลกทรอนกสอยบาง หรอสามารถซอแผงวงจรส าเรจรปทมการผลต ออกจ าหนายกนในราคาทไม
แพง อกทงยงเผยแพร Source Code และตว อยางตางๆ ใหผใชน าไปใชงาน หรอพฒนาดดแปลงตอยอดไดโดยไมเสยคาใชจายใดๆ
สวนภาษาในการเขยนโปรแกรมลงบน Arduino นนจะใชภาษา C++ ซงเปนรปแบบของโปรแกรมภาษาซประยกตแบบหนง ทมโครงสรางของตวภาษาโดยรวมใกลเคยงกนกบภาษาซ
มาตรฐาน (ANSI-C) อนๆเพยงแตไดมการปรบปรงรปแบบในการเขยนโปรแกรมบางสวนทผดเพยนไปจาก ANSI-C เลกนอยเพอชวยลดความยงยากในการเขยนโปรแกรมและใหผเขยนโปรแกรมสามารถเขยนโปรแกรมไดงายและสะดวกมากขนกวาการเขยนภาษาซตามแบบมาตรฐาน
ของ ANSI-C โดยตรง
ซงจากการทไดท าการศกษาคนควาทดลองการใชงานภาษาซของ Arduino มาใน
ระยะเวลาหนงจะพบวาในความเปนจรง แลว Arduino นนไมใช C-Compiler โดยตรง แต
Arduino จะมลกษณะการท างานเชนเดยวกนกบ Text Editor เปนฉากหนาในการตดตอสอสารกบผใชเทานน สวนเบองหลงจรงๆนน Arduino จะไปเรยกใชตวแปลภาษาซและ Utility อนๆ ท
ใชเปนเครองมอพฒนาโปรแกรมของไมโครคอนโทรลเลอรตระกล AVR อกทหนง โดย Arduino
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 8
จะเลอกใช C-Compiler ของ “GNU AVR-GCC Toolchain” รวมกบ Library Function ของ “avr-libc” สวน Utility ทใชในการ Upload Code ใหกบ AVR นนกจะใชของ “AVRDude” ดงนนผทเขยนภาษาซของ AVR เปนอยแลว และตองการประยกตใชงาน Arduino ใหไดประสทธภาพการทางานมากยงขนไปอก กสามารถศกษาขอก าหนด และหนา ทในการใชงาน
Library และค าสงอนๆทบรรจไวใน Library ตางๆ ทงจากของ “GNU AVR-GCC Toolchain”และ “avr-libc” เพมเตมอก เพอใชเปนแนวทางในการปรบปรงและประยกตใชงาน Arduino ในรปแบบทสลบซบซอนมากๆ ขนไปไดอก
2.1.2 Chip และ IC ภายใน Arduino Board ทส าคญ
ATmega32A-PU
รปท 2-2 ซพย ATMEGA32A ขนาด 28 ขา
ตวบอรด Arduino ทใชนจะกลาวถงสถาปตยกรรมของ AVR ขนาด 8 บต โดยใน
สถาปตยกรรม AVR ซงออกแบบโดย ATMEL เมอป1996 เปนซพยแบบ RISC (Reduced Instruction Set Computer) มสถาปตยกรรมการตอหนวยความจ าแบบ Harvard ซงแยกหนวยความจ าโปรแกรมและหนวยความจาขอมลออกจากกนโดยเดดขาด ดงแสดงใน รปท 2-2 โดย
ใชหนวยความจาแบบ Flash ส าหรบเป นหนวยความจ าโปรแกรม และใชหนวยความจ าแบบ
SRAM ส าหรบหนวยความจ าขอมล และนอกจากนยงมหนวยความจ าแบบ EEPROM ซงสามารถเกบขอมลเอาไวไดโดยไมจ าเปนตองมไฟเลยงอกดวย
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 9
รปท 2-3 เปรยบเทยบการจดการหนวยความจ าของสถาปตยกรรมแบบ Von-Neumann และ Harvard
จาก รปท 2-3 จะเหนวาโพรเซสเซอรทใชสถาปตยกรรมแบบ Harvard จะแยก
หนวยความจ าส าหรบเกบขอมลออกจากโปรแกรมอยางชดเจนสถาปตยกรรม AVR และ MCS-51 จะใชรปแบบนในการจดการหนวยความจ าสวนสถาปตยกรรมแบบ Von-neumann การตดสนใจวาจะเกบโปรแกรมหรอขอมลจะแบงเกบอยางไรจะท าไดอยางอสระโดยขนอยกบโปรแกรมเมอรหรออาจจะเปนระบบปฏบตการเป นผด าเนนการใหลกษณะเดนของสถาปตยกรรม AVR คอค าสง
สวนใหญสามารถท างานไดเสรจภายใน 1 clock cycle ตวซพย AVR ขนาด 8 บตจะแบงออกเปนประเภทการใชงานได 5 กลมไดแก
-tinyAVR เปนซพยในรนเลกซงตองการความเลกกะทดรดของวงจรโดยเหมาะกบระบบควบคมขนาดเลกๆทตองการหนวยความจาและวงจรสนบสนนไมมากนกซพยในรนนจะมราคาถกกวากลมอน
- megaAVR จะมชออกอยางวา ATmega โดยมวงจรสนบสนนภายในเพมเตมตลอดจน
เพมขนาดของหนวยความจาใหใชงานมากกวาตระกล Tiny เหมาะกบงานควบคมทวๆไป
- XMEGA เพมความละเอยดของวงจร A/D จากปกตมความละเอยด 10 บตในรนเลกกวา
เปน 12 บตและวงจร DMA controller ซงชวยลดภาระของซพยในการควบคมการรบสงขอมลระหวางอปกรณ I/O กบหนวยความจา
- FPSLIC (AVR core with FPGA) ส าหรบงานทตองการควบคมทตองการความยดหยนในขนตอนการออกแบบและพฒนาโดยผออกแบบสามารถออกแบบวงจรในระดบฮารดแวร
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 10
เพมเตมดวยภาษาบรรยายฮารดแวร (HDL: Hardware Description Language) เชนภาษา
VHDL หรอภาษา Verilog และใหวงจรทออกแบบทางานรวมกบซพย AVR core
- Application Specific AVR เปนซพยทออกแบบมาโดยเพมวงจรควบคมเฉพาะดานเขาไปซงไมพบในซพยกลมอนๆเชนวงจร USB controller หรอวงจร CAN bus เปนตน
รปท 2-4 แสดง pin ของArduino Board
ซพย AVR มใหเลอกใชงานหลายเบอรแตละเบอรจะมขนาดราคาความสามารถและขนาดหนวยความจ าตลอดจนถงวงจรสนบสนนภายในทแตกตางกนออกไปใน ตวอยาง รปท 2-4 จะ
เลอกใชซพยรน ATmega32A ซงมคณสมบตดงน
- หนวยความจ าโปรแกรมแบบ FLASH ขนาด 32 กโลไบต
- หนวยความจ าขอมลแบบ SRAM ขนาด 2 กโลไบต
- หนวยความจ าขอมลแบบ EEPROM ขนาด 1 กโลไบต
- สนบสนนการเชอมตอแบบ I2C bus - พอรตอนพตเอาตพตจ านวน 23 บต - วงจรสอสารอนกรม
- วงจรนบ/จบเวลาขนาด 8 บตจ านวน 2 ตวและu3586 ขนาด 16 บตจ านวน 1 ตว
- สนบสนนชองสญญาณส าหรบสราง Pulse WidthModulation (PWM) จ านวน 6 ชอง - วงจรแปลงอนาลอกเปนดจตอลขนาด 10 บตในตวจ านวน 8 ชอง
- ท างานไดตงแตยานแรงดน 1.8-5.5 Volts - ความถใชงานสงสด 20 MHz
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 11
รปท 2-5 Block Diagram
MAX3421E MAX3421E เปน USB peripheral/host controller ทมดจตอลลอจกและวงจร
อนาลอกทจ าเปนตอ USB แบบ full-speed หรอ USB REV 2.0 ในตว MAX3421E นจะม transceiver ± 15k VESD อยภายในเพอปองกนและการ connect / disconnect ซงMAX3421E จะมการใชการเขาถงโดยมอนเตอรเฟส SPI ทท างานไดถง 26 MHz ดงรปท 2-6
รปท 2-6 แสดงการเชอมตอ MAX3421E กบ Microprocessor ดวย pin 3, 4
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 12
MAX3421E ท าใหการเชอมตอ USB Peripheral นนกวางขนนนคอมนสามารถท าใหใชไดกบหลายไมโครโปรเซสเซอรเชน ASIC, DSP เปนตนเมอมนท างานเปน USB Host เชนท างานเปนเมาสหรอค บอรดทเชอมตอกบระบบ Embedded Firmware จะสามารถท าไดงาย
เพราะ Devicesไดรบการสนบสนนและในตว IC MAX3421E สามารถท างานไดถงอณหภม
-10◦C ถง +85◦C ซง MAX3421E นนมคณสมบตดงน
Microprocessor-Independent USB Solution Software Compatible with the MAX3420E USB Peripheral Controller with SPI
Interface Complies with USB Specification Revision 2.0 (Full-Speed 12Mbps
Peripheral, Full-/Low-Speed 12Mbps/1.5Mbps Host) Integrated USB Transceiver Firmware/Hardware Control of an Internal D+ Pullup Resistor (Peripheral
Mode) and D+/D- Pulldown Resistors (Host Mode) Programmable 3- or 4-Wire, 26MHz SPI Interface Level Translators and VL Input Allow Independent System Interface Voltage Internal Comparator Detects VBUS for Self-Powered Peripheral Applications ESD Protection on D+, D-, and VBCOMP Interrupt Output Pin (Level- or Programmable-Edge) Allows Polled or
Interrupt-Driven SPI Interface Eight General-Purpose Inputs and Eight General-Purpose Outputs Interrupt Signal for General-Purpose Input Pins, Programmable Edge Polarity Intelligent USB SIE Automatically Handles USB Flow Control and Double Buffering Handles Low-Level USB Signaling Details Contains Timers for USB Time-Sensitive Operations so SPI Master Does Not
Need to Time Events Space-Saving Lead-Free TQFP and TQFN Packages (5mm x 5mm)
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 13
รปท 2-7 Pin Configurations
FT232RL
รปท 2-8 IC FT232RL
ใน Arduino Board จะม IC FT232RL ดงรปท 2-8 ทมไวส าหรบท าหนาทแปลงจาก USB
เปน Serial เพอน าไปตดตอกบไมโครคอนโทรลเลอรโดยม Block Diagram ดงรปท 2-9 กบ รปท 2-11
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 14
รปท 2-9 แสดง Block Diagram ของ FT232RL
รปท 2-10 แสดง Device Pin Out
ตวอยางในการตอกบ USB ในบอรด Arduino
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 15
รปท 2-11 แสดง Schematics ของ FT232RL ตอกบ USB
2.1.3 ค าสงพนฐานในโปรแกรม จดท าเพอใหการใชค าสงและรปแบบค าสงของการโปรแกรม Arduino microcontroller งาย
และสะดวก เนอหาจะเปนพนฐานอยางงายส าหรบการน าไปประยกตใชตอไป
STRUCTURE
การโปรแกรม Arduino board มสวนประกอบอยางงายๆแบงเปนโปรแกรมยอยหรอฟงกชนสองสวน
void setup()
{
statements;
}
void loop()
{
statements;
}
โปรแกรมยอยในสวน setup() คอสวนการเตรยมการเรมตนใชงาน สวน loop() เปนสวนการท างานหลก ซงทงสองสวนมความส าคญในการท างานของบอรด
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 16
ฟงกชนในสวน setup() ควรจะมสวนทก าหนดคาตวแปรทสวนหวของโปรแกรม ซงมนจะท างานเพยงครงเดยวและท างานกอนโปรแกรมอนๆ สวนมากโปรแกรมในสวนนจะใชส าหรบการก าหนดหนาทขาของตว AVR ไมโครคอนโทรลเลอร หรอตงคาการตดตอแบบ serial กบอปกรณอน
โปรแกรม loop จะท างานตอจากโปรแกรม setup และมนจะท างานอยางตอเนองตอไป เชนอานคา input สงสญญาณ triggering outputs เปนตน โปรแกรมนเปนโปรแกรมท างานหลกของ Arduino และท างานสวนใหญของระบบ
SETUP() ฟงกชนนจะถกเรยกใชงานเพยงครงเดยวเมอโปรแกรมถกเรมใชงาน ใชส าหรบการ
ก าหนดคาของขาของตว AVR หรอตงคาการตดตอแบบ serial โปรแกรมนเปนสวนจ าเปนทจะตองมถงแมมนจะไมมค าสงภายในตวมนกตาม
void setup()
{
pinMode(pin,OUTPUT); //set the 'pin' as output
}
LOOP()
หลงจากเรยกโปรแกรม setup() แลว โปรแกรม loop() จะท างานตอและจะท างานเปนวนลป เพอใหโปรแกรมท างานตามสถานะตางๆ
void loop(){
digitalWrite(pin, HIGH); // turns 'pin' on
delay(1000); // pauses for one second
degitalWrite(pin, LOW) // turns 'pin' off
delay(1000);
}
input/output
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 17
คาคงทใชในฟงกชน pinMode() ในการก าหนดหนาทของ digital pin วาจะใหเปน INPUT หรอ OUTPUT
pinMode(13, OUTPUT);
pinMode(pin, mode)
ใชในกลม void setup() เพอก าหนดหนาทขาของไมโครคอนโทรลเลอรใหเปน ขารบสญญาณ INPUT หรอขาสงสญญาณ OUTPUT
pingMode(pin, OUTPUT); // sets 'pin' to output
digitalRead(pin)
ค าสงนอานคาจาก ขาไอซทถกก าหนดใหเปน digital pin ซงจะไดผลลพ ธเปน HIGH หรอ LOW หมายเลขขาไอซอาจก าหนดเปนตวแปรหรอคาคงท (0-13) value = digitalRead(pin);
// sets 'value' equal to the input pin
digitalWrite(pin, value)
สงคาลอจก HIGH หรอ LOW (เปด หรอ ปด) ไปยงขา digital ทก าหนดหมายเลขขาไอซอาจก าหนดเปนตวแปรหรอคาคงท (0-13) digitalWrite(pin, HIGH); // sets 'pin' to high
ตวอยางตอไปนอานคาจากปมกดทตอกบ digital input และเปด LED ทตอกบ digital output เมอปมถกกด
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 18
int led = 13; // connect LED to pin 13
int pin = 7; // connect pushbutton to pin 7
int value = 0; // variable to store the read value
void setup(){
pinMode(led, OUTPUT); // sets pin 13 as output
pinMode(pin, INPUT); // sets pin 7 as input
}
void loop(){
value = digitalRead(pin); // sets 'vaue' equal to the input pin
digitalWrite(led, value); // sets 'led' to the button's value
}
analogRead(pin)
ค าสงนอานคาจากขา Analog จะไดคา 10 bit ค าสงนจะท างานกบขา analog input (0-5) เทานน และไดผลลพธเปนเลขจ านวนเตมคา 0 – 1023 value = analogRead(pin); // sets 'value' equal to 'pin'
หมายเหต: ขา Analog ไมเหมอนกบ ขา digital, ไมตองก าหนดตอนเรมตนวาเปน INPUT หรอ OUTPUT
analogWrite(pin, value)
เปนค าสงเขยนคา analog เทยมโดยใช hardware enabled pulse width modulation (PWM) ไปยงขา output ทสามารถท า PWM ได ใน Arduino รนใหมทใชชพ Atmega168 ค าสงนจะท างานกบขา 3, 5, 6, 9, 10, และ 11 สวน Arduino รนเกาทใช Atmega8 จะรองรบเพยงขา 9, 10 และ 11 คาทเขยนสามารถใชเปนตวแปรหรอคาคงทจาก 0 – 255
anllogWrite(pin, value); // writes 'value' to analog 'pin'
หมายเหต: ขา Analog ไมเหมอนกบ ขา digital, ไมตองก าหนดตอนเรมตนวาเปน INPUT หรอ OUTPUT
ตวอยางตอไปน อานคา analog จากขา analog input pin, เปลยนคาทอานไดดวยการหาร 4
และสงคาทไดเปนคา PWM ออกทางขา PWM int led = 10; // LED with 220 resistor on pin 10
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 19
int pin = 0; // potentiometer on analog pin 0
int value; // value for reading
void setup(){} // no setup needed
void loop(){
value = analogRead(pin); // sets 'value' equal to 'pin'
value /= 4; // converts 0 - 1023 to 0 - 255
analogWrite(led, value); // outputs PWM signal to led
}
delay(ms)
ค าสงนจะหยดการท างานของโปรแกรมเปนเวลาตามทก าหนดเปนมลลวนาท ซง 1000 วนาทเทากบ 1 วนาท delay(1000); // waits for one second
Serial.begin(rate)
ค าสงนจะเปดพอรท serial และตงคาความเรวในการรบสง ปกตการตดตอกบเครองพซจะตงไวท ความเรว 9600 แมวามนสามารถรบสงไดทความเรวมากกวานกตาม void setup()
{
Serial.begin(9600); // opens serial port set data rate to
9600 bps
}
หมายเหต : เมอใชพอรทส าหรบการตดตอ serial communication , ขา digital pin 0 (RX) และ digital pin 1 (TX) จะน าไปใชงานอยางอนไมได
Serial.println(data)
ค าสงนจะสงขอมลใหกบ serial port, ตามดวยขนบรรทดใหมโดยอตโนมต ค าสงนจะมผลเหมอนกบค าสง Serial.print() แตสามารถดขอมลไดท Serial monitor ไดดวย
Serial.println(analogvalue); // sends the value of 'analogValue หมายเหต: ขอมลเพมเตมของการใช ฟงกชน Serial.println() และ Serial.print() ดไดจากเวบไซด Aruduino
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 20
ตวอยางตอไปนเปนค าสงอานคาจากขา analog pin 0 และสงขอมลใหกบเครองคอมพวเตอรทกๆ 1 วนาท
viod setup()
{
Seral.begin(9600); // sets serial to 9600 bps
}
void loop()
{
Seral.println(analogRead(0)); // sends analog value
delay(1000); // pauses for 1 second
}
2.1.4 Sensor ทใชในการวดอณหภม [8]
DHT22 (AM2302)
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 21
รปท 2-12 DHT22 (AM2302)
ตารางท 2-1 Technical Specification:
Model DHT22
Power supply 3.3-6V DC
Output signal digital signal via single-bus
Sensing element Polymer capacitor
perating range humidity0-100%RH; temperature -40~80Celsius
Accuracy humidity +-2%RH(Max +-5%RH); temperature <+-0.5Celsius
Resolution or sensitivity humidity 0.1%RH; temperature 0.1Celsius
Humidity hysteresis +-0.3%RH
Long-term Stability +-0.5%RH/year
Sensing period Average 1.7s
Interchangeability fully interchangeable
DHT11
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 22
รปท 2-13 DHT11
ตารางท 2-2 Technical Specification:
Model DHT11
Power supply 3.3-6V DC
Output signal digital signal via single-bus
Sensing element Polymer capacitor
perating range humidity20-90%RH; temperature 0~50Celsius
Accuracy humidity +-2%RH(Max +-5%RH); temperature <+-2Celsius
Resolution or sensitivity humidity 1%RH; temperature 1Celsius
Humidity hysteresis +-1%RH
Long-term Stability +-1%RH/year
Sensing period Average 2s
Interchangeability fully interchangeable
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 23
2.1.5 Xbee [5]
รปท 2-14 Xbee Series2 Pro Whip ant
Xbee เปนอปกรณทม Microcontroller และ RF IC อยภายใน ท าหนาทเปน อปกรณ transceiver (อปกรณรบ-สงสญญาณ) แบบ Half Duplex ยานความถ 2.4 GHz มการจดการโดยใชพลงงานต า ใชงานงาย ม interface ทใชรบและสงขอมลกบ Xbee เปน UART (TTL) ซงส าหรบทางดานไมโครคอนโทรลเลอร เราน าขาทใชตดตอสอสาร UART ของ Xbee ตอเขากบ UART ของไมโครคอนโทรลเลอร
Firmware ทใชกบ Xbee จะใชโหลดผานโปรแกรม X-CTU ทงน Xbee แตละรน จะสามารถ Setting Function การใชงานไดมากมาย ท าให Firmware ทจะตองโหลดเขาไปนน มมากมายหลายแบบ เราตองเลอกใหเหมาะสมกบการใชงานเอง
Feature Summary ของ Xbee Operating Frequency ISM Band 2.4 GHz (ISM Band หมายถง ยานความถใชงานเพอ
การวจย ซงจะอนญาตใหใชกบ อตสาหกรรม ( Industrial) วทยาศาสตร ( Scientific) และ ทางการแพทย (Medical) รวมเปน ISM)
มสายอากาศใหเลอกใชหลายแบบ คอ แบบ Chip Ant , Whip Ant , UFL con , RPSMA con โดย 2 แบบหลง ซงตองไปหาเสาอากาศยาน 2.4 GHz ทเปน connector แบบ UFL หรอ SMA ครบ
Supply Voltage อยท 2.8-3.4 V Power Down Current < 10uA ม RF data rate อยท 250 Kbps (เปนสวนของ สญญาณทสงผานอากาศ) ม Serial interface data rate อยระหวาง 1200 – 115200 Bps (เปนสวนทตดตอสอสาร
กบไมโครคอนโทรเลอร)
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 24
เปน Spread Spectrum ชนด DSSS (Direst Sequence Spread Spectrum) การก าหนด addressing มล าดบลกษณะคอ ก าหนด PAN ID ส าหรบเครอขายหนง ๆ
ก าหนด Channel และ ก าหนด address ของแตละตว
2.1.6 16x2 LCD (ACM1602B-FL-GBH)
รปท 2-15 16x2 LCD (ACM1602B-FL-GBH)
16x2 LCD (ACM1602B-FL-GBH) โมดลทแสดงผลหนาจอไดทงหมด 32 ตวอกษร 2 บรรทด แบงเปนบรรทดละ 16 ตวอกษร มหลอดไฟเปนแสงสเขยว สามารถแสดงผลไดแมอยในทมแสงสวางนอย
คณสมบต 16x2 LCD (ACM1602B-FL-GBH)
แสดงผล 16x2 Character ใชไฟ 5.0 V โมดลขนาด 84.0mm(W) x 44.0mm(H) x 13.0mm(D) พนทหนาจอ 64.5mm(W) x 16.4mm(H) ขนาดตวอกษร 3.00mm(W) x 5.20mm(H) หนาจอสามารถเปดไฟเปนแสงสเขยว (Backlight) อณหภมใชงาน -20ºC ~ 70ºC
ตารางท 2-3 ต าแหนงของขาและหนาทการใชงานของ LCD โมดล
Pin No.
Symbol Description Level Function
1 VSS Ground - 0V Ground
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 25
2 VDD Power Supply - +5V ตอกบแรงดนไฟเลยง +5V
3 VO LCD Contr - - ตอกบแรงดนเพอปรบความเขมของการแสดงผล
4 RS Register Select H/L
RS = 0 หมายถงตองการตดตอกบรจสเตอรค าสง (Instruction Register) RS = 1 หมายถงตองการตดตอกบรจสเตอรขอมล (Data Register)
5 R/W Read/Write H/L
R/W = 0 หมายถงตองการเขยนขอมลไปยง LCD โมดล R/W = 1 หมายถงตองการอานขอมลจาก LCD โมดล
6 E Enable H, H->L Enable Signal 7 - 14
DB0-DB7
Data Bus H/L Data Bus Line
15 A Back Light A - Back Light +5V (ส าหรบรนทม Back Light)
16 K Back Light K - Back Light 0V (ส าหรบรนทม Back Light)
2.1.7 C# [6][7] C# คอ ภาษาคอมพวเตอรประเภท object-oriented programming พฒนาโดย Microsoft
โดยมจดมงหมายในการวมความสามารถการค านวณของ C++ ดวยการโปรแกรมงายกวาของ Visual Basic โดย C# มพนฐานจาก C++ และเกบสวนการท างานคลายกบ Java
C# ไดรบการออกแบบใหท างานกบ .NET platform ของ Microsoft จดมงหมายคอ อ านวยความสะดวกในการแลกเปลยนสารสนเทศและบรการผานเวบ และท าใหผพฒนาสรางโปรแกรมประยกตในขนาดกะทดรด C# ท าใหโปรแกรมงายขนผานการใช Extensible Markup Language (XML) และ Simple Object Access Protocol (SOAP) ซงยอมใหเขาถง object ของโปรแกรมหรอ
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 26
เมธอด โดยปราศจากความตองการใหผเขยนโปรแกรมเขยนค าสงเพมในแตละขนตอน เนองจากผเขยนโปรแกรมสามารถสรางบนค าสงทมอย แทนทการคดลอกซ า C# ภาษา C# ถกพฒนาขนโดยเปนสวนหนงในการพฒนาโครงสรางพนฐานของ . NET Framework เปนการการน าขอดของภาษาตางๆ (เชนภาษา Delphi , ภาษา C++) มาปรบปรงเพอใหมความเปน OOP (โปรแกรมเชงวตถ) มากขน ขณะเดยวกนกลดความซบซอนในโครงสรางของภาษาลง (เรยบงายกวาภาษา C++) และมสงทเกนความจ าเปนนอยลง (เมอเทยบกบ Java) C# ถกรบรองจากหนวยงาน ECMA (หนวยงานก าหนดมาตรฐานสากลดานสารสนเทศ) และ ISO และปจจบนไมโครซอฟทยงพฒนาภาษานอยางตอเนอง
2.1.8 Raspberry Pi [11]
รปท 2-16 Raspberry Pi
บอรด Raspberry Pi เปนบอรดคอมพวเตอร 32 บต ขนาดเลกขนาดเทากบเครดตการด รองรบระบบปฏบตการ Linux ทพฒนาโดย Raspberry Pi Foundation ทชวงแรกหวงวาจะใชเปนสอการเรยนการสอน การเขยนโปรแกรมคอมพวเตอรส าหรบเดกๆ แตดวยเปนบอรดทราคาไมแพง
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 27
มาก ใชงานงายเมอเทยบกบบอรดอนๆ เหมาะส าหรบผเรมตน ท าใหเปนทนยมแพรหลายสบคคลทวไปอยางรวดเรว
คณสมบตทางเทคนคของบอรด Raspberry Pi
ใชชพ SoC Broadcom BCM2835 ซงรวม CPU,GPU และ SDRAM ไวในตวถงเดยวกน
หนวยประมวลผลกลาง (CPU) 700 MHz ARM11 ARM1176JZF-S core
หนวยประมวลผลภาพ (GPU) Broadcom VideoCore IV,OpenGL ES 2.0,OpenVG
1080p30 H.264 high-profile encode/decode
หนวยความจ า SDRAM 512 MB
ขวตอ USB 2.0 จ านวน 2 พอรต
ขวตอสญญาณภาพทงแบบแจค RCA และ HDMI (เลอกใชอยางใดอยางหนง)
ขวตอสญญาณเสยงโดยใชแจค 3.5 mm หรอ ผานทางขว HDMI
คอนเนคเตอรส าหรบเชอมตออนพตเอาตพต (GPIO) ,SPI , I²C , I²S และ UART (GPIO
ตางๆ ไม สามารถรบแรงดนอนพต 5 VDC ได สงสดแค 3.3 VDC เทานน )
ระบบปฏบตการของบอรดจะท างานผาน SD CARD
ขวตอ LAN 10/100 Mbps
ใชไฟเลยงบอรด 5 VDC กระแสอยางนอย 700 mA
ขนาดของบอรด 85.0 x 56.0 mm
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 28
รปท 2-17 สวนประกอบของ Raspberry Pi
สวนประกอบของบอรด Raspberry Pi 1. คอนเนคเตอร SD CARD ซงจะตดตงอยใตบอรด
2. คอนเนคเตอรส าหรบเชอมตออนพตเอาตพต (GPIO) ,SPI , I²C , I²S และ UART โดย
ต าแหนงขาตางๆ แสดงดงรป
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 29
รปท 2-18 Port ของ Raspberry Pi
3. คอนเนคเตอรตอสญญาณภาพแบบ RCA ส าหรบเชอมตอกบจอภาพทมขวแบบ RCA เชน
โทรทศน
4. คอนเนคเตอรตอสญญาณเสยงโดยใชแจค 3.5 mm 5. LED แสดงสถานะตางๆ ของบอรด Raspberry Pi 6. คอนเนคเตอร USB 2.0 จ านวน 2 พอรต 7. คอนเนคเตอร LAN 10/100 Mbps ส าหรบเชอมตอกบระบบเครอขาย 8. คอนเนคเตอร CSI ส าหรบเชอมตอกบโมดลกลอง 9. LAN Controller 10. คอนเนคเตอร HDMI ส าหรบเชอมตอสญญาณภาพและเสยง เพอเชอมตอกบจอภาพทมขว
แบบ HDMI เชน โทรทศน หรอ จอมอนเตอร 11. ชพ SoC Broadcom BCM2835 ซงรวม CPU,GPU และ SDRAM ไวในตวถงเดยวกน 12. คอนเนคเตอร DSI ส าหรบเชอมตอกบจอภาพ
13. คอนเนคเตอร Micro USB ส าหรบจายไฟเลยงใหบอรด
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 30
บทท3 รายละเอยดการท างาน
ในบทนจะกลาวถงรายละเอยดการท าโครงงานในสวนตางๆ ทง โครงสรางและขนตอนการท าในแตละสวนของโครงงานซงมรายละเอยดดงตอไปน
3.1 Software Specification
โครงงานนเปนโครงงานทมทง Hardware และ Software ในสวนของ Hardware จะเปนสวนของ Arduino Board ในการวคอณหภม สวนของ Software จะเปนการสรางโปรแกรมการแสดงผลออกทาง Android
Hardware ทใชในโครงงานมดงตอไปน 1. IC ATmega32A ใชเปนตวควบคม Sensor วดอณหภมTemperature Sensor
ใชเปนตวตรวจวดอณหภม
2. Sensor DHT22 ท าหนาทวดอณหภมในอากาศ
3. Xbee ท าหนาทในการสงคาทวดมายงคอมพวเตอรเพอเกบในฐานขอมล
4. เครองเขยาแผน PCB ใชในการสรางวงจร
5. Raspberry Pi บอรดคอมพวเตอรใชแทน Arduino Board
6. น า Sensor มาตอกบบอรด
7. LCD Display ใชในการแสดงผลการวด
8. มโมดลเสรมในการเปดกลองเพอดสถานท
9. เพมปมกดในการเปด-ปดกลอง และบอรด
Software ทใชในโครงงานมดงตอไปน 1. ภาษา Arduino 0023 เปน Software ทใชควบคม Arduino Board เปนภาษาท
ใชเพอใหไมโครคอนโทรลเลอร ATmega32A ประมวลผลการท างาน
2. Microsoft Visual Studio 2010 เปนโปรแกรมทชวยกรองคาจาก Serial port มา
เกบไวในระบบฐานขอมล
3. Eagle เปนโปรแกรมทใชในการจ าลองวงจร เพอใชในการสรางแผนพซบ
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 31
4. Win32DiskImager เพอใชเขยนอมเมจไฟลลงใน SD CARD
5. Linux OS ทตดตงบน SD Card
6. ลงเวบเซรฟเวอรใน SD Card
7. สรางฐานขอมล
8. เขยน scrip ใหโปรแกรมรนอตโนมต
9. สรางหนาเวบเพอใชในการแสดงโมดลของกลอง
3.2 System Architecture
รปท3-1 การแสดงภาพการควบคมการท างานของ Sensor
จาก รปท 3-1 เมอเซนเซอรไดท าการตรวจวดคาอณหภม หรอความรอนทอยรอบตวเซนเซอรจากอากาศ แลวจะสงคาทวดได ไปยง Raspberry Pi เมอ Raspberry Pi ไดรบขอมลจากนนจะท าการแสดงขอมล ของอณหภมทวดไดบนหนาจอ Simulate หรอ hyper terminal ของ Raspberry Pi (เมอน าหนาจอคอมพวเตอรมาเชอมตอกบ Raspberry Pi) จะท าการเกบขอมลทไดวดมา แลวแสดงผลผานทางระบบปฏบตการ Android โดยจะรบ/สงคาขอมลผานทางโมดลเสรม คอ WIFI เพอใหสามารถสงขอมลไดระยะไกลมากขน
เมอเซนเซอรสงคามา Raspberry Pi จะเปนตวรบคาทไดจากเซนเซอร จะเกบคานน ไปเกบไวในฐานขอมลบน Raspberry Pi ซง Raspberry Pi เปนเซรฟเวอร เมอมขอมลในฐานขอมลแลว โทรศพทมอถอกจะสามารถอานคาหรอคนหาจากฐานขอมลนนไปแสดงคาในแอปพลเคชนได
Read data
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 32
3.3 System Design
รปท 3-2 ภาพแสดงโครงสรางของ Raspberry Pi กบ Sensor Temperature
จากรปท 3-2 เปนการออกแบบโครงสรางของ Raspberry Pi กบเซนเซอรวดอณหภม ซงภายใน Raspberry Pi มชพ SoC Broadcom BCM2835 ท าใหสามารถควบคม การท างานของ เซนเซอรวดอณหภมได โดยน าเอา เซนเซอรวดอณหภมตอกบ Raspberry Pi และเชอมตอกนผานทาง Serial port ของ Raspberry Pi โดยขาท 1 ของเซนเซอร วดอณหภม จะตอกบไฟเลยงของ Raspberry Pi ซงเปน port ท 1 จากนนน าขาท 2 ของเซนเซอรวดอณหภม ซงเปนขาทสงขอมลมายง Raspberry Pi มาตอกบ port ท 16 (จากขาทสงขอมลมานนสามารถเปลยน port ทเชอมตอไดแลวแตผใชจะก าหนด) และสดทายน าขาท 4 ของเซนเซอรวดอณหภมตอกบ Ground ของ Raspberry Pi ซงสารมารถตอไดกบ port ท 6, 9, 14, 20 และ25 ตามถนด เมอเชอมครบทกอยางแลว จากนนสงรนโปรแกรมจะแสดงผลออกมาทางหนาจอ hyper terminal ของ Raspberry Pi
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 33
3.4 System Implementation
รปท3-3 ผลการวดทแสดงผานทาง ใช Microsoft Visual Studio 2010 จากรปท3-3 คอการแสดงผลการวดจากเซนเซอรผานทาง Hyper terminal โดยจะแสดงคา
การวดทก 1 วนาท คาทแสดงอยนนไมสามารถน าไปเกบในฐานขอมลได จงตองท าการเขยน
โปรแกรมเพออานคาจาก Serial Port มาโดยใช Microsoft Visual Studio 2010 ดงรปท3-4
รปท 3-4 โปรแกรมทเขยนเพออานคาจาก Serial Port
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 34
จากรปท 3-4 เปนการเขยนโปรแกรมเพอสแกนคาจาก Serial Port โดย Microsoft Visual
Studio 2010 จะน าคามาแสดง เมอมการสงขอมลจากเซนเซอรมา Serial Port จะน าคาไป
บนทกลงใน Text file เพอเปนการส ารองขอมลไวในฐานขอมล
รปท 3-5 แสดงคาทวดไดจาก Sensor ผานทางLCD 16*4
จากรปท 3-5 เปนการแสดงใชงานเซนเซอรโดยการน ามาประยกตใชคาทวดไดมาในการ
แสดงผลผานทาง LCD Display ในการควบคม Arduino Board เพอใหสามารถน าคาทวดได
ไปเกบไวในฐานขอมล โดยการอานคาจากพอรต Arduino Board ตองเขยนโปรแกรมดกเกบ
ทวดจาก Sensor
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 35
รปท 3-6 เปนการสรางแบบวงจรทจะกด
รปท 3-7 เปนเสนทใชกดบอรด
จากรปท 3-6 กบรปท 3-7 เปนการออกแบบและการสรางแผนวงจรทตอกบ LCD Display
กบ sensor ตางๆโดยการออกแบบใชโปรแกรม Eagle ในการสรางแผนวงจรเพอเปนการยน
ขนาดของบอรดทใหญจนเกนความจ าเปนใหมความกะทดรดมากขน
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 36
รปท 3-8 การบอรดดวยน ายากดดวยเครองเขยาแผนPCB ของทางภาควชา
จาก รปท 3-8 เปนการเขยาแผน PCB เพอใหเนอทองแดงทไมตองการหลดออกไป แลว
เหลอลายเสนวงจรทตองการ โดยลายเสนวงจรนนตองใหลายเสนผานความรอนเพอให
ลายเสนไมหลดออกไปในระหวางการเขยา วธทท าใหลายเสนไมหลดคอการรดทบลายกอน
เขยา และเมอเขยาลายเสนวงจรจะโผลมาเปนลายเสนทองแดงใหเหน น าแผนวงจรทผานการ
กดไปเจาะรแลวเชอมกบอปกรณอนๆตอไป
รปท 3-9 การใช Raspberry Pi กบ กลอง
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 37
จากรปท 3-9 เปนการเรยนรการใชบอรดโดยการทดลองใชงานกลองของบอรด ใหสามารถ
น าไปประยกตใชงานกบงานการแขงการเขยนโปรแกรมระดบเอเชย เพอน าไปเปนกลองชม
ภาพในระหวางการแขงขน
รปท 3-10 ผลทดลองการใช Raspberry Pi กบ กลอง
จากรปท 3-10 เปนการวางกลองในสนามการแขงขนการเขยนโปรแกรมระดบเอเชย เพอใช
ชมภาพการแขงขน โดยน าเอา Raspberry Pi ไปตดกบเสาอะลมเนยม ซงยดตดดวยเทปกาว
หลงจากนนเชอมตอสายแลนดกบ Raspberry Pi เพอใชในการสงภาพมายงจอภาพรวม และ
เขยนโปรแกรมควบคมการสงภาพใหสงตลอดเวลาไมมการก าหนดเวลา
รปท 3-11 ผลการวดจากเซนเซอรผานทาง Hyper terminal
จาก รปท 3-11 คอการแสดงผลการวดจากเซนเซอร โดยการน าเซนเซอรมาเชอมตอกบ Raspberry Pi และเชอมตอขาของเซนเซอรกบ port ของ Raspberry Pi ตามทไดกลาวไวใน System Design เมอเชอมเสรจแลวเรยกใชค าสงเพอใหแสดงผลการวด ผานทาง Hyper terminal โดยจะ
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 38
ก าหนดให แสดงคาการวดทก 30 วนาท คาทแสดงอยนน ยงไมสามารถน า คาทวด ไปเกบในฐานขอมลได ดงรปท 3-11
รปท 3-12 การเกบคาวดจากเซนเซอรใน Googledocs
จากรปท 3-12 เปนการเกบคาจากเซนเซอรทวดได โดยจะน าคา ทวดมาแสดงบน google
docs เมอมการเชอมตอกบฐานขอมล ขอมลจะถกสงมาจากเซนเซอร และน าคาทวดไดนนไป
บนทกลงใน google docs เพอเปนการส ารองขอมลไวในฐานขอมล
รปท 3-13 การเขยน Script auto run
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 39
จาก รปท 3-13 เปนการเขยน Script เพอใหโปรแกรมสามารถท างานอตโนมตไดเอง หลงจากเปด Raspberry Pi โดยการเขยน Script จะมการเขยนไวใน /home/pi/bin/script_auto_run พมพค าสงตาม รปท 3-13 จากนนเซฟ และ reboot Raspberry Pi ขนใหมอกครง จากนนโปรแกรมจะท างานเอง
รปท 3-14 ผลการวดจาก Auto run โปรแกรม
จากรปท 3-814 คอการแสดงผลการวดจากเซนเซอรผานทาง Hyper terminal โดยจะแสดงคาทไดจากการท างานอตโนมตของโปรแกรม หรอจากการใชค าสง / home/pi/bin/script_auto_run จากนนจะมการเชคการเชอมตอกบฐานขอมลกอนทจะมการบนทกคาลงในฐานขอมลวามการเชอมตอแลวหรอยง
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 40
รปท 3-15 การแสดงการเกบคาวดจากเซนเซอร PHPpmyadmin
จาก รปท 3-15 เปนการเกบคาทวดไดจาก เซนเซอร และจะน าคามาแสดงบน PHPpmyadmin ซง PHPpmyadmin จะตองมการสรางตารางฐานขอมลไวกอนทจะเกบขอมล เ มอมการสงขอมลจาก เซนเซอรมากจะน าคาทวดไดไปบนทกลงใน PHPpmyadmin เพอเปนการส ารองขอมลไวในฐานขอมลเพอสามารถเรยกใชงานไดตอไป
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 41
รปท 3-16 การแสดงคาจากเซนเซอรทวดไดผานทาง LCD Display
จากรปท 3-16 เปนการแสดงคาจากเซนเซอรทวดไดผานทาง LCD Display โดยการน าเอา LCD Display ขนาด 16*2 หรอ 16*4 มาตอกบ Raspberry Pi จากนนเขยนโปรแกรมควบคมใหมการสงคาทวดไดออกมาแสดงบน LCD Display (การเขยนขอความบน LCD Display แลวแตผใชจะก าหนด) เพอใหงายตอการดคาทวดจากเซนเซอรในขณะนนโดยไมตองเขาไปดในฐานขอมล
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 42
3.5 แผนการด าเนนงาน
ตารางท3-1 แสดงการด าเนนงาน
การด าเนนงาน / ระยะเวลา
ป พ.ศ. 2556
ตลาคม พฤศจกายน ธนวาคม มกราคม
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
วางแผนขนตอนการท างาน ศกษา
ขอมลของ Raspberry Pi
เรยนรการใช Raspberry Pi อยาง
งาย
เรยนรการใช Raspberry Pi โดย
การทดลองการใชกลอง
ใช Raspberry Pi เชอมตอกบ
Sensor และสามารถเกบคาได
ตดตอกบ Android ลง Web
server สรางฐานขอมล
เขยน Script ใหโปรแกรม auto
run
ตอหนาจอ LCD Display เพอใช
ในการแสดงผล
เพมเตมโมดลเสรม ปมเปด-ปด
กลองแสดงสถานท
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 43
บทท4 การทดลองและสรปผล
ในบทนจะน ากลาวถงผลงานทผานมาและปญหาอปสรรคตางๆ ทเกดขนอกทงยงบอกขอเสนอแนะและแนวทางทจะด าเนนงานทจะท าโครงงานตอไป
4.1 การทดลอง 1. ศกษา Sensor วดอณหภม (DHT22) เพอน ามาประยกตกบ Raspberry Pi ใหสามารถแสดง
ผลได
2. ท าการบนทกคาทวดไดจาก Sensor DHT22 ลงในฐานขอมล
3. เรยนการใช Raspberry Pi โดยการเรยกใชโมดลกลองเพอน าไปใชในงานการแขงขนเขยน
โปรแกรมระดบเอเชย
4. เพมโมดลเสรมใหกบ Raspberry Pi โดยการน าเอา Google docs มาแสดงคาทวดไดจาก
Sensor
5. ลง Web server ใน Raspberry Pi เพอใชเปนฐานขอมล
6. สรางฐานขอมล ออกแบบตารางในการเกบขอมล
7. สามารถแสดงคาทวดผานทางหนาจอ LCD Display หลงเกบลงฐานขอมล
8. เพมโมดลปมกด และรนโปรแกรมใหกบ Raspberry Pi เพอความสะดวกสบายในการใช
งาน
9. เพมโมดลกลองใหกบ Raspberry Pi เพอใหสามารถเหนภาพสถานททวางเครองวด
10. เพมโมดลเสรม WIFI ท าใหเพมระยะทางการมาเกบไวในฐานขอมล
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 44
4.2 สรปผลการทดลอง
จากการทดลองพบวา มการเปลยนท างานของบอรดจาก Arduino ไปเปนบอรด Raspberry Pi และการอานคาจากเซนเซอรวดอณหภม เนองจากบอรด Arduino ไมสามารถเกบขอมลไวในบอรดเองได จงไดมการเปลยนบอรดมาใช Raspberry Pi เพอใหสามารถเกบคาทวดไดเอาไวในบอรดเอง เพอลดภาระการท างานของคอมพวเตอร โดยไมตองเปดคอมพวเตอรทใชเปนฐานขอมลทกครงทมการใชงาน โดยการลง Web server ลงใน Raspberry Pi ได เพอสรางเปนฐานขอมลในการเกบขอมล โดยใช PHPmyadmin ในการท าฐานขอมล จากนน ผมน า Raspberry Pi ไปตอกบเซนเซอรใชในการวดคาความชน และอณหภม และน าคาเหลานนไปบนทกลงใน PHPmyadmin จากนนเกบลงฐานขอมลเพอน าไปใชตอไป และมการตอกบโมดลเสรมตางๆ เชน LCD Display เพอเพมความสะดวกสบายในการอาน หรอดคาทไดจะการวด ตอปมกดเปด-ปด เพอใชในการเปด-ปดการใชงาน Raspberry Pi เพมโมดลเสรมกลองเพอใชในการดสถานททวางเซนเซอรวดคา การเพมโมดลเสรมจะท าให Raspberry Pi มความสามารถเพมขนตามทตอกบโมดลเสรมไปดวย
4.3 ปญหาและอปสรรค 1. อปกรณทเบกมาในบางสวนมความช ารด ไมมอปกรณ และใหอปกรณมาไมครบจงท าให
ไมสามารถท างานไดจะตองไปสงซอจดหาอปกรณดวยตนเอง
2. เนองจากไมมความรในการใช Raspberry Pi จงจะเปนตองใชเวลาในการศกษา Raspberry
Pi ใหมากขน
3. ไมมความรในการใช Linux OS ท าใหการใชค าสงในการควบคม Raspberry Pi คอนขาง
ยาก
4. Raspberry Pi ตองลง Linux OS ใหมเพราะตอนทดลองชวงแรกลงโปรแกรมมากเกนไป
เกนการทบซอนของโปรแกรม
5. เกดการบกพรองของโปรแกรมในการเขยน
6. LCD Display เกดการ bug ท าใหขอมลไมแสดงผลบนหนาจอ
4.4 ขอเสนอแนะ / แนวทางการพฒนาตอ 1. พฒนาใหสามารถเชอมตอกบระบบปฏบตการระบบ Android
2. สามารถควบคมผาน Android
3. สามารถใหควบคมอปกรณเสรมใหสามารถท างานได หรอประยกตเขากบอปกรณตางๆ
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 45
4. เพม Sensor เพอใหสามารถวดไดหลายจด
5. ใชโมดลเสรมเชน WIFI ใหสามรถรบ-เกบคาไดระยะไกลขน
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 46
บรรณานกรม.
[1] Arduino, http://arduino.cc/en/Main/Software, Last modified:Unknown, Access time:
December4, 2012.
[2] Getting Acquainted with Arduino ,
http://www.youtube.com/watch?feature=player_embedded&v=fCxzA9_kg6s, Last
modified:Unknown, Access time: December 4, 2012.
[3] Arduino, http://www.houstondad.com/arduino/beginning_android_adk_arduino.pdf,
Last modified:Unknown, Access time: December 4, 2012.
[4] Arduino, http://www.interorganic.com.ar/josx/ovejafm/Practical-Arduino-Cool.pdf,
Last modified:Unknown, Access time: December 4, 2012.
[5] Xbee, http://www.thaieasyelec.com/Review-Product-Article/what-is-xbee.html, Last
update:May 8,2012, Access time: July11, 2013.
[6] C#, http://www.mindphp.com/คมอ/73-คออะไร/2184-c-ชารป-คออะไร.html, Last update:May
8,2012:Unknown, Access time: June27, 2013.
[7] C# การอานขอมลจาก serial port, http://www.youtube.com/watch?v=_Ef5pCEh8RA, Last
update:May 8,2013, Access time: June30, 2013.
[8] DHT22 (AM2302) , URL : http://www.arduino.in.th/product/100/dht22-am2302-
high-accuracy-digital-temperature-and-humidity-sensor , Last Update : May 5 ,
2013 , Access time : June 5 , 2013
[9] พนฐานไมโครคอนโทรลเลอรดวย Arduino ,URL
http://www.thainetbeans.com/arduino/start/start.php, Last Update : January 25 ,
2012 , Access time December 5 , 2012
[10] ฝกเขยนโปรแกรมพนฐานดวย Visual C# ,URL : http://www.vcharkarn.com/vblog/43670 ,Last
Update : December 21 ,2012 ,Access time : June 27 ,2013
[11] Raspberry Pi,URL : http://www.etteam.com/prod2013/et-rasbery-
pi/Getting%20Start%20Raspberry%20Pi.pdf ,Last Update : December
21 ,2012 ,Access time : June 27 ,2013
[12] MYSQL on Raspberry pi, URL : http://raspberrywebserver.com/sql-databases/using-
mysql-on-a-raspberry-pi.html , Last Update : December 27 , 2013 , Access time :
January 5 , 2014
[13] Webserver Database, URL : http://raspberry-pi-th.blogspot.com/2012/10/how-to-
setup-webserver-databaseserver.html , Last Update : December 27 , 2013 , Access
time : January 27 , 2014
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 47
ภาคผนวก ก (การตดตงโปรแกรม)
ขนตอนการตดตงระบบปฏบต การของบอรด Raspberry Pi ลงใน SD CARD
เปนททราบกนวาบอรด Raspberry Pi นนไมมหนวยความจ าประเภท Flash Memory อยบนบอรดท าใหตองเกบ ระบบปฏบตการตางๆ ไวใน SD CARD ซงถอวาเปนขอดอยางหนงคอการเปลยนระบบระบบปฏบตการตางๆ ท าไดงาย เพยง แค ถอด SD CARD แลวเปลยนอนใหมเขาไปเทานนซงการตดตงระบบปฏบตการลงใน SD CARD มขนตอนดงน
1. ท าการดาวนโหลดไฟลอมเมจของระบบปฏบตการจาก
http://www.raspberrypi.org/downloads แนะน าใหโหลดตว Raspberry “wheezy” ในทน
จะเลอกดาวนโหลดเปนไฟล .zip ซงตวเลขจะแตกตางกนตามแตละเวอรชน
2. เมอดาวนโหลดเสรจเรยบรอยใหท าการแตกไฟล จะไดอมเมจไฟล *.img ดงรป
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 48
3. ท าการดาวนโหลดโปรแกรม Win32DiskImager http://sourceforge.net/projects/win32diskimager/ เพอใชเขยน อมเมจไฟลลงใน SD CARD ดงรป
4. ใหน า SD CARD (แนะน าใหใชขนาด 2GB ขนไป) ทจะลงระบบปฏบตการไปเสยบทตวCARD READER จากนนใหเปด โปรแกรม Win32DiskImager คลกทไอคอนโฟลเดอรเลอกไปทอมเมจไฟลทดาวนโหลดมา ดงรป
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 49
5. ท าการเลอก Drive ทไดเสยบ SD CARD ไวซงโดยปกตโปรแกรมจะตรวจสอบอตโนมตอยแลว ดงรป
6. ท าการคลกทปม Write เพอเรมการเขยนอมเมจไฟลเขาส SD CARD ซงโปรแกรมจะถาม
ยนยนการเขยน ใหคลกYes ดงรป
7. รอจนโปรแกรมเขยนอมเมจไฟลจนเสรจเรยบรอย ดงรป
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 50
ภาคผนวก ข (Source Code)
โคดปมทใชเปดปดการท างานของกลอง
import RPi.GPIO
as gpio
import time
import os
#set pin online camera
gpio.setmode(gpio.BCM)
gpio.setup(7, gpio.IN)
gpio.setup(8, gpio.OUT)
#set LED = False
gpio.output(8, False)
print "Button Ready !!"
while True:
input_value = gpio.input(7)
if input_value == False:
print "Power button has been pressed ..."
print "System will Shutdown in 10 sec."
count = 10
int(count)
while count != 0:
print count
if count%2 == 0:
gpio.output(8,True)
else:
gpio.output(8,False)
count = count - 1
time.sleep(1)
print "Bye Bye :)"
os.system("sudo shutdown -h now")
_____________________________________________________________________
Arduino & Raspberry Pi ส าหรบวดอณหภม 51
โคดทสงใหโปรแกรมท างานอตโนมต
#!/bin/bash
# Script to start our application
echo "Doing autorun script..."
sudo python /home/pi/bin/SensorX_DHT.py &
Arduino & Raspberry Pi ส าหรบวดอณหภม 1