สอน วิธี ใช้งาน Arduino Wi-Fi Module ESP8266
ปลดล็อคแล้ว เปิดสอน ESP8266 ฟรี
*** รับจำนวนจำกัด
ก่อนหน้านี้การติด Wi-Fi ให้กับ Arduino เป็นงานที่จะใช้กับอุปกรณ์ที่มีความสำคัญและราคาแพงเท่านั้น ไม่ติดกันเยอะเพราะ module Wi-Fi มีราคาแพงมาก ฟังก์ชัน Wi-Fi ที่อยากใช้จึงมีข้อจำกัดในด้านของราคา
แต่ตอนนี้สามารถทำได้แล้วด้วย Wi-Fi Module ESP8266 เป็นโมดูล WI-FI ด้วยเป็นโมดูลขนาดเล็ก มีราคาที่ไม่แพงของ โมดูล ESP8266 นี้จะทำให้เราสามารถติดสัญญาณ Wi-Fi ให้กับอุปกรณ์ Arduino ของเราได้ ต่อไปนี้ทุกอย่างจะสามารถเชื่อมต่อ WI-FI หรือเข้าสู่ยุคของ Wi-Fi Thinking
ESP8266 เป็นสินค้าจากบริษัท Expressif ที่เปิดตัวมาตั้งแต่ปลายปีที่แล้ว โดยใช้เทคโนโลยีการผลิต 40 นาโนเมตร จุดเด่นสำคัญคือราคาขายของชิปตัวนี้อยู่ที่หลักร้อยนิด ๆ เท่านั้นเอง
Wi-Fi Module ESP8266 ตัวชิปมาพร้อมกับ Firmware สั่งงานคำสั่งแบบ AT Command เพื่อเชื่อมต่อ TCP/IP ได้ทันที หรือถ้าต้องการพัฒนาซอฟต์แวร์บนตัวชิปโดยตรงก็สามารถใช้ GCC มาคอมไพล์ซอฟต์แวร์ได้
ข้อมูล Wi-Fi Module ESP8266
โมดูล Wi-Fi Module ESP8266 นี้ใช้ไฟ 3.3V ใช้กระแสที่ 70mA สูงสุดที่ 240mA แนะนำให้ใช้แหล่งจ่ายไฟ 300mA สั่งงานโดยใช้คำสั่ง AT Command ที่อยู่ใน Firmware สามารถอัพเกรด Firmware ได้
Wi-Fi Module ESP8266 มีหลายรุ่นให้เลือกใช้ตามความเหมาะสม ตามรูป ในบทความนี้จะใช้รุ่น ESP-01
โมดูล มีการจัดขาตามรูปนี้
เวลาต่อ บางคนอาจจะต่อไม่สะดวก เพราะมองกลับด้านต่อวงจร ผมจึงทำรูปจัดขามองจากด้านที่เห็นขา ดังนี้
ทำความรู้จักกับการติดต่อข้อมูลระหว่างเครื่องแบบ Client Server
การต่อวงจรจากบอร์ด Wi-Fi Module ESP8266 ไปบอร์ด Arduino
การทดลองขั้นที่ 1 สั่งงานผ่านทาง AT Command
ในตัวอย่างนี้ เราจะใช้ Arduino uno เป็นตัวกลางในการติดต่อ ผ่านทางขา RX , TX เพื่อสั่งงาน AT Command บางครั้งอาจะมีโปรแกรมใน Arduino uno ที่เราทำไว้ที่จองขา RX , TX เพื่อความแน่ใจ เราจึงอัพโปรแกรมไฟกระพริบลงไปก่อน จากนั้นเปิด Serial Monitor ขึ้นมา ตั้งค่า baud rate 115200 และปรับช่องในรูปให้เป็น ฺBoth NL&CR จากนั้นก็พร้อมแล้ว พิมพ์คำสั่ง AT แล้วกด Enter ก็จะเห็นผลลัพธ์จาก ESP8266 ตอบกลับมาว่า OK เป็นอันว่าเชื่อมต่อสำเร็จ
คราวนี้เรามาลองทดสอบคำสั่ง AT Command ที่มีให้เราใช้งานใน ESP8266 Wi-Fi Module โดยอ้างอิงจาก เว็บไซต์ http://www.electrodragon.com/w/Wi07c ลองดูที่คำสั่ง AT+GMR เป็นคำสั่งเช็คเวอร์ชัน เมื่อพิมพ์แล้วจะได้ผลลัพธ์ออกมาดังนี้ จากรูปจะเห็นว่าเวอร์ชัน Firmware เป็น 0016091 หรือเวอร์ชัน 0.91 ตอนนี้มีเวอร์ชัน 0.9.2.2 ซึ่งเราสามารถเลือกอัพเดทเวอร์ชัน Firmware ได้ เมื่ออัพเดทแล้วจะเป็น 0018000902
คราวนี้เราอยากสั่งงาน ESP8266 ให้ทำอะไร ก็พิพม์คำสั่ง AT Command ลงไป โดยอ้างอิงจากคู่มือ AT Command หลายคนอาจจะไม่สะดวกหรือไม่เข้าใจในคำสั่ง AT Command ผมได้ทำโปรแกรมช่วยพิมพ์คำสั่ง สำหรับ ESP8266 โดยเฉพาะมาไว้ให้แล้ว โปรแกรนนี้จะแสดงคำสั่ง AT Command วิธีใช้ และคำอธิบายให้ อำนวยความสะดวกในการทดลอง ESP8266 สามารถคลิกดาวน์โหลดได้ที่นี่
ปิดโปรแกรม Serial Monitor ของ Arduino แล้วเปิดโปรแกรมนี้มาทดลองได้เลย โดยในตัวอย่างนี้ Arduino ต่อกับ COM3 เลือก Board Rae 115200 แล้วกดเชื่อมต่อ จากนั้นก็พิมพ์ AT Command ก็จะขึ้นคำสั่งที่เกี่ยวข้อง เมื่อเลื่อนลงมาก็จะเห็นคำอธิบายของคำสั่งต่าง ๆ ในตัวอย่าง เราจะมาตรวจสอบเวอร์ชัน โดยใช้คำสั่ง AT+GMR เหมือนเดิม เมื่อต้องการล้างข้อความผลลัพธ์ใน TextBox เลือกข้อความแล้วกด delete หรือพิมพ์คำสั่ง cls แล้วกด enter ในช่องคำสั่งก็ได้
ขั้นแรก ทดสอบตั้งโหมด Sta+AP
1. ทำการรีเซต ESP8266 โดยพิมพ์ AT+RST
2. เซตเลือกโหมด Wi-Fi Module ESP8266 สามารถตั้งโหมดได้ 3 โหมดโดยใช้คำสั่ง AT+CWMODE
AT+CWMODE : ตั้งค่า Wifi Mode : AT+CWMODE=<โหมด> : เช็คว่าอยู่โหมดไหน AT+CWMODE? : 1 = โหมด Sta 2 = โหมด AP 3 = โหมด Sta และ AP ปกติค่าเริ่มต้นจะเป็นโหมด Sta สำหรับ Router , AP เป็นโหมดปกติสำหรับ Devices
เราต้องการตั้งเป็นโหมด Sta+AP แสดงว่า เป็นโหมด 3 ให้พิมพ์ AT+CWMODE=3
ขั้นที่ 2 เชื่อมต่อกับ Wi-Fi Router
1. ค้นหาเครือข่าย Wi-Fi ที่ใช้ได้ พิมพ์ AT+CWLAP รอซักครู่ ก็จะเห็นรายชื่อ wifi ที่อยู่รอบ ๆ ตัวเราปรากฎขึ้นมา
2. ทำการเชื่อมต่อกับ Wi-Fi Router ที่ต้องการ โดยพิมพ์ AT+CWJAP="ssid","pwd" ในกรณีนี้เชื่อมต่อกับ phoneshop รหัส 123 ก็พิมพ์ AT+CWJAP="phoneshop","123" ก็จะขึ้นว่า OK
3. ตรวจสอบผลการเชื่อมต่อโดยพิมพ์ AT+CWJAP?
เมื่อตั้งค่าเรียบร้อยแล้ว เปิดอุปกรณ์ขึ้นมาใหม่ wifi ก็จะเชื่อมต่อกับเครือข่ายที่เราตั้งไว้อัตโนมัติทุกครั้ง
ขั้นที่ 3 ทำ Wi-Fi Module ESP8266 เป็น TCP Server
จากนั้นเปิดเว็บขึ้นมา พิมพ์ ip และพอร์ท แล้วสังเกตผลลัพธ์ จะเห็นว่าเราสามารถส่งค่าจากเว็บมายัง Wi-Fi Server ของเราได้แล้ว
เราสามารถส่งค่าพารามิเตอร์ไปกับ url เพื่อควบคุมให้ Arduino Server ของเราทำงานตามที่ต้องการ
การอัพเดท Firmware Wi-Fi Module ESP8266
ทำได้โดยการเพิ่ม ต่อขา GPIO กับกราวน์ จากนั้นเปิดโปรแกรม ดาวน์โหลดโปรแกรมอัพเดท Firmware คลิกที่นี่
การต่อวงจรจากบอร์ด Wi-Fi Module ESP8266 ไปบอร์ด Arduino
อย่าลืมอัพโปรแกรมไฟกระพริบลงก่อน
พิมพ์ COM Port ที่ต่อให้ถูกต้อง เลือกไฟล์ Firmware จากนั้นกด Download รอซักครู่ เป็นอันเสร็จสิ้นขึ้นตอน จะขึ้น Failed to leave Flash mode
จากนั้นถอดสาย GPIO ออก แล้วเชื่อมต่อใหม่ ถ้าอัพเดท Firmware สำเร็จ Board Rae เริ่มต้นจะเป็น 9600 ลองใช้คำสั่ง AT+GMR เช็คเวอร์ชัน ก็จะพบว่าเป็นเวอร์ชัน 0018000902 หรือเวอร์ชัน 0.92 เรียบร้อยแล้ว ซึ่งเวอร์ชันนี้จะเพิ่มความสามารถ