[ESP8266 ตอน 4] เริ่มต้นใช้งาน Part 3 - ESP8266 Network
6 ปีที่ผ่านมา
โดย เจ้าของร้าน
ในบทความที่แล้ว (คลิกอ่านที่นี่) ครั้งนี้เราจะใช้ ESP8266 หลายๆตัวมาสร้างเป็นเครือข่าย เพราะในการใช้งานจริงนั้น การใช้ตัวเดียวเป็น Web Server ตั้งอยู่ห้องนั่งเล่น กดสั่งผ่านมือถือให้เปิดไฟในครัว แม้จะได้ความสะดวกสบาย แต่แบบนี้เราก็ต้องลากสายไฟจากตัว ESP8266 Server ที่ห้องนั่งเล่นไปต่อหับหลอดไฟในครัว ซึ่งดูแล้วมันก็ไม่ค่อยต่างกับการลากสายจากไฟในครัวมาทำสวิตช์ไว้ที่ห้องนั่งเล่นถูกมั๊ยครับ ยิ่งหากใช้ในระบบ Smart Farm 100 ไร่ เราจะต้องลากสายยาวเท่าไร คิดเป็นค่าใช้จ่ายเท่าไร การสร้าง Network ก็มาจากปัญหานี้ คือ การตัดความยุ่งยากในการเดินสาย ไปหาแค่ไฟฟ้าตรงที่ตัวลูกข่ายตั้งอยู่(หรือจะใช้ Off Grid Solar Cell เลยก็ยังได้) ยิ่งควบคุมหลายอย่างมีสายหลายเส้นก็ลดค่าใช้จ่ายลงไปได้เยอะเลยครับ
ซึ่งการทำแบบนี้สามารถประยุกต์ได้หลากหลาย ไม่ว่าจะเป็นการดัดแปลงเข้ากับ Web Server ในบทที่แล้ว โดยให้ตัว Server ที่เป็นแม่ข่าย ทำตัวเป็น Web Server ด้วย ทีนี้เมื่อเราสั่งมือถือ เปิดไฟที่ Node 1 ตัว Server ก็จะรับคำสั่งจากมือถือแล้วไปสั่งงาน Node 1 อีกที หรือในกรณีควบคุมเครื่องจักรในโรงงาน ก็ให้ตัวที่ติดอยู่กับเครื่องจักรเป็น STA ควบคุมและตรวจวัดค่าเครื่องจักร ในส่วนแม่ข่ายก็เป็น AP อยู่ในห้องควบคุม เจ้า Network ของเราก็จะเชื่อมต่อกันเองภายในวง LAN ของมัน ไม่ออกมายุ่งกับ LAN และอินเตอร์เน็ตของโรงงาน
คงพอเข้าใจคอนเซ็ปกันบ้างแล้ว เริ่มกันเลยดีกว่า โดยจะสมมติว่ามีลูกข่ายอยู่ 2 ตัว แต่ละตัวต่อพ่วงกับ LED 2 หลอด เราจะควบคุม LED โดยการกดสวิตช์ที่ตัวแม่ข่าย ซึ่งทำได้ง่ายๆด้วยการใช้ AP กับ STA ใน ESP8266 ตอนที่ 2 (คลิกอ่านได้ที่นี่) นู่นเลยครับ สิ่งที่ต้องระวังหลักๆคือ ตัว STA จะต้องต่อกับ SSID ของ AP (อย่าเผลอใส่ SSID ของเน็ตบ้าน) และการตั้ง IP Address ของ STA จะต้องไม่ซ้ำกัน(รวมถึงไม่ซ้ำกับ AP ด้วย) เพราะ IP Address เปรียบเหมือนเลขที่บ้าน ถ้าเลขที่บ้านซ้ำกัน 2 หลัง เมื่อมีจดหมาย(เปรียบเหมือนข้อมูลคำสั่งต่างๆของเรา) มาส่ง ก็คงไม่รู้ว่าสรุปมันคือบ้านหลังไหนกันแน่ ก็เช่นนั้นแหละครับ แต่ก่อนอื่น ต้องขอบอกก่อนว่าในตัวอย่างนี้จะใช้ UDP หรือ User Datagram Protocal มันเป็นการส่งข้อมูลแบบหลวมๆ ไม่มีความเข้มงวดนัก โดยโปโตคอลนี้จะส่งข้อมูลออกไปโดยไม่สนใจว่าปลายทางจะได้รับหรือไม่ ฉะนั้นหากกดไปแล้วปลายทางทำงานมั่งไม่ทำงานมั่งก็ไม่ต้องแปลกใจครับ เอาหล่ะ เมื่อเข้าใจตรงกันแล้วก็ไปกันเลย
ส่วนของ Access Point สำหรับ Access Point หรือจุดกลางของวงเครือข่าย ในตัวอย่างนี้จะใช้ NodeMCU รับค่ากดสวิตช์เฉยๆธรรมดา จากนั้นจะนำค่าสวิตช์นี้ไปส่งค่าผ่านสัญญาณไร้สายส่งไปหาตัว Client โดยปุ่ม 1 และ 2 จะส่งไป Client ตัวที่ 1 และปุ่ม 3 และ 4 จะส่งไป Client ตัวที่ 2 โดยข้อมูลของแต่ละปุ่มที่ส่งไปก็จะต่างกัน เช่น a b c d เป็นต้น
ส่วนของ Client ในส่วนของ Client ก็ไม่ได้มีอะไรซับซ้อน เพียงแค่รอฟังสัญญาณจากตัว AP หากตัว AP ส่งมาเป็นสัญญาณถึงตัวมันก็รับข้อมูลจากนั้นจึงนำข้อมูลไปแปลความว่าจะเป็น LED หลอดที่ 1 หรือ 2 แต่ตามที่บอกข้างต้นว่าข้อสำคัญคือ IP Address ของทั้งสองจะต้องไม่ซ้ำกันเท่านั้นเอง