61
_____________________________________________________________________ Arduino & Raspberry Pi สาหรับวัดอุณหภูมิ i ชื่อโครงงาน Arduino & Raspberry Pi สาหรับวัดอุณหภูมิ ผู ้จัดทา นาย ปุณมี ขอศานติ 5335512012 ภาควิชา วิศวกรรมคอมพิวเตอร์ ปีการศึกษา 2556 บทคัดย่อ อาร์ดุยโน (Arduino) เป็นไมโครคอนโทรลเลอร์ชนิดหนึ ่งที่เป็นแบบ Open Hardware คือมี แบบส่วนประกอบเป็นมาตรฐานที่เปิดเผย สามารถค้นหาข้อมูลได้ง่าย ราคาถูกมีซอฟต์แวร์ให้ใช้ งานฟรี และมีผู้นามาใช้งานเป็นจานวนมาก จัดว่าเป็นรูปแบบที่มีข้อมูลบนอินเตอร์มากที่สุด บอร์ด Raspberry Pi เป็นบอร์ดคอมพิวเตอร์ 32 บิต ขนาดเล็กขนาดเท่ากับเครดิตการ์ด รองรับระบบปฏิบัติการ Linux ที่พัฒนาโดย Raspberry Pi Foundation ที่ช่วงแรกหวังว่าจะใช้เป็น สื่อการเรียนการสอน การเขียนโปรแกรมคอมพิวเตอร์สาหรับเด็กๆ แต่ด้วยเป็นบอร์ดที่ราคาไม่แพง มาก ใช้งานง่ายเมื่อเทียบกับบอร์ดอื่นๆ เหมาะสาหรับผู้เริ่มต้น ทาให้เป็นที่นิยมแพร ่หลายสู่บุคคล ทั่วไปอย่างรวดเร็ว ผู้พัฒนาจึงเกิดแนวคิดออกแบบทาเครื่องมือวัดอุณหภูมิในพื ้นที่นั ้นๆ เพื่อให้กลุ ่มคนที่ไม่มี เวลาว่างได้ทราบถึงภูมิอากาศในพื ้นที่ของตนเองผ่านทางโทรศัพท์ในช่วงเวลาทางานหรือติดธุระ โดยใช้บอร์ด Arduino เป็นตัวรับค่าอุณหภูมิเนื่องจากเป็นเครื่องมือที่จะทาให้คอมพิวเตอร์สามารถ รับสัญญาณจากภายนอกและส่งสัญญาณไปควบคุมอุปกรณ์ภายนอกได้อย่างมีประสิทธิภาพ มากกว่าใช้เครื่องพีซีตั ้งโต๊ะ และตัวบอร์ดสามารถประกอบขึ ้นใช้เอง หรือจะซื ้อสาเร็จที่มีขาย ส ่วน โปรแกรมพัฒนา Arduino สามารถดาวน์โหลดได้ฟรีโดยมีความคาดหวังว่าผลงานจะเป็นแนวทาง การศึกษาแก่ผู้สนใจเพื่อนาไปใช้ในการพยากรณ์สภาพอากาศและเกษตรกรรมในพื ้นที่ต่างๆ

ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

Embed Size (px)

Citation preview

Page 1: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม i

ชอโครงงาน Arduino & Raspberry Pi ส าหรบวดอณหภม

ผจดท า นาย ปณม ขอศานต 5335512012

ภาควชา วศวกรรมคอมพวเตอร

ปการศกษา 2556

บทคดยอ

อารดยโน (Arduino) เปนไมโครคอนโทรลเลอรชนดหนงทเปนแบบ Open Hardware คอมแบบสวนประกอบเปนมาตรฐานทเปดเผย สามารถคนหาขอมลไดงาย ราคาถกมซอฟตแวรใหใชงานฟร และมผน ามาใชงานเปนจ านวนมาก จดวาเปนรปแบบทมขอมลบนอนเตอรมากทสด

บอรด Raspberry Pi เปนบอรดคอมพวเตอร 32 บต ขนาดเลกขนาดเทากบเครดตการด รองรบระบบปฏบตการ Linux ทพฒนาโดย Raspberry Pi Foundation ทชวงแรกหวงวาจะใชเปนสอการเรยนการสอน การเขยนโปรแกรมคอมพวเตอรส าหรบเดกๆ แตดวยเปนบอรดทราคาไมแพงมาก ใชงานงายเมอเทยบกบบอรดอนๆ เหมาะส าหรบผเรมตน ท าใหเปนทนยมแพรหลายสบคคลทวไปอยางรวดเรว

ผพฒนาจงเกดแนวคดออกแบบท าเครองมอวดอณหภมในพนทนนๆ เพอใหกลมคนทไมมเวลาวางไดทราบถงภมอากาศในพนทของตนเองผานทางโทรศพทในชวงเวลาท างานหรอตดธระ

โดยใชบอรด Arduino เปนตวรบคาอณหภมเนองจากเปนเครองมอทจะท าใหคอมพวเตอรสามารถรบสญญาณจากภายนอกและสงสญญาณไปควบคมอปกรณภายนอกไดอยางมประสทธภาพมากกวาใชเครองพซตงโตะ และตวบอรดสามารถประกอบขนใชเอง หรอจะซอส าเรจทมขาย สวน

โปรแกรมพฒนา Arduino สามารถดาวนโหลดไดฟรโดยมความคาดหวงวาผลงานจะเปนแนวทางการศกษาแกผสนใจเพอน าไปใชในการพยากรณสภาพอากาศและเกษตรกรรมในพนทตางๆ

Page 2: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · 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.

Page 3: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม iii

หนงสอรบรองความเปนเอกลกษณ

ขาพเจาผลงนามขางทายน ขอรบรองวารายงานฉบบนเปนรายงานทมความเปนเอกลกษณ โดยทขาพเจามไดคดลอกมาจากทใดทหนง และถาหากวาไดท าการคดลอกขอความใด ขอความหนงมา ขาพเจากไดอางองถงเอกสารตนฉบบอยางเหมาะสม และขอรบรองวารายงานฉบบนเปนรายงานทยงมไดเสนอตอสถาบนใดมากอน

ผจดท า

12 มนาคม 2557

ลงชอ …………………………………………

(นายปณม ขอศานต)

Page 4: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม iv

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

โครงงานโปรแกรมจ าลองการผนน าลงสทะเลดวยเครองผลกดนน าน จะเกดขนไมได หากไมไดรบความเออเฟอ ชวยเหลอ และเอาใจใสจาก ดร. วโรดม วระพนธ อาจารยทปรกษาโครงการ และคณาจารย รวมทงบคลากรภาควชาวศวกรรมศาสตรคอมพวเตอร มหาวทยาลยสงขลานครนทร วทยาเขตภเกต ทกทานทใหความรและแนะแนวทางตางๆอนเปนประโยชนตอการท าโครงงานน จงขอขอบพระคณมา ณ ทน

นายปณม ขอศานต

ผจดท า

12 มนาคม 2557

Page 5: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 6: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 7: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 8: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 9: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม ix

สารบญตาราง ตารางท 2-1 Technical Specification: ..................................................................................................... 21 ตารางท 2-2 Technical Specification: ................................................................................................... ..22 ตารางท 2-3 ต าแหนงของขาและหนาทการใชงานของ LCD โมดล..........................................................25 ตารางท 3-1 แสดงการด าเนนงาน..…………………………………………………………..…………..42

Page 10: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 1

บทท 1 บทน า

บทนจะเปนการกลาวถงภาพรวมของโครงงาน ซงประกอบดวยความเปนมา วตถประสงคและขอบเขตการท างานของการวดอณหภมในอากาศ

1.1 ความเปนมา (Motivation) จากสภาพอากาศในปจจบนทมการเปลยนแปลงอยางตอเนอง ไมวาจะเกดขนเองตาม

ธรรมชาต หรอมลพษทเกดจากฝมอมนษยท าใหการพยากรณอากาศทวไป พยากรณอากาศการเกษตร และพยากรณอตนยมวทยาอทกฯลฯ อาจเกดความผดพลาดและคลาดเคลอนจง สงผลกระทบใหเกดสภาพอากาศทแปรปรวน อณหภมสงขน ฝนตกไมถกตองตามฤดกาลมความแหงแรงในพนทตางๆ อกทงผคนทออกไปท างานตองเจอกบสภาพอากาศทเปลยนแปลงบอยครงโดยไมรตว ท าใหเกดการลมปวย และโรคระบาดเปนผลกระทบตามมาในหลายๆดาน จากสภาพอากาศทเปลยนแปลงบอยนขาพเจาจงเกดแนวคดออกแบบท าเครองมอวดอณหภมในพนทนนๆเพอใหกลมคนทไมมเวลาวางไดทราบถงภมอากาศในพนทของตนเองผานทางโทรศพทในชวงเวลาท างานหรอ

ตดธระโดยใชบอรด Arduino เปนตวรบคาอณหภม เปนเครองมอทจะท าใหคอมพวเตอรสามารถรบสญญาณจากภายนอกและสงสญญาณไปควบคมอปกรณภายนอกไดอยางมประสทธภาพมากกวาใชเครองพซตงโตะ และตวบอรดสามารถประกอบขนใชเอง หรอจะซอส าเรจทมขาย และไดเปลยนมาใชบอรด Raspberry Pi เนองจากเปนบอรดคอมพวเตอร 32 บต ขนาดเลกขนาดเทากบเครดตการด สามารถรองรบระบบปฏบตการ Linux ทพฒนาโดย Raspberry Pi Foundation เปนบอรดทราคาไมแพงมาก ใชงานงายเมอเทยบกบบอรดอนๆ ท าใหเปนทนยมแพรหลายสบคคลทวไปอยางรวดเรว สวนโปรแกรมพฒนา Raspberry Pi สามารถดาวนโหลดไดฟร โดยมความคาดหวงวาผลงานจะเปนแนวทางการศกษาแกผสนใจเพอน าไปใชในการพยากรณสภาพอากาศ และเกษตรกรรมในพนทตางๆ

Page 11: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 12: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 13: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 4

LCD Display 16*2 Raspberry Pi

Software ภาษาทใช Arduino 0023

C#

Eagle

Python

Linux OS

Page 14: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 เปนไดทงแบบท างานอสระ หรอท างานตดตอกบโปรแกรมทท างานบน

Page 15: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · 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 ถาตองการศกษาใหลกซง

Page 16: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 17: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · 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 ซงสามารถเกบขอมลเอาไวไดโดยไมจ าเปนตองมไฟเลยงอกดวย

Page 18: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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) ส าหรบงานทตองการควบคมทตองการความยดหยนในขนตอนการออกแบบและพฒนาโดยผออกแบบสามารถออกแบบวงจรในระดบฮารดแวร

Page 19: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 20: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 21: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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)

Page 22: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 23: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 14

รปท 2-9 แสดง Block Diagram ของ FT232RL

รปท 2-10 แสดง Device Pin Out

ตวอยางในการตอกบ USB ในบอรด Arduino

Page 24: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · 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() เปนสวนการท างานหลก ซงทงสองสวนมความส าคญในการท างานของบอรด

Page 25: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 26: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 เมอปมถกกด

Page 27: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 28: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 29: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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)

Page 30: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 31: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 32: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 (เปนสวนทตดตอสอสาร

กบไมโครคอนโทรเลอร)

Page 33: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 34: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 ของโปรแกรมหรอ

Page 35: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 ทชวงแรกหวงวาจะใชเปนสอการเรยนการสอน การเขยนโปรแกรมคอมพวเตอรส าหรบเดกๆ แตดวยเปนบอรดทราคาไมแพง

Page 36: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 37: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 28

รปท 2-17 สวนประกอบของ Raspberry Pi

สวนประกอบของบอรด Raspberry Pi 1. คอนเนคเตอร SD CARD ซงจะตดตงอยใตบอรด

2. คอนเนคเตอรส าหรบเชอมตออนพตเอาตพต (GPIO) ,SPI , I²C , I²S และ UART โดย

ต าแหนงขาตางๆ แสดงดงรป

Page 38: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 ส าหรบจายไฟเลยงใหบอรด

Page 39: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 เปนโปรแกรมทใชในการจ าลองวงจร เพอใชในการสรางแผนพซบ

Page 40: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 41: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 42: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 43: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 44: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 35

รปท 3-6 เปนการสรางแบบวงจรทจะกด

รปท 3-7 เปนเสนทใชกดบอรด

จากรปท 3-6 กบรปท 3-7 เปนการออกแบบและการสรางแผนวงจรทตอกบ LCD Display

กบ sensor ตางๆโดยการออกแบบใชโปรแกรม Eagle ในการสรางแผนวงจรเพอเปนการยน

ขนาดของบอรดทใหญจนเกนความจ าเปนใหมความกะทดรดมากขน

Page 45: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 36

รปท 3-8 การบอรดดวยน ายากดดวยเครองเขยาแผนPCB ของทางภาควชา

จาก รปท 3-8 เปนการเขยาแผน PCB เพอใหเนอทองแดงทไมตองการหลดออกไป แลว

เหลอลายเสนวงจรทตองการ โดยลายเสนวงจรนนตองใหลายเสนผานความรอนเพอให

ลายเสนไมหลดออกไปในระหวางการเขยา วธทท าใหลายเสนไมหลดคอการรดทบลายกอน

เขยา และเมอเขยาลายเสนวงจรจะโผลมาเปนลายเสนทองแดงใหเหน น าแผนวงจรทผานการ

กดไปเจาะรแลวเชอมกบอปกรณอนๆตอไป

รปท 3-9 การใช Raspberry Pi กบ กลอง

Page 46: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 โดยจะ

Page 47: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 38

ก าหนดให แสดงคาการวดทก 30 วนาท คาทแสดงอยนน ยงไมสามารถน า คาทวด ไปเกบในฐานขอมลได ดงรปท 3-11

รปท 3-12 การเกบคาวดจากเซนเซอรใน Googledocs

จากรปท 3-12 เปนการเกบคาจากเซนเซอรทวดได โดยจะน าคา ทวดมาแสดงบน google

docs เมอมการเชอมตอกบฐานขอมล ขอมลจะถกสงมาจากเซนเซอร และน าคาทวดไดนนไป

บนทกลงใน google docs เพอเปนการส ารองขอมลไวในฐานขอมล

รปท 3-13 การเขยน Script auto run

Page 48: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 จากนนจะมการเชคการเชอมตอกบฐานขอมลกอนทจะมการบนทกคาลงในฐานขอมลวามการเชอมตอแลวหรอยง

Page 49: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 40

รปท 3-15 การแสดงการเกบคาวดจากเซนเซอร PHPpmyadmin

จาก รปท 3-15 เปนการเกบคาทวดไดจาก เซนเซอร และจะน าคามาแสดงบน PHPpmyadmin ซง PHPpmyadmin จะตองมการสรางตารางฐานขอมลไวกอนทจะเกบขอมล เ มอมการสงขอมลจาก เซนเซอรมากจะน าคาทวดไดไปบนทกลงใน PHPpmyadmin เพอเปนการส ารองขอมลไวในฐานขอมลเพอสามารถเรยกใชงานไดตอไป

Page 50: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 41

รปท 3-16 การแสดงคาจากเซนเซอรทวดไดผานทาง LCD Display

จากรปท 3-16 เปนการแสดงคาจากเซนเซอรทวดไดผานทาง LCD Display โดยการน าเอา LCD Display ขนาด 16*2 หรอ 16*4 มาตอกบ Raspberry Pi จากนนเขยนโปรแกรมควบคมใหมการสงคาทวดไดออกมาแสดงบน LCD Display (การเขยนขอความบน LCD Display แลวแตผใชจะก าหนด) เพอใหงายตอการดคาทวดจากเซนเซอรในขณะนนโดยไมตองเขาไปดในฐานขอมล

Page 51: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 เพอใช

ในการแสดงผล

เพมเตมโมดลเสรม ปมเปด-ปด

กลองแสดงสถานท

Page 52: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 ท าใหเพมระยะทางการมาเกบไวในฐานขอมล

Page 53: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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. สามารถใหควบคมอปกรณเสรมใหสามารถท างานได หรอประยกตเขากบอปกรณตางๆ

Page 54: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 45

4. เพม Sensor เพอใหสามารถวดไดหลายจด

5. ใชโมดลเสรมเชน WIFI ใหสามรถรบ-เกบคาไดระยะไกลขน

Page 55: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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

Page 56: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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 ดงรป

Page 57: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 48

3. ท าการดาวนโหลดโปรแกรม Win32DiskImager http://sourceforge.net/projects/win32diskimager/ เพอใชเขยน อมเมจไฟลลงใน SD CARD ดงรป

4. ใหน า SD CARD (แนะน าใหใชขนาด 2GB ขนไป) ทจะลงระบบปฏบตการไปเสยบทตวCARD READER จากนนใหเปด โปรแกรม Win32DiskImager คลกทไอคอนโฟลเดอรเลอกไปทอมเมจไฟลทดาวนโหลดมา ดงรป

Page 58: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 49

5. ท าการเลอก Drive ทไดเสยบ SD CARD ไวซงโดยปกตโปรแกรมจะตรวจสอบอตโนมตอยแลว ดงรป

6. ท าการคลกทปม Write เพอเรมการเขยนอมเมจไฟลเขาส SD CARD ซงโปรแกรมจะถาม

ยนยนการเขยน ใหคลกYes ดงรป

7. รอจนโปรแกรมเขยนอมเมจไฟลจนเสรจเรยบรอย ดงรป

Page 59: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

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")

Page 60: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

_____________________________________________________________________

Arduino & Raspberry Pi ส าหรบวดอณหภม 51

โคดทสงใหโปรแกรมท างานอตโนมต

#!/bin/bash

# Script to start our application

echo "Doing autorun script..."

sudo python /home/pi/bin/SensorX_DHT.py &

Page 61: ชื่อโครงงาน Arduino & Raspberry Pi ส าหรับวัดอุณหภูมิintranet.coe.phuket.psu.ac.th/pdb/download/2014-03-17-0-F62HX.pdf · Arduino

Arduino & Raspberry Pi ส าหรบวดอณหภม 1