notebook coolingpad - sv.mtc.ac.thsv.mtc.ac.th/inno/files/notebook_coolingpad1.pdf ·...

76
พัดลมระบายความร้อนโน๊ตบุ๊ค NOTEBOOK COOLINGPAD นายนฤเบศร์ น้อยมะลิวัน นายณัฐพล จันทจร โครงการเรื่องนี้เป็นส่วนหนึ่งของการศึกษาตามหลักสูตร ประกาศนียบัตรวิชาชีพชั้นสูง ภาควิชาเทคโนโลยีคอมพิวเตอร์ สาขางานคอมพิวเตอร์ฮาร์ดแวร์ ปีการศึกษา 2559 ลิขสิทธิ์เป็นของวิทยาลัยเทคนิคมหาสารคาม

Upload: others

Post on 13-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

พดลมระบายความรอนโนตบค

NOTEBOOK COOLINGPAD

นายนฤเบศร นอยมะลวน

นายณฐพล จนทจร

โครงการเรองนเปนสวนหนงของการศกษาตามหลกสตร ประกาศนยบตรวชาชพชนสง

ภาควชาเทคโนโลยคอมพวเตอร สาขางานคอมพวเตอรฮารดแวร ปการศกษา 2559

ลขสทธเปนของวทยาลยเทคนคมหาสารคาม

พดลมระบายความรอนโนตบค

NOTEBOOK COOLINGPAD

นายนฤเบศร นอยมะลวน

นายณฐพล จนทจร

โครงการเรองนเปนสวนหนงของการศกษาตามหลกสตร ประกาศนยบตรวชาชพชนสง

ภาควชาเทคโนโลยคอมพวเตอร สาขางานคอมพวเตอรฮารดแวร ปการศกษา 2559

ลขสทธเปนของวทยาลยเทคนคมหาสารคาม

กตตกรรมประกาศ โครงการเรอง พดลมระบายความรอนโนคบคเปนไปไดดวยด ไดรบความเมตตา

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

ทายทสดนผจดท าหวงเปนอยางยงวา โครงการนจะเปนประโยชนตอการศกษาของผทสนใจตอไปและน าไปตอยอดเพอประยกตใชในชวตประจ าวน

นายนฤเบศร นอยมะลวน นายณฐพล จนทจร

ชอเรอง พดลมระบายความรอนโนตบค

ผวจย นายนฤเบศร นอยมะลวน

นายณฐพล จนทจร

อาจารยทปรกษา อาจารยวศรต การถก

วฒการศกษา ประกาศนยบตรวชาชพชนสง ภาควชาเทคโนโลยคอมพวเตอร สาขางาน

คอมพวเตอรฮารดแวร

สถานศกษา วทยาลยเทคนคมหาสารคาม

ปการศกษา 2559

บทคดยอ

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

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

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

สารบญ

หนา

กตตกรรมประกาศ ก บทคดยอ ข สารบญ ค สารบญตอ ง สารบญรปภาพ จ สารบญตาราง ฉ บทท 1 บทน า 1.1 ความเปนมาของโครงงาน 1 1.2 วตถประสงคขอโครงงาน 1 1.3 ขอบเขตการศกษา 1 1.4 นยามศพท 1 1.5 แผนการปฏบตงาน 2

1.6 ประโยชนทไดจากโครงการ 2 1.7 งบประมาณ 2 1.8 สถานทการท างาน 2 1.9 สมมตฐาน 2 บทท 2 วรรณกรรมทเกยวของ

2.1 บอรด Arduino Uno R3 3 2.2 DHT 11 6 2.3 จอA141 : 1602 LCD 8 2.4 Adapter Plate IIC I2C 12 2.5 A167 : Motor DriveModule(L9110S 13 2.6 3V Battery 14 2.7 A1083 : สายแพ ผ-เมย 15 บทท 3 การด าเนนการ 3.1 แผนปฏบตงาน 17 3.2 วสดอปกรณ 19 3.3 โคดทใชปอนโปรแกรม arduino 27

สารบญ(ตอ)

หนา

บทท 4 ผลการวเคราะหขอมล 4.1 การทดลอง 37 4.2 ตารางผลการทดลอง 37 4.3 ตารางประสทธภาพของการทดลอง 37 4.4 พจารณาแบบประเมนคณภาพ 37 บทท 5 สรปผลด าเนนงาน 5.1 สรปผลการด าเนนงาน 41 5.2 ประโยชน 41 5.3 ปญหาในการพฒนาระบบ 41 5.4 แนวทางการพฒนาตอ 41 บรรณานกรม 42

ภาคผนวก ก 44

ภาคผนวก ข 49

ภาคผนวก ค 60

ประวตผจดท า 64

สารบญรปภาพ

รปภาพ หนา

รปภาพท 2.1 ลกษณะรปรางของบอรด Arduino Uno R3 3 รปภาพท 2.2 รปแบบการเขยนโปรแกรมบน Arduino 4 รปภาพท 2.3 เลอกรนบอรด Arduino ทตองการ upload 4 รปภาพท 2.4 เลอกหมายเลข Comport ของบอรด 5 รปภาพท 2.5 ขาของDHT11 6 รปภาพท 2.6 การตอขาเขากบบอรด Arduino 7 รปภาพท 2.7 จอ LCDขนาด 16X2 (I2C) 7 รปภาพท 2.8 จอ LCD 16x2 Character (Parallel) 8 รปภาพท 2.9 ดานหลงจอ LCD 16x2 (I2C) 9 รปภาพท 2.10 ขาทใชในการเชอมตอกบ Arduino UNO R3 10 รปภาพท 2.11 ผลของโคดทปอนจากขอความดานบน 12รปภาพท 2.12 1602 2004 LCD Adapter Plate IIC I2C Interface for arduino 13รปภาพท 2.13 ไดรขบมอเตอร 13รปภาพท 2.14 โมดลนาฬกา Real Time Clock 14รปภาพท 2.15 สายไฟจมเปอร 17รปภาพท 3.1 แสดงแผนผงการด าเนนงาน 19 รปภาพท 3.2 ตอวสดอปกรณเขากบ บอรด Arduino 20รปภาพท 3.3 บดกรเซนเซอรใสกบแผนวงจร 20รปภาพท 3.4 บดกร 1602 LCD 21รปภาพท 3.5 ท าการตอบอรด arduino เขากบพดลมระบายความรอน 21รปภาพท 3.6 ตอสาย สาย usb arduino เขากบ usb โนตบค เพอทดสอบอปกรณ 22รปภาพท 3.7 อพโหลดโปรแกรมเขาไมโครคอนโทรลเลอร 22รปภาพท 3.8 ทดสอบวดอณหภมโนตบคกบรอบความเรวของพดลม 23รปภาพท 3.9 รปแบบการเขยนโปรแกรมบน Arduino 23รปภาพท 3.10 เลอกรนบอรด Arduino ทตองการ upload 24รปภาพท 3.11 เลอกหมายเลข Comport ของบอรด 24รปภาพท 3.12 เขยนโคด 25รปภาพท 3.13 อพโหลดขอมลจาก Arduino ลงบอรด Arduino 26รปภาพท 4.1 โหมด29ºปรบความเรวตามอณหภม 34

สารบญตาราง

ตาราง หนา

ตารางท 1 แผนการปฏบตงาน 1 ตารางท 2 ตารางขาของจอ LCD 16x2 แบบ Parallel 9 ตารางท 3 ตารางขาของจอ LCD 16x2 แบบ I2C 10ตารางท 4 ตารางขาทใชในการเชอมตอกบ Arduino UNO R3 12ตารางท 3.1 แผนปฏบตงาน 18ตารางท 4.1 ผลการทดลอง 34ตารางท 4.2 ประสทธภาพของการทดลอง 35 ตารางท 4.3 แบบประเมนพดลมระบายความรอนโนตบค 36

บทท 1 บทน า

1.1 ความเปนมาของโครงงาน

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

1.2 วตถประสงคของโครงงาน

1.2.1 เพอสรางและพฒนาพดลม 1.2.2 ศกษาการท างานของพดลมระบายความรอนโนตบค 1.2.3 หาประสทธภาพของพดลมระบายความรอนโนตบค

1.3 ขอบเขตของโครงงาน

1.3.1 สามารถใชวดความรอนของเครองไดอยางแมนย า 1.3.2 ใช KY-001สามารถใชวดอณหภมได 1.3.3 ออกแบบและพฒนาระบบในรปแบบชนงาน

1.4 นยามศพท 1.4.1 เครองคอมพวเตอรโนตบค 1.4.2 การระบายความรอน

1.4.3 การปรบอณหภม 1.4.4 คณภาพอากาศของพดลม

1.5 แผนการปฏบตงาน

ตารางท 1 แผนการปฏบตงาน

1.6 ประโยชนทไดรบจากโครงงาน

1.5.1 ไดความรในการเขยน Arduino 1.5.2 ใหมประสบการณในการท างานมากขน 1.5.3 ใหใชเวลาเปนประโยชน 1.5.4 ท าใหเกดความรใหมทยงไมรจก 1.5.5 น าไปประยกตใชงานอนไดอก

1.7 งบประมาณ 1.6.1 1,000 บาท

1.8 สถานทการท างาน

1.7.1 ณ วทยาลยเทคนคมหาสารคาม 1.9 สมมตฐาน 1.8.1 พดลมหมนตามความเรวทไดก าหนดไว 1.8.2 พดลมสามารถปรบความเรวตามอณหภมไดจรง

บทท2

สปดาหท 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 เตรยมโครงงาน

เสนอโครงงาน

ปฏบตงาน จดท ารปเลม

ตรวจสอบ น าเสนอชนงาน

เอกสารและงานวจยทเกยวของ 2.1 บอรด Arduino Uno R3

รปภาพท 2.1 ลกษณะรปรางของบอรด Arduino Uno R3

Arduino UNO R3 บอรดไมโครคอนโทรลเลอรแบบOpen-sourceบนแพลตฟอรม Arduino ของแทจากผผลต arduino.cc ประเทศอตาลออกแบบมาใหใชงานไดงาย ใชชพATmega328 รนทความถ 16 MHz หนวยความจ าแฟลช 32 KB แรม 2 KB บอรดใชไฟเลยง 7 ถง 12 V มระดบแรงดนไฟฟาในการท างานและขาสญญาณอยท 5 V (TTL) ม Digital Input / Output 14 ขา (เปน PWM ได 6 ขา) ม Analog Input 6 ขา Serial UART 1 ชด I2C 1 ชด SPI 1 ชด เขยนโปรแกรมบนซอฟทแวร Arduino IDE และโปรแกรมผานพอรต USB เหมาะส าหรบผทสนใจเรมตนเรยนรการพฒนาไมโครคอนโทรลเลอรหรอแมแตผทไมเคยเรยนรดานอเลกทรอนกสมากอนกสามน ามาสรางตนแบบทเกยวกบอเลกทรอนกสได

2.2.1 จดเดนทท าใหบอรด Arduino เปนทนยม - งายตอการพฒนา มรปแบบค าสงพนฐาน ไมซบซอนเหมาะส าหรบผเรมตน - ม Arduino Community กลมคนทรวมกนพฒนาทแขงแรง - Open Hardware ท าใหผใชสามารถน าบอรดไปตอยอดใชงานไดหลายดาน - ราคาไมแพง Cross Platform สามารถพฒนาโปรแกรมบน OS ใดกได Features: • ATmega328 microcontroller • Input voltage - 7-12V • 14 Digital I/O Pins (6 PWM outputs) • 6 Analog Inputs • 32KB Flash Memory (0.5KB for boot loader) • 2KB SRAM • 1KB EEPROM • 16Mhz Clock Speed

2.2.2 รปแบบการเขยนโปรแกรมบน Arduino

รปภาพท 2.2 รปแบบการเขยนโปรแกรมบน Arduino เขยนโปรแกรมบนคอมพวเตอร ผานทางโปรแกรม ArduinoIDE ซงสามารถดาวนโหลดไดจาก Arduino.cc/en/main/software หลงจากทเขยนโคดโปรแกรมเรยบรอยแลว ใหผใชงานเลอกรนบอรด Arduino ทใชและหมายเลข Com port

รปภาพท 2.3 เลอกรนบอรด Arduino ทตองการ upload

รปภาพท 2.4 เลอกหมายเลข Comport ของบอรด กดปม Verify เพอตรวจสอบความถกตองและ Compile โคดโปรแกรม จากนนกดปม Upload โคด โปรแกรมไปยงบอรด Arduino ผานทางสาย USB เมออบโหลดเรยบรอยแลว จะแสดงขอความแถบขางลาง “Done uploading” และบอรดจะเรมท างานตามทเขยนโปรแกรมไวไดทนท 2.2.3 Layout & Pin out Arduino Board (Model: Arduino UNO R3)

- USBPort: ใชส าหรบตอกบ Computer เพออบโหลดโปรแกรมเขา MCU และจายไฟใหกบบอรด - Reset Button: เปนปม Reset ใชกดเมอตองการให MCU เรมการท างานใหม - ICSP Port ของ Atmega16U2 เปนพอรตทใชโปรแกรม Visual Com port บน Atmega16U2 - I/OPort:Digital I/O ตงแตขา D0 ถง D13 นอกจากน บาง Pin จะท าหนาทอนๆ เพมเตมดวย เชน Pin0,1 เปนขา Tx,Rx Serial, Pin3,5,6,9,10 และ 11 เปนขา PWM - ICSP Port: Atmega328 เปนพอรตทใชโปรแกรม Bootloader - MCU: Atmega328 เปน MCU ทใชบนบอรด Arduino - I/OPort: นอกจากจะเปน Digital I/O แลว ยงเปลยนเปน ชองรบสญญาณอนาลอก ตงแตขา A0-A5 - Power Port: ไฟเลยงของบอรดเมอตองการจายไฟใหกบวงจรภายนอก ประกอบดวยขาไฟเลยง +3.3 V, +5V, GND, Vin - Power Jack: รบไฟจาก Adapter โดยทแรงดนอยระหวาง 7-12 V - MCU ของ Atmega16U2 เปน MCU ทท าหนาทเปน USB to Serial โดย Atmega328 จะตดตอกบ Computer ผาน Atmega16U2

2.2 DHT 11 DHT11 เปนเซนเซอรทใชวด Humidity and Temperature แบบดจตอล สอสารผาน

โปรโตรคอล one-wire ซงมสเปกดงน

- รองรบแหลงจายพลงงานไดตงแต 3.3V - 5.5V - ใหคาความชนสมพทธ และอณหภม เปนขอมลดจตอล จงไมตองการการสอบเทยบคา - ใชพลงงานต า โดยขณะ standby จะใชกระแสประมาณ 150 ไมโครแอมป และขณะแปลงสญาณ-สงขอมล ใชกระแสประมาณ 2.5 มลลแอมป – มอายการใชงานยาวนาน เปนเซนเซอรทใชวดอณหภมเปนองศาเซลเซยล และองศาฟาเรนไฮ ยงสามารถวดความชนไดอกดวย มไลบารพรอมใชงานกบ Arduino สามารถใชวดคาไดเทยงตรงกวา NTC หรอ PTC มาก เพราะใหเอาตพตออกมาในรปของดจตอล ใชวดอณหภมอากาศโดยรอบ

รปภาพท 2.5 ขาของDHT11 ล าดบขาใชงาน

1 VCC 2 DATA 3 NC 4 GND

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

รปภาพท 2.6 การตอขาเขากบบอรด Arduino 2.3 จอA141 : 1602 LCD

จอ LCD 16x2 Character ทนยมวางจ าหนายจะมอย 2 แบบดวยกนคอ LCD แบบปกตทเชอมตอแบบขนาน (Parallel) และ LCD แบบทเชอมตออนกรม (Serial) แบบ I2C โดยทง 2 แบบตวจอมลกษณะเดยวกนเพยงแตแบบ I2C จะมบอรดเสรมท าใหสอสารแบบ I2C ไดเชอมตอไดสะดวกขน

รปภาพท 2.7 จอ LCDขนาด 16X2 (I2C)

รปภาพท 2.8 จอ LCD 16x2 Character (Parallel) ทง 2 แบบมขาหรอ Pin ในการเชอมตอแตกตางกนอยางไร โดยแบบแรกเปนแบบ Parallel มทงหมด 16 ขาดวยกน สวนแบบทสองเปนแบบ I2C มเพยง 4 ขา สามารถแยกออกตามตารางดานลาง 2.3.1 แบบ Parallel ม 16 ขา

ตารางท 2 ตารางขาของจอ LCD 16x2 แบบ Parallel

2.3.2 แบบ I2C ม 4 ขา

รปภาพท 2.9 ดานหลงจอ LCD 16x2 (I2C)

ตารางท 3 ตารางขาของจอ LCD 16x2 แบบ I2C 2.3.4 การควบคมการแสดงผลของ LCD

ในการควบคมหรอสงงาน ตวจอ LCD นนมสวนควบคม (Controller) รวมไวในตวแลว ผใชสามารถสงรหสค าสงควบคมการท างานของจอ LCD ผาน Controller วาตองการใชแสดงผลอยางไร โดย LCD Controller ของจอตวนเปน Hitachi เบอร HD44780 และขาในการเชอมตอระหวาง LCD กบ Microcontroller มดงน 2.3.4.1 GND เปนกราวดใชตอระหวาง Ground ของระบบ Microcontroller กบ LCD 5.3.4.2 VCC เปนไฟเลยงวงจรทปอนใหกบ LCD ขนาด +5VDC 5.3.4.3 VO ใชปรบความสวางของหนาจอ LCD 5.3.4.4 RS ใชบอกให LCD Controller ทราบวา Code ทสงมาทางขา Data เปนค าสงหรอขอมล 5.3.4.5 R/W ใชก าหนดวาจะอานหรอเขยนขอมลกบ LCD Controller 5.3.4.6 E เปนขา Enable หรอ Chips Select เพอก าหนดการท างานใหกบ LCD Controller 7-14. DB0-DB7 เปนขาสญญาณ Data ใชส าหรบเขยนหรออานขอมล/ค าสง กบ LCD Controller วธการสงงานจะแตกตางกนไป โดย LCD Controller สามารถรบรหสค าสงจาก Microcontroller ไดจากสญญาณ RS R/W และ DB0-DB7 ในขณะทสญญาณ E มคา Logic

เปน “1” ซงสญญาณเหลานจะใชรวมกนเพอก าหนดเปนรหสค าสงส าหรบสงงาน LCD โดยหนาทของแตละสญญาณพอสรปไดดงน - E เปนสญญาณ Enable เมอมคาเปน “1” เปนการบอกให LCD ทราบวาอปกรณภายนอกตองการตดตออานหรอเขยนขอมล “0” ให LCD ไมสนใจสญญาณ RS R/W และ DB7-DB0 - RS เปนสญญาณส าหรบก าหนดให LCD ทราบวาอปกรณภายนอกตองการตดตอกบ LCD ในขณะนนเปนรหสค าสงหรอขอมล โดยถา RS = “0” หมายถง ค าสง RS = “1” หมายถง ขอมล - R/W เปนสญญาณส าหรบบอกให LCD ทราบวาอปกรณภายนอกตองการอานหรอเขยนกบ LCD โดยถา R/W = “0” หมายถง เขยน R/W = “1” หมายถง อาน - DB0-DB7 เปนสญญาณแบบ 2 ทศทาง โดยจะสมพนธกบสญญาณ R/W ใชส าหรบรบสง ค าสงและขอมลระหวาง LCD กบอปกรณภายนอก โดยถา R/W = “0” สญญาณ DB7-DB0 จะสงจากอปกรณภายนอกมาท LCD แตถา R/W = “1” สญญาณ DB7-DB0 จะสงจาก LCD ไปยงอปกรณภายนอก การเชอมตอสญญาณขาขอมลระหวาง Microcontroller กบ LCD Controller 2.3.5 การเชอมตอสญญาณขาขอมลระหวาง Microcontroller กบ LCD Controller สามารถท าได 2 ลกษณะ คอ การเชอมตอแบบ 8 บต (DB0-DB7) และการเชอมตอแบบ 4 บต (DB4-DB7) ทงสองแบบแตกตางกนเพยงจ านวนขาทใชคอ 8 หรอ 4 ขา และยงสามารถท างานไดเหมอนกน อยางทแนนอนในการสงขอมลแบบ 4 ขา ยอมท าไดชากวา 8 ขา แตไมไดชามากจนสงเกตไดดวยสายตา ในการตอกบ Arduino นนจงนยมตอเพยง 4 ขา หรอ 4 บตเทานน เพอเปนการประหยดขาในการตอใชงานไปไวตอกบอปกรณอน ตวอยางเชน Arduino UNO R3 นนมขาใหใชงานคอนขางนอย

รปภาพท 2.10 ขาทใชในการเชอมตอกบ Arduino UNO R3

ตารางท 4 ตารางขาทใชในการเชอมตอกบ Arduino UNO R3 2.3.6 รายละเอยดค าสงในการสงงานระหวาง Arduino กบ จอ LCD ค าสงในการควบคมจอ LCD ของ Arduino นน ทาง Arduino.cc เขยนเปน Library มาใหเพอสะดวกในการน าไปใชงาน หลงจากตอสายเสรจเรยบรอย ขนตอนแรกในการเรมเขยนโปรแกรมคอการเรยกใช Library ของ LCD จากไฟลชอ LiquidCrystal.h หลงจากนนมาดกนวามฟงกชนทส าคญอะไรบางทใชสงงานใหจอ LCD ฟงกชน LiquidCrystal(); ใชประกาศขาทตองการสงขอมลไปยงจอ LCD รปแบบในการสงงานคอ LiquidCrystal lcd (rs, enable, d4, d5, d6, d7) <<<<<<< ในกรณใชงานแบบ 4 บต LiquidCrystal lcd (rs, enable, d0, d1, d2, d3, d4, d5, d6, d7) <<<<<<< ในกรณใชงานแบบ 8 บต ในบทความนใชแบบ 4 บต คอ LiquidCrystal lcd(12, 11, 4, 5, 6, 7); กหมายถงการเชอมตอ rs ทขา 12 , Enable ทขา 11 , และ DB4-DB7 ทขา 4-7 ของ Arduino ตามล าดบ ฟงกชน begin(); ใชก าหนดขนาดของจอ ในบทความนเราใชขนาด 16 ตวอกษร 2 บรรทด จงประกาศเปน lcd.begin(16, 2); ฟงกชน setCursor(); ใชก าหนดต าแหนงและบรรทดของ Cursor เชน lcd.setCursor(0, 1); คอ ใหเคอรเซอรไปทต าแหนงท 0 บรรทดท 1 การนบต าแหนงเรมจาก 0 ดงนน LCD 16x2 มต าแหนง 0 – 15 บรรทด คอ 0 กบ 1 ฟงกชน print(); ใชก าหนดขอความทตองการแสดง เชน lcd.print("ThaiEasyElec"); คอ ใหแสดงขอความ “ThaiEasyElec” ออกทางหนาจอ LCD ตวอยางโคดโปรแกรม #include <LiquidCrystal.h> //ประกาศLibrary // initialize the library with the numbers of the interface pins

LiquidCrystal lcd(12, 11, 4, 5, 6, 7); //ฟงกชนแรกก าหนดPins ทใชในการเชอมตอ void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); //ก าหนดขนาดของจอ columns และ rows // Print a message to the LCD. lcd.print("Hello !!!"); //ก าหนดขอความทตองการแสดงผล lcd.setCursor(0, 1); //ก าหนดต าแหนง Cursor lcd.print("ThaiEasyElec"); //ก าหนดขอความทตองการแสดงผล } void loop() { }

รปภาพท 2.11 ผลของโคดทปอนจากขอความดานบน

2.4 Adapter Plate IIC I2C 1602 2004 LCD Adapter Plate IIC I2C Interface for arduinoถาคณมปญหากบการตอสายไฟหลายเสน กบจอ LCD ท าใหสบสน หรอท าใหขา Arduino ไมพอใชงาน โมดล I2C LCD ตวนเปนตวเลอกทแนะน า เพราะสามารถเชอมตอกบหนาจอ LCD รน 16x2 หรอรน 20x4 โดยใชสายไฟเพยง 2 เสน สะดวก งาย ชวยใหเหลอขา Arduino ไวใชงานทส าคญอยางอน ใชงานงายม ไลบารมาตรฐานพรอมใชงาน

รปภาพท 2.12 1602 2004 LCD Adapter Plate IIC I2C Interface for arduino

2.4.1 รายละเอยด 1602 2004 LCD Adapter Plate IIC I2C Interface for arduino

- Supply voltage: 5V

- backlight และ contrast ปรบคาไดดวย potentiometer

- Compatible for 1602 LCD

- Weight:5g

- Size:5.5x2.3x1.4cm

2.5 A167 : Motor Drive Module (L9110S)

รปภาพท 2.13 ไดรขบมอเตอร

2.5.1 Motor Drive Module L9110S

- ชป HG7881 สองตวควบคมมอเตอรอสละจากกน

- โมดลสามารถขบรถสองมอเตอรกระแสตรงได 2 ตว

- แรงดนไฟฟาอนพตโมดล: 2.5-12V

- ใหกระแสสงสด 800mA

- ขนาดแผนวงจร 29.2 (mm) x23 (mm)

2.5.2 ไดรส าหรบขบมอเตอร 2 ตวแยกไดอยางอสละ หมนไป หมนกลบ (H-Bridge) และรอบ ความเรว สามารถ รอบรบมอเตอร กนกระแสสงสดไมเกน 800mA สามารถจายไฟได 2.5V to 12V โวลต สามารถใชรวมกบ Arduino ไดอยางงายดาย

2.6 3V Battery

รปภาพท 2.14 โมดลนาฬกา Real Time Clock

2.6.1 คณสมบต

- นาฬกาแบบเรยลไทมนบวนาทวนาทชวโมงวนเดอนเดอนวนปและปทมการชดเชยปงบประมาณใชไดถง 2100

- I / O Serial ส าหรบการนบจ านวนขนต า

- 2.0V ถง 5.5V การใชงานเตมรปแบบ

- ใชงานนอยกวา 300nA ท 2.0V

- โหมดถายโอนขอมลแบบไบตเดยวหรอหลายไบต (Burst Mode) ส าหรบอานหรอเขยนขอมลนาฬกาหรอแรม

- ขนาดบอรด: 44 มม. x 24 มม

2.6.2 Documents

- เอกสารขอมล DS1302

- นาฬกาเวลาจรง Arduino DS1302

- การใชโมดลนาฬกาเรยลไทมบน Raspberry Pi

2.7 A1083 : สายแพ ผ-เมย

รปภาพท 2.15 สายไฟจมเปอร

2.7.1 การน าไปใชงาน

• สายไฟจมเปอรแบบ เมย-เมย เหมาะส าหรบใชงานในวงจรทวๆไป หรอใชกบอปกณอเลกทรอนกสทม PIN ตวผ เชน บอรด Arduino Nano ทตว Pin ของบอรดเปนตวผ และนอกจากนยงสามารถใชรวมกบสายจมปแบบ ผ-ผ เพอตอเพมความยาวของสายไฟ

• ขนาด 26 AWG สามารถทนกระแสสงสดได 2.2 A ถาตอสายแบบ Chassis Wiring (ตอแบบแยกสาย) ,สามารถทนกระแสได 0.36 A ถาตอแบบ Power Transmission (รวมเปนกระจก)

2.7.2 คา AWG บอกอะไร

คา AWG หรอ American Wire Gauge คอคาทเอาไวบอกขนาดเสนผานศนยกลาง และทนกระแสสงสดของสายไฟ ตามมารตฐานอเมรกน โดยมขอสงเกตดงน.. • AWG มาก ,เสนใหญ

• AWG นอย ,ทนกระแสไดมาก ดงนน สรปไดวาสายไฟทมคา AWG นอย คอสายไฟทเสนใหญ และทนกระแสไดมาก นนเอง

การวจย

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

บทท 3

การด าเนนงาน

วธการด าเนนงานและขนตอนของโครงการเครองวดสวนสงดจตอลแบบพกพา ผจดท าโครงการมขนตอนดงน

1.ศกษาลกษณะการท างานของไมโครคอนโทรลเลอร(Microcontroller) เพอประยกตใชในการควบคมการท างานของระบบ Automatic Roo 2.ศกษาระบบการท างานของเซนเซอรแตละตว 3.ท าการออกแบบระบบและการวางเซนเซอรแตละตว 4.ศกษาและท าการเขยนโปรแกรมควบคมระบบเซนเซอรใหท างานตามคณสมบตของแตละ 5.ทดสอบการท างานพรอมทงแกไขปรบปรงขอผดพลาดทอาจจะเกดจากอปกรณในระบบวาจะ ท างานเตมทหรอไม 3.1 แผนผงการปฏบตงาน

รปภาพท 3.1 แสดงแผนผงของการท างาน

เรม

ศกษาขอมล

ออกแบบโครงสราง

เสนอ

อาจารยทปรบปรง

ไมผาน

1

ผาน

รปภาพท 3.2 (ตอ) แสดงแผนผงการด าเนนงาน

3.2 วสดอปกรณ

ล าดบ วสดอปกรณ จ านวน

1. 2. 3. 4. 5. 6. 7. 8.

บอรด Arduino UNO R3 DHT11 ตววดอณหภม HC-06 Bluetooth Module จอ LCD16X2 Relay 12 v.

Adapter 9V 1A ตวตานทาน (resistor) พดลมขนาด 16 นว

1 1 1 1 1 1 3 1

ตารางท 6 ตารางแสดงวสดอปกรณ

3.3 ขนตอนการประกอบชนงาน 3.3.1 เตรยมวสดอปกรณการประกอบเครอง

รปภาพท 3.1 เตรยมวสดอปกรณการประกอบเครอง

3.3.2 ตอวสดอปกรณเขากบ บอรด Arduino

รปภาพท 3.2 ตอวสดอปกรณเขากบ บอรด Arduino

3.3.3 บดกรเซนเซอรใสกบแผนวงจร

รปภาพท 3.3 บดกรเซนเซอรใสกบแผนวงจร

3.3.4 บดกร 1602 LCD

รปภาพท 3.4 บดกร 1602 LCD

3.3.5 ท าการตอบอรด arduino เขากบพดลมระบายความรอน

รปภาพท 3.5 ท าการตอบอรด arduino เขากบพดลมระบายความรอน

3.3.6 ตอสาย สาย usb arduino เขากบ usb โนตบค เพอทดสอบอปกรณ

รปภาพท 3.6 ตอสาย สาย usb arduino เขากบ usb โนตบค เพอทดสอบอปกรณ

3.3.7 อพโหลดโปรแกรมเขาไมโครคอนโทรลเลอร

รปภาพท 3.7 อพโหลดโปรแกรมเขาไมโครคอนโทรลเลอร

3.3.8 ทดสอบวดอณหภมโนตบคกบความเรวของพดลม

รปภาพท 3.8 ทดสอบวดอณหภมโนตบคกบรอบความเรวของพดลม

3.3.9 รปแบบการเขยนโปรแกรมบน Arduino

รปภาพท 3.9 รปแบบการเขยนโปรแกรมบน Arduino

3.3.10 เลอกรนบอรด Arduino ทตองการ upload

รปภาพท 3.10 เลอกรนบอรด Arduino ทตองการ upload 3.3.11 เลอกหมายเลข Comport ของบอรด

รปภาพท 3.11 เลอกหมายเลข Comport ของบอรด

3.3.12 เขยนโคด

รปภาพท 3.12 เขยนโคด

3.3.13 อพโหลดขอมลจาก Arduino ลงบอรด Arduino

รปภาพท 3.13 อพโหลดขอมลจาก Arduino ลงบอรด Arduino

3.3.9 โคดทใชปอนโปรแกรม arduino

#include <Wire.h>

#include <OneWire.h>

#include <DallasTemperature.h> // Including library for dht

#include<LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,20,4);

//#define ONE_WIRE_BUS 10

OneWire ds(10);

#define pwm 3

#include <DS1302.h>

DS1302 rtc(8, 7, 6);

/////////////////////////////////

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)

//OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.

//DallasTemperature sensors(&oneWire);

void setup(void)

{//clock//

rtc.halt(false);

rtc.writeProtect(false);

//// SET Time

//rtc.setDOW(TUESDAY); // Set Day-of-Week to FRIDAY

//rtc.setTime(11, 21, 0); // Set the time to 12:00:00 (24hr format)

//rtc.setDate(16, 3, 2017); // Set the date to August 6th, 2010

//////////////////////////////////////

lcd.init(); // initialize the lcd

lcd.init();

lcd.begin(20, 4);

lcd.backlight();

lcd.print(" Fan Speed ");

lcd.setCursor(0,1);

lcd.print(" Controlling ");

delay(2000);

analogWrite(pwm, 255);

lcd.clear();

lcd.print(" Narubat 007 ");

lcd.setCursor(0,1);

lcd.print(" Natthapon 005 ");

delay(2000);

lcd.clear();

delay (1000);

}

void loop(void)

{

byte i;

byte present = 0;

byte type_s;

byte data[12];

byte addr[8];

float celsius, fahrenheit; if ( !ds.search(addr)) {

Serial.println("No more addresses.");

Serial.println();

ds.reset_search();

delay(250);

return;

}

Serial.print("ROM =");

for( i = 0; i < 8; i++) {

Serial.write(' ');

Serial.print(addr[i], HEX);

}

if (OneWire::crc8(addr, 7) != addr[7]) {

Serial.println("CRC is not valid!");

return;

}

Serial.println();

// the first ROM byte indicates which chip

switch (addr[0]) {

case 0x10:

Serial.println(" Chip = DS18S20"); // or old DS1820

type_s = 1;

break;

case 0x28:

Serial.println(" Chip = DS18B20");

type_s = 0;

break;

case 0x22:

Serial.println(" Chip = DS1822");

type_s = 0;

break;

default:

Serial.println("Device is not a DS18x20 family device.");

return;

}

ds.reset();

ds.select(addr);

ds.write(0x44, 1); // start conversion, with parasite power on at the end

delay(1000); // maybe 750ms is enough, maybe not

// we might do a ds.depower() here, but the reset will take care of it.

present = ds.reset();

ds.select(addr);

ds.write(0xBE); // Read Scratchpad

Serial.print(" Data = ");

Serial.print(present, HEX);

Serial.print(" ");

for ( i = 0; i < 9; i++) { // we need 9 bytes

data[i] = ds.read();

Serial.print(data[i], HEX);

Serial.print(" ");

}

Serial.print(" CRC=");

Serial.print(OneWire::crc8(data, 8), HEX);

Serial.println();

////////////////////////////////////

///////////////////////////////////

// Convert the data to actual temperature

// because the result is a 16 bit signed integer, it should

// be stored to an "int16_t" type, which is always 16 bits

// even when compiled on a 32 bit processor.

int16_t raw = (data[1] << 8) | data[0];

if (type_s) {

raw = raw << 3; // 9 bit resolution default

if (data[7] == 0x10) {

// "count remain" gives full 12 bit resolution

raw = (raw & 0xFFF0) + 12 - data[6];

}

} else {

byte cfg = (data[4] & 0x60);

// at lower res, the low bits are undefined, so let's zero them

if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms

else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms

else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms

//// default is 12 bit resolution, 750 ms conversion time

}

//////////////////////////////

celsius = (float)raw / 16.0;

fahrenheit = celsius * 1.8 + 32.0;

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

////////////////////

lcd.clear();

lcd.print(rtc.getDOWStr());

lcd.println(rtc.getTimeStr());

lcd.print(" ");

lcd.setCursor(0,1);

// Send date

lcd.print(rtc.getDateStr());

lcd.print(" ");

// delay (1000);

// lcd.clear();

// Send time

// lcd.println(rtc.getTimeStr());

// Wait one second before repeating :)

delay (3000);

/////////////////////////////////////

if(celsius <= 27 )

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 255);

lcd.print("Fan OFF ");

delay(10);

}

else if(celsius <= 30)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 204);

lcd.print("Fan Speed: 20% ");

delay(1000);

}

else if(celsius <= 34)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 153);

lcd.print("Fan Speed: 40% ");

delay(1000);

}

else if(celsius <= 38)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 102);

lcd.print("Fan Speed: 60% ");

delay(1000);

}

else if(celsius <= 42)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 51);

lcd.print("Fan Speed: 80% ");

delay(1000);

}

else if(celsius <= 44)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 1);

lcd.print("Fan Speed: 100% ");

delay(1000);

}

else if(celsius >= 44)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 0);

lcd.print("Error Fan ");

delay(1000);

}

delay(3000)

บทท 4

ผลการทดลอง 4.1 ผลการทดลอง ขนตอนท 1 เสยบสายUSBทออกจากบอรดเขากบโนตบคทเราจะใชงาน แลวพดลมจะหมนทนท เพราะเปนโหมด Auto จะปรบความเรวตามอณหภม อณหภมต ากวา 29º รอบพดลมจะยงไมหมนประมาน20% อณหภม 30º - 33º รอบพดลมจะหมนประมาน 40% อณหภม 34º - 66º รอบพดลมจะหมนประมาน 60% อณหภมมากกวา 37º รอบพดลมจะหมนเตมทประมาน 80%

รปภาพท 4.1 โหมด29ºปรบความเรวตามอณหภม

4.2 ตารางผลการทดลอง ขนตอนท 2 ทดลองพดลมระบายความรอนปรบความเรวตามอณหภมโดยการใชโนตบค coue i2 2 เครอง ซงเครองท1จะเปดแคโปรแกรมwordอยางเดยว สวนเครองท2จะเปดเกมส โปรแกรมแตงภาพและโปรแกรมคาราโอเกะพรอมๆกนเปนเวลา 1 ชม.

โนตบค coue i2

อณหภมเฉลยองศาเซลเซยส°C

1นาท 30นาท 59นาท

เครองท 1 29.0 30.1 30.2

เครองท 2 30.1 38.0 40.2

ตารางท 4.1 ผลการทดลอง

จะเหนไดวาเครองท1 ทท างานไมหนกมากพดลมระบายความรอนจะไมปรบเปลยนความเรวของพดลมโดยอณหภมเฉลยอยท 30 °C สวนเครองท2 ซงท างานหนกมากพดลมระบายความรอนจะปรบเปลยนความเรวของพดลมเรวมากโดยอณหภมเฉลยอยท 40 °C 4.3 ตารางประสทธภาพของการทดลอง ขนตอนท 3 ประสทธภาพของการทดลองพดลมระบายความรอนโนตบคแบบธรรมดาทวและแบบปรบอณหภมอตโนมต โดยโนตบค coue i2 เปดเกมสทงไว 1 ชม.

โนตบคcoue i2 เปดเกมสทงไว

1 ชม.

อณหภมและรอบความเรวพดลม

แบบธรรมดา แบบปรบอณหภมอตโนมต

1 นาท 100% 20%

30 นาท 100% 60%

59 นาท 100% 80%

ตารางท 4.2 ประสทธภาพของการทดลอง

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

4.4 พจารณาแบบประเมนคณภาพ พดลมระบายความรอนโนตบค อยในระดบใด โดยท าเครองหมาย ลงในชองระดบความเหนของแตละขอ ระดบความคดเหนมเกณฑการใหคะแนน ดงน

ดมาก ไดคะแนน 5 ด ไดคะแนน 4 ปานกลาง ไดคะแนน 3 พอใช ไดคะแนน 2 ควรปรบปรง ไดคะแนน 1

รายการประเมน ระดบคะแนนทได ขอคดเหน

เพมเตม 5 4 3 2 1

1. พดลมหมนตามอณหภมทตงไว

2. ความสะดวก สบายในการพกพา

3. สามารถรถงความรอนของเครองโนตบค

สรปผลการประเมนคดเปนคาเฉลย คอ

= 7

รายการประเมน ระดบคะแนนทได ขอคดเหน

เพมเตม

5 4 3 2 1

1. พดลมหมนตามอณหภมทตงไว

2. ความสะดวก สบายในการพกพา

3. สามารถรถงความรอนของเครองโนตบค

สรปผลการประเมนคดเปนคาเฉลย คอ

= 7

รายการประเมน ระดบคะแนนทได ขอคดเหน

เพมเตม 5 4 3 2 1

1. พดลมหมนตามอณหภมทตงไว

2. ความสะดวก สบายในการพกพา

3. สามารถรถงความรอนของเครองโนตบค

สรปผลการประเมนคดเปนคาเฉลย คอ

= 6

ตารางท 4.4 แบบประเมนพดลมระบายความรอนโนตบค

บทท 5 สรปผลการด าเนนงาน

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

โนตบค coue i2

อณหภมเฉลยองศาเซลเซยส°C

1นาท 30นาท 59นาท

เครองท 1 29.0 30.1 30.2

เครองท 2 30.1 38.0 40.2

ตารางท 5.1 ผลการทดลอง

จะเหนไดวาเครองท1 ทท างานไมหนกมากพดลมระบายความรอนจะไมปรบเปลยนความเรวของพดลมโดยอณหภมเฉลยอยท 30 °C สวนเครองท2 ซงท างานหนกมากพดลมระบายความรอนจะปรบเปลยนความเรวของพดลมเรวมากโดยอณหภมเฉลยอยท 40 °C 5.2 ประโยชน 1.ลดความความรอนในเครองใหดขน

2.ชวยยดอายการใชงานของซพยกบการดจอ 3.สามารถรถงความรอนของโนตบต 4.ท าใหโนตบคมการท าทดขน

5.3 ปญหาในการพฒนาระบบ เนองจากผจดท าระบบขาดความรและประสบการณในการเขยนโปรแกรม Arduino

สงผลใหกระบวนการท างานโปรแกรมเกดการลาชาเนองจากตองแกไขบอยครงและเซนเซอรพงจงตองใชเวลาในการสงของนานและชนงานมขนาดใหญพบพาอาจล าบากและไมสะดวก 5.4 แนวทางการพฒนาตอ

สามารถน าไปพฒนาพดลมของคอมพวเตอร สามารถน าไปพฒนาเปนเครองวดอณภมทวไปได สามารถน าไปพฒนาเปนพดลมปรบอณหภมตามสภาพอากาศ

บรรณานกรม

บรรณานกรม

โครงงานพดลมระบายความรอนโนคบค(ออนไลน) .๒๕๕๗ .กรงเทพฯ .แหลงทมา :http://aimagin.com/blog/พดลมระบายความรอนโนคบค/ ?lang=th . ๒ เมษายน ๒๕๕๗ Height Measure using VL53L0X (ออนไลน).๒๕๕๙ .แหลงทมา

:https://www.hackster.io/H0meMadeGarbage/height-measure-using-vl53l0x-aa4f4c . ๑๗ กนยายน ๒๕๕๙

Arduino all (ออนไลน) .๒๕๕๗. กรงเทพฯ .แหลงทมา :

https://www.arduinoall.com/

ณรงค วชรเสถยร โจเซฟ เคดาร นรส ประทนทอง และ จงจตร หรญลาภ

ภาคผนวก ก

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

ดมาก ไดคะแนน 5 ด ไดคะแนน 4 ปานกลาง ไดคะแนน 3 พอใช ไดคะแนน 2 ควรปรบปรง ไดคะแนน 1

รายการประเมน ระดบคะแนนทได ขอคดเหน

5 4 3 2 1 เพมเตม

1. พดลมหมนตามอณหภมทตงไว

2. ความสะดวก สบายในการพกพา

3. สามารถรถงความรอนของเครองโนตบค

สรปผลการประเมนคดเปนคาเฉลย คอ

= 7

รายการประเมน ระดบคะแนนทได ขอคดเหน

เพมเตม

5 4 3 2 1

1. พดลมหมนตามอณหภมทตงไว

2. ความสะดวก สบายในการพกพา

3. สามารถรถงความรอนของเครองโนตบค

สรปผลการประเมนคดเปนคาเฉลย คอ

= 7

รายการประเมน ระดบคะแนนทได ขอคดเหน

เพมเตม 5 4 3 2 1

1. พดลมหมนตามอณหภมทตงไว

2. ความสะดวก สบายในการพกพา

3. สามารถรถงความรอนของเครองโนตบค

สรปผลการประเมนคดเปนคาเฉลย คอ

= 6

ตารางท 4.4 แบบประเมนพดลมระบายความรอนโนตบค

แบบเสนอโครงการ

1. ชอโครงการ พดลมระบายความรอนโนตบค 2. ผรบผดชอบโครงการ นายนฤเบศร นอยมะลวน นายณฐพล จนทจร

3. ระยะเวลาการด าเนนงาน พฤศจกายน 2559 – มนาคม 2560 4. หลกการและเหตผล

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

5. วตถประสงคของโครงการ

5.1 เพอเกบรกษาของมคาใหมประสทธภาพ 5.2 เพอเกบทรพยสนทมคาไมใหสญหาย

5.3 เพอใหทรพยสนทมคาปลอดภย

การด าเนนงาน พ.ย.59 ธ.ค.

59 ม.ค. 60

ก.พ. 60

ม.ค. 60

ศกษาขอมล

น าเสนอโครงงาน

ปฏบตงาน

จดท ารปเลม

ตรวจสอบ

6. แผนการด าเนนงาน 7. สถานทด าเนนการ ภาควชาเทคโนโลยคอมพวเตอร วทยาลยเทคนคมหาสารคามและทพกสวนตว 8. งบประมาณ 8.1 คาเอกสารและรปเลม 1,000 บาท 8.2 คาวสดอปกรณ 1,200 บาท รวม 2,200 บาท 9. ผลทคาดวาจะไดรบ 9.1 ไดเรยนรระบบการเขยนโปรแกรมโดยใชภาษา Arduino

9.2 ท าใหมประสบการณในการท างานมากขน 9.3 สามารถใชเวลาวางใหเปนประโยชน 9.4 ท าใหเกดความรใหมทยงไมรจกในการท างาน 9.5 น าไปประยกตใชในงานอนไดอกหลายอยาง

9.6 ไดศกษาเกยวกบการท างานของระบบตางๆเพอน าไปปรบไปใชในชวตประจ าวนได 9.7 สามารถน าผลงานไปเสนอเปนแนวทางในการศกษาแกผสนใจ เพอพฒนาตอยอดให ดยงขนไป

ลงชอ..................................................ครทปรกษา (นายวศรต การถก)

น าเสนอชนงาน

ภาคผนวก ข

โคด พดลมระบายความรอนโนตบค

โคดทใชปอนโปรแกรม arduino

#include <Wire.h>

#include <OneWire.h>

#include <DallasTemperature.h> // Including library for dht

#include<LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,20,4);

//#define ONE_WIRE_BUS 10

OneWire ds(10);

#define pwm 3

#include <DS1302.h>

DS1302 rtc(8, 7, 6);

/////////////////////////////////

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)

//OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.

//DallasTemperature sensors(&oneWire);

void setup(void)

{//clock//

rtc.halt(false);

rtc.writeProtect(false);

//// SET Time

//rtc.setDOW(TUESDAY); // Set Day-of-Week to FRIDAY

//rtc.setTime(11, 21, 0); // Set the time to 12:00:00 (24hr format)

//rtc.setDate(16, 3, 2017); // Set the date to August 6th, 2010

//////////////////////////////////////

lcd.init(); // initialize the lcd

lcd.init();

lcd.begin(20, 4);

lcd.backlight();

lcd.print(" Fan Speed ");

lcd.setCursor(0,1);

lcd.print(" Controlling ");

delay(2000);

analogWrite(pwm, 255);

lcd.clear();

lcd.print(" Narubat 007 ");

lcd.setCursor(0,1);

lcd.print(" Natthapon 005 ");

delay(2000);

lcd.clear();

delay (1000);

}

void loop(void)

{

byte i;

byte present = 0;

byte type_s;

byte data[12];

byte addr[8];

float celsius, fahrenheit; if ( !ds.search(addr)) {

Serial.println("No more addresses.");

Serial.println();

ds.reset_search();

delay(250);

return;

}

Serial.print("ROM =");

for( i = 0; i < 8; i++) {

Serial.write(' ');

Serial.print(addr[i], HEX);

}

if (OneWire::crc8(addr, 7) != addr[7]) {

Serial.println("CRC is not valid!");

return;

}

Serial.println();

// the first ROM byte indicates which chip

switch (addr[0]) {

case 0x10:

Serial.println(" Chip = DS18S20"); // or old DS1820

type_s = 1;

break;

case 0x28:

Serial.println(" Chip = DS18B20");

type_s = 0;

break;

case 0x22:

Serial.println(" Chip = DS1822");

type_s = 0;

break;

default:

Serial.println("Device is not a DS18x20 family device.");

return;

}

ds.reset();

ds.select(addr);

ds.write(0x44, 1); // start conversion, with parasite power on at the end

delay(1000); // maybe 750ms is enough, maybe not

// we might do a ds.depower() here, but the reset will take care of it.

present = ds.reset();

ds.select(addr);

ds.write(0xBE); // Read Scratchpad

Serial.print(" Data = ");

Serial.print(present, HEX);

Serial.print(" ");

for ( i = 0; i < 9; i++) { // we need 9 bytes

data[i] = ds.read();

Serial.print(data[i], HEX);

Serial.print(" ");

}

Serial.print(" CRC=");

Serial.print(OneWire::crc8(data, 8), HEX);

Serial.println();

////////////////////////////////////

///////////////////////////////////

// Convert the data to actual temperature

// because the result is a 16 bit signed integer, it should

// be stored to an "int16_t" type, which is always 16 bits

// even when compiled on a 32 bit processor.

int16_t raw = (data[1] << 8) | data[0];

if (type_s) {

raw = raw << 3; // 9 bit resolution default

if (data[7] == 0x10) {

// "count remain" gives full 12 bit resolution

raw = (raw & 0xFFF0) + 12 - data[6];

}

} else {

byte cfg = (data[4] & 0x60);

// at lower res, the low bits are undefined, so let's zero them

if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms

else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms

else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms

//// default is 12 bit resolution, 750 ms conversion time

}

//////////////////////////////

celsius = (float)raw / 16.0;

fahrenheit = celsius * 1.8 + 32.0;

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

////////////////////

lcd.clear();

lcd.print(rtc.getDOWStr());

lcd.println(rtc.getTimeStr());

lcd.print(" ");

lcd.setCursor(0,1);

// Send date

lcd.print(rtc.getDateStr());

lcd.print(" ");

// delay (1000);

// lcd.clear();

// Send time

// lcd.println(rtc.getTimeStr());

// Wait one second before repeating :)

delay (3000);

/////////////////////////////////////

if(celsius <= 27 )

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 255);

lcd.print("Fan OFF ");

delay(10);

}

else if(celsius <= 30)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 204);

lcd.print("Fan Speed: 20% ");

delay(1000);

}

else if(celsius <= 34)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 153);

lcd.print("Fan Speed: 40% ");

delay(1000);

}

else if(celsius <= 38)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 102);

lcd.print("Fan Speed: 60% ");

delay(1000);

}

else if(celsius <= 42)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 51);

lcd.print("Fan Speed: 80% ");

delay(1000);

}

else if(celsius <= 44)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 1);

lcd.print("Fan Speed: 100% ");

delay(1000);

}

else if(celsius >= 44)

{

lcd.clear();

lcd.print("Temperature:");

lcd.print(celsius); // Printing temperature on LCD

lcd.write(1);

lcd.print("C");

lcd.setCursor(0,1);

analogWrite(pwm, 0);

lcd.print("Error Fan ");

delay(1000);

}

delay(3000);

}

ภาคผนวก ค คมอการใชงานพดลมระบายความรอน

โนตบค

1.ใหน าชนงานมาวางลง

2. ใหท าการเสยบUSBใสโนตบค

3. พอเสยบสายUSBแลวมนจะขน

มนจะขนชอผจดท า

4. พอขนชอแลวมนจะขนวนเดอนป

เวลาปจจบน

5.พอขนวนเดอนปเวลาแลวมนจะขน

อณหภมและความเรวของพดลม

ถาอณหภมขน 29.2º พดลมจะไมหมน

แตถาอณหภมมากกวา30º พดลมจะหมนตามตวามเรวทตงไว

ประวตผจดท า

ประวตผจดท า

ขอ-สกล นายนฤเบศร นอยมะลวน

ชอเลน เบศ

ทอย 5 ซอย 4/1 ถนนรมคลองสมถวล ต าบลตลาด อ าเภอเมอง จงหวดมหาสารคาม

วน เดอน ป เกด วนท 17 พฤจกายน 2539

การศกษา ระดบชน มธยมศกษาปท 3 โรงเรยนเทศบาลบรพาพทยาคาร ต าบลตลาด อ าเภอเมอง จงหวดมหาสารคาม

ปจจบนก าลงศกษา ระดบประกาศนยบตรวชาชพชนสง ชนปท2ภาควชาเทคโนโลยคอมพวเตอร สาขางานเทคนคคอมพวเตอร วทยาลยเทคนคมหาสารคาม

โทร 0883074170

E-mail [email protected]

ประวตผจดท า

ขอ-สกล นายณฐพล จนทจร

ชอเลน จาบ

ทอย บานเชยงเหยน บานเลขท115 ม.3 ต.เขวา อ.เมอง จ.มหาสารคาม

วน เดอน ป เกด 26 พฤศจกายน 2539

การศกษา ระดบชน มธยมศกษาปท 3 โรงเรยนเทศบาลบรพาพทยาคาร ต าบลตลาด อ าเภอเมอง จงหวดมหาสารคาม

ปจจบนก าลงศกษา ระดบประกาศนยบตรวชาชพชนสง ชนปท2 ภาควชาเทคโนโลยคอมพวเตอร สาขางานเทคนคคอมพวเตอร

วทยาลยเทคนคมหาสารคาม

โทร 0913707290

E-mail [email protected]