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

แผนการจัดการเรียนรู้ <br>วิชาวิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอที<br>ปีการศึกษา 2/2566

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by phonlawat.po, 2024-02-15 04:45:25

แผนการจัดการเรียนรู้ วิชาวิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอที

แผนการจัดการเรียนรู้ <br>วิชาวิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอที<br>ปีการศึกษา 2/2566

97 ใบงานหน่วยที่ 9 ความรู้เกี่ยวกับไอโอที คำชี้แจง จงตอบคำถามต่อไปนี้ให้ถูกต้อง 1. อินเทอร์เน็ตของสรรพสิ่ง หรือไอโอที (Internet of Things: IoT) หมายถึงอะไร ............................................................................................................................. ......................................... ...................................................................................................................................................................... 2. องค์ประกอบหลักของไอโอทีมีอะไรบ้าง ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 3. ประโยชน์ของไอโอทีมีอะไรบ้าง ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 4. ยกตัวอย่างการใช้งานไอโอทีในชีวิตประจำวันมา 5 อย่าง ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ......................................................................................................................................................................


98 ข้อสรุปหลังการจัดการเรียนรู้ ............................................................................................................................. ................................................. ................................................................................. ............................................................................................. .................................................................................................................................................................................... ............................................................................................................................. ........................................... .................................................................................................................................................................................... ปัญหาที่พบ ............................................................................................................................. ....................................................... .................................................................................................................................................................................... ............................................................................................................................. ....................................................... แนวทางการแก้ปัญหา ............................................................................................................................. ....................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.2 กลุ่ม ทส.2 สัปดาห์ที่13 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลและไอโอที วันเดือนปี ชื่อเรื่อง ความรู้เกี่ยวกับไอโอที จำนวนชั่วโมง 4 ชั่วโมง


99 แผนการจัดการเรียนรู้ หน่วยที่ 10 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลและไอโอที สอนครั้งที่ 14 ชื่อหน่วย เครือข่ายโพรโตคอล ชั่วโมงรวม 4 ชั่วโมง ชื่อเรื่อง เครือข่ายโพรโตคอล จำนวน 4 ชั่วโมง สาระสำคัญ เครือข่ายโพรโตคอล หมายถึง เครือข่ายที่ใช้ในการเชื่อมต่ออุปกรณ์ต่างๆ บนอินเทอร์เน็ต โดยแบ่ง ออกเป็นประเภทต่างๆ ดังนี้ o เครือข่ายไร้สาย (Wireless Network) เช่น เครือข่าย Wi-Fi เครือข่าย Bluetooth เครือข่าย ZigBee เครือข่าย LoRaWAN เป็นต้น o เครือข่ายมีสาย (Wired Network) เช่น เครือข่าย Ethernet เครือข่าย Powerline เครือข่าย PLC เป็นต้น o เครือข่ายเฉพาะกิจ (Ad hoc Network) เช่น เครือข่าย Mesh เครือข่าย WSN เป็นต้น • ข้อดีและข้อจำกัดของเครือข่ายโพรโตคอล o เครือข่ายไร้สาย ▪ ข้อดี: ติดตั้งและใช้งานง่าย เคลื่อนย้ายได้สะดวก ประหยัดพื้นที่ ▪ ข้อจำกัด: ระยะการสื่อสารสั้น สัญญาณรบกวนได้ง่าย สิ้นเปลืองพลังงาน o เครือข่ายมีสาย ▪ ข้อดี: ระยะการสื่อสารไกล สัญญาณรบกวนน้อย ปลอดภัย ▪ ข้อจำกัด: ติดตั้งและใช้งานยาก เคลื่อนย้ายได้ยาก สิ้นเปลืองพื้นที่ o เครือข่ายเฉพาะกิจ ▪ ข้อดี: เหมาะสำหรับการใช้งานในพื้นที่จำกัด ปลอดภัย ใช้พลังงานต่ำ ▪ ข้อจำกัด: ระยะการสื่อสารสั้น ไม่สามารถเชื่อมต่ออินเทอร์เน็ตได้โดยตรง • การติดต่อสื่อสารกันระหว่างบอร์ด o บอร์ด ESP8266 สามารถติดต่อสื่อสารกันได้หลายวิธี เช่น การสื่อสารแบบอนุกรม (Serial) การ สื่อสารแบบ Wi-Fi การสื่อสารแบบ Bluetooth การสื่อสารแบบ I2C การสื่อสารแบบ SPI เป็น ต้น • โหมดการทำงาน ESP8266 o โหมด AP (Access Point): บอร์ด ESP8266 ทำหน้าที่เป็นจุดเชื่อมต่อเครือข่าย Wi-Fi


100 o โหมด STA (Station): บอร์ด ESP8266 เชื่อมต่อกับเครือข่าย Wi-Fi ของอุปกรณ์อื่นๆ o โหมด AP + STA: บอร์ด ESP8266 ทำหน้าที่เป็นจุดเชื่อมต่อเครือข่าย Wi-Fi และเชื่อมต่อกับ เครือข่าย Wi-Fi อื่นด้วย • ความแตกต่างระหว่างโหมด Station และโหมด AP o บทบาท: อุปกรณ์ลูกข่าย (Station) / อุปกรณ์แม่ข่าย (AP) o การเชื่อมต่อ: เชื่อมต่อกับเครือข่าย Wi-Fi ของอุปกรณ์อื่นๆ / สร้างเครือข่าย Wi-Fi ของตัวเอง o ความปลอดภัย: ขึ้นอยู่กับเครือข่าย Wi-Fi ที่เชื่อมต่อ / ขึ้นอยู่กับชื่อเครือข่าย Wi-Fi และ รหัสผ่านที่กำหนด o สิ้นเปลืองพลังงาน: น้อยกว่า / มากกว่า สมรรถนะประจำหน่วย 1. สามารถบอกความหมายของเครือข่ายโพรโตคอลได้ 2. สามารถอธิบายประเภทของเครือข่ายโพรโตคอลได้ 3. สามารถอธิบายข้อดีของประเภทเครือข่ายโพรโตคอลได้ 4. สามารถอธิบายข้อจำกัดของประเภทเครือข่ายโพรโตคอลได้ จุดประสงค์การเรียนรู้ประจำหน่วย จุดประสงค์ทั่วไป 1. เพื่อให้นักเรียนบอกความหมายของเครือข่ายโพรโตคอล 2. เพื่อให้นักเรียนอธิบายประเภทของเครือข่ายโพรโตคอล 3. เพื่อให้นักเรียนอธิบายข้อดีและข้อจำกัดของประเภทเครือข่ายโพรโตคอล 4. เพื่อให้นักเรียนอธิบายข้อจำกัดของประเภทเครือข่ายโพรโตคอลได้ จุดประสงค์เชิงพฤติกรรม 1. บอกความหมายของเครือข่ายโพรโตคอลได้ 2. อธิบายประเภทของเครือข่ายโพรโตคอลได้ 3. อธิบายข้อดีของประเภทเครือข่ายโพรโตคอลได้ 4. อธิบายข้อจำกัดของประเภทเครือข่ายโพรโตคอลได้


101 กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1.ขั้นนำเข้าสู่บทเรียน 1.1 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูเปิดประเด็นคำถามเกี่ยวกับ เครือข่ายโพรโตคอล 1.1 นักเรียนรับทราบจุดประสงค์ของการ เรียนในบทเรียนนี้ 1.2 นักเรียนตอบคำถามเกี่ยวกับเครือข่าย โพรโตคอล 1. คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2. ขั้นสอนทฤษฎี 2.1 ครูอธิบายเครือข่ายโพรโตคอล 2.1 รับฟังคำบรรยาย 2.2 ตอบคำถามและแสดงความคิดเห็น 1.สื่อนำเสนอ Canva หน่วยที่ 10 3. ขั้นสรุป 3.1 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 3.1 นักเรียนช่วยครูสรุปและตอบคำถาม 4. ขั้นสอนปฏิบัติ 4.1 ครูแสดงวิธีการทำงานเครือข่าย โพรโตคอล 4.1 นักเรียนปฏิบัติตามครูผู้สอน 1. บอร์ดไมโครคอนโทรลเลอร์และ อุปกรณ์ 2. Arduino IDE 5. ขั้นการประเมินผล 5.1 ครูซักถาม/ทบทวนการสอน 5.2 ครูแจกใบประเมิน 5.3 เก็บใบประเมินคืนเมื่อครบ กำหนดเวลา 5.1 นักเรียนตอบคำถามและทบทวนการเรียน 5.2 รับและทำใบประเมิน 5.3 ส่งคืนใบประเมิน 1. ใบประเมินผล 6. ขั้นมอบหมายงาน 6.1 ให้นักเรียนศึกษาค้นคว้าเพิ่มเติม เกี่ยวกับเครือข่ายโพรโตคอล 6.1 รับงานที่ได้รับมอบหมาย 1. ใบมอบงานหน่วยที่ 10 7. ขั้นตรวจสอบความเรียบร้อย 7.1 ตรวจความเรียบร้อยและความ เรียบร้อยของห้องเรียนห้องปฏิบัติงาน 7.1 ช่วยกันจัดเก็บอุปกรณ์และทำความ สะอาดห้องเรียนห้องปฏิบัติงานให้เรียบร้อย


102 สื่อการเรียนรู้และแหล่งการเรียนรู้ เว็บไซต์ Random Nerd Tutorials. ESP8266 Introducing. สืบค้นเมื่อวันที่ 20 พฤศจิกาจน 2566 จาก เว็บไซต์https://randomnerdtutorials.com/projects-esp8266/ สื่ออื่นๆ สื่อนำเสนอ Canva หลักฐานการเรียนรู้ที่ต้องการ หลักฐานความรู้ ใบงานหน่วยที่ 10 หลักฐานการปฏิบัติงาน คะแนนใบงานหน่วยที่ 10 การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1. ใบงานหน่วยที่ 10 เกณฑ์ผ่าน 50% 2. แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการ/ความสัมพันธ์กับวิชาอื่น วิชาวิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอทีสามารถบูรณาการกับวิชาอื่น ๆ ได้หลายวิชา เช่น • วิชาไฟฟ้าและอิเล็กทรอนิกส์สามารถใช้ความรู้เกี่ยวกับวิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอที ในการประยุกต์ใช้กับอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ได้ เช่น โทรศัพท์มือถือ คอมพิวเตอร์ อุปกรณ์ เครื่องใช้ไฟฟ้า เป็นต้น • วิชาคณิตศาสตร์สามารถใช้ความรู้เกี่ยวกับวิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอทีในการ ประยุกต์ใช้กับการคำนวณและแก้ปัญหาทางคณิตศาสตร์ได้ เช่น การคำนวณระยะทางระหว่างอุปกรณ์ ต่างๆ การคำนวณปริมาณการใช้พลังงาน เป็นต้น • วิชาวิทยาศาสตร์สามารถใช้ความรู้เกี่ยวกับวิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอทีในการ ประยุกต์ใช้กับงานวิจัยทางวิทยาศาสตร์ได้ เช่น การวิจัยเกี่ยวกับเซ็นเซอร์ การวิจัยเกี่ยวกับ ปัญญาประดิษฐ์ เป็นต้น


103 • วิชาคอมพิวเตอร์ สามารถใช้ความรู้เกี่ยวกับวิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอทีในการ ประยุกต์ใช้กับการออกแบบและเขียนโปรแกรมคำสั่งการทำงานอุปกรณ์ระบบสมองกลฝังตัวและไอโอที เนื้อหาสาระ หน่วยที่ 10 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอที สอนครั้งที่ 14 ชื่อหน่วย เครือข่ายโพรโตคอล ชั่วโมงรวม 4 ชั่วโมง ชื่อเรื่อง เครือข่ายโพรโตคอล จำนวน 4 ชั่วโมง หน่วยที่ 10 เครือข่ายโพรโตคอล ความหมายของโพรโตคอลไอโอที โพรโตคอลไอโอที (IoT Protocol) คือ กฎเกณฑ์หรือข้อตกลงที่กำหนดรูปแบบการสื่อสารระหว่างอุปกรณ์ไอโอที ช่วยให้อุปกรณ์ต่างๆ สามารถสื่อสารและแลกเปลี่ยนข้อมูลกันได้ ประเภทของโพรโตคอลไอโอที โพรโตคอลไอโอทีสามารถแบ่งออกเป็นประเภทหลักๆ ได้ดังนี้ • โพรโตคอลชั้นกายภาพ (Physical Layer Protocol) เป็นโพรโตคอลที่ควบคุมการส่งข้อมูลระหว่าง อุปกรณ์ไอโอที โดยกำหนดรูปแบบของสัญญาณและวิธีการส่งข้อมูล • โพรโตคอลชั้นเชื่อมโยงข้อมูล (Data Link Layer Protocol) เป็นโพรโตคอลที่ควบคุมการแบ่งข้อมูล ออกเป็นเฟรมและตรวจสอบความผิดพลาดของข้อมูล • โพรโตคอลชั้นเครือข่าย (Network Layer Protocol) เป็นโพรโตคอลที่ควบคุมเส้นทางของข้อมูลระหว่าง อุปกรณ์ไอโอที • โพรโตคอลชั้นขนส่ง (Transport Layer Protocol) เป็นโพรโตคอลที่ควบคุมการถ่ายโอนข้อมูลระหว่าง อุปกรณ์ไอโอที • โพรโตคอลชั้นประยุกต์ (Application Layer Protocol) เป็นโพรโตคอลที่ควบคุมการแลกเปลี่ยนข้อมูล ระหว่างอุปกรณ์ไอโอทีตามวัตถุประสงค์การใช้งาน ตัวอย่างโพรโตคอลไอโอที ตัวอย่างโพรโตคอลไอโอทีที่ได้รับความนิยม ได้แก่ • MQTT (Message Queuing Telemetry Transport) เป็นโพรโตคอลแบบข้อความที่เน้นการประหยัด แบนด์วิดธ์ เหมาะสำหรับการสื่อสารระหว่างอุปกรณ์ไอโอทีที่มีปริมาณข้อมูลไม่มาก • CoAP (Constrained Application Protocol) เป็นโพรโตคอลแบบข้อความที่เน้นความประหยัดพลังงาน เหมาะสำหรับการสื่อสารระหว่างอุปกรณ์ไอโอทีที่มีพลังงานจำกัด


104 • HTTP (Hypertext Transfer Protocol) เป็นโพรโตคอลแบบข้อความที่ได้รับความนิยมในการสื่อสารบน อินเทอร์เน็ต เหมาะสำหรับการสื่อสารระหว่างอุปกรณ์ไอโอทีกับอุปกรณ์อื่นๆ บนอินเทอร์เน็ต • HTTPS (Hypertext Transfer Protocol Secure) เป็นโพรโตคอลแบบข้อความที่ปลอดภัย เหมาะ สำหรับการสื่อสารระหว่างอุปกรณ์ไอโอทีที่มีข้อมูลสำคัญ คุณสมบัติของโพรโตคอลไอโอที โพรโตคอลไอโอทีที่ดีควรมีคุณสมบัติดังต่อไปนี้ • มีประสิทธิภาพ หมายถึง โพรโตคอลควรสามารถส่งข้อมูลได้อย่างมีประสิทธิภาพและรวดเร็ว • เชื่อถือได้หมายถึง โพรโตคอลควรสามารถป้องกันการสูญหายหรือเสียหายของข้อมูล • ปลอดภัย หมายถึง โพรคอลควรสามารถป้องกันการเข้าถึงข้อมูลโดยไม่ได้รับอนุญาต ยืดหยุ่น หมายถึง โพรโตคอลควรสามารถรองรับอุปกรณ์ไอโอทีหลากหลายประเภท การติดต่อสื่อสารกันระหว่างบอร์ด บอร์ด ESP8266 สามารถติดต่อสื่อสารกันได้หลายวิธี ดังนี้ การสื่อสารแบบอนุกรม (Serial) เป็นการสื่อสารแบบพื้นฐานที่บอร์ด ESP8266 รองรับ โดยสามารถ เชื่อมต่อกับบอร์ดอื่นๆ โดยใช้สายสัญญาณอนุกรม (UART) ความเร็วในการรับส่งข้อมูลสูงสุดอยู่ที่ 115200 bps การสื่อสารแบบ Wi-Fi เป็นการสื่อสารแบบไร้สายที่บอร์ด ESP8266 รองรับ โดยสามารถเชื่อมต่อกับ บอร์ดอื่นๆ ผ่านเครือข่าย Wi-Fi ความเร็วในการรับส่งข้อมูลสูงสุดอยู่ที่ 110 Mbps การสื่อสารแบบ Bluetooth เป็นการสื่อสารแบบไร้สายระยะใกล้ที่บอร์ด ESP8266 รองรับ โดยสามารถ เชื่อมต่อกับบอร์ดอื่นๆ ผ่านเครือข่าย Bluetooth ความเร็วในการรับส่งข้อมูลสูงสุดอยู่ที่ 2 Mbps การสื่อสารแบบ I2C เป็นการสื่อสารแบบอนุกรมความเร็วสูงที่บอร์ด ESP8266 รองรับ โดยสามารถ เชื่อมต่อกับบอร์ดอื่นๆ ที่มีพอร์ต I2C ความเร็วในการรับส่งข้อมูลสูงสุดอยู่ที่ 400 kHz การสื่อสารแบบ SPI เป็นการสื่อสารแบบอนุกรมความเร็วสูงที่บอร์ด ESP8266 รองรับ โดยสามารถ เชื่อมต่อกับบอร์ดอื่นๆ ที่มีพอร์ต SPI ความเร็วในการรับส่งข้อมูลสูงสุดอยู่ที่ 10 MHz โหมดการทำงาน ESP8266 บอร์ด ESP8266 มีโหมดการทำงานอยู่ 3 โหมด ดังนี้ โหมด AP (Access Point) เป็นโหมดที่บอร์ด ESP8266 ทำหน้าที่เป็นจุดเชื่อมต่อเครือข่าย Wi-Fi โดย สามารถตั้งค่าชื่อเครือข่าย (SSID) และรหัสผ่าน (Password) ได้ โหมด STA (Station) เป็นโหมดที่บอร์ด ESP8266 เชื่อมต่อกับเครือข่าย Wi-Fi ของอุปกรณ์อื่นๆ โดย สามารถตั้งค่าชื่อเครือข่าย (SSID) และรหัสผ่าน (Password) ได้


105 โหมด AP+STA เป็นโหมดการทำงานพิเศษของบอร์ด ESP8266 ที่ทำหน้าที่เป็นจุดเชื่อมต่อเครือข่าย WiFi โดยสามารถตั้งค่าชื่อเครือข่าย (SSID) และรหัสผ่าน (Password) ได้ เช่นเดียวกับโหมด AP แต่มีข้อแตกต่างที่ สำคัญคือ บอร์ด ESP8266 จะเชื่อมต่อกับเครือข่าย Wi-Fi อื่นด้วยโดยอัตโนมัติ เมื่อไม่สามารถเชื่อมต่อกับ เครือข่าย Wi-Fi ที่กำหนดได้ โหมด AP เหมาะสำหรับการใช้งานที่ต้องการเชื่อมต่ออุปกรณ์ต่างๆ ผ่านเครือข่าย Wi-Fi แต่ไม่สามารถรับประกัน ได้ว่าอุปกรณ์เหล่านั้นจะเชื่อมต่อกับเครือข่าย Wi-Fi ที่กำหนดได้ เช่น อุปกรณ์ IoT กลางแจ้งที่อาจอยู่นอกระยะ ของเครือข่าย Wi-Fi ที่กำหนด ตัวอย่างการใช้งานโหมด AP ของบอร์ด ESP8266 เช่น • เชื่อมต่ออุปกรณ์ IoT กลางแจ้งกับเครือข่าย Wi-Fi • เชื่อมต่ออุปกรณ์ IoT กับเครือข่าย Wi-Fi สาธารณะ • เชื่อมต่ออุปกรณ์ IoT กับเครือข่าย Wi-Fi ของโรงแรมหรือร้านอาหาร ข้อดีของโหมด AP • สามารถใช้เชื่อมต่ออุปกรณ์ต่างๆ ผ่านเครือข่าย Wi-Fi ได้ • สามารถตั้งค่าชื่อเครือข่าย Wi-Fi และรหัสผ่านได้ • สามารถใช้เชื่อมต่อกับเครือข่าย Wi-Fi อื่นได้เมื่อไม่สามารถเชื่อมต่อกับเครือข่าย Wi-Fi ที่กำหนดได้ ข้อเสียของโหมด AP • การใช้โหมด AP จะสิ้นเปลืองพลังงานมากกว่าการใช้โหมด STA • การใช้โหมด AP อาจทำให้อุปกรณ์ IoT เชื่อมต่อกับเครือข่าย Wi-Fi ที่ไม่ปลอดภัยได้ โหมด Station เป็นโหมดการทำงานพื้นฐานของบอร์ด ESP8266 ที่ทำหน้าที่เป็นอุปกรณ์ลูกข่าย (Client) เชื่อมต่อกับเครือข่าย Wi-Fi ของอุปกรณ์อื่นๆ โดยสามารถตั้งค่าชื่อเครือข่าย (SSID) และรหัสผ่าน (Password) ได้ โหมด Station เหมาะสำหรับการใช้งานที่ต้องการเชื่อมต่อบอร์ด ESP8266 กับอุปกรณ์อื่นๆ ผ่านเครือข่าย Wi-Fi เช่น เชื่อมต่อบอร์ด ESP8266 กับอินเทอร์เน็ต เชื่อมต่อบอร์ด ESP8266 กับอุปกรณ์ IoT อื่นๆ เชื่อมต่อ บอร์ด ESP8266 กับเซิร์ฟเวอร์ เป็นต้น ตัวอย่างการใช้งานโหมด Station ของบอร์ด ESP8266 เช่น • เชื่อมต่อบอร์ด ESP8266 กับอินเทอร์เน็ตเพื่อเข้าถึงข้อมูลบนเว็บ • เชื่อมต่อบอร์ด ESP8266 กับอุปกรณ์ IoT อื่นๆ เพื่อแลกเปลี่ยนข้อมูล • เชื่อมต่อบอร์ด ESP8266 กับเซิร์ฟเวอร์เพื่อรับส่งข้อมูล ข้อดีของโหมด Station • สามารถใช้เชื่อมต่ออุปกรณ์ต่างๆ ผ่านเครือข่าย Wi-Fi ได้


106 • สามารถตั้งค่าชื่อเครือข่าย Wi-Fi และรหัสผ่านได้ • การใช้โหมด Station จะสิ้นเปลืองพลังงานน้อยกว่าการใช้โหมด AP ข้อเสียของโหมด Station • ต้องใช้อุปกรณ์อื่นๆ ทำหน้าที่เป็นจุดเชื่อมต่อเครือข่าย Wi-Fi • อุปกรณ์ IoT ที่ใช้โหมด Station อาจเชื่อมต่อกับเครือข่าย Wi-Fi ที่ไม่ปลอดภัยได้ โหมด AP (Access Point) เป็นโหมดการทำงานหนึ่งของบอร์ด ESP8266 ที่ทำหน้าที่เป็นจุดเชื่อมต่อเครือข่าย Wi-Fi โดยบอร์ด ESP8266 จะสร้างเครือข่าย Wi-Fi ของตัวเองขึ้นมา ซึ่งอุปกรณ์อื่นๆ สามารถเชื่อมต่อกับ เครือข่าย Wi-Fi นี้ได้ ตัวอย่างการใช้งานโหมด AP ของบอร์ด ESP8266 เช่น • ใช้เชื่อมต่ออุปกรณ์ IoT อื่นๆ กับเครือข่าย Wi-Fi • ใช้ตั้งค่าอุปกรณ์ IoT อื่นๆ • ใช้เชื่อมต่อกับอุปกรณ์ IoT อื่นๆ โดยไม่ต้องใช้อุปกรณ์อื่นๆ ทำหน้าที่เป็นจุดเชื่อมต่อเครือข่าย Wi-Fi ข้อดีของโหมด AP • สามารถตั้งค่าชื่อเครือข่าย Wi-Fi และรหัสผ่านได้ • สามารถใช้เชื่อมต่ออุปกรณ์อื่นๆ ผ่านเครือข่าย Wi-Fi ได้ ข้อเสียของโหมด AP • การใช้โหมด AP จะสิ้นเปลืองพลังงานมากกว่าการใช้โหมด STA • การใช้โหมด AP อาจทำให้อุปกรณ์ IoT เชื่อมต่อกับเครือข่าย Wi-Fi ที่ไม่ปลอดภัยได้ นอกจากนี้ยังมีโหมดเทอร์มินัล (Terminal) เป็นโหมดที่บอร์ด ESP8266 ทำงานเป็นเทอร์มินัล โดย สามารถส่งและรับข้อมูลกับคอมพิวเตอร์ได้


107 ในการเลือกโหมดการทำงาน ESP8266 นั้น ขึ้นอยู่กับการใช้งานที่ต้องการ เช่น หากต้องการเชื่อมต่อบอร์ด ESP8266 กับอุปกรณ์อื่นๆ ผ่านเครือข่าย Wi-Fi ให้ใช้โหมด STA แต่ถ้าต้องการตั้งค่าเครือข่าย Wi-Fi ให้ใช้ โหมด AP และหากต้องการส่งและรับข้อมูลกับคอมพิวเตอร์ ให้ใช้โหมดเทอร์มินัล


108 จุดประสงค์การมอบหมายงานให้ 1. บอกความหมายของเครือข่ายโพรโตคอลได้ 2. อธิบายประเภทของเครือข่ายโพรโตคอลได้ 3. อธิบายข้อดีของประเภทเครือข่ายโพรโตคอลได้ 4. อธิบายข้อจำกัดของประเภทเครือข่ายโพรโตคอลได้ แนวทางปฏิบัติงาน ก่อนเรียน ครูชี้แจงคำถามและแนะนำแนวทางการปฏิบัติงาน ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับการเชื่อมต่อหลอดแอลอีดีและลำโพง หลังเรียน ให้นักเรียนศึกษาค้นคว้าเพิ่มเติมเกี่ยวกับการเครือข่ายโพรโตคอล และทำใบงานหน่วยเรียนหน่วย ที่ 10 ส่งท้ายชั่วโมง แหล่งค้นคว้า/อ้างอิง Random Nerd Tutorials. ESP8266 Introducing. สืบค้นเมื่อวันที่ 20 พฤศจิกาจน 2566 จาก เว็บไซต์https://randomnerdtutorials.com/projects-esp8266/ กำหนดเวลาส่งงาน - ท้ายชั่วโมง การประเมินผล 1. การประเมินผลโดยใช้ใบงานหน่วยที่ 10 2. การประเมินผลโดยสังเกตพฤติกรรมและคุณภาพของงานที่ได้รับมอบหมาย 3. สังเกตการมีส่วนร่วมในการเรียน ใบมอบหมายงานที่ 10 ระดับชั้น ปวช.2 กลุ่ม ทส.2 สัปดาห์ที่13 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอที ชื่อเรื่อง เครือข่ายโพรโตคอล จำนวนชั่วโมง 4 ชั่วโมง


109 ใบงานหน่วยที่ 10 เครือข่ายโพรโตคอล คำชี้แจง จงตอบคำถามต่อไปนี้ให้ครบถ้วนและถูกต้อง 1. จงอธิบายความหมายของเครือข่ายโพรโตคอล ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 2. จงแบ่งประเภทของเครือข่ายโพรโตคอลออกเป็นประเภทต่างๆ พร้อมยกตัวอย่าง ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 3. จงอธิบายข้อดีและข้อจำกัดของเครือข่ายโพรโตคอลแต่ละประเภท ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 4. จงอธิบายการติดต่อสื่อสารกันระหว่างบอร์ด ESP8266 ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 5. บอร์ด ESP8266 การทำงานทั้งหมดกี่โหมด และอะไรบ้าง ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ......................................................................................................................................................................


110 6. จงอธิบายความแตกต่างระหว่างโหมด Station และโหมด AP ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ......................................................................................................................................................................


111 ข้อสรุปหลังการจัดการเรียนรู้ ............................................................................................................................. ................................................. ................................................................................. ............................................................................................. .................................................................................................................................................................................... ............................................................................................................................. ........................................... .................................................................................................................................................................................... ปัญหาที่พบ ............................................................................................................................. ....................................................... .................................................................................................................................................................................... ............................................................................................................................. ....................................................... แนวทางการแก้ปัญหา ............................................................................................................................. ....................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.2 กลุ่ม ทส.2 สัปดาห์ที่14 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลและไอโอที วันเดือนปี ชื่อเรื่อง เครือข่ายโพรโตคอล จำนวนชั่วโมง 4 ชั่วโมง


112 แผนการจัดการเรียนรู้ หน่วยที่ 11 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลและไอโอที สอนครั้งที่ 15 ชื่อหน่วย การติดต่อสื่อสาร ESP-NOW ชั่วโมงรวม 4 ชั่วโมง ชื่อเรื่อง การติดต่อสื่อสาร ESP-NOW จำนวน 4 ชั่วโมง สาระสำคัญ ESP-NOW เป็นโปรโตคอลการสื่อสารไร้สายแบบ peer-to-peer ที่พัฒนาโดย Espressif Systems สำหรับใช้กับชิป ESP8266 และ ESP32 โปรโตคอลนี้ช่วยให้อุปกรณ์ ESP8266 หรือ ESP32 สามารถสื่อสารกัน โดยตรงโดยไม่ต้องใช้ตัวกลาง เช่น Access Point หรือ Router เรียนรู้วิธีการใช้งาน ESP-NOW กับบอร์ด ESP8266 NodeMCU ตอนนี้คุณสามารถรวมผู้ส่งและผู้รับเข้า ด้วยกัน เพื่อให้คุณมีการสื่อสารสองทาง (แต่ละบอร์ดทำหน้าที่เป็นเซิร์ฟเวอร์และผู้ส่งในเวลาเดียวกัน) คุณยัง สามารถใช้บอร์ดเพิ่มเติมเพื่อสื่อสารระหว่างบอร์ดหลายตัวได้ สมรรถนะประจำหน่วย 1. สามารถบอกความหมาย ESP-NOW ได้ 2. สามารถอธิบายรูปแบบการสื่อสาร ESP-NOW ได้ 3. สามารถอธิบายคุณสมบัติของการติดต่อสื่อสาร ESP-NOW ได้ จุดประสงค์การเรียนรู้ประจำหน่วย จุดประสงค์ทั่วไป 1. เพื่อให้นักเรียนบอกความหมาย ESP-NOW 2. เพื่อให้นักเรียนอธิบายรูปแบบการสื่อสาร ESP-NOW 3. เพื่อให้นักเรียนอธิบายคุณสมบัติของการติดต่อสื่อสาร ESP-NOW จุดประสงค์เชิงพฤติกรรม 1. บอกความหมาย ESP-NOW ได้ 2. อธิบายรูปแบบการสื่อสาร ESP-NOW ได้ 3. อธิบายคุณสมบัติของการติดต่อสื่อสาร ESP-NOW ได้


113


114 กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1.ขั้นนำเข้าสู่บทเรียน 1.1 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูเปิดประเด็นคำถามเกี่ยวกับการ ติดต่อสื่อสาร ESP-NOW 1.1 นักเรียนรับทราบจุดประสงค์ของการ เรียนในบทเรียนนี้ 1.2 นักเรียนตอบคำถามเกี่ยวกับการ ติดต่อสื่อสาร ESP-NOW 1. คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2. ขั้นสอนทฤษฎี 2.1 ครูอธิบายการติดต่อสื่อสาร ESP-NOW 2.1 รับฟังคำบรรยาย 2.2 ตอบคำถามและแสดงความคิดเห็น 1.สื่อนำเสนอ Canva หน่วยที่ 11 3. ขั้นสรุป 3.1 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 3.1 นักเรียนช่วยครูสรุปและตอบคำถาม 4. ขั้นสอนปฏิบัติ 4.1 ครูแสดงวิธีการทำงานการ ติดต่อสื่อสาร ESP-NOW 4.1 นักเรียนปฏิบัติตามครูผู้สอน 1. บอร์ดไมโครคอนโทรลเลอร์และ อุปกรณ์ 2. Arduino IDE 5. ขั้นการประเมินผล 5.1 ครูให้แบบทดสอบหลังเรียน 5.2 ครูตรวจสอบการทำงานของ นักเรียน 5.1 นักเรียนปฏิบัติการทำแบบทดสอบหลัง เรียน 1. ผลงานของนักเรียน 2. การสอบถาม 6. ขั้นมอบหมายงาน 6.1 ให้นักเรียนศึกษาค้นคว้าเพิ่มเติม เกี่ยวกับการติดต่อสื่อสาร ESP-NOW 6.1 รับงานที่ได้รับมอบหมาย 1. ใบมอบงานหน่วยที่ 11 7. ขั้นตรวจสอบความเรียบร้อย 7.1 ตรวจความเรียบร้อยและความ เรียบร้อยของห้องเรียนห้องปฏิบัติงาน 7.1 ช่วยกันจัดเก็บอุปกรณ์และทำความ สะอาดห้องเรียนห้องปฏิบัติงานให้เรียบร้อย


115 สื่อการเรียนรู้และแหล่งการเรียนรู้ เว็บไซต์ - Random Nerd Tutorials. ESP8266 Introducing. สืบค้นเมื่อวันที่ 17 พฤศจิกายน 2566 จากเว็บไซต์ https://randomnerdtutorials.com/projects-esp8266/ สื่ออื่นๆ - สื่อนำเสนอ Canva หลักฐานการเรียนรู้ที่ต้องการ หลักฐานความรู้ งานปฏิบัติหน่วยที่ 11 หลักฐานการปฏิบัติงาน คะแนนงานปฏิบัติหน่วยที่ 11 การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1. ใบงานหน่วยที่ 11 เกณฑ์ผ่าน 50% 2. แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการหลักปรัชญาเศรษฐกิจพอเพียงสู่แผนการจัดการเรียนรู้ การถอดรหัสปรัชญาของเศรษฐกิจพอเพียง การพัฒนาโปรแกรมด้วยเทคโนโลยีดอตเน็ต พอประมาณ มีเหตุผล มีภูมิคุ้มกัน - นักศึกษามีความพอประมาณใน การใชอุปกรณการเรียน - นักศึกษาใชเหตุผลในการ ทำกิจกรรม - นักศึกษาทำงานอยางมีระเบียบวินัยในการ เรียนไมกอความวุนวาย เงื่อนไขความรู้ เงื่อนไขคุณธรรม - นักศึกษามีความรูเกี่ยวกับเนื้อหาในบทเรียน - นักศึกษารูจักความรักและความสามัคคีในเพื่อนรวมหอง เวลามีปญหาในการทำงาน - ชวยกันแกไขขอผิดพลาดที่เกิดขึ้นเบื้องตนกอนถาแกไขไม ไดจึงเรียกอาจารย


116 ครอบคลุม 4 มิติ วัตถุ สังคม สิ่งแวดล้อม วัฒนธรรม - สื่อ วัสดุ อุปกรณ์ - แบบทดสอบ - ใบมอบหมายงาน - ใบปฏิบัติงาน - การช่วยเหลือ เพื่อนในกลุ่ม - การแลกเปลี่ยน เรียนรู้ในชั้นเรียน - การร่วมกิจกรรม - รักษาความสะอาด ของห้องเรียน - จัดโต๊ะให้เหมาะสม - ปิดไฟ พัดลม ก่อนออกจากห้อง - อนุรักษ์ สิ่งแวดล้อม - การอยู่ร่วมกัน ในสังคม


117 เนื้อหาสาระ หน่วยที่ 11 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอที สอนครั้งที่ 15 ชื่อหน่วย การติดต่อสื่อสาร ESP-NOW ชั่วโมงรวม 4 ชั่วโมง ชื่อเรื่อง การติดต่อสื่อสาร ESP-NOW จำนวน 4 ชั่วโมง หน่วยที่ 11 การติดต่อสื่อสาร ESP-NOW จากข้อมูลเว็บไซต์ของ Espressif, ESP-NOW คือ โปรโตคอลที่พัฒนาโดย Espressif ซึ่งช่วยให้อุปกรณ์ หลายเครื่องสามารถสื่อสารกันได้โดยไม่ต้องใช้ Wi-Fi โปรโตคอลนี้คล้ายกับการเชื่อมต่อไร้สาย 2.4 GHz ที่ใช้ พลังงานต่ำ จำเป็นต้องจับคู่ระหว่างอุปกรณ์ก่อนการสื่อสาร เมื่อการจับคู่เสร็จสิ้น การเชื่อมต่อจะปลอดภัยและ แบบเพียร์ทูเพียร์ โดยไม่ต้องมีการจับมือ ฟีเจอร์ของ ESP-NOW ESP-NOW รองรับฟีเจอร์ต่อไปนี้: • การสื่อสารแบบยูนิคาสต์แบบเข้ารหัสและไม่เข้ารหัส • อุปกรณ์เพียร์แบบผสมเข้ารหัสและไม่เข้ารหัส • รองรับเพย์โหลดสูงสุด 250 ไบต์ • ฟังก์ชันการส่งข้อความกลับที่สามารถตั้งค่าเพื่อแจ้งให้ชั้นแอปพลิเคชันทราบถึงความสำเร็จหรือความ ล้มเหลวของการส่งข้อมูล ข้อจำกัดของเทคโนโลยี ESP-NOW เทคโนโลยี ESP-NOW ยังมีข้อจำกัดดังต่อไปนี้: • จำนวนเพียร์ที่เข้ารหัสได้จำกัด รองรับเพียร์ที่เข้ารหัสได้สูงสุด 10 ตัวในโหมดสถานี สูงสุด 6 ตัวในโหมด SoftAP หรือ SoftAP + Station • รองรับเพียร์ที่ไม่เข้ารหัสหลายตัว แต่จำนวนรวมของเพียร์เหล่านี้ควรน้อยกว่า 20 ตัว รวมถึงเพียร์ที่ เข้ารหัสด้วย • เพย์โหลดถูกจำกัดเพียง 250 ไบต์ ESP-NOW การสื่อสารแบบทางเดียว การสื่อสารแบบทางเดียวของ ESP-NOW มีความง่ายต่อการใช้งานและเหมาะสำหรับการส่งข้อมูลจากบอร์ดหนึ่ง ไปยังอีกบอร์ดหนึ่ง เช่น การอ่านค่าเซ็นเซอร์ หรือส่งคำสั่งเปิด/ปิดเพื่อควบคุม GPIO


118 ตัวอย่างสถานการณ์ที่ใช้การสื่อสารแบบทางเดียว: อ ESP8266 "หลัก" ส่งข้อมูลไปยัง ESP8266 "รอง" หลายตัว เหมาะสำหรับการส่งข้อมูลจากเซ็นเซอร์กลางไปยัง หลายอุปกรณ์ หรือส่งคำสั่งควบคุมไปยังหลายจุด บอร์ด ESP8266 หนึ่งบอร์ด ส่งคำสั่งเดียวกันหรือคำสั่งต่างกันไปยังบอร์ด ESP8266 หลายบอร์ด เหมาะ สำหรับการสร้างระบบควบคุมระยะไกล เช่น คุณสามารถมีบอร์ด ESP8266 หลายบอร์ดรอบบ้านที่ควบคุม โดยบอร์ด ESP8266 หลักเพียงบอร์ดเดียว ESP8266 "Slave" รับข้อมูลจาก "Master" หลายตัว การกำหนดค่านี้เหมาะอย่างยิ่งหากคุณต้องการรวบรวมข้อมูลจากโหนดเซ็นเซอร์หลายตัวเข้าไปในบอร์ด ESP8266 ตัวเดียว ตัวอย่างเช่น สามารถกำหนดค่าเป็นเซิร์ฟเวอร์เว็บเพื่อแสดงข้อมูลจากบอร์ดอื่นๆ ทั้งหมด


119 ESP-NOW การสื่อสารสองทาง ด้วย ESP-NOW แต่ละบอร์ดสามารถเป็นผู้ส่งและผู้รับได้ในเวลาเดียวกัน ดังนั้นคุณสามารถสร้างการสื่อสารสอง ทางระหว่างบอร์ดได้ ตัวอย่างเช่น คุณสามารถมีสองบอร์ดที่สื่อสารระหว่างกัน คุณสามารถเพิ่มบอร์ดเพิ่มเติมในการกำหนดค่านี้และมีบางอย่างที่ดูเหมือนเครือข่าย (บอร์ด ESP8266 ทั้งหมด สื่อสารกัน) ESP8266: รับที่อยู่ MAC ของบอร์ด ในการสื่อสารผ่าน ESP-NOW คุณต้องทราบ MAC Address ของตัวรับ ESP8266 นั่นคือวิธีที่คุณจะรู้ได้ว่าคุณจะ ส่งข้อมูลไปยังอุปกรณ์ใด


120 ESP8266 แต่ละตัวมีที่อยู่ MAC ที่ไม่ซ้ำกัน และนั่นคือวิธีที่เราระบุแต่ละบอร์ดเพื่อส่งข้อมูลไปโดยใช้ ESP-NOW (เรียนรู้วิธีรับและเปลี่ยนที่อยู่ MAC ของ ESP8266) หากต้องการรับที่อยู่ MAC ของบอร์ด ให้อัปโหลดโค้ดต่อไปนี้ // Complete Instructions to Get and Change ESP MAC Address: https://RandomNerdTutorials.com/get-change-esp32-esp8266-macaddress-arduino/ #include <ESP8266WiFi.h> void setup(){ Serial.begin(115200); Serial.println(); Serial.print("ESP8266 Board MAC Address: "); Serial.println(WiFi.macAddress()); } void loop(){ } หลังจากอัปโหลดโค้ดแล้ว ให้เปิด Serial Monitor ที่อัตรา baud 115200 แล้วกดปุ่ม ESP8266 RESET ที่อยู่ MAC ควรพิมพ์ดังนี้:


121 ESP-NOW การสื่อสารแบบจุดต่อจุดแบบทางเดียวด้วย ESP8266 เพื่อให้คุณเริ่มต้นการสื่อสารไร้สาย ESP-NOW เราจะสร้างโปรเจ็กต์ง่ายๆ ที่แสดงวิธีส่งข้อความจาก ESP8266 เครื่องหนึ่งไปยังอีกเครื่องหนึ่ง ESP8266 หนึ่งตัวจะทำหน้าที่เป็น "ผู้ส่ง" และ ESP8266 อีกตัวหนึ่งจะ เป็น "ผู้รับ" เราจะส่งโครงสร้างที่มีตัวแปรประเภท char, int, float, String และ boolean จากนั้น คุณสามารถแก้ไข โครงสร้างเพื่อส่งตัวแปรประเภทใดก็ได้ที่เหมาะกับโปรเจ็กต์ของคุณ (เช่น การอ่านเซ็นเซอร์ หรือตัวแปรบูลีนเพื่อ เปิดหรือปิดบางอย่าง) เพื่อความเข้าใจที่ดีขึ้น เราจะเรียก “ผู้ส่ง” เป็น ESP8266 #1 และ “ผู้รับ” เป็น ESP8266 #2 ต่อไปนี้คือสิ่งที่เราควรรวมไว้ในร่างของผู้ส่ง: เริ่มต้น ESP-NOW; ลงทะเบียนฟังก์ชันโทรกลับเมื่อส่งข้อมูล – ฟังก์ชัน OnDataSent จะถูกดำเนินการเมื่อมีการส่งข้อความ ข้อมูลนี้สามารถบอกเราได้ว่าข้อความถูกส่งสำเร็จหรือไม่ เพิ่มอุปกรณ์เพียร์ (ผู้รับ) ในการดำเนินการนี้ คุณจำเป็นต้องทราบที่อยู่ MAC ของผู้รับ ส่งข้อความไปยังอุปกรณ์เพียร์ ในด้านผู้รับ ภาพร่างควรประกอบด้วย: เริ่มต้น ESP-NOW; ลงทะเบียนสำหรับฟังก์ชันรับการติดต่อกลับ (OnDataRecv) นี่คือฟังก์ชันที่จะดำเนินการเมื่อได้รับ ข้อความ ภายในฟังก์ชันการโทรกลับนั้นจะบันทึกข้อความลงในตัวแปรเพื่อดำเนินงานใด ๆ ด้วยข้อมูลนั้น ESP-NOW ทำงานร่วมกับฟังก์ชันการโทรกลับที่ถูกเรียกเมื่ออุปกรณ์ได้รับข้อความหรือเมื่อมีการส่งข้อความ (คุณ จะได้รับหากส่งข้อความสำเร็จหรือล้มเหลว) ESP8266 NodeMCU ตัวส่ง (ESP-NOW) นี่คือโค้ดสำหรับบอร์ด ESP8266 NodeMCU Sender คัดลอกโค้ดไปยัง Arduino IDE ของคุณ แต่อย่า เพิ่งอัปโหลด คุณต้องทำการแก้ไขเล็กน้อยเพื่อให้ได้ผลสำหรับคุณ /* Rui Santos


122 Complete project details at https://RandomNerdTutorials.com/esp-now-esp8266-nodemcuarduino-ide/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. */ #include <ESP8266WiFi.h> #include <espnow.h> // REPLACE WITH RECEIVER MAC Address uint8_t broadcastAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; // Structure example to send data // Must match the receiver structure typedef struct struct_message { char a[32]; int b; float c; String d; bool e; } struct_message; // Create a struct_message called myData struct_message myData; unsigned long lastTime = 0; unsigned long timerDelay = 2000; // send readings timer // Callback when data is sent void OnDataSent(uint8_t *mac_addr, uint8_t sendStatus) { Serial.print("Last Packet Send Status: "); if (sendStatus == 0){


123 Serial.println("Delivery success"); } else{ Serial.println("Delivery fail"); } } void setup() { // Init Serial Monitor Serial.begin(115200); // Set device as a Wi-Fi Station WiFi.mode(WIFI_STA); // Init ESP-NOW if (esp_now_init() != 0) { Serial.println("Error initializing ESP-NOW"); return; } // Once ESPNow is successfully Init, we will register for Send CB to // get the status of Trasnmitted packet esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER); esp_now_register_send_cb(OnDataSent); // Register peer esp_now_add_peer(broadcastAddress, ESP_NOW_ROLE_SLAVE, 1, NULL, 0); } void loop() { if ((millis() - lastTime) > timerDelay) { // Set values to send strcpy(myData.a, "THIS IS A CHAR"); myData.b = random(1,20); myData.c = 1.2; myData.d = "Hello"; myData.e = false;


124 // Send message via ESP-NOW esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData)); lastTime = millis(); } } ขั้นแรก ผนวกไลบรารี ESP8266WiFi.h และ espnow.h #include <ESP8266WiFi.h> #include <espnow.h> ในบรรทัดถัดไป คุณควรใส่ที่อยู่ MAC ของตัวรับ ESP8266 uint8_t broadcastAddress[] = {0x5C, 0xCF, 0x7F, 0x99, 0x9A, 0xEA}; ในกรณีของเรา ที่อยู่ MAC ของผู้รับคือ: 5C:CF:7F:99:9A:EA แต่คุณต้องแทนที่ตัวแปรนั้นด้วยที่อยู่ MAC ของคุณ เอง จากนั้นสร้างโครงสร้างที่มีประเภทข้อมูลที่เราต้องการส่ง เราเรียกโครงสร้างนี้ว่า struct_message และมีตัวแปร 5 ประเภทที่แตกต่างกัน คุณสามารถเปลี่ยนสิ่งนี้เพื่อส่งตัวแปรประเภทใดก็ได้ที่คุณต้องการ typedef struct struct_message { char a[32]; int b; float c; String d; bool e; } struct_message; สร้างตัวแปรใหม่ประเภท struct_message ที่เรียกว่า myData ที่จะเก็บค่าตัวแปร struct_message myData; ถัดไป ให้ก าหนดฟังก์ชัน OnDataSent() นี่คือฟังก์ชันโทรกลับที่จะด าเนินการเมื่อมีการส่งข้อความ ในกรณีนี้ ข้อความนี้จะพิมพ์ออกมาหากส่งข้อความส าเร็จหรือไม่ void OnDataSent(uint8_t *mac_addr, uint8_t sendStatus) { Serial.print("Last Packet Send Status: "); if (sendStatus == 0){ Serial.println("Delivery success"); } else{ Serial.println("Delivery fail"); }


125 } ใน setup () ให้เริ่มต้นมอนิเตอร์อนุกรมเพื่อการแก้ไขจุดบกพร่อง: Serial.begin(115200); ตั้งค่าอุปกรณ์เป็น Wi-Fi STA WiFi.mode(WIFI_STA); เริ่มต้น ESP-NOW: if (esp_now_init() != 0) { Serial.println("Error initializing ESP-NOW"); return; } ตั้งค่าบทบาท ESP8266: esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER); ยอมรับบทบาทต่อไปนี้: ESP_NOW_ROLE_CONTROLLER, ESP_NOW_ROLE_SLAVE, ESP_NOW_ROLE_COMBO, ESP_NOW_ROLE_MAX หลังจากเริ่มต้น ESP-NOW สำเร็จแล้ว ให้ลงทะเบียนฟังก์ชันการโทรกลับที่จะถูกเรียกเมื่อมีการส่งข้อความ ใน กรณีนี้ เราลงทะเบียนฟังก์ชัน OnDataSent() ที่สร้างขึ้นก่อนหน้านี้ esp_now_register_send_cb(OnDataSent); จากนั้นจับคู่กับอุปกรณ์ ESP-NOW อื่นเพื่อส่งข้อมูล: esp_now_add_peer(broadcastAddress, ESP_NOW_ROLE_SLAVE, 1, NULL, 0); esp_now_add_peer ยอมรับอาร์กิวเมนต์ต่อไปนี้ ตามลำดับนี้: ที่อยู่ mac, บทบาท, ช่องสัญญาณ Wi-Fi, คีย์ และความยาวของคีย์ ใน loop() เราจะส่งข้อความผ่าน ESP-NOW ทุกๆ 2 วินาที (คุณสามารถเปลี่ยนการหน่วงเวลานี้ได้ในตัวแปร timerDelay) ขั้นแรกเราตั้งค่าตัวแปรดังนี้: strcpy(myData.a, "THIS IS A CHAR"); myData.b = random(1,20); myData.c = 1.2; myData.d = "Hello"; myData.e = false;


126 โปรดจำไว้ว่า myData เป็นโครงสร้าง ที่นี่เรากำหนดค่าที่เราต้องการส่งภายในโครงสร้าง ตัวอย่างเช่น บรรทัดแรก กำหนดอักขระ บรรทัดที่สองกำหนดตัวเลข Int แบบสุ่ม ทศนิยม สตริง และตัวแปรบูลีน เราสร้างโครงสร้างประเภทนี้เพื่อแสดงให้คุณเห็นวิธีการส่งประเภทตัวแปรที่พบบ่อยที่สุด คุณสามารถเปลี่ยน โครงสร้างเพื่อส่งข้อมูลประเภทอื่นได้ สุดท้ายส่งข้อความดังนี้: esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData)); loop() จะถูกดำเนินการทุกๆ 2,000 มิลลิวินาที (2 วินาที) if ((millis() - lastTime) > timerDelay) { // Set values to send strcpy(myData.a, "THIS IS A CHAR"); myData.b = random(1,20); myData.c = 1.2; myData.d = "Hello"; myData.e = false; // Send message via ESP-NOW esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData)); lastTime = millis(); } ESP8266 ตัวรับ NodeMCU แบบร่าง (ESP-NOW) /* Rui Santos Complete project details at https://RandomNerdTutorials.com/esp-now-esp8266-nodemcuarduino-ide/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files. The above copyright notice and this permission notice shall be included in all


127 copies or substantial portions of the Software. */ #include <ESP8266WiFi.h> #include <espnow.h> // Structure example to receive data // Must match the sender structure typedef struct struct_message { char a[32]; int b; float c; String d; bool e; } struct_message; // Create a struct_message called myData struct_message myData; // Callback function that will be executed when data is received void OnDataRecv(uint8_t * mac, uint8_t *incomingData, uint8_t len) { memcpy(&myData, incomingData, sizeof(myData)); Serial.print("Bytes received: "); Serial.println(len); Serial.print("Char: "); Serial.println(myData.a); Serial.print("Int: "); Serial.println(myData.b); Serial.print("Float: "); Serial.println(myData.c); Serial.print("String: "); Serial.println(myData.d); Serial.print("Bool: "); Serial.println(myData.e); Serial.println(); } void setup() {


128 // Initialize Serial Monitor Serial.begin(115200); // Set device as a Wi-Fi Station WiFi.mode(WIFI_STA); // Init ESP-NOW if (esp_now_init() != 0) { Serial.println("Error initializing ESP-NOW"); return; } // Once ESPNow is successfully Init, we will register for recv CB to // get recv packer info esp_now_set_self_role(ESP_NOW_ROLE_SLAVE); esp_now_register_recv_cb(OnDataRecv); } void loop() { } ในทํานองเดียวกันกับผู้ส่งเริ่มต้นด้วยการรวมไลบรารี: #include <esp_now.h> #include <WiFi.h> สร้างตัวแปร struct_message ที่เรียกว่า myData struct_message myData; สร้างฟังก์ชันการเรียกกลับที่จะ เรียกเมื่อ ESP8266 ได้รับข้อมูลผ่าน ESP-NOW ฟังก์ชันนี้เรียกว่า onDataRecv() และควรยอมรับพารามิเตอร์ หลายตัวดังนี้: typedef struct struct_message { char a[32]; int b; float c; String d; bool e; } struct_message;


129 สร้างฟังก์ชัน Callback ที่จะเรียกใช้เมื่อ ESP8266 รับข้อมูลผ่าน ESP-NOW ฟังก์ชันนี้เรียกว่า onDataRecv() และควรยอมรับพารามิเตอร์หลายตัวดังนี้: void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) { คัดลอกเนื้อหาของตัวแปรข้อมูล incomingData ไปยังตัวแปร myData memcpy(&myData, incomingData, sizeof(myData)); ตอนนี้โครงสร้าง myData มีตัวแปรหลายตัวภายในด้วยค่าที่ส่งโดย ESP8266 ผู้ส่ง ตัวอย่างเช่นในการเข้าถึงตัว แปร a เราเพียงแค่ต้องโทรหา myData.a ในตัวอย่างนี้เราเพียงแค่พิมพ์ข้อมูลที่ได้รับ แต่ในแอปพลิเคชันที่ใช้งาน ได้จริงคุณสามารถพิมพ์ข้อมูลบนจอแสดงผลได้ Serial.print("Bytes received: "); Serial.println(len); Serial.print("Char: "); Serial.println(myData.a); Serial.print("Int: "); Serial.println(myData.b); Serial.print("Float: "); Serial.println(myData.c); Serial.print("String: "); Serial.println(myData.d); Serial.print("Bool: "); Serial.println(myData.e); Serial.println(); } ใน setup () เริ่มการสื่อสารแบบอนุกรมเพื่อการดีบัก Serial.begin(115200); ตั้งค่าอุปกรณ์เป็น Wi-Fi STA WiFi.mode(WIFI_STA); เริ่มการท างาน ESP-NOW if (esp_now_init() != ESP_OK) {


130 Serial.println("Error initializing ESP-NOW"); return; } กำหนดค่าบทบาทของ ESP8266: esp_now_set_self_role(ESP_NOW_ROLE_SLAVE); เรียกใช้สําหรับฟังก์ชันการเรียกกลับที่จะถูกเรียกเมื่อได้รับข้อมูล ในกรณีนี้ เราเรียกใช้สําหรับฟังก์ชัน OnDataRecv() ที่สร้างขึ้นก่อนหน้านี้ esp_now_register_recv_cb(OnDataRecv); ทดสอบการสื่อสาร ESP-NOW อัปโหลดภาพร่างของผู้ส่งไปยังบอร์ดหนึ่ง และภาพร่างของผู้รับไปยังอีกกระดานหนึ่ง อย่าลืมใส่ที่อยู่ MAC ของผู้รับบนร่างของผู้ส่ง ตอนนี้ เปิดหน้าต่าง Arduino IDE สองหน้าต่าง อันหนึ่งสำหรับผู้รับ และอีกอันสำหรับผู้ส่ง เปิด Serial Monitor สำหรับแต่ละบอร์ด ควรเป็นพอร์ต COM ที่แตกต่างกันสำหรับแต่ละบอร์ด นี่คือสิ่งที่คุณควรได้รับจากฝั่งผู้ส่ง


131 ทดสอบระยะการสื่อสารระหว่างบอร์ดทั้งสอง และสามารถรับการสื่อสารที่เสถียรได้ไกลถึง 140 เมตร (ประมาณ 459 ฟุต) ในพื้นที่เปิดโล่ง ในการทดลองนี้ เสาอากาศออนบอร์ด ESP8266 ทั้งสองชี้เข้าหากัน


132 จุดประสงค์การมอบหมายงานให้ 1. บอกความหมาย ESP-NOW ได้ 2. อธิบายรูปแบบการสื่อสาร ESP-NOW ได้ 3. อธิบายคุณสมบัติของการติดต่อสื่อสาร ESP-NOW ได้ แนวทางปฏิบัติงาน ก่อนเรียน ครูชี้แจงคำถามและแนะนำแนวทางการปฏิบัติงาน ขณะเรียน ให้นักศึกษาอภิปรายและสรุปเกี่ยวกับการติดติอสื่อสาร ESP-NOW หลังเรียน ให้นักเรียนศึกษาค้นคว้าเพิ่มเติมเกี่ยวกับการติดต่อสื่อสาร ESP-NOW และใบทำงานหน่วยเรียน หน่วยที่ 11 ส่งท้ายชั่วโมง แหล่งค้นคว้า/อ้างอิง Random Nerd Tutorials. ESP8266 Introducing. สืบค้นเมื่อวันที่ 17 พฤศจิกายน 2566 จากเว็บไซต์ https://randomnerdtutorials.com/projects-esp8266/ กำหนดเวลาส่งงาน - ท้ายชั่วโมง การประเมินผล 1. การประเมินผลโดยใช้ใบงานหลังเรียนหน่วยที่ 11 2. การประเมินผลโดยสังเกตพฤติกรรมและคุณภาพของงานที่ได้รับมอบหมาย 3. สังเกตการมีส่วนร่วมในการเรียน ใบมอบหมายงานที่ 11 ระดับชั้น ปวช.2 กลุ่ม ทส.2 สัปดาห์ที่14 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอที ชื่อเรื่อง การติดต่อสื่อสาร ESP-NOW จำนวนชั่วโมง 4 ชั่วโมง


133 ใบงานหน่วยที่ 11 การติดต่อสื่อสาร ESP-NOW คำชี้แจง จงตอบคำถามต่อไปนี้ให้ครบถ้วนและถูกต้อง 1. บอกความหมายของการติดต่อสื่อสาร ESP-NOW ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 2. รูปแบบการติดต่อสื่อสาร ESP-NOW มีกี่รูปแบบ อะไรบ้าง ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 3. อธิบายคุณสมบัติของการติดต่อสื่อสาร ESP-NOW ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 4. บอกความแตกต่างของการติดต่อสื่อสารแบบทางเดียวและการสื่อสารแบบสองทาง ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ...................................................................................................................................................................... 5. การสื่อสารแบบ ESP-NOW ต้องกำหนดโหมดการทำงานของบอร์ด ESP8266 เป็นแบบใด ............................................................................................................................. ......................................... ...................................................................................................................................................................... ............................................................................................................................. ......................................... ......................................................................................................................................................................


134 ข้อสรุปหลังการจัดการเรียนรู้ ............................................................................................................................. ................................................. ................................................................................. ............................................................................................. .................................................................................................................................................................................... ............................................................................................................................. ........................................... .................................................................................................................................................................................... ปัญหาที่พบ ............................................................................................................................. ....................................................... .................................................................................................................................................................................... ............................................................................................................................. ....................................................... แนวทางการแก้ปัญหา ............................................................................................................................. ....................................................... .................................................................................................................................................................................... (นายพลวัฒน์ ผ่องแก้ว) ครูผู้สอน (นางสาวมยุรี พงษ์อาภา) หัวหน้าแผนกวิชาคอมพิวเตอร์ (นางสาวศิริวรรณ เนาว์ประโคน) รองผู้อำนวยงานฝ่ายวิชาการ บันทึกหลังการจัดการเรียนรู้ ระดับชั้น ปวช.2 กลุ่ม ทส.2 สัปดาห์ที่15 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลและไอโอที วันเดือนปี ชื่อเรื่อง การติดต่อสื่อสาร ESP-NOW จำนวนชั่วโมง 4 ชั่วโมง


135 แผนการจัดการเรียนรู้ หน่วยที่ 12 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลและไอโอที สอนครั้งที่ 16 ชื่อหน่วย การสร้าง Web Server ชั่วโมงรวม 4 ชั่วโมง ชื่อเรื่อง การสร้าง Web Server จำนวน 4 ชั่วโมง สาระสำคัญ ESP8266 เว็บเซิร์ฟเวอร์ HTTP แบบธรรมดา ในส่วนนี้ เราจะแสดงวิธีสร้างเว็บเซิร์ฟเวอร์ HTTP แบบ ง่ายที่แสดงอุณหภูมิและความชื้นในหน้า HTML แบบ Raw เว็บเซิร์ฟเวอร์นี้ส่งการตอบสนอง HTTP เมื่อ เบราว์เซอร์ของคุณส่งคำขอเกี่ยวกับที่อยู่ IP ESP8266 สมรรถนะประจำหน่วย 1. สามารถอธิบายความหมายของ Web Server ได้ 2. สามารถอธิบายขั้นตอนในการทำงาน Web Server ได้ 3. สามารถเขียนโปรแกรมสร้างเครือข่าย Web Server ได้ จุดประสงค์การเรียนรู้ประจำหน่วย จุดประสงค์ทั่วไป 1. เพื่อให้นักเรียนอธิบายความหมายของ Web Server 2. เพื่อให้นักเรียนอธิบายขั้นตอนในการทำงาน Web Server 3. เพื่อให้นักเรียนเขียนโปรแกรมสร้างเครือข่าย Web Server จุดประสงค์เชิงพฤติกรรม 4. อธิบายความหมายของ Web Server ได้ 5. อธิบายขั้นตอนในการทำงาน Web Server ได้ 6. เขียนโปรแกรมสร้างเครือข่าย Web Server ได้


136 กิจกรรมการเรียนรู้ ขั้นตอนการสอน (กิจกรรมของครู) ขั้นตอนการเรียน (กิจกรรมผู้เรียน) เครื่องมือ/การวัดผล ประเมินผล 1.ขั้นนำเข้าสู่บทเรียน 1.1 ครูบอกจุดประสงค์ของการเรียนใน บทเรียนนี้ 1.2 ครูเปิดประเด็นคำถามเกี่ยวกับการ สร้าง Web Server 1.1 นักเรียนรับทราบจุดประสงค์ของการ เรียนในบทเรียนนี้ 1.2 นักเรียนตอบคำถามเกี่ยวกับการสร้าง Web Server 1. คำถามประจำหน่วย - การตอบคำถามแบบสุ่มถามเพื่อ กระตุ้นผู้เรียน 2. ขั้นสอนทฤษฎี 2.1 ครูอธิบายการสร้าง Web Server 2.1 รับฟังคำบรรยาย 2.2 ตอบคำถามและแสดงความคิดเห็น 1.สื่อนำเสนอ Canva หน่วยที่ 12 3. ขั้นสรุป 3.1 ครูและนักเรียนช่วยกันสรุปและ ครูซักถามปัญหาข้อสงสัย 3.1 นักเรียนช่วยครูสรุปและตอบคำถาม 4. ขั้นสอนปฏิบัติ 4.1 ครูแสดงวิธีการการสร้าง Web Server 4.1 นักเรียนปฏิบัติตามครูผู้สอน 1. บอร์ดไมโครคอนโทรลเลอร์และ อุปกรณ์ 2. Arduino IDE 5. ขั้นการประเมินผล 5.1 ตรวจสอบความเข้าใจและการ ทำงาน 5.1 ตอบคำถามและความเข้าใจในงานที่ทำ 6. ขั้นมอบหมายงาน 6.1 ให้นักเรียนศึกษาค้นคว้าเพิ่มเติม เกี่ยวกับการสร้าง Web Server 6.1 รับงานที่ได้รับมอบหมาย 1. ใบมอบงานหน่วยที่ 12 7. ขั้นตรวจสอบความเรียบร้อย 7.1 ตรวจความเรียบร้อยและความ เรียบร้อยของห้องเรียนห้องปฏิบัติงาน 7.1 ช่วยกันจัดเก็บอุปกรณ์และทำความ สะอาดห้องเรียนห้องปฏิบัติงานให้เรียบร้อย


137 สื่อการเรียนรู้และแหล่งการเรียนรู้ สื่ออื่นๆ - สื่อนำเสนอ Canva - NodeMCU ESP8266 - สาย Micro USB - คอมพิวเตอร์ หลักฐานการเรียนรู้ที่ต้องการ หลักฐานความรู้ งานปฏิบัติหน่วยที่ 12 หลักฐานการปฏิบัติงาน คะแนนงานปฏิบัติหน่วยที่ 12 การวัดและประเมินผล การวัดผล (ใช้เครื่องมือ) การประเมินผล (นำผลเทียบกับเกณฑ์และแปลความหมาย) 1. งานปฏิบัติหน่วยที่ 12 เกณฑ์ผ่าน 100% 2. แบบประเมินคุณธรรม จริยธรรม ตามสภาพจริง เกณฑ์ผ่าน 50% การบูรณาการหลักปรัชญาเศรษฐกิจพอเพียงสู่แผนการจัดการเรียนรู้ การถอดรหัสปรัชญาของเศรษฐกิจพอเพียง การพัฒนาโปรแกรมด้วยเทคโนโลยีดอตเน็ต พอประมาณ มีเหตุผล มีภูมิคุ้มกัน - นักศึกษามีความพอประมาณใน การใชอุปกรณการเรียน - นักศึกษาใชเหตุผลในการ ทำกิจกรรม - นักศึกษาทำงานอยางมีระเบียบวินัยในการ เรียนไมกอความวุนวาย เงื่อนไขความรู้ เงื่อนไขคุณธรรม - นักศึกษามีความรูเกี่ยวกับเนื้อหาในบทเรียน - นักศึกษารูจักความรักและความสามัคคีในเพื่อนรวมหอง เวลามีปญหาในการทำงาน - ชวยกันแกไขขอผิดพลาดที่เกิดขึ้นเบื้องตนกอนถาแกไขไม ไดจึงเรียกอาจารย


138 ครอบคลุม 4 มิติ วัตถุ สังคม สิ่งแวดล้อม วัฒนธรรม - สื่อ วัสดุ อุปกรณ์ - แบบทดสอบ - ใบมอบหมายงาน - ใบปฏิบัติงาน - การช่วยเหลือ เพื่อนในกลุ่ม - การแลกเปลี่ยน เรียนรู้ในชั้นเรียน - การร่วมกิจกรรม - รักษาความสะอาด ของห้องเรียน - จัดโต๊ะให้เหมาะสม - ปิดไฟ พัดลม ก่อนออกจากห้อง - อนุรักษ์ สิ่งแวดล้อม - การอยู่ร่วมกัน ในสังคม


139 เนื้อหาสาระ หน่วยที่ 12 ชื่อวิชา วิทยาการก้าวหน้าระบบสมองกลฝังตัวและไอโอที สอนครั้งที่ 16 ชื่อหน่วย การสร้าง Web Server ชั่วโมงรวม 4 ชั่วโมง ชื่อเรื่อง การสร้าง Web Server จำนวน 4 ชั่วโมง หน่วยที่ 12 การสร้าง Web Server ESP8266 เว็บเซิร์ฟเวอร์ HTTP แบบธรรมดา ในส่วนนี้ เราจะแสดงวิธีสร้างเว็บเซิร์ฟเวอร์ HTTP แบบง่ายที่แสดงอุณหภูมิและความชื้นในหน้า HTML แบบ Raw เว็บเซิร์ฟเวอร์นี้ส่งการตอบสนอง HTTP เมื่อเบราว์เซอร์ของคุณส่งคำขอเกี่ยวกับที่อยู่ IP ESP8266 เปิด Arduino IDE ของคุณแล้วคัดลอกโค้ดต่อไปนี้ /********* Rui Santos Complete project details at https://randomnerdtutorials.com *********/ // Including the ESP8266 WiFi library #include <ESP8266WiFi.h> #include "DHT.h" // Uncomment one of the lines below for whatever DHT sensor type you're using! #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT21 // DHT 21 (AM2301) //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 // Replace with your network details const char* ssid = "YOUR_NETWORK_NAME"; const char* password = "YOUR_NETWORK_PASSWORD"; // Web Server on port 80 WiFiServer server(80); // DHT Sensor const int DHTPin = 5; // Initialize DHT sensor. DHT dht(DHTPin, DHTTYPE);


140 // Temporary variables static char celsiusTemp[7]; static char fahrenheitTemp[7]; static char humidityTemp[7]; // only runs once on boot void setup() { // Initializing serial port for debugging purposes Serial.begin(115200); delay(10); dht.begin(); // Connecting to WiFi network Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); // Starting the web server server.begin(); Serial.println("Web server running. Waiting for the ESP IP..."); delay(10000); // Printing the ESP IP address Serial.println(WiFi.localIP()); } // runs over and over again void loop() { // Listenning for new clients


141 WiFiClient client = server.available(); if (client) { Serial.println("New client"); // bolean to locate when the http request ends boolean blank_line = true; while (client.connected()) { if (client.available()) { char c = client.read(); if (c == '\n' && blank_line) { // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true); // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); strcpy(celsiusTemp,"Failed"); strcpy(fahrenheitTemp, "Failed"); strcpy(humidityTemp, "Failed"); } else{ // Computes temperature values in Celsius + Fahrenheit and Humidity float hic = dht.computeHeatIndex(t, h, false); dtostrf(hic, 6, 2, celsiusTemp); float hif = dht.computeHeatIndex(f, h); dtostrf(hif, 6, 2, fahrenheitTemp); dtostrf(h, 6, 2, humidityTemp); // You can delete the following Serial.print's, it's just for debugging purposes Serial.print("Humidity: "); Serial.print(h);


142 Serial.print(" %\t Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.print(" *F"); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); } client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println(); // your actual web page that displays temperature and humidity client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<head></head><body><h1>ESP8266 - Temperature and Humidity</h1><h3>Temperature in Celsius: "); client.println(celsiusTemp); client.println("*C</h3><h3>Temperature in Fahrenheit: "); client.println(fahrenheitTemp); client.println("*F</h3><h3>Humidity: "); client.println(humidityTemp); client.println("%</h3><h3>"); client.println("</body></html>"); break;


143 } if (c == '\n') { // when starts reading a new line blank_line = true; } else if (c != '\r') { // when finds a character on the current line blank_line = false; } } } // closing the client connection delay(1); client.stop(); Serial.println("Client disconnected."); } } การเขียนโปรแกรมควบคุม LED /********* Rui Santos Complete project details at https://randomnerdtutorials.com *********/ // Load Wi-Fi library #include <ESP8266WiFi.h> // Replace with your network credentials const char* ssid = "REPLACE_WITH_YOUR_SSID"; const char* password = "REPLACE_WITH_YOUR_PASSWORD"; // Set web server port number to 80 WiFiServer server(80); // Variable to store the HTTP request String header; // Auxiliar variables to store the current output state


144 String output5State = "off"; String output4State = "off"; // Assign output variables to GPIO pins const int output5 = 5; const int output4 = 4; // Current time unsigned long currentTime = millis(); // Previous time unsigned long previousTime = 0; // Define timeout time in milliseconds (example: 2000ms = 2s) const long timeoutTime = 2000; void setup() { Serial.begin(115200); // Initialize the output variables as outputs pinMode(output5, OUTPUT); pinMode(output4, OUTPUT); // Set outputs to LOW digitalWrite(output5, LOW); digitalWrite(output4, LOW); // Connect to Wi-Fi network with SSID and password Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // Print local IP address and start web server Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); server.begin(); } void loop(){


145 WiFiClient client = server.available(); // Listen for incoming clients if (client) { // If a new client connects, Serial.println("New Client."); // print a message out in the serial port String currentLine = ""; // make a String to hold incoming data from the client currentTime = millis(); previousTime = currentTime; while (client.connected() && currentTime - previousTime <= timeoutTime) { // loop while the client's connected currentTime = millis(); if (client.available()) { // if there's bytes to read from the client, char c = client.read(); // read a byte, then Serial.write(c); // print it out the serial monitor header += c; if (c == '\n') { // if the byte is a newline character // if the current line is blank, you got two newline characters in a row. // that's the end of the client HTTP request, so send a response: if (currentLine.length() == 0) { // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK) // and a content-type so the client knows what's coming, then a blank line: client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println("Connection: close"); client.println(); // turns the GPIOs on and off if (header.indexOf("GET /5/on") >= 0) { Serial.println("GPIO 5 on");


146 output5State = "on"; digitalWrite(output5, HIGH); } else if (header.indexOf("GET /5/off") >= 0) { Serial.println("GPIO 5 off"); output5State = "off"; digitalWrite(output5, LOW); } else if (header.indexOf("GET /4/on") >= 0) { Serial.println("GPIO 4 on"); output4State = "on"; digitalWrite(output4, HIGH); } else if (header.indexOf("GET /4/off") >= 0) { Serial.println("GPIO 4 off"); output4State = "off"; digitalWrite(output4, LOW); } // Display the HTML web page client.println("<!DOCTYPE html><html>"); client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"); client.println("<link rel=\"icon\" href=\"data:,\">"); // CSS to style the on/off buttons // Feel free to change the background-color and font-size attributes to fit your preferences client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; textalign: center;}"); client.println(".button { background-color: #195B6A; border: none; color: white; padding: 16px 40px;"); client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}"); client.println(".button2 {background-color: #77878A;}</style></head>"); // Web Page Heading client.println("<body><h1>ESP8266 Web Server</h1>");


Click to View FlipBook Version