35 printf(\"linker LedPin : GPIO %d(wiringPi pin)\\n\",BUZZER); //when initialize wiring successfully,print message to screen //setup pin for device pinMode(LED, OUTPUT); pinMode(BUZZER, OUTPUT); pinMode(SMOKE, INPUT); //run forever while(1){ sensordetect = digitalRead(SMOKE);//คาสง่ั สง่ line ไปยังโทรศัพท์ //printf(\"sensor status : %d\\n\",sensordetect); printf(\"OK!!!\\n\"); //echo siren and show bliking led if sensor has detected ( 0 means senser has detected) if (sensordetect == 0) { printf(\"hey!!! there are stududent smoking!!!\\n\");ข้อความ siren(); send_line(); } } //คาส่ังส่งเสยี ง return 0; } //make a siren sound and blinking led void siren(void) { int i; //generate siren low sound
36 digitalWrite(LED,HIGH); for (i = 0; i <80; i++) // Wen a frequency sound { digitalWrite (BUZZER, HIGH) ;// send voice //ส่งเสียง delay (1) ;// Delay 1ms digitalWrite (BUZZER, LOW) ;// do not send voice delay (1) ;// delay ms } digitalWrite(LED,LOW); //generate siren high sound for (i = 0; i <100; i++) // Wen Qie out another frequency sound { digitalWrite (BUZZER, HIGH) ;// send voice delay (2) ;// delay 2ms digitalWrite (BUZZER, LOW) ;// do not send voice delay (2) ;// delay 2ms } } int send_line(void) { char line[LINE_BUFSIZE]; int linenr; FILE *pipe; /* Get a pipe where the output from the scripts comes in */ pipe = popen(\"./sendline.sh\", \"r\"); if (pipe == NULL) { /* check for errors */ //perror(argv[0]); /* report error message */ return 1; /* return with exit code indicating error */
37 } /* Read script output from the pipe line by line */ linenr = 1; while (fgets(line, LINE_BUFSIZE, pipe) != NULL) { printf(\"Script output line %d: %s\", linenr, line); ++linenr; } /* Once here, out of the loop, the script has ended. */ pclose(pipe); /* Close the pipe */ return 0; /* return with exit code indicating success. */ }
38 ภาพการประกอบเคร่ืองดกั จับควันบหุ ร่ี ขัน้ ตอนแรกคือ ตอ่ แผงวงจรไฟฟา้ เพื่อทดลองวา่ อุปกรณ์ของเราใชง้ านไดห้ รือไม่ เม่อื ต่อแผงวงจรเสรจ็ แล้ว ก็นาสายตา่ งๆเสยี บกับราสเบอรร์ ี่พาย ก็คือสายจอ สายเมา้ ส์ สายคียบ์ อรด์ และ สายยเู อสบี
39 เมอื่ ต่อสายทกุ ตัวเสร็จแล้ว ทาการรรันโปรแกรมครง้ั แรกค่ะ ดังภาพน่ะค่ะ เมื่อกดรนั แล้วจะข้นึ หนา้ จอดังภาพค่ะ เม่อื ยังไม่มคี วนั หนา้ จอจะแสดงคาว่า OK!!!!!! เสร็จแล้วลองทาการทดลองโดยจุดควันธูปใหเ้ ขา้ ไปในเซนเซอร์รับควัน และหน้าจอจะแสดงข้อความว่า there are stududent smoking !!!!!!
40 เมอื่ โปรแกรมทางานตามที่ตอ้ งการแล้ว นา Raspberry pi 3 มาใสใ่ นกล่องและต่อแผงวงจรใหม่อกี ครง้ั จากนัน้ ก้อนากล่องแรกคือกล่องราสเบอร์ร่ีพายมาใส่ไว้ในกลอ่ งท่สี อง แลว้ ใสแ่ ผงจงจรเข้าไป นากล่องที่สองมาตดิ ไว้บนเพดากลอ่ งท่สี าม เป็นกล่องจาลองห้องน้าแลว้ ต่อสายจอ สายคีย์บอรด์ สายเมาส์ และสายยเู อสบี
41 เปดิ เคร่อื งและเรียกโปรแกรมแบบทที่ าไว้ในตอนแรก ทาการทดลองอีกครง้ั โดยนาควันบหุ ร่ีเขา้ ไปในเซนเซอรรบั ควนั และรอดผู ลการทดลองค่ะ หนา้ จอคอมพวิ เตอรแ์ สดงคาว่า there are stududent smoking !!!!!!
42 และในใลนข์ องเราก็จะมขี ้อความแจง้ เตอื นเชน่ กันค่ะ เมอ่ื ทุกส่ิงทุกอยา่ งทางานตามที่เราตอ้ งการแล้ว เปน็ อนั ว่าสาเร็จคะ่
คู่มอื การใช้งาน เครอื่ งดกั จับควันบหุ ร่ีในห้องนา้ โดย นายเจษฎา สมใจ นกั เรียนช้ันมธั ยมศกึ ษาปที ่ี 5 นางสาวโนรอาซกี ิมณ์ นาพี นักเรยี นช้ันมัธยมศึกษาปีท่ี 5 นางสาวสรู ตี า บือราเฮง นกั เรียนชน้ั มธั ยมศกึ ษาปีท่ี 5 ชื่ออาจารยท์ ี่ปรกึ ษา นางสาวเปรมยดุ า จนั ทรเ์ หมือน นายอสุ มาน ยะโก๊ะ โรงเรียนศึกษาสงเคราะห์นราธวิ าส ตา้ บลโละจูด อ้าเภอแว้ง จังหวดั นราธวิ าส
คู่มือการใช้งานเครื่องดกั จับควนั บุรี อุปกรณ์ 1. บอร์ด Raspberry Pi 3 2. Protoboard 3. ตวั ตา้ นทาน (Resistor) 4. Micro SD Card 5. พาสซีฟบสั เซอร์ 6. เซนเซอร์ตรวจจบั ควนั (Smoke Detector) 7. หลอดไดโอดเปล่งแสง 8. สายไฟจมั เปอร์ (สายผ-ู้ ผู้ , สายเมีย-เมีย , สายผ-ู้ เมีย) วธิ ีการประกอบ บอร์ด Raspberry Pi 3 Protoboard ตวั ตรวจจับควนั บุหร่ี ขาที่ 2 ข้วั บวก(+) ช่องที่ 3 - ขาท่ี 4 ขาท่ี 6 - ขา VCC ขาท่ี 9 ข้วั ลบ (-) ช่องที่ 5 - ขาที่ 11 - ขาท่ี 12 ช่อง 8a - ขาที่ 14 ช่อง 17d - - ช่อง 6a ขา GND .................. - - ข้วั ลบ(-) กบั ช่อง 7a ขา DO - เซนเซอร์เสยี ง ตอ่ เข้ากบั Protoboard ชอ่ งท่ี 6e, 7e , 8e โดยที่ตวั เซนเซอร์หนั ไปทางชอ่ ง a หลอด LED นาโน ตอ่ ขาที่ยาวบน Protoboard ขวั้ บวก(+) ช่องท่ี 10 และขาท่ีสนั้ ชอ่ ง 20a ตัวต้านท้าน ตอ่ เข้ากบั Protoboard ชอ่ งท่ี 17e (ฝั่งที่มีขดี เดยี ว) และ 20e (ฝั่งทีม่ ีหลายขดี ) ***หมายเหตุ แบบในการการประกอบขนึ ้ อยทู่ แ่ี ตล่ ะบคุ คลวา่ ต้องการประกอบในรูปแบบใด หลกั การประกอบ 1. จดั เตรียมอุปกรณ์ท่ีใชใ้ นการประกอบตวั ตรวจจบั ควนั บุหร่ี 2. นา Raspberry Pi 3 มาใส่ในกล่อง
โครงงานเครื่องดกั จบั ควนั บหุ รี่ในห้องนา้ 35 3. นาสายจมั๊ เปอร์ตวั ผู-้ เมีย มาต่อบนบอร์ด Raspberry Pi 3 ขาท่ี 2 และบน Protoboard ข้วั บวก(+) ช่องท่ี 3 4. นาสายจม๊ั เปอร์ตวั เมีย-เมีย มาตอ่ บนบอร์ด Raspberry Pi 3 ขาที่ 4 และท่ีเซนเซอร์ตรวจจบั ควนั บุหรี่ ที่ขา VCC 5. นาสายจมั๊ เปอร์ตวั ผู-้ เมีย มาต่อบนบอร์ด Raspberry Pi 3 ขาที่ 6 และบน Protoboard ข้วั ลบ(-) ช่องที่ 5
โครงงานเคร่ืองดกั จบั ควนั บหุ ร่ีในห้องนา้ 36 6. นาสายจมั๊ เปอร์ตวั ผู-้ เมีย มาต่อบนบอร์ด Raspberry Pi 3 ขาท่ี 9 และบน Protoboard ช่อง 8a 7. นาสายจมั๊ เปอร์ตวั ผู-้ เมีย มาต่อบนบอร์ด Raspberry Pi 3 ขาท่ี 11 และบน Protoboard ช่อง 17d 8. นาสายจม๊ั เปอร์ตวั ผ-ู้ เมีย มาต่อบนบอร์ด Raspberry Pi 3 ขาท่ี 12 และบน Protoboard ช่อง 6a
โครงงานเคร่ืองดกั จบั ควนั บหุ รี่ในห้องนา้ 37 9. นาสายจม๊ั เปอร์ตวั เมีย-เมีย มาต่อบนบอร์ด Raspberry Pi 3 ขาท่ี 14และและที่เซนเซอร์ตรวจจบั ควนั บุหร่ี ที่ขา VCC 10. นาสายจม๊ั เปอร์ตวั ผู-้ ผู้ มาต่อบนProtoboard ช่องลบ(-) ช่อง 1 กบั ช่อง 7a 11. นาเซนเซอร์เสียงมาต่อเขา้ กบั Protoboard ช่องท่ี 6e, 7e , 8e โดยท่ีตวั เซนเซอร์หนั ไปทางช่อง a
โครงงานเคร่ืองดกั จบั ควนั บหุ ร่ีในห้องนา้ 38 12. นาตวั ตา้ นทานมาต่อเขา้ กบั Protoboard ช่องที่ 17e (ฝ่ังที่มีขีดเดียว) และ 20e (ฝั่งที่มีหลายขีด) 13. นาตวั หลอด LED นาโน ตอ่ ขาท่ียาวบน Protoboard ข้วั บวก(+) ช่องที่ 10 และขาที่ส้นั ช่อง 20a 14. การประกอบเสร็จสมบูรณ์
โครงงานเครื่องดกั จบั ควนั บหุ ร่ีในห้องนา้ 39 หลงั จากนนั้ ให้นาตวั ตรวจจบั ควนั ไปใสใ่ นกลอ่ งเพอ่ื ทาการลงโปรแกรมการทางาน ข้นั ตอนการเตรียม Software สาหรับตดิ ต้งั ระบบปฏบิ ตั กิ าร Linux ลงบนบอร์ด Raspberry Pi 1. ดาวนโ์ หลด Software raspberry pi สามารถดาวนโ์ หลดไดจ้ ากลิงค์ https://www.raspberrypi.org/downloads/noobs/ หลงั จากน้นั ใหท้ าการแตกไฟล์ 2. ติดต้งั โปรแกรม SD Formatter 4.0 ใชส้ าหรับ Format Disk สามารถดาวนโ์ หลดไดจ้ ากลิงค์ https://sd-card-formatter.th.uptodown.com/windows เมอื่ ทาการตดิ ตงั ้ เรียบร้อยให้ทาการFormat Disk ได้เลย
โครงงานเครื่องดกั จบั ควนั บหุ รี่ในห้องนา้ 40 3. เมื่อทาการ Format Disk เรียบร้อยแลว้ ใหน้ า raspberry pi ที่ทาการลง Software แลว้ ไปเปิ ด เครื่องดว้ ยการตอ่ เขา้ กบั หนา้ จอคอมพิวเตอร์ เมาส์และคียบ์ อร์ด เสียบสายไฟใหเ้ รียบร้อยและ ทาการเปิ ดเครื่องเพื่อเริ่มการเขียนโปรแกรม 4. ใหเ้ ปิ ดโปรแกรม แลว้ เขียนโปรแกรมโดยใชโ้ คด๊ ดงั น้ี /********************************** * This code for detec the smoke * if the smoke has detected it will open * alarm system and sedn notify to LINE application *********************************/ //get needed library #include <wiringPi.h> #include <stdio.h> //pin specfication #define LED 0 #define BUZZER 1 #define ALGOHOL 4 #define LINE_BUFSIZE 1024 void siren(void); int send_line(void); // main funcion int main(void) { int sensordetect = 0; // set default sensor value //initial device if(wiringPiSetup() == -1){ //when initialize wiring failed,print messageto screen printf(\"setup wiringPi failed !\"); return 1; } printf(\"linker LedPin : GPIO %d(wiringPi pin)\\n\",BUZZER); //when initialize wiring successfully,print message to screen //setup pin for device pinMode(LED, OUTPUT); pinMode(BUZZER, OUTPUT); pinMode(ALGOHOL, INPUT); //run forever while(1){ sensordetect = digitalRead(ALGOHOL); //printf(\"sensor status : %d\\n\",sensordetect); printf(\"OK!!!\\n\"); //echo siren and show bliking led if sensor has detected ( 0 means senser has detected) if (sensordetect == 0) { printf(\"hey!!! there are stududent smoking!!!\\n\");
โครงงานเครื่องดกั จบั ควนั บหุ ร่ีในห้องนา้ 41 siren(); send_line(); } } return 0; } //make a siren sound and blinking led void siren(void) { int i; //generate siren low sound digitalWrite(LED,HIGH); for (i = 0; i <80; i++) // Wen a frequency sound { digitalWrite (BUZZER, HIGH) ;// send voice delay (1) ;// Delay 1ms digitalWrite (BUZZER, LOW) ;// do not send voice delay (1) ;// delay ms } digitalWrite(LED,LOW); //generate siren high sound for (i = 0; i <100; i++) // Wen Qie out another frequency sound { digitalWrite (BUZZER, HIGH) ;// send voice delay (2) ;// delay 2ms digitalWrite (BUZZER, LOW) ;// do not send voice delay (2) ;// delay 2ms } } int send_line(void) { char line[LINE_BUFSIZE]; int linenr; FILE *pipe; /* Get a pipe where the output from the scripts comes in */ pipe = popen(\"./sendline.sh\", \"r\"); if (pipe == NULL) { /* check for errors */ //perror(argv[0]); /* report error message */ return 1; /* return with exit code indicating error */ } /* Read script output from the pipe line by line */ linenr = 1; while (fgets(line, LINE_BUFSIZE, pipe) != NULL) { printf(\"Script output line %d: %s\", linenr, line); ++linenr;
โครงงานเคร่ืองดกั จบั ควนั บหุ ร่ีในห้องนา้ 42 } /* Once here, out of the loop, the script has ended. */ pclose(pipe); /* Close the pipe */ return 0; /* return with exit code indicating success. */ } 5. เม่ือทาการเขียนโปรแกรมเรียบร้อยแลว้ ใหท้ าการบนั ทึก 6. เปิ ดโปรแกรม เพื่อทดลองการทางานของตวั ตรวจจบั ควนั บุหร่ี โดยพมิ พโ์ คด๊ เรียก ฟังกช์ นั การทางานของโปรแกรมแลว้ กด Enter เพื่อให้โปรแกรมเริ่มการทางาน ดงั รูป 7. เมื่อโปรแกรมเร่ิมทางานหนา้ จอจะแสดงผล ดงั รูป
โครงงานเครื่องดกั จบั ควนั บหุ ร่ีในห้องนา้ 43 8. เม่ือเซนเซอร์ตวั ตรวจจบั ควนั สามารถตรวจจบั ควนั ไดจ้ ะมีหนา้ จอจะแสดงผล ดงั รูป และมเี สยี งเตอื น ไฟกระพริบขนึ ้ และจะทาการสง่ ข้อความแจ้งเตอื นไปยงั แอพลเิ คชน่ั ไลน์กลมุ่ ที่โปรแกรมทาการผกู เลข Token ไว้ ดงั รูป
โครงงานเครื่องดกั จบั ควนั บหุ ร่ีในห้องนา้ 44
Search