รู้จัก ESP8266 ฉบับตัดตอน

esp8266

ขอบคุณรูปภาพจาก limpkin.fr

บทความนี้เขียนขึ้นเพื่อรวบรวมความรู้พื้นฐานเกี่ยวกับโมดูล ESP8266 และบอร์ด Development ที่ตอนนี้มีออกมาหลายแบบ หลายผู้ผลิตเหลือเกิน

ประวัติความเป็นมา ESP8266

ESP8266 เป็นโมดูลเชื่อมต่อ WiFi ที่ผลิตจากจีน มีขนาดเล็กมากๆ และราคาถูกสุดๆ เว็บแรกๆที่กล่าวถึง ESP8266 เลยก็เว็บ Blognone (ผมก็ได้รู้จักกับโมดูลตัวนี้มาจากเว็บนี้ละ) ตอนนั้นโมดูลมีราคาอยู่ที่ประมาณ $5 รุ่นแรกสุด ESP01 มีขา 8 ขา และหาซื้อได้ยาก ด้วยราคาของมันทำให้มันขาดตลาดเพราะผลิตไม่ทัน ตอนนั้นโมดูล ESP8266 01 ยังอัพเดทเฟิร์มแวร์ไม่ได้ เวลาเอาไปใช้งานร่วมกับไมโครคอนโทรลเลอร์ จึงต้องใช้ AT Commands ในการควบคุมผ่าน Serial port

ต่อมา

ESP8266 ได้ผลิตไล่รุ่นออกมามากมาย และรุ่น 01 สามารถอัพเดทเฟิร์มแวร์ได้แล้ว ทำให้สามารถเอาเฟิร์มแวร์ AT Commands ตัวใหม่ๆมาใช้ได้ จากเดิมที่ AT Commands ต้องใช้ Bit rate สูงถึง 115200 ก็สามารถลดระดับลงมาใช้ที่ 9600 ทำให้เหมาะสมสำหรับนำไปใช้งานกับบอร์ด Arduino มากขึ้น ทำให้ ESP8266 ดังมากขึ้นไปอีก มี SDK สำหรับพัฒนาเฟิร์มแวร์อยู่ใน GitHub เขียนโค้ด แล้วใช้คำสั่ง make เพื่อคอมไพล์ แล้วนำไปเบิร์นได้เลย แต่ว่าโค้ดยังใช้งานได้ยากอยู่ ทำให้ไม่ค่อยมีคนนิยมใช้งานเท่าไหร่

ถือกำเนิด NodeMCU

NodeMCU Firmware พร้อมๆกับบอร์ด NodeMCU ได้เปิดตัวขึ้นมา เกิดความเฮฮาไปทั่วทั้งโลก เพราะตัวเฟิร์มแวร์ NodeMCU เมื่ออัพโหลดลงบอร์ดไปแล้ว จะเปรียบสเหมือนบอร์ด NodeMCU เป็นคอมพิวเตอร์เครื่องหนึ่งเลยทีเดียว สั่งงานด้วยภาษา Lua

ตัวบอร์ด NodeMCU มีโมดูล ESP8266 รุ่น 12 อยู่บนบอร์ด มีไอซี USB to Serial อยู่บนบอร์ด และมีวงจร Auto Flash Mode อยู่บนบอร์ด จากเดิมที่ต้องทำให้ GPIO0 ต้องลงกราว์ด จึงจะทำให้อยู่ในโหมด Flash เมื่อใช้บอร์ด NodeMCU เพียงเสียบสายเข้ากับคอมพิวเตอร์ก็สามารถใช้งานโมดูล ESP8266 ได้ทันที

nodemcu_devkit1

NodeMCU เวอร์ชั่นแรก (ขอบคุณรูปภาพจาก jourdant.me)

NodeMUC vs Arduino IDE for ESP8266

ไม่กี่วันต่อมา ทางผู้พัฒนาเฟิร์มแวร์ให้ ESP8266 (ไม่เกี่ยวข้องกับผู้ผลิต) ได้ออกโปรแกรม Arduino เวอร์ชั่นดัดแปลงใช้งานกับ ESP8266 ออกมา ทำให้การพัฒนาเฟิร์มแวร์ของ ESP8266 เป็นไปอย่างก้าวกระโดด ไลบารี่ที่เดิมใช้งานได้กับ Arduino ก็สามารถนำมาใช้งานกับ ESP8266 ได้เลย การออกมาของโปรแกรม Arduino IDE for ESP8266 ถือว่าเป็นการชนกับของ NodeMCU เต็มๆ เนื่องจากภาษา Lua ที่ใช้กับ NodeMCU Firmware เป็นภาษาใหม่ ยังไม่มีคนรู้จักมากนัก แต่โปรแกรม Arduino IDE for ESP8266 ใช้ภาษา C แบบ Arduino ในการพัฒนา ผู้ที่ใช้ Arduino อยู่แล้ว จึงนิยมใช้ Arduino IDE for ESP8266 ในการพัฒนาเฟิร์มแวร์มากกว่า

ขอบคุณรูปภาพจาก iot-playground.com

ESP8266 รุ่นใหม่ 12e

ด้วยความนิยมที่เพิ่มมากขึ้นเรื่อยๆ ทำให้ทางผู้ผลิตออกโมดูล ESP8266 รุ่น 12e ออกมา ที่มีพื้นที่โปรแกรมมากขึ้น มีขา I/O มากยิ่งขึ้น

ESP12E-ESP8266-Wifi-Board-02

รูป ESP8266 12e (ขอบคุณรูปภาพจาก electrodragon.com)

พัฒนามาสู่ NodeMCU V2

เมื่อ ESP12e ออกมา บอร์ด NodeMCU ก็ได้มีการพัฒนามาเวอร์ชั่นที่ 2 ที่เปลี่ยนมาใช้ ESP8266 รุ่น 12e มีขนาดเล็กลง มีขามากขึ้น

113990105 1

รูป NodeMCU V2 (ขอบคุณรูปภาพจาก seeedstudio.com)

Adafruit HUZZAH ESP8266 Breakout

หลังจากปล่อยให้ NodeMCU โลดแล่นอยู่นาน ทางฝั่ง Adafruit จึงออกบอร์ด Adafruit HUZZAH ESP8266 Breakout มาบ้าง บอร์ดนี้เป็นเหมือนบอร์ดอเด๊ปเตอร์ที่ใช้สำหรับการทดลองอย่างเดียว

adafruit_products_ftdiconnect

รูปภาพบอร์ด Adafruit HUZZAH ESP8266 Breakout

สำหรับบอร์ดพัฒนาและประวัติความเป็นมาก็จบเพียงเท่านี้ครับ

ถาม-ตอบ ปัญหาทั่วไปของ ESP8266

ถาม: ซื้อบอร์ด NodeMCU มา เสียบกับคอม แล้วต้องทำไงต่อ

ตอบ: ลงไดร์เวอร์ของไอซี USB to Serial ก่อนเป็นลำดับแรก (หากลิ้งโหลดจากเว็บผู้ผลิต) หากจะใช้งาน NodeMCU Firmware แนะนำให้อัพเดทเฟิร์มแวร์เป็นเวอร์ชั่นใหม่ก่อน โดยใช้โปรแกรม NodeMCU Flasher แต่หากจะเขียนเฟิร์มแวร์เองโดยใช้ Arduino IDE ก็สามารถใช้ได้เลย


ถาม: ถ้าจะใช้โปรแกรม Arduino IDE สั่งงาน ESP8266 ต้องอัพเฟิร์มแวร์อะไรลงไป

ตอบ: Arduino IDE ใช้สำหรับเขียนเฟิร์มแวร์ลงไปใน ESP8266 ทำให้ใช้โปรแกรม Arduino IDE เขียนโปรแกรมสั่งงานลงไปได้เลย


ถาม: เคยใช้ NodeMCU อยู่ พอมาใช้กับ Arduino IDE แล้วมาใช้ NodeMCU อีกไม่ได้

ตอบ: การใช้ Arduino IDE ทำให้เฟิร์มแวร์ที่เขียนโดย Arduino IDE ทับ NodeMCU Firmware ไป ทำให้ไม่สามารถใช้ NodeMCU Firmware ได้อีก วิธีแก้คือใช้โปรแกรม NodeMCU Flasher เพื่ออัพโหลด NodeMCU Firmware ลงไปใหม่


ถาม: NodeMCU Firmware คืออะไร

ตอบ: NodeMCU Firmware คือโค้ดโปรแกรมภาษา C ที่ใช้สำหรับทำตามคำสั่งภาษา Lua กล่าวคือเมื่อเขียนให้หลอดไฟติดโดยใช้โค้ด Lua เมื่อนำไปรัน โค้ดภาษา C จะรับไป แล้วจึงส่งไปให้ SDK แล้ว SDK จึงไปติดต่อกับฮาร์แวร์อีกทีหนึ่ง


ถาม: อยากศึกษาภาษา Lua สามารถศึกษาได้ที่ไหน

ตอบ: ศึกษาได้ที่ลิ้ง http://www.lua.org/manual/5.3/


หากมีคำถามเพิ่มเติม สามารถคอมเม้นได้เลยนะครับ จะรวบรวมคำตอบไว้ในบทความ ขอบคุณที่ติดตามอ่านครับ ขอให่สนุกกับการเล่น ESP8266

2 comments

  1. ระหว่าง NodeMCU กับ Arduino IDE for ESP8266 ตัวใหนน่าเล่นกว่ากัน สำหรับมือใหม่ ที่เพิ่งเล่น arduino และต้องการพัฒนาในส่วนของการใช้งานทั่วไป ควรเล่นตัวใหนใหนครับ

    1. Arduino IDE for ESP8266 เหมาะเอาไปทำโปรดัคมากกว่าครับ เพราะ
      1. ไม่สามารถคัดลอกโค้ดได้
      2. เหมาะสำหรับการนำไปผลิต เพราะเบิร์นอย่างเดียว แต่ NodeMCU ต้องเบิร์นแล้วยัดโค้ดลงไปอีก
      สำหรับใช้งานทั่วๆไปจะใช้แบบไหนก็ได้ครับ แต่แนะนำ Arduino IDE for ESP8266 เพราะผู้รู้เยอะกว่าครับ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *