หากทุกคนเคยได้ยินคำว่า "NodeMCU" แต่ยังไม่แน่ใจว่ามันคืออะไร ? และทำงานอย่างไร ? หรือกำลังมองหาวิธีทำให้อุปกรณ์รอบตัวฉลาดขึ้น เชื่อมต่อกันได้อย่างไร้ขีดจำกัด ทุกคนมาถูกที่แล้ว NodeMCU คือ บอร์ดพัฒนา ไมโครคอนโทรลเลอร์ (Microcontroller - MCU) ที่ได้รับความนิยมอย่างมากใน วงการอินเทอร์เน็ตของสรรพสิ่ง (IoT) ด้วยฟังก์ชันที่หลากหลาย และความสามารถในการเชื่อมต่อกับอุปกรณ์ต่าง ๆ ได้อย่างง่ายดาย
ในบทความนี้ เราจะพาทุกคนไปรู้จักกับ NodeMCU อย่างละเอียดทั้งในด้านความหมายของมัน, รูปลักษณ์, ประวัติความเป็นมา และคุณสมบัติต่าง ๆ เพื่อให้เข้าใจว่าทำไมมันถึงเป็นที่นิยมในหมู่นักพัฒนา ถ้าพร้อมแล้วเรามาเริ่มกันเลย !
NodeMCU คือ แพลตฟอร์มโอเพนซอร์ส (Open-Source) ที่รวมทั้งเฟิร์มแวร์ และบอร์ดพัฒนา สำหรับสร้างโปรเจ็กต์ IoT โดยเฉพาะ ซึ่งชื่อ "NodeMCU" ย่อมาจากคำว่า "Node" และ "Microcontroller" ซึ่งหมายถึงไมโครคอนโทรลเลอร์ที่ใช้ควบคุมอุปกรณ์ต่าง ๆ อย่างง่ายดาย
จุดเด่นของ NodeMCU คือ เฟิร์มแวร์ที่ใช้ภาษา Lua ซึ่งเป็นภาษาสคริปต์ที่มีความเรียบง่าย และทรงพลังสำหรับการเขียนโปรแกรม และการออกแบบบอร์ดที่สามารถนำไปใช้ในการพัฒนาโปรเจ็กต์ได้ทันที ตัวบอร์ดมาในรูปแบบของ DIP (Dual In-line Package) ซึ่งทำให้ง่ายต่อการใช้งานบน Breadboard หรือบอร์ดทดลอง NodeMCU เริ่มต้นจากการใช้ชิป ESP8266 ซึ่งเป็นชิป Wi-Fi ราคาประหยัดที่ถูกใช้กันอย่างแพร่หลายในโปรเจ็กต์ IoT
บอร์ด NodeMCU มีทั้งรุ่นแรก NodeMCU Dev Kit v0.9 และรุ่นที่สอง NodeMCU Dev Kit v1.0 ที่มักใช้บอร์ดสีดำ และทั้งสองรุ่นนี้มาพร้อมกับพินต่าง ๆ ที่คล้ายกับ Arduino เช่น พินอนาล็อก (A0) และพินดิจิทัล (D0-D8) นอกจากนี้บอร์ดยังรองรับการเชื่อมต่อผ่าน โปรโตคอล (Protocol) UART, SPI และ I2C ทำให้สามารถใช้งานร่วมกับอุปกรณ์ต่าง ๆ ได้หลากหลาย ไม่ว่าจะเป็นจอแสดงผลแบบ I2C, เซนเซอร์ต่าง ๆ, โมดูล GPS หรือแม้กระทั่ง การ์ดแบบ SD (SD Card) เป็นต้น
ด้วยความเป็นโอเพนซอร์ส ทำให้เราสามารถปรับแต่ง และพัฒนาบอร์ด NodeMCU ได้ตามต้องการ ทำให้มันเป็นตัวเลือกที่ดีสำหรับการเริ่มต้นสร้างสรรค์โปรเจ็กต์ IoT นั่นเอง
ภาพจาก : https://joy-it.net/en/products/SBC-NodeMCU
NodeMCU ถูกพัฒนาขึ้นหลังจากที่ชิป ESP8266 เปิดตัวได้ไม่นาน ในวันที่ 30 ธันวาคม ค.ศ. 2013 (พ.ศ. 2556) บริษัท Espressif Systems ได้เริ่มผลิตชิป ESP8266 ซึ่งเป็นชิปที่มี Wi-Fi ในตัว และเป็นที่นิยมในงานพัฒนา IoT ออกสู่ตลาด
ภาพจาก : https://en.wikipedia.org/wiki/ESP8266#/media/File:ESP8266_IC.jpg
ต่อมาในวันที่ 13 ตุลาคม ค.ศ. 2014 (พ.ศ. 2557) นักพัฒนาชื่อ Hong ได้เริ่มโปรเจกต์ NodeMCU โดยอัปโหลดไฟล์เฟิร์มแวร์แรกไว้บน GitHub ในเวลาเพียงสองเดือนหลังจากนั้น โปรเจกต์ได้ขยายตัวใหญ่ขึ้น กลายเป็นแพลตฟอร์มฮาร์ดแวร์แบบโอเพนซอร์ส และเมื่อหนึ่งในผู้พัฒนา Huang R ได้เผยแพร่ไฟล์ออกแบบบอร์ด ESP8266 ที่มีชื่อว่า devkit v0.9 ทำให้ NodeMCU กลายเป็นแพลตฟอร์มที่รองรับทั้งซอฟต์แวร์ และฮาร์ดแวร์ในที่สุด
ภาพจาก : https://github.com/esar/contiki-mqtt
ช่วงเวลาเดียวกัน Tuan PM ได้พอร์ตไลบรารี MQTT client จากแพลตฟอร์ม Contiki มาใช้บน ESP8266 และเพิ่มเข้าในโปรเจกต์ NodeMCU ทำให้ NodeMCU รองรับโปรโตคอล MQTT ซึ่งเป็นโปรโตคอลสำคัญสำหรับ IoT โดยใช้ภาษา Lua ในการเชื่อมต่อกับ MQTT broker จากนั้นในวันที่ 30 มกราคม ค.ศ. 2015 (พ.ศ. 2558) นักพัฒนาชื่อ Devsaurus ได้พอร์ตไลบรารี u8glib มายัง NodeMCU ทำให้สามารถควบคุมจอแสดงผลต่าง ๆ เช่นจอแบบ LCD, OLED, VGA ได้อย่างง่ายดาย
ข้อมูลเพิ่มเติม : จอ CRT, DLP, Plasma, LCD, LED, VA, IPS, OLED, QLED คืออะไร ? และข้อดี ข้อเสีย แต่ละชนิด
ถึงแม้ในช่วงฤดูร้อน ค.ศ. 2015 (พ.ศ. 2558) ผู้สร้างดั้งเดิมของ NodeMCU จะยุติการพัฒนาโปรเจกต์ แต่กลุ่มนักพัฒนาอิสระได้เข้ามารับช่วงต่อ และภายในปี ค.ศ. 2016 (พ.ศ. 2559) NodeMCU ก็ได้เติบโตขึ้นจนรองรับโมดูลต่าง ๆ มากกว่า 40 ชนิดเลยทีเดียว
NodeMCU โดยทั่วไปมีลักษณะเป็นแผ่นวงจรขนาดเล็ก มาพร้อมกับขั้วต่อพิน (Pins) ต่าง ๆ ที่จัดเรียงรอบบอร์ดเพื่อรองรับการเชื่อมต่อกับอุปกรณ์ภายนอก เช่น เซนเซอร์ หรือตัวรับส่งข้อมูลต่าง ๆ
ภาพจาก : https://www.electronicwings.com/nodemcu/nodemcu-development-kitboard
ภาพจาก : https://www.electronicwings.com/nodemcu/nodemcu-development-kitboard
NodeMCU มีพินที่หลากหลายเพื่อรองรับการเชื่อมต่อกับอุปกรณ์ต่าง ๆ แบ่งออกเป็นสองฝั่ง โดยแต่ละพินมีการระบุตำแหน่ง และฟังก์ชันการทำงานที่ชัดเจน ดังนี้:
NodeMCU มีพิน GPIO (General Purpose Input/Output) สามารถทำหน้าที่ได้หลายอย่าง เช่น การรับส่งข้อมูลดิจิทัล, PWM (Pulse Width Modulation), การสื่อสารแบบ SPI หรือ I2C นอกจากนี้บางพินยังสามารถทำหน้าที่พิเศษ เช่น พิน ADC (A0) ที่ใช้สำหรับการวัดแรงดันไฟฟ้าได้อีกด้วย โดยพินที่สำคัญคือ
ความแตกต่างระหว่าง NodeMCU รุ่นแรก และรุ่นที่สอง สามารถสังเกตได้จากการออกแบบบอร์ด และโมดูล ESP ที่ใช้ในแต่ละรุ่น
ภาพจาก : https://www.electronicwings.com/nodemcu/nodemcu-development-kitboard
ทั้งสองรุ่นนี้ยังคงมีพื้นฐานที่คล้ายกัน แต่มีการปรับปรุงในด้านฮาร์ดแวร์ และประสิทธิภาพที่เพิ่มมากขึ้นในรุ่นที่สอง
หากเราต้องการเริ่มใช้งาน NodeMCU ในการพัฒนาแอปพลิเคชัน IoT ก็จะมีขั้นตอนปฏิบัติเบื้องต้นง่าย ๆ ดังนี้
ก่อนอื่นเราจะต้องตั้งค่าสภาพแวดล้อมการพัฒนาในคอมพิวเตอร์หรือหาเครื่องมือซอฟต์แวร์มาใช้นั่นเอง เครื่องมือที่นิยมใช้ในการเขียนโปรแกรม NodeMCU ก็ได้แก่
เป็นโปรแกรมที่ใช้ในการเขียนโค้ด และอัปโหลดลงบอร์ด NodeMCU รองรับภาษา C/C++ นอกจากนี้ยังมี ไลบรารี (Library) มากมายที่ช่วยให้การพัฒนาโปรเจกต์ง่ายขึ้น
ภาพจาก : https://www.make-it.ca/setup-nodemcu-arduino-ide/
โปรแกรมนี้เหมาะสำหรับผู้ที่ใช้ภาษา Lua ในการพัฒนา NodeMCU ซึ่งเป็นภาษาที่เฟิร์มแวร์ดั้งเดิมของ NodeMCU นั่นเอง
ภาพจาก : https://esp8266.ru/esplorer/
ก่อนจะเริ่มใช้งานบอร์ด NodeMCU คุณจะต้องเขียน หรือดาวน์โหลดเฟิร์มแวร์ลงบอร์ดก่อน เฟิร์มแวร์คือชุดซอฟต์แวร์ที่ทำหน้าที่ควบคุมการทำงานของบอร์ด และชิป ESP8266 ซึ่งเป็นหัวใจหลักในการเชื่อมต่อ Wi-Fi และประมวลผลข้อมูล
มีแหล่งที่มาออนไลน์หลายแห่งที่ให้บริการสร้างเฟิร์มแวร์ NodeMCU แบบกำหนดเอง เช่น NodeMCU custom build services ที่ช่วยให้เราสามารถเลือกฟีเจอร์ที่ต้องการ เช่น โปรโตคอลการสื่อสารพิเศษ หรือไลบรารีเฉพาะทาง เมื่อเลือกฟีเจอร์ต่าง ๆ เสร็จแล้ว เราก็สามารถดาวน์โหลดเฟิร์มแวร์ แฟลชลงบนบอร์ด NodeMCU ได้ทันที
เมื่อได้เฟิร์มแวร์ที่ต้องการแล้ว เราจะต้องใช้เครื่องมือเช่น esptool.py หรือ NodeMCU Flasher เพื่ออัปโหลดเฟิร์มแวร์ลงบอร์ด NodeMCU ผ่าน พอร์ต USB ซึ่งขั้นตอนนี้ทำได้ง่าย และใช้เวลาไม่นาน
เมื่อติดตั้งเฟิร์มแวร์เสร็จแล้วก็พร้อมเริ่มต้นเขียนโปรแกรม และพัฒนาโปรเจกต์ IoT ได้ทันทีโดยใช้ฟีเจอร์ต่าง ๆ ของ NodeMCU ในการควบคุมอุปกรณ์ หรือเซนเซอร์ที่เชื่อมต่อ เช่น การควบคุมหลอดไฟผ่าน Wi-Fi หรือการส่งข้อมูลเซนเซอร์ไปยัง เซิร์ฟเวอร์ (Server) หรือแม้แต่บน คลาวด์ (Cloud) ได้
ภาพจาก : https://how2electronics.com/interfacing-5mp-spi-camera-with-nodemcu-esp8266/
NodeMCU เป็นแพลตฟอร์มโอเพนซอร์สที่รวมทั้งเฟิร์มแวร์ และบอร์ดพัฒนาไมโครคอนโทรลเลอร์ ซึ่งมีความสามารถที่หลากหลาย โดยเฉพาะในงานที่เกี่ยวข้องกับ Internet of Things (IoT) ด้วยการออกแบบที่รองรับการเชื่อมต่อ Wi-Fi และฟังก์ชันการใช้งานพินอนาล็อก และพินดิจิทัล NodeMCU กลายเป็นตัวเลือกยอดนิยมในหมู่นักพัฒนาที่ต้องการสร้างโปรเจกต์ IoT อย่างรวดเร็ว และง่ายดาย
การเริ่มต้นใช้งาน NodeMCU ก็ไม่ซับซ้อน สามารถเริ่มต้นสร้างสรรค์โปรเจกต์ IoT ได้ทันที NodeMCU จึงถือเป็นเครื่องมือสำคัญที่ช่วยให้การพัฒนาเทคโนโลยี IoT เป็นเรื่องที่ทุกคนสามารถเข้าถึงได้ไม่ว่าจะเป็นมือใหม่ หรือมืออาชีพแล้วก็ตาม
|