The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

โครงงานวัดความชื้นของดิน

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Khuesiri Kanokwan, 2024-05-31 09:51:34

โครงงานวัดความชื้นของดิน

โครงงานวัดความชื้นของดิน

Keywords: โครงงานวัดความชื้นของดิน

รดนํÊาตน้ ไมอ้ตัโนมตัิโดยใชเ้ซ็นเซอร์วดัความชÊืนของดินผา่นไลน์แอพพลิเคชันÉ Automatically water plants while measuring soil through the LINE application. จดัทาํโดย นางสาว กนกวรรณ เครือศิริ รหัสประจาํตวั 65110207 อาจารยท์ ีÉปรึกษาโครงงาน อาจารย์นิรัญ งามเกิด รายงานนีÊเป็ นส่วนหนึÉงของวิชา BA368302 การวเิคราะและออกแบบระบบสารสนเทศทางธุรกิจ ภาควิชาสาขาวิชาเทคโนโลยีสารสนเทศและการจดัการ คณะบริหารธุรกิจ มหาวิทยาลยัเกริก ปีการศึกษา 2566


2 กติติกรรมประกาศ ฉบบันÊีจดัทาํขÊนเพื ึÉอเป็ นส่วนหนึÉงของการศึกษาตามหลกัสูตรปริญญาบริหารธุรกิจ บณัฑิต สาขาวิชา เทคโนโลยีสารสนเทศโดยมุ่งออกแบบ และการจดัทาํโครงการเครืÉองรดนํÊาตน้ ไมอ้ตัโนมตัิโดยใชเ้ซ็นเซอร์ วดัความชÊืนของดิน เครืÉองรดนํÊาตน้ ไมอ้ตัโนมตัิโดยใชเ้ซ็นเซอร์วดัความชÊืนของดินสาํเร็จลุล่วงไปดว้ยดีดว้ยความอนุเคราะห์จาก อาจารย์นิรัญ งามเกิด ซÉึงอาจารยไ์ดก้รุณาใหค้าํเสนอแนะและขอ้คิดเห็นต่าง ๆตลอดจนใหค้วามใส่ใจใน การตรวจสอบแกไ้ขและปรับปรุงขอ้บกพร่องต่าง ๆ จึงขอขอบพระคุณอยา่งสูงไว้ณ ทÉีนีÊดว้ย ขอขอบคุณคณาจารยค์ณะเทคโนโลยสีารสนเทศ มหาวิทยาลยัเกริก ทุกท่านทÉีใหค้วามช่วยเหลือในการ ดาํเนินโครงงานให้สาํเร็จลุล่วงไปไดด้ว้ยดีรวมไปถึงกาํลงัใจในการดาํเนินงานโครงงานครÊังนีÊใหป้ระสบ ความสาํเร็จ คณะผจู้ดัทาํ นางสาว กนกวรรณ เครือศิริ


3 คาํนํา ระบบแจง้เตือนรดนÊาํตน้ ไมอ้ตัโนมตัิโดยใชเ้ซ็นเซอร์วดัความชÊืนของดินผา่นทางไลน์แอพพลิเคชน คือ ัÉ ระบบทีÉทาํขÊนเพื ึÉอให้ชุมชนและบุคคลต่างๆ ไดร้ับรู้การทาํงานเกีÉยวกบัความชÊืนของดินกบัระดบันÊาต่างๆได้ ํ อยา่งถูกตอ้งแม่นยาํต่อการรดนÊาํตน้ ไม้และยงัช่วยเป็นการแจง้เดือนรดนÊาํและเซนเซอร์ดิน ช่วยแกป้ ัญหา ในปริมาณนํÊาต่อการรดนํÊาตน้ ไม้ความชÊืนของดิน และลดความเสียหายจากผลกระทบทีÉตามมาในการเกิด ตน้ ไมเ้สียหายในการใชน้ Êามากเกินไป ํ การแจง้เตือนทาํไดง้่าย สะดวกรวดเร็วอีกทÊงัผูใ้ชแ้ละบุคคลต่างๆทวัÉ ไป ยงัสามารถเพÉมเพื ิÉอนเขา้มา ในกลุ่มไลน์ เพืÉอรับการแจง้เตือนภยัไดใ้นทนัทีทาํใหเ้กิดประโยชน์กบัชุมชนเป็นอยา่งมาก


4 สารบัญ บทคดัยอ่ ข กิตติกรรมประกาศ ค สารบญัง บททีÉ1 บทนาํ 1 1.1ความเป็ นมาและความสาํคญั1 1.2วตัถุประสงค 1 ์ 1.3 สมมติฐาน 2 1.4ขอบเขตการทาํโครงงาน 2 1.5 ประโยชน์ทีÉไดร ้ับจากโครงงาน 2 1.6 อุปกรณ ์ และเทคโนโลยทีีÉใช ้ 3 1.7 ประโยชน์ 4 บททีÉ2 ทฤษฎีและงานวิจยัทÉีเกÉียวขอ ้ ง 5 ขอ ้ มูลอุปกรณ ์ ทÉีใชใ้ นโครงงาน 5 2.1 เซ ็ นเซอร ์ วดัความชืÊนในดิน (Soil Moisture Sensor) 5 2.2 Relay Module 2 ช่อง5โวลต ์ 10A 250V 6 2.3 NodeMCU V3. 6 2.4 ปัËมนํÊา DC12V รุ่น AS180-12250A 7 2.5 Adapter 5V 7 2.6 Display (LCD) 7


5 2.7 LINE Notify (NodeJS) 8 บททีÉ3วิธีการดาํเนินงาน 9 3.1 ขัÊนตอนการทาํงาน 9 3.2 Flow Chart 9 3.3 ตวัอยา่งโคด ้ ของระบบ 11 3.4 การแสดงผล 11 3.5การสมคัรและขอTokenของ Line Notify 12 บททีÉ4ผลการพฒันาโครงงาน 19 4.1การทดสอบระบบแจง ้ เตือนวดัความชืÊนของดิน 19 4.2 การแจง ้ เตือนผา่นแอพพลิเคชันÉ Line 19 บททีÉ5 สรุปผลการพฒันาโครงงาน อภิปรายและขอ ้ เสนอแนะ 21 5.1 สรุปผลการทาํโครงงาน 21 5.2 ปัญหาและอุปสรรค 21 5.3ขอ ้ เสนอแนะในการพฒันา 21 บรรณานุกรม 22 ภาคผนวก 23


6 บททีÉř บทนํา ř.ř ทีÉมาและความสําคญั การให้นํÊาแก่พชืทÉีคลุมดินสายพนัธุ์ต่าง ๆ หรือแมแ้ต่ตน้ ไมท้ีÉมีทัÊงไม้ไมด้อกและไมป้ระดบัซÉึงหากมีการดูแล รักษาไม่ดีอาจทาํให้ตน้ ไมด้งักล่าวเหีÉยวเฉาและตายได้จึงจาํ เป็ นตอ้งมีการดูแลเอาใจใส่ในหลาย ๆ ดา้นทÊงการให้นํ ัÊาทีÉ เหมาะสม การพรวนดิน การดูแลสภาพดินหรือแมแ้ต่การปุ๋ยทีÉมีสูตรของธาตุตรงต่อความตอ้งการในแต่ละพืชพนัธุ โดยมี ์ ความสาํคญัดงันÊี 1.2 วตัถุประสงค ์ 1.2.1 เพืÉอสร้างเครืÉองมือทีÉช่วยในการรดนํÊาตน้ ไมใ้นพÊนที ืÉขนาดไมก่วา้งมากเช่น แปลงไมด้อกไมป้ระดบั ทีÉอยรู่อบๆ บริเวณโรงเรียนอิเล็กทรอนิกส์เป็นตน้ 1.2.2 เพืÉอช่วยในการแบ่งเบาภาระและประหยดัเวลาของเราทีÉในการดูแลรดนํÊาตน้ ไม้ในพÊนที ืÉโรงเรียนอิเล็กทรอนิกส์ 1.2.3 เพืÉอนาํเอาเทคโนโลยีดา้นอิเล็กทรอนิกส์เขา้มามีบทบาทในชีวติประจาํวนั ให้มากขÊึน เพืÉอเพิÉมความสะดวกสบาย และ การบริหารจดัการสÉิงแวดลอ้มบริเวณโรงเรียนอิเล็กทรอนิกส์ 1.3 สมมติฐาน หากพืÊนดินขาดนํÊา มีค่าความชืÊนตํÉากว่าทีÉกาํหนดSensor ทีÉตรวจจบัความชÊืนจะทาํงานโดยส่งค่าความชÊืนในดินทีÉตรวจจบัได้ จากปลายของ Sensor ให้กบัวงจรควบคุม จากนÊนวงจรควบคุมจะสั ัÉงงานให้ปัËมนํÊาทาํงาน โดยจ่ายกระแสไฟให้ปัËมนํÊาดูดนํÊา ส่งให้หวัสปริงเกอร์พ่นนÊาํออกมาเป็นละอองฝอยรดตน้ ไมท้ีÉเราตอ้งการเมืÉอมีปริมาณนํÊาทีÉไหลลงสู่พืÊนดิน ทาํให้พÊนดินมี ื ความชืÊนเพิÉมขึÊนเพียงพอตามค่าทีÉกาํหนดไว้sensor จะส่งค่าความชืÊนให้วงจรควบคุม และวงจรควบคุมจะสัÉงงานให้ปัËมนํÊา หยดุทาํงาน 1.4 ขอบเขตการทําโครงงาน 1. ศึกษาการทาํงานของอุปกรณ์ตรวจจบัความชÊืนในดิน 2.ศึกษาการทาํงานของซอฟแร์ควบคุมการทาํงานดว้ยการเขียนโปรแกรมภาษซีกบับอร์ดไมโครคอนโทรลเลอร์ 3. ออกแบบวงจรควบคุมความชืÊนในดิน 4. ออกแบบโมเดลระบบรดนํÊาตน้ ไมเ้พÉอืศึกษาการทาํงาน 1.5 ประโยชน์ทีÉได้รับจากโครงงาน 1.ไดเ้รียนรู้การทาํงานของSensor ตรวจจบัความชÊืนในดิน 2. สามารถเขียนโปรแกรมสัÉงงานปัËมนํÊาได้ 3. เขา้ใจหลกัการทาํงานของเครÉืองมือรดนํÊาอตัโนมตัิ


7 4.ไดน้าํความรู้จากการทดลองวงจรมาออกแบบวงจรควบคุมอปุกรณ์ได้ 5. สามารถผลิตเครืÉองมือทีÉสามารถช่วยรดนํÊาตน้ ไม่ได้ 6. สามารถประดิษฐ์เครืÉองมือทีÉสามารถลดการใชแ้รงงานจากเจา้หน้าทÉีและประหยดัเวลาได้ ř.ŝ ประโยชน์ทีÉได้รับจากโครงงาน ř. สามารถแจง้เตือนเซนเซอร์ความชืÊนของดินจากแอพได้ Ś. ใชเ้ป็นตวัอยา่งในการศึกษาการทาํโปรแกรมพฒันา ś.ช่วยในการรดนํÊาตนั ไมและเซนเซอร์ได้ ้ ř.Şอุปกรณ ์ และเทคโนโลยีทีÉใช้ ฮาร์ดแวร์ ř.คอมพิวเตอร์สําหรับการพฒันาระบบ Ś.โทรศพัทม์ ือถือสมาร์ทโฟนสําหรับทดสอบระบบ ซอฟต์แวร์ 1.Arduino Uno R3 Ś.บอร์ดไมโครคอนโทรลเลอร์ Arduino Uno R3 3. Moduleรีเลย์relay1 Chanel250V/10A Active HIGH II 4. Soil Moisture Sensor Module Moisture Sensor Module วดัความชÉืนในดิน ŝ.ปัËมน้Ũา DC ขนาดเล็ก 5V ใชส้าํหรับปËัมน้ŨาปัËมน้Ũา DC ขนาดเล็ก 5V Ş.สายยางปัËมน้Ũา DC ใชส้าํหรับลาํเลียงน้ ŨาสายยางปัËมน้Ũา DC 7. Adapter5V 1A หมอ้แปลง5V 1แอมป์ใชส้าํหรับต่อไฟฟ้าให้กบั ปËัมน้ŨาAdapter5V 1A หมอ้แปลง5V 1แอมป์ -Power Adapter Jack ตวัเมีย -สายแพร Jumper Male to Female 8. LINE Notify (nodeJS) 2. แอปพลเิคชÉัน Line


8 บททีÉŚ ทฤษฎีและงานวิจัยทีÉเกียวข้องÉ ข ้ อมูลอุปกรณ ์ ทีÉใช้ในโครงงาน 2.1 เซ็นเซอร์วัดความชืÊนในดิน (Soil Moisture Sensor ใชว้ดัความชÊืนในดิน หรือใชเ้ป็นเซ็นเซอร์นÊาํสามารถต่อใชง้านกบัไมโครคอนโทรลเลอร์โดยใช้ อนาล็อกอินพุตอ่านค่าความชืÊน หรือเลือกใชส้ ัญญาณดิจิตอลทีÉส่งมาจากโมดูล สามารถปรับความไวได้ดว้ยการปรับความ ตา้นทานแบบปรับค่าได้(Trimpot) หลักการทํางาน การใชง้าน จะตอ้งเสียบแผ่น PCB สําหรับวดัลงดิน เพÉอืให้วงจรแบ่งแรงดนัทาํงานไดค้รบวงจรจากนÊนัจึงใชว้งจร เปรียบเทียบแรงดนั โดยใชไ้อซีออปแอมปเบอร์LMśšś เพืÉอวดัแรงดนัเปรียบเทียบกนัระหว่างแรงดนัดนัทีÉวดัไดจ้าก ความชืÊนในดิน กบัแรงดนัทÉีวดัไดจ้ากวงจรแบ่งแรงดนั ปรับคโู่ดยใช้Trimpot หากแรงดนัทÉีวดัไดจ้ากความชÊืนของดิน มี มากกว่าก็จะทาํให้วงจรปล่อยค่าลอจิกř ไปทีÉขา DŘแตห่ากความขÊนึในดินมีนอ้ยลอจิกŘ จะถูกปล่อยไปทีÉขา DŘ ขา A0 เป็ นขาสัญญาณแบบ Analog ทีÉตอ่ โดยตรงกบัวงจรทÉใีชว้งความชÊืนในดิน ซึÉงให้ค่าแรงดนัออกมาตÊงแต่ ัŘ - ŝV (ในทางอุดม คติ โดยหากความชืÊนในดินมีมากแรงดนัทีÉปล่อยออกไปก็จะน้อยตามไปดว้ยในลกัษณะของการแปรผนักลบั รูปทÉีŚ.řSoil Moisture Sensor


9 Ś.Ś บอร์ดไมโครคอนโทรลเลอร์ Arduino Uno Rś ใช้สําหรับลงโค้ดข้อมูล บอร์ด ไมโครคอนโทรลเลอร์Arduino Uno R3 รูปทÉี1 บอร์ดไมโครคอนโทรลเลอร์ Arduino Uno R3 3. Soil Moisture Sensor Module Moisture Sensor Module วดัความชÉืนในดิน ใชส้าํหรับวดัความชืÊนในดิน Soil Moisture Sensor Module Moisture Sensor Module วดัความชÉืนในดิน คุณสมบัติ การเชืÉอมต่อ Arduino Relay module มาตรฐานทีÉสามารถใชค้วบคมุไดโ้ดยตรงจากไมโครคอนโทรนเลอร์เช่น Arduino , 8051, AVR, PIC, DSP, ARM, ARM, MSP430, TTL logic ใชแ้รงดนั5 โวลต์ Relay Module สามารถใชแ้รงดนั5โวลตจ์ากบอร์ดarduino ทีÉมีขา 5โวลตไ์ด้ ใชค้วบคุมไฟฟ้าแรงสูงไดท้ีÉDC30V 10A , AC 250V 10A มีไฟบอกสถานะการทาํงานของ Arduino Relay รีเลยท์ุกช่อง เชืÉอมต่อดว้ยขÊวัสกรูทาํให้ติดตÊงัไดง้่ายและสะดวก ใชก้ระแสขบัrelay แต่ละตวัทีÉ15-20 mA การส่งสัญญาณควบคุมรีเลยเ์ป็นแบบ Active low วงจรขบัรีเลยเ์ป็นแบบแยกกราวด์Opto isolated Relay ปลอดภยัต่อวงจร ไมโครคอนโทรเลอร์ Arduino Relay รูปทÉี2.2.2 แสดงสภาวะการทํางานของรีเลย์


10 จุดต่อ NC ย่อมาจุดต่อใช้งานมาตรฐาน ประกอบด้วย จุดต่อ NC จากnormal close หมายความว่าปกติดปิด หรือ หากยงัไม่จ่ายไฟให้ขดลวด เหนีÉยวนาํหนา้สัมผสัจะติดกนั โดยทวัÉ ไปเรามกัต่อจดุนÊีเขา้กบัอปุกรณ์หรือเครÉืองใชไ้ฟฟ้าทÉีตอ้งการให้ทาํงานตลอดเวลา เช่น จุดต่อ NO ยอ่มาจากnormalopen หมายความว่าปกติเปิด หรือหากยงัไม่จ่ายไฟให้ขดลวดเหนÉียวนาํหนา้สัมผสัจะ ไม่ติดกนั โดยทวัÉ ไปเรามกัต่อจดุนÊีเขา้กบัอปุกรณ์หรือเครืÉองใชไ้ฟฟ้ทÉีตอ้งการควบคุมการเปิดปิดเช่นโคมไฟสนามหน้าบา้น จุดต่อ COM ยอ่มากจากcommonคือจดุร่วมทีÉต่อมาจากแหล่งจ่ายไฟ


11 2.3 บอร์ดไมโครคอนโทรลเลอร์ NodeMCU ESP8266 NodeMCU (โหนดเอม็ซียูคือ บอร์ดคลา้ย Arduino ทีÉสามารถเชืÉอมต่อกบั WiFi ได้, สามารถ เขียน โปรแกรมดว้ย Arduino IDE ไดเ้ช่นเดียวกบัArduinoและบอร์ดก็มีราคาถูกมากๆ เหมาะแก่ผทู้ีÉคิด จะ เริÉมตน้ศึกษา หรือทดลองใชง้านเกÉียวกบัArduino, IoT,อิเล็กทรอนิกส์หรือแมแ้ต่การนาํไปใชจ้ริง ในโปรเจคต่างๆ ก็ตาม เพราะราคาไม่แพง ภายในบอร์ดของ NodeMCU ประกอบไปดว้ย ESP8266 (ไมโครคอนโทรลเลอร์ทีÉสามารถเชืÉอมต่อ WFiได้พร้อมอุปกรณ์อาํนวยความสะดวกต่างๆ เช่น พอร์ต micro USB สําหรับจ่ายไฟ อปัโหลดโปรแกรม, ชิพสาํหรับอปัโหลดโปรแกรมผา่นสาย USB, ชิพแปลงแรงดนัไฟฟ้า และขาสาํหรับเชืÉอมต่ออปุกรณ์ภายนอกเป็นตน้ ESP8266 เป็ นชืÉอเรียกของชิฟของโมดูล ESP8266 สําหรับติดต่อสืÉอสารบนมาตรฐาน WiFi ทาํงาน ทีÉแรงดนัไฟฟ้า3.0-3.6V ทาํงานใชก้ระแสโดยเฉลีÉย 80mA รองรับคาํสัÉง deepsleepในการประหยดั พลงังาน ใชก้ระแสนอ้ยกว่า10ไมโครแอมป์สามารถ wakeupกลบัมาส่งขอ้มูลใชเ้วลานอ้ยกว่า 2 มิลลิวนิาทีภายในมีLow power MCU 32bit ทาํให้เราเขียนโปรแกรมสÉงังานได้มีวงจรanalog to digital converter ทาํให้สามารถอ่านค่าจากanalogไดค้วามละเอียด10 bit ทาํงานไดท้ ีÉอุณหภมูิ-40 ถึง 125 องศา เซลเชียส เมืÉอนาํชิฟ ESP8266 มาผลิตเป็นโมดูลหลายรุ่น ก็จะขึÊนตน้ดว้ย ESP866แลว้ตามดว้ยรุ่น เช่น ESP-01, ESP-03, ESP-07, ESP-12E ESP8266 ติดต่อกบัW-FIแบบ Serial สามารถเขียนโปรแกรม ลงไปในชิฟ โดยใช้Arduino IDE ได้ทาํให้การเขียนโปรแกรมและใชง้านเป็นเรืÉองง่ายคลา้ยกบัการใช้ Arduino แน่นอนวา่สามารถติดตอ่อปุกรณ์อÉนืๆ เซนเซอร์ต่าง ๆ แบบสไตล์Arduino ถา้มีพÊนฐาน ื Arduino อยแู่ลว้ก็เขา้ใจและใชง้านไดร้วดเร็ว โมดูล ESP8266 มีหลายรุ่น และมีรุ่นใหม่พฒันาออกมาเรÉือย ๆ โดยโครงสร้างและขาทีÉใชง้านกจ็ะมีลกษณะ ั คลา้ยกนัคือ GPI00 เป็นขาสําหรับเลือกโหมด โดยเมืÉอต่อกบัGND จะเขา้โหมดโปรแกรม เมืÉอตอ้งการให้ทาํงาน ปกติก็ ไม่ตอ้งต่อ GPI015 เป็ นขาทีÉตอ้งต่อลง GND เพืÉอให้โมดูลทาํงาน CH PD หรือ EN เป็นขาทีÉตอ้งต่อไฟ VCC เพืÉอ pullup สัญญาณ ให้โมดูลทาํงาน โมดูลบางร่นไม่มีขา Reset มาให้ เมืÉอตอ้งการรÉีเซต ให้ต่อขา CH PD กบัGND Reset ต่อกบัไฟ VCC เพืÉอ pull up สัญญาณ โดยเมืÉอตอ้งการรีเชต ให้ต่อกบัไฟ GND VCC เป็นขาสําหรบัจ่ายไฟเลÊียง ใชไ้ฟเลÊียง 3.0-3.6V GND ต่อกบัไฟ OV GPIO เป็นขาดิจติอลINPUT/OUTPUT ทาํงานทีÉไฟ 3.3V ADC เป็นขา AnalogINPUT รับแรงดนัสูงสุด1V ความละเอียด10bit หรือ1024ค่า เวลาโปรแกรมเพียงมองหาขาเหลา่นÊีแลว้ต่อให้ครบเท่าทีÉมีขาให้ตอ่ก็สามารถโปรแกรม ESP8266ไดทุ้กรุ่น


12 ซึÉงตอ้งเสียเวลาในการต่อวงจรเพอÉือพัโหลดโคด้อีกทÊงโมดูล ัESPŠŚŞŞ หลาย ๆ รุ่นมีการต่อขาทีÉเป็นแบบ เชอร์เฟสเมาส์ทาํให้ไม่สะดวกกบัการต่อทดถองบนบอร์ดทดถอง ดงันÊนจึงมีการรวม โมดูล ั USB TTL และต่อวงจรขยายขา ESPŠŚŞŞ ให้เป็นขาระยะห่างขนาด Ś.ŝŜ mm ซึÉงสามารถเสียบลงบอร์ดทดลองไดพ้อดีกลายเป็น บอร์ด ESP8266 โดยหนึÉงในบอร์ดทีÉนิยมใชง้านคอื NodeMCU ซึÉงใช้โมดูล ESP8266 ESP-12E บอร์ด ESP8266 NodeMCU V2 รูปทÉี2.4.1 NodeMCU Version 2 รูปทÉี2.4.2 ตําแหน่งขาต่างๆ ของบอร์ด NodeMCU V2 NodeMCU V2เป็น ESP8266-12E รวมกบัUSB T7L ทีÉชซ้ิฟ CP2102 และขยายขาให้สามารถต่อทดลองได้ ง่ายขึÊน มีปุ่ม resetและflash สาํหรับใชโ้ปรแกรม โดยใช้ArduinoIDE หรือโปรแกรมอืÉน ๆ ไดอ้ยา่งสะดวก


13 บอร์ด ESP8266 NodeMCU V3 NodeMCU V3 เป็ นบอร์ดทีÉคลา้ยกบัNodeMCU V2 ทีÉต่างกนัคือ NodeMCU V3จะมีขนาดกวา้งกว่าและใชช้ิฟ USB TTL เป็ น CH340 ซึÉงการต่อขาใชง้นและโคด้โปรแกรมเหมือนกนัทุกประการ รูปทÉีŚ.Ŝ.ś NodeMCU Version 3


14 1. พอร์ต O เป็ นขา RX ใชเ้ป็นพอร์ตรับสัญญาณสืÉอสารแบบอนุกรม 2. พอร์ต 1 เป็ นขา TX ใชเ้ป็นพอร์ตส่งสัญญาณสืÉอสารแบบอนุกรม 3. พอร์ต 2 และ 3เป็นพอร์ตรับสญัญาณอินเตอร์รัพทภ์ายนอก(Interrupts) พอร์ตเหล่า สามารถกาํหนดค่าให้รบัสัญญาณขดัจงัหวะไดท้ Êงแบบลอจิกสูง ลอจิกต่ ั Ũา หรือแบบอืÉน ๆ 4. พอร์ต 3, 5, 6, 9, 10 และ 11 เป็นพอร์ตส่งสัญญาณเอาตพ์ุตแบบ PWM ขนาด 8 บิต 5. พอร์ต 10, 11, 12 และ 13 เป็ นพอร์ตสืÉอสารแบบ SPI 6. พอร์ต 13 เป็ นพอร์ตควบคุมแอลอีดีทีÉติดตัÊงบนบอร์ด เมืÉอขา 13จ่ายเอาตพ์ุตลอจิก“1” ทาํให้แอลอีดีติดสว่างและเมÉือจ่ายลอจิก “0” ทาํให้แอลอีดีดบั 2.1.4อนาลอ็กอินพุต บอร์ดไมโครคอนโทรลเลอร์ Arduino Uno R3 มีพอร์ตอนาล็อกอนิพุต 6 ขา คือ ขา AO - ขา A5 ซึÉงแต่ช่องมีความละเอียดขนาด 10 บิต แบ่งระดบัความแตกต่างได้1,024ค่า โดยเริÉมตน้จากระดบัแรงดนั0 โวลต์จนถึงระดบั5โวลต์และสามารถเปลÉียนระดบัแรงดนัอา้งอิงไดโ้ดยใช้แรงดนัอา้งอิงจากภายนอกป้อนทÉีขา AREF ร่วมกบั ฟังก์ชนั analogReference() นอกจากนีÊยงัมีบางขาทÉมีีหนา้ทีÉพิเศษ ดงันÊี 1. พอร์ต A4 (SDA) และพอร์ต A5 (SCL) เป็นพอร์ตสืÉอสารแบบ 2. พอร์ต Aref แรงดนัอา้งอิงสาํหรับอินพุตอนาลอ็กใชง้านร่วมกบั ฟังก์ชนัanalog Reference () 2.1.5 การสืÉอสาร บอร์ดไมโครคอนโทรลเลอร์ Arduino Uno R3 มีพอร์ตสืÉอสารเพืÉอเชืÉอมต่อกบัคอมพิวเตอร์ หรือบอร์ด Arduino อืÉนๆ หรือไมโครคอนโทรลเลอร์เบอร์อืÉน ๆ หลายรูปแบบ ตามความสามารถของ ไมโครคอนโทรลเลอร์ ATmega328 ทีÉมีพอร์ตสืÉอสารอนุกรมแบบ UART ทีÉพอร์ตดิจิตอล ขา 0 (R และพอร์ต ดิจิตอล ขา 1 (TX) ช่องทางการสืÉอสารแบบอนุกรมยงัเชÉือมโยงผา่นพอร์ต USB และยงั ปรากฏเป็นพอร์ต COM เสมือนซอฟตแ์วร์บนเครืÉองคอมพวิเตอร์ดว้ยเฟิร์มแวร์8U2 คอมพิวเตอร์ สามารถเชืÉอมต่อไดโ้ดยใชไ้ดรเวอร์USB มาตรฐาน และ ไม่ตอ้งใชไ้ดรเวอร์ภายนอกแต่อยา่งไร ซอฟตแ์วร์Arduino แสดงผลการสืÉอสารผา่นพอร์ตแบบอนุกรมทางพอร์ต USB ระหว่าง บอร์ด Arduino กบัคอมพิวเตอร์ผา่นขา RX และ TX ซึÉงทาํให้ไฟ LED กะพริบเมืÉอขอ้มูลถูกส่งผา่น ทางพอร์ต USB 2.2 Module รีเลย์relay 1 Chanel 250V/10A Active HIGH II Module รีเลย์relay 1 Chanel 250V/10A Active HIGH II แสดงดงัรูปทÉี2.5


15 2.6 Module รีเลย์relay 1 Chanel 250V/10A Active HIGH II รีเลย์(Relay) เป็นอปุกรณ์ไฟฟ้าชนิดหนÉึง ซึÉงทาํหนา้ทÉีตดัต่อวงจรแบบเดียวกบสวิตช์ โดยควบคุมการ ั ทาํงานดว้ยไฟฟ้า Relay มีหลายประเภท ตัÊงแต่ Relay ขนาดเล็กทีÉใชใ้นงานอิเล็กทรอนิกส์ทวไป จนถึง ÉัRelay ขนาดใหญ่ทีÉใชใ้นงานไฟฟ้าแรงสูงโดยมีรูปร่างหนา้ตาแตกต่างกนัออกไป แต่มีหลกัการทาํงานทีÉคลา้ยคลึงกนั สําหรับการนาํ Relay ไปใชง้าน จะใชใ้นการตดัต่อวงจร ทÊงนี ัÊRelay ยงัสามารถเลือกใชง้านไดห้ลากหลายรูปแบบ และสามารถแสดงสัญลกัษณ์ในวงจรไฟฟ้าของรีเลย์ รูปทÉี2.6 สัญลกัษณ์ในวงจรไฟฟ้าของรีเลย์ ภายใน Relay จะประกอบไปดว้ยขดลวดและหน้าสัมผสั หนา้สัมผสั NC (Normally Close) เป็นหนา้สัมผสั ปกติปิดโดยในสภาวะปกติหนา้สัมผสันÊีจะต่อเขา้กบัขา COM (Common) และจะลอยหรือไม่สัมผสักนัเมÉือมีกระแสไฟฟ้าไหลผ่านขดลวด หนา้สัมผสั NO (Normally Open) เป็นหนา้สัมผสั ปกติเปิดโดยในสภาวะปกติจะลอยอยู่ไม่ถกูต่อกบัขา COM (Common) แตจ่ะเชืÉอมต่อกนัเมืÉอมีกระแสไฟไหลผา่นขดลวด ขา COM (Common) เป็ นขาทีÉถูกใชง้านร่วมกนัระหว่าง NC และ NO ขึÊนอยกู่บัว่าขณะนÊนมีกระแสไฟฟ้า ั ไหลผา่นขดลวดหรือไม่หนา้สัมผสัใน Relay 1 ตวัอาจมีมากกว่า1 ชุด ขึÊนอยกู่บัผผู้ลิตและลกัษณะของงานทีÉถูก นาํไปใช้จาํนวนหนา้สัมผสัถูกแบ่งออกดงันÊี สวติช์จะถูกแยกประเภทตามจาํนวน Pole และจาํนวน Throw ซึÉงจาํนวน Pole (SP-Single Pole, DPDouble Pole, 3P-Triple Pole, etc.) จะบอกถึงจาํนวนวงจรทีÉทาํการเปิด-ปิด หรือจาํนวนของขา COM นันเองÉ และจาํนวน Throw (ST, DT) จะบอกถึงจาํนวนของตวัเลือกของPole ตวัอยา่งเช่น SPST- Single Pole Single Throw สวติช์จะสามารถเลือกไดเ้พียงอยา่งเดียวโดยจะเป็นปกติเปิด(NO-Normally Open) หรือปกติปิ ด (NC-Normally Close) แต่ถา้เป็น SPDT- Single Pole Double Throw สวติช์จะมีหนÉึงคู่เป็นปกติเปิ ด (NO) และอีกหนึÉงคู่เป็นปกติปิ ดเสมอ (NC) SPDT- Single Pole Double Throw สวติช์ทÉีแยกประเภทตามจาํนวน Pole และจาํนวน Throw แสดงดงัรูปทีÉ2.6


16 รูปทีÉ2.7 สวติช์ทีÉแยกประเภทตามจาํนวน Pole และจาํนวน Throw สามารถอธิบายตวัยอ่ ได้ดงันÊี SPST คือ Single Pole Single Throw DPST คือ Double Pole Single Throw SPDT คือ Single Pole Double Throw DPDT คือ Double Pole Double Throw จากส่วนประกอบของหลกัการทาํงานของ Relay จะใชง้าน Relay แบบ SPDT (Single Pole Double Throw) หลกัการทาํงานของ Relay แสดงดงัรูปทÉี2.5 รูปทÉี2.8 หลกัการทํางานของ Relay ซึÉงในหลกัการทาํงานของ Relay นัÊน ในส่วนของขดลวด เมืÉอมีกระแสไฟฟ้าไหลผา่น จะทาํให้ขดลวดเกิด การเหนีÉยวนาํและทาํหนาที ้ Éเสมือนแม่เหลก็ไฟฟ้า ส่งผลให้ขา COM ทีÉเชืÉอมต่ออยกู่บัหนา้สัมผสั NC (ในสภาวะทีÉยงั


17 ไม่เกิดการเหนีÉยวนาํ)ยา้ยกลบัเชืÉอมต่อกบัหนา้สัมผสัNO แทน และปล่อยให้ขา NC ลอย เมืÉอมองทีÉขา NC กบั COM และ NO กบัCOM แลว้จะเห็นว่ามีการทาํงานติด-ดบัลกัษณะคลา้ยการทาํงานของสวิชต์เราสามารถอาศยั คุณสมบตัินÊีไปประยุกตใ์ชง้านได้แถบแสดงรายละเอียดแสดงดงัรูปทีÉ2.8 รูปทีÉ2.8 แถบแสดงรายละเอียด จากรูปทีÉ2.6แถบแสดงรายละเอยีดดงันÊี 1. ยีÉห้อรุ่นของผผู้ลิต (แบรนด)์รวมถึงสัญลกัษณ์มาตรฐานต่างๆ 2. รายละเอียดของไฟฟ้ากระแสสลบัทÉีรองรับการทาํงานได้(VAC) 3. รายละเอียดของไฟฟ้ากระแสตรงทีÉรองรับการทาํงานได้(VDC) 4. โมเดลระดบัแรงดนัฝÉังขดลวด ชนิดและโครงสร้างและขอ้มูลดา้น Coil Sensitivity คุณสมบตัิรายละเอียด สามารถสรุปไดว้่า เป็น Relay ยีÉห้อ Songle โมเดล SRD รองรับการทาํงานแรงดนั กระแสสลบัทÉี250V@10A หรือ 125V@10A รองรับแรงดนักระแสตรงทีÉ28VDC@10A ฝัÉงขดลวดทาํงานดว้ย แรงดนั5V โครงสร้างตวัRelay เป็นแบบซีลด์มีค่าความไวขดลวดทีÉ0.36W หนา้สัมผสัเป็นรูปแบบ 1 from C คุณสมบตัิรายละเอียดของ Relay แสดงดงัรูปทÉี2.7


18 รูปทÉี2.7 คุณสมบัติรายละเอียด Relay หนา้สัมผสัแบบ A (Form A) หมายถึง หน้าสัมผสัของ Relay ในสภาพปกติจะเปิดอยู่(Normally open) และหนา้สัมผสัเป็นแบบ SPST สัญลกัษณ์หนา้สัมผสัแบบ A (Form A) แสดงไดด้งัรูปทÉี2.8 รูปทÉีŚ.Š สัญลกัษณ์หน้าสัมผัสแบบ A (Form A) หนา้สัมผสัแบบ B (Form B) หมายถึง หนา้สัมผสัของ Relay ในสภาพปกติจะปิ ด (Normally close) และเป็ นแบบ SPST เขียนเป็นสัญลกัษณ์หนา้สัมผสัแบบ B (Form B) สามารถแสดงได้ดงัรูปทÉีŚ.Š รูปทÉี2.9 สัญลกัษณ์หน้าสัมผัสแบบ B (Form B) หนา้สัมผสัแบบ C (Form C) แบบนีÊเรียกว่า “break, make หรือ transfer” เป็นหนา้สมัผสัแบบ SPDT เขียนสัญลกัษณ์หนา้สัมผสัแบบ C (Form C) สามารถแสดงได้ดงัรูปทีÉ2.9 รูปทีÉŚ.řŘ สัญลกัษณ์หนา้สัมผสัแบบ C (Form C) หนา้สัมผสัแบบ C จะมีอยดู่ว้ยกนัś ขา ในขณะทีÉRelay ยงัไม่ทาํงาน หนา้สัมผสัř และ Śจะต่อกนัอยู่เมÉือRelay ทาํงาน หนา้สัมผสัř และ ŚจะแยกกนัจากนÊนัหน้าสัมผสัřจะมาต่อกบัหนา้สัมผสัś แทน พอ Relayหยดุทาํงานหนา้สัมผสัřกบั Śก็จะกลบัมาต่อกนัตามเดิม


19 บททีÉ3 ทฤษฎีและการออกแบบ การออกแบบสาํหรับระบบแจง้เตือนวดัความชÊืนของดิน ออกแบบโดยใชร้ะบบการแสดงผลและแจง้เตือนผา่น Application line เพืÉอเพิÉมประสิทธิภาพในการแจง้เตือน โดยการออกแบบนีÊจะทาํการจาํลองเครืÉองเดือนภยันÊาท่วม เมื ํÉอเครืÉองสามารถวดัระดบันÊาํไดจ้ะทาํการส่งสัญญาณไปยงัชุด ควบคุมและทาํการแสดงผลพร้อมทาํการเตือนแจง้เตือนไปยงัApplicationline 3.1 ขัÊนตอนการทํางาน ตวัESP 32 จะทาํการต่อ wfi ใหโ้ดยอโันมตัิเมืÉอเริÉมตน้การทาํงาน และตามทÉีไดโ้ปรแกรมไว้เพÉอใช่ในการส่งการ ื แจง้เตือนไปยงัlinenotify ทาํการอา่นค่าจากเซนเซอร์ตรวจจบัระดบันÊาํ ทาํการแสดงผลระดบันÊาํปัจจบุนัทีÉหนา้จอ LCD เมืÉอระดบันÊาํถึงระดบัการแจง้เตือนทÉีไดก้าํหนดค่าไว้จะทาํการแสดงผลระดบัการ แจง้เดือนทÉหีนา้จอ LCD และทาํการแจง้เดือนไปยงัไลน์แอพพลิเคชนัÉ 3.2 Flow Chart START ทําการอ่านค่าระดับนํÊา จากเซนเซอร์ ระดบันาÊํถึงจดุ แจง้เตือน ทาํการส่งขอ้ความแจง้เตือนไปทาง Line Notify


20 และทาํการตรวจสอบ ระดบันÊาํปัจจบุนัถา้ถึงระดบันÊาที ํÉไดต้Êงัค่าไวก้็จะทาํการแจง้เดือน ไปยงัไลน์แอพพลิเคชนที ัÉ Éไดก้าํหนดไว้ รูปตัวอย่างการส่งข้อความแจ้งเตือนผ่านทางไลน์


21 ระบบจะทาํการแจง้เตือนไปยงัไลน์แอพพลิเคชน เมื ัÉ Éอระดบัการแจง้เดือนมีการเปลÉียนแปลงเท่านัÊน เพืÉอไม่ให้เป็นการแจง้ เดือนทีÉวนชํÊา ทาํให้เกิดความร่าคาญ โดยทาํการแบ่งระดบัในการเซนเซอร์นํÊาจากดินออกเป็น 4ระดบัคือ ระดบั ปกติ ระดบั ปานกลาง ระดบัสูง 3.6 การสมัครและขอ Token ของ Line Notify ในการส่งขอ้ความผ่าน Line Notify จาํเป็นตอ้งใช้Token เพืÉอทาํการส่งไปยงัไลน์ไอดีหรือไลน์กลุ่มทีÉเรา ตอ้งการโดยจะตอ้งทาํการขอ Token ก่อน โดยขÊนตอนการขอ ัToken มีดงันÊี 1. ไปยงัurl : https://notify-bot.line.me/my ทาํการlogin เขา้สู่ระบบ 2. ทีÉยงัเมนูใหเ้ลือกไปยงัหนา้ของฉัน


22 3. ออก TOKEN ทาํการกดทีÉปุ่ม ออก Token 4.ตัÊงค่าการใชง ้าน LINE NOTIFY


23 ชืÉอ Token คือ ให้เราใส่ชืÉอผสู้่ง ทาํการเลือกกลุ่ม ทีÉตอ้งการส่ง แลว้กดปัมออก Token ŝ. รับ Token หนา้จอจะแสดง TokenขึÊนมาดงัรูป ใหท้าํการกดคดัลอกเก็บไว้ เพืÉอนาํไปใชใ้นการส่งขอ้ความ ดว้ย Line Notify 3.5 ชุดคําสัÉงต่างๆในโปรแกรม ทาํการเรียกlibrary ทีÉจาํเป็นดอ้งใช้ #include <TridentTD LineNotify.h> - ชุดคาํสัÉงในการส่ง line noti #include <WiFi.h> - ชุดคาํสัÉงในการเชืÉอมต่อ wifi #include <LiquidCrystal 12C.h> ชุดคาํสÉงในการแสดงผล ัLCD ประกาศตวัแปร LiquidCrystal_12C Icd = LiquidCrystal_12C(0x27, 20, 4); LCD #define ssid "Simulator Wifi" -, ชืÉอ wifi ทีÉตอ้งการให้เชืÉอมต่อ #definepassword ""-รหสัwifi ทีÉใชเ้ชÉือมต่อ -token ของ line ทีÉไดท้าํการลงทะเบียนใชง้านกบัline notity


24 #define line_token "lj4JGI70G4eo1 v0JrybLq39NOwUAuzHGH3CIVFs6A2" #define water_evel_sensor34-กาํหนดขาสัญญาอินพุดรับค่าจากเซนเซอร์ int water_level = 0; ระดบันÊาํปัจจุบนั -กาํหนดค่าระดบัการแจง้เดือน int level_ low = 20; int level mid = 50; int level_high = 60; int level danger = 70; bool is low = false; bool is mid = false; bool is_high = false; bool is_danger = false; การตัÊงค่าเริÉมตน้ void setup() ( /l put your setup code here, to run once: Serial.begin(115200); Serial.printin("Hello, ESP32!"); Serial.printIn(LINE.getVersion(); Icd.init(); Icd.backlight(); WiFi.begin("Wokwi-GUEST", "", 6); ทาํการเชืÉอมต่อ wifi Serial.printf("WiFi connecting ", ssid); Icd.setCursor(0,0); Icd.print("Wifi connecting"); while (WiFi.status()!= WL_CONNECTED) f Serial.print("."); Icd.setCursor(0,1); Icd.print(". "); delay(400); Serial.print("InWiFi connected'nIP : ");- แสดงผลการเชืÉอมด่อ wif Serial.println(WiFi.locallP(); Icd.clear(); Icd.setCursor(0,1); Icd.print("WiFi connected"); Icd.setCursor(0,3);


25 Icd.print(WiFi.locallP(); LINE.set Token(line_token ); ทาํการกาํหนดค่า Tokenให้กบัชุดคาํสÉง ัline delay(1000); Icd.clear(); Icd.setCursor(1,0); Icd.print("Water Level System"); เมธอดการทาํงาน void displayLevel(String str)ㆍแสดงผลระดบัการแจง้เดือน Icd.setCursor(0, 2); Icd.print("Level : "+str+" "); voiddisplayLevelCM(String str) -แสดงผลระดบัความชืÊนปัจจบุนั Icd.setCursor(0,3); Icd.print("Water Level : "+str+" cm "); voidloop() / - รอบการทาํงานของโปรแกรม water_level=analogRead(water_level_sensor); ทาํการอ่านค่าจาก เซนเซอร์ water_level= map(water_level,0,4095,0,100); แปลงค่ให้อยใู่นช่วง1-100 Serial.printin(water_level); String noti = ""; displayLevelCM(String(water_evel)); แสดงผลระดบันÊาํปัจจบุนั if(water_level<level_mid && !is_low) ตรวจสอบค่ระดบัการแจง้เดือน Serial.printin("normal"); is low = true; is mid = false; is_high = false; is_danger = false; ll--- display Icd displayLevel("Normal"); l/--- line noti noti = "ระดบันÊาตอนนี ํÊอยทู่Éรีะดบั - ปกติ "; LINE.notify(noti);- ทาํการส่งขอ้ความแจง้เดือนระดบั ปกติไปยงัline Jelse if(water_level >= level_mid && water_level < level _high && lis_mid) Serial.printin("mid");


26 is mid = true; is low = false; is high = false; is danger = false; ll--- display Icd displayLevel("Middle"); ll-- line noti noti = "ระดบันÊาตอนนี ํÊอยทู่Éรีะดบั - ปานกลาง "; LINE.notify(noti);ㆍทาํการส่งขอ้ความแจง้เดือนระดบั ปานกลางไปยงัline Jelse if(water_level >= level_high && water_level < level_danger && !is_high) Serial.printin("high"); is_high = true; is low = false; is mid = false; is_danger = false; ll--- display Icd displayLevel("High"); ll--- line noti noti = "ระดบันÊาดอนนี ํÊอยทู่Éีระดบั- สูง : ให้ทาํการยกของขÊึนทีÉสูง และเตรียมการรอง รับนํÊาท่วม" LINE.notify(noti); ทาํการส่งขอ้ความแจง้เดือนระดบัสูงไปยงัline Jelse if(water_level >= level_danger && !is_danger) Serial.println("danger"); is danger = true; is low = false; is mid = false; is high = false; ll- display Icd displayLevel("Danger"); l/--- line noti noti = "ระดบันÊาดอนนี ํÊอยทู่Éีระดบั-อนัตราย: ให้ทาํการอพยพโดยด่วน"; LINE.notify(noti);ㆍทาํการส่งขอ้ความแจง้เดือนระดบัอนัตรายไปยงัline delay(100); // this speeds up the simulation


27


28 บททีÉ4 ผลการดําเนินงาน Ŝ.ř การทดสอบระบบแจ้งเดือนเซนต์เซอร์วัดความชืÊนของดิน โครงงานระบบแจง้เดือนเซนตเ์ซอร์วดัความชÊืนของดิน สามารถทาํงานไดต้รงตามวดัถุประสงคท์ Éีวางไว้คือระบบสามารถ ส่ง สัญญาณแจง้เดือนผา่น Application line และแสดงผลและสามารถส่ง สัญญาณให้กบัคนในชุมชน เพÉอืเฝ้าระวงัการเกิด ดินเปี ยกเกินไป รูปแสดงผลผ่านไลน์ Application line


29 รูปแสดงการแจ ้ งเด ื อนผ่านไลน ์ แอพพลเิคชัÉน Ŝ.Śการแจ ้ งเต ื อนผ่านทางไลน ์ แอพพลเิคชัÉน โดยระบบแจง้เดือนเซนเวอรืวดัความชÊืนของดิน ทาํการแสดงผลและแจง้เดือน ดามระดบันÊาด่างๆที ํÉไดท้าํ การกาํหนดไวไ้ดอ้ยา่งถูกตอ้งและแม่นยาํ รูปตัวอย่างการส่งข้อความแจ้งเตือนผ่านทางไลน์


30 บททีÉŝ สรุปผลและข ้ อเสนอแนะ ŝ.ř สรุปผลการทําโครงงาน ř. สรุปผลการทดลองเครืÉองเดือนเซนเซอร์วดัความชืÊนของดิน จากการทดลองเครืÉองเดือนวดัความชืÊน สรุปไดว้่า ระบบแจง้เดือนวดัความชÊืน สามารถวดัระดบันÊาํและแจง้เดือนได้ ทัÊงหมด ŜระดบัตามทีÉไดต้Êงัค่าเอาไว้ และแสดงผล พร้อมแจง้เดือนผา่นไลน์แอพพลิเคชนัÉ Ś. สรุปผลการทดลองแจง้เตือนทาง Application Line จากการทดลองเครืÉอง เตือนเซนเซอร์วดัความชÊืนของดิน เมืÉอมีการเริÉมการทาํงานของเซ็นเซอร์หากเป็นไปตามเงÉอนไขที ืÉ กาํหนดระบบจะทาํการส่งขอ้ความไปยงัApplication Line ทีÉถูกติดตัÊงโปรแกรม ไวอ้ยา่ง รวดเร็ว ś. สรุปผลการทาํตน้แบบจาํลองระบบเตือนวดัความชÊืนของดิน จากการทดลองดว้ย โปรแกรม wokwi เพืÉอทาํการsimulation โดยใช้SlidePotentiometerแทนเซน เซอร์การตรวจจบัระดบันÊา ซึ ํÉงผลการทดสอบ สามารถแสดงผลและแจง้เดือน ไปยงัไลน์แอพพลิเคชนัÉ ไดอ้ยา่งถกูตอ้ง ŝ.Ś ปัญหาและอุปสรรค ř. หาตวัSimulationแบบจาํลองเดือนวดัความชÊืนค่อนขา้งยากเพราะตอ้งทาํการ เชืÉอมต่ออินเตอร์เน็ต และส่งการแจง้เดือนผา่นทางไลน์แอพพลิเคชนได้ Éั 2. หากสามารถนาํไปใชง้านจริงถา้ตอ้งการประสิทธิภาพการแจง้เตือนก็สามารถ เพิÉมเซนเซอร์ เพืÉอทีÉจะสามารถแจง้เดือนไดอ้ยา่งแม่นยาํามากขÊึน 3. การต่อวงจรอาจมีการต่อผิดในบางครัÊงทาํให้อุปกรณ์เสียหาย 5.3 ข้อเสนอแนะในการพฒันาโครงงาน 1.ศึกษาหลกัการทาํงานของ ESP32และเซนเชอร์ตรวจจบัระดบันÊาเพิ ํÉม 2. ออกแบบชุดตรวจวดัระดบันÊาํให้มีความยืดหยนุ่และปรับใช่ไดต้ามแด่ละสถานทีÉ 3. เพิÉมเสียงการแจ้งเตือนให้มีเสียงดงั


31 บรรณานุกรม ชนตร์นนท์ภีระคาํ. (2555).การพฒันาสÉือนวตักรรมชุดควบคุมอปุกรณ์อเิล็กทรอนิกส์ ไร้สายผาน Arduino Bluetooth. [สืบคน้เมÉอืวนัทÉี20ธนัวาคม 2566]. จาก http://gg.gg/ot69w ปกรณ์ รัตนยิÉง. (2562). ปัËมน้Ũา DC ขนาดเล็ก 5V. [สืบคน้เมÉือวนัทÉี20 ธันวาคม 2566]. จาก http://gg.gg/ot5z5 ปกรณ์ รัตนยิÉง. (2562). สายยางปัËมน้Ũา DC ขนาด 3 หุน ยาว 1 เมตร. [สืบคน้เมÉือวนัทÉี20ธนัวาคม 2566]. จาก http://gg.gg/ot617 ปกรณ์ รัตนยิÉง. (2562). Adapter5V 1A หมอ้แปลง5V 1แอมป์. [สืบคน้เมÉอืวนัทÉี20ธนัวาคม 2566]. จาก http://gg.gg/ot636 ปกรณ์ รัตนยิÉง. (2562). Power Adapter Jack ตวัเมีย. [สืบคน้เมÉือวนัทÉี20ธนัวาคม 2566]. จาก http://gg.gg/ot64d ปกรณ์ รัตนยิÉง. (2562). สายแพร Jumper Male to Female. [สืบคน้เมืÉอวนัทÉี20 ธันวาคม 2566]. จาก http://gg.gg/ot663 จุฑามาศแกว้มโน. (2561).การจดัการดินในสวนยางพาราตอ่ตวัชÊีวดัคุณภาพดินทางกายภาพ. [สืบคน้เมÉือวนัทÉี20 ธันวาคม 2566]. จาก http://gg.gg/ot6c8 สุริยาศรีวิเศษ. (2561). [ออนไลน]์. Arduino Uno R3 พร้อมสาย USB. [สืบคน้เมÉือวนัทÉี20 ธันวาคม 2566]. จาก http://gg.gg/ot51m สนธยา นงนุช. (2561).Soil Moisture Sensor Module วดัความชÊืนในดิน. [สืบคน้เมÉือวนัทÉี20ธนัวาคม 2566]. จาก http://gg.gg/ot5he SPsmartplants. (2564). ความชืÊนในดิน. [สืบคน้เมืÉอวนั ทีÉ20ธนัวาคม 2566].จากhttp://gg.gg/ot686 SUPPORT THAIEASYELEC. (2560). Moduleรีเลย์relay1 Chanel250V/10A Active HIGH II.


32 [สืบคน้เมÉือวนัทÉี20 ธันวาคม 2566]. จาก http://gg.gg/ot5ad เอกสารแนบท้าย โปรแกรม Arduino IDE คือโปแกรมใช้ในการเขียนโค้ด แก้ไขโค้ด หรืออพัโหลด โค้ดไปยังไมโครคอนโทรลเลอร์ สามารถใช้งานร่วมกับบอร์ดได้หลากหลายเช่น Arduino NodeMCU ESP8266 ESP32 เป็ นต้น ขัÊนตอนการติดดัÊงโปรแกรม Arduino IDE ทําการดาว์นโหลดโปรแกรม ได้ทีÉ https://www.arduino.cc/en/software วิธีดิดตัÊงโปรแกรม Arduino IDE 1.ดับเบิลคลกิไฟล์ทีÉโหลดมา 2.กด I Agree


33 กด Next กด install


34 5.รอติดตัÊง โปรแกรม Ş.เมืÉอติดตัÊงเสร็จแล้ว กด finish


35 7.ทดลองเปิ ดโปรแกรม Arduino IDE การติดตัÊง ESP32 Board ใช ้ งานกบัArduino IDE Installing the ESP32 BoardเริÉมแรกให้เปิ ด โปรแกรม Arduino IDE ขึนมาให้เข้า Ê File> Preferences


36 เข้ามาแล้วจะเจอหน้านีÊ ให้คัดลอก https://dl.espressif.com/dl/package_esp32_index.json ไปวางในชอ่ง “Additional Board Manager URLs” แลว้กด OK


37 โค้ดการทํางานระบบการแจ้งเตือนการเซนเซอร์วัดความชืÊนของดิน โคด้ void Line_Notify1(String message1) ; #include <ESP8266WiFi.h> #include <DHT.h> #define WIFI_SSID "ชืÉอ wifi" /////////////*************แก้ #define WIFI_PASSWORD "รหสั wifi"////////**************แก้ #define LINE_TOKEN_PIR "line token"////***************แก้ #define PirPin D6 #define DHTPIN D7 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); String messageř = "ขอ้ความแจง้เตือน";//****************แก้ bool beep_state = false; bool send_state = false; uint32_t ts, ts1, ts2; void setup() { Serial.begin(115200); Serial.println(); pinMode(PirPin, INPUT); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); dht.begin(); Serial.println("connecting"); WiFi.mode(WIFI_STA); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); Serial.print("connecting"); while (WiFi.status() != WL_CONNECTED) { Serial.print(".");


38 delay(500); } Serial.println(); Serial.print("connected: "); Serial.println(WiFi.localIP()); delay(10000); Serial.println("Pir Ready!!"); read_sensor(); ts = ts1 = ts2 = millis(); } void loop() { ts = millis(); if (WiFi.status() == WL_CONNECTED) { digitalWrite(LED_BUILTIN, LOW); } else { digitalWrite(LED_BUILTIN, HIGH); } if ((ts - ts2 >= 60000) && (WiFi.status() == WL_CONNECTED)) { read_sensor(); } if ((ts - ts1 >= 5000) && (beep_state == true)) { beep_state = false; } if ((digitalRead(PirPin) == HIGH) && (beep_state == false) && (WiFi.status() == WL_CONNECTED)) { while (digitalRead(PirPin) == HIGH) delay(100); Serial.println("Detect !"); Line_Notify1(message1); beep_state = true; } delay(10); } void Line_Notify1(String message) { WiFiClientSecure client;


39 if (!client.connect("notify-api.line.me", 443)) { Serial.println("connection failed"); delay(2000); return; } String req = ""; req += "POST /api/notify HTTP/1.1\r\n"; req += "Host: notify-api.line.me\r\n"; req += "Authorization: Bearer " + String(LINE_TOKEN_PIR) + "\r\n"; req += "Cache-Control: no-cache\r\n"; req += "User-Agent: ESP8266\r\n"; req += "Content-Type: application/x-www-form-urlencoded\r\n"; req += "Content-Length: " + String(String("message=" + message1).length()) + "\r\n"; req += "\r\n"; req += "message=" + message1; // Serial.println(req); client.print(req); delay(20); while (client.connected()) { String line = client.readStringUntil('\n'); if (line == "\r") { break; } } } void read_sensor() { float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } Serial.print("Temperature: "); Serial.print(t);


40 Serial.println(" *C "); } ----------------------------------------------------------


41


Click to View FlipBook Version