ชื่อโครงงาน Arduino & Raspberry Pi ส...

Preview:

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

Recommended