กลับไปหน้ารวมไฟล์
using-arduino-ide-to-program-nodemcu-67d448.md

มาเริ่มกันเลย!

ในบทเรียนนี้ เราจะมาเรียนรู้วิธีใช้ Arduino IDE ในการโปรแกรมบอร์ด NodeMCU กัน

NodeMCU คืออะไร?

NodeMCU คือแพลตฟอร์ม IoT แบบโอเพ่นซอร์ส ประกอบด้วยเฟิร์มแวร์ที่รันบนชิป ESP8266 Wi-Fi SoC จาก Espressif Systems และฮาร์ดแวร์ที่ใช้โมดูล ESP-12 เป็นฐาน ชื่อ "NodeMCU" โดยทั่วไปจะหมายถึงเฟิร์มแวร์มากกว่าชุดพัฒนาตัวบอร์ด เฟิร์มแวร์ตัวนี้ใช้ภาษาสคริปต์ Lua ในการเขียนโปรแกรม

ผู้พัฒนา: ESP8266 Opensource Community

ประเภท: บอร์ดไมโครคอนโทรลเลอร์ชิ้นเดียว

ระบบปฏิบัติการ: XTOS ใช่แล้ว! โดยปกติ NodeMCU จะใช้ภาษา Lua ในการเขียนโปรแกรม แต่ในที่นี้ เราจะมาเรียนรู้วิธีโปรแกรม NodeMCU โดยใช้ภาษา C++ ของ Arduino กัน

-- Pin definition local pin = 7            --  GPIO 13local status = gpio.LOWlocal duration = 1000    -- 1 second duration for timer
-- Initialising pingpio.mode(pin, gpio.OUTPUT)gpio.write(pin, status)
-- Create an intervaltmr.alarm(0, duration, 1, function () if status == gpio.LOW then status = gpio.HIGH else status = gpio.LOW end
gpio.write(pin, status)end)

โค้ดด้านบนคือตัวอย่างสคริปต์ Lua สำหรับทำให้ LED ที่ต่อกับขาที่ 7 (ซึ่งก็คือ GPIO 13 ของ NodeMCU) กะพริบ อย่างที่เห็นนะฮะ หมายเลขขาตัวจริงกับหมายเลข GPIO ของ NodeMCU มันคนละอันกันเลย ด้านล่างนี้คือแผนผังการจับคู่ขา (Pinout) ดูให้ดีๆ อย่าเสียบผิดล่ะ

มาเขียนโค้ดใน Arduino IDE กัน

**หมายสำคัญมาก!:** เวลาเราใช้ NodeMCU กับ Arduino IDE มันจะเขียนทับเฟิร์มแวร์เดิมของ NodeMCU เลยนะจ๊ะ ถ้าอยากได้ Lua SDK กลับคืนมา ต้องใช้โปรแกรม "flasher" ในการติดตั้งเฟิร์มแวร์ใหม่เท่านั้น อย่าลืมล่ะ

ขั้นตอนที่ 1: ต่อบอร์ด NodeMCU เข้ากับ PC หรือแล็ปท็อปด้วยสาย USB micro เอาให้แน่นๆ

ขั้นตอนที่ 2: ดาวน์โหลดและติดตั้งไดรเวอร์ให้เรียบร้อย ไดรเวอร์สำหรับ Mac, Linux หรือ Windows หาโหลดได้ตามเว็บทั่วไป

ขั้นตอนที่ 3: เปิด Arduino IDE ขึ้นมา แล้วเข้าไปที่ Preferences ในเมนู File จากนั้นคัดลอกลิงก์นี้ http://arduino.esp8266.com/stable/package_esp8266com_index.json ไปวางในช่อง Additional Board Manager URLs ตามภาพด้านล่าง แล้วกด OK

ขั้นตอนที่ 4: ติดตั้งบอร์ด เปิด Board Manager จาก Tools -> Board -> Board Manager แล้วค้นหาคำว่า "nodemcu"

จากนั้นเลือกเวอร์ชันล่าสุดจากเมนู dropdown แล้วกด Install รอติดตั้งเสร็จแล้วรีสตาร์ท Arduino IDE อีกที

ถ้าติดตั้งทุกอย่างถูกต้องแล้ว น้องควรจะเห็นบอร์ดที่พึ่งติดตั้งใหม่โผล่มาในเมนู Tools -> Board ตามภาพเลยจ้า

มาทดสอบกันเถอะ

มาเริ่มทดสอบการตั้งค่าของเราด้วยการรันโปรแกรมกระพริบไฟ (blink sketch) บน NodeMCU กันดีกว่าขั้นตอนที่ 1: เปิดตัวอย่างโปรแกรม blink จากส่วน "example for NodeMCU 1.0" ในเมนูตัวอย่าง

ขั้นตอนที่ 2: เชื่อมต่อ NodeMCU กับคอมพิวเตอร์ของน้องด้วยสาย micro USB จัดไปวัยรุ่น

ขั้นตอนที่ 3: เลือกบอร์ดและพอร์ตให้ถูก แล้วอัปโหลดโปรแกรมไปเลย แค่นี้เอง! ตอนนี้ LED บนบอร์ดควรจะเริ่มกระพริบแล้ววว

LED กระพริบแล้วจ้า

การเชื่อมต่อ Wi-Fi ครั้งแรก (Hello World ของ IoT)

การทดสอบด้วย LED กระพริบก็โอเคแล้ว แต่การทดสอบที่แท้จริงคือการรันไลบรารี `ESP8266WiFi` นี่แหละ น้องแค่เขียนโค้ดประมาณนี้: `WiFi.begin("ชื่อไวไฟของน้อง", "รหัสผ่าน");` ถ้า IDE คอมไพล์ผ่าน อัปโหลดลงบอร์ดทาง USB ได้ แล้ว Serial Console พิมพ์ข้อความประมาณ `"Connected! IP Address: 192.168.1.15"` ออกมา... ยินดีด้วย! น้องเพิ่งปลดล็อกโลกทั้งใบของวิศวกรรม Internet of Things แล้ววว สู้งานนะน้อง!

ข้อจำกัดทางฮาร์ดแวร์

บอร์ด ESP8266 NodeMCU: มีพอร์ต Micro-USB มาให้สำหรับอัปโหลดโปรแกรมได้สะดวกมาก

คำเตือนเรื่องแรงดัน 3.3V: บอร์ดตัวนี้ทำงานที่ 3.3V เท่านั้นนะ ห้ามช็อตนะตัวนี้! การส่งสัญญาณ 5V จากเซนเซอร์ตรงๆ เข้าที่ขา data ของมันสามารถทอดชิปให้สุกได้ถาวรเลย จำไว้เสมอว่าให้ใช้ตัวแปลงระดับลอจิก (logic-level converter) ตอนที่ต้องเชื่อมต่อกับโมดูล 5V!

วิดีโอสอน

แก้ไขปัญหาเบื้องต้น

ถ้าน้องอัปโหลดโปรแกรมเรียบร้อยแล้วแต่ LED ยังไม่ยอมกระพริบ ให้ลองไปในไฟล์ sketch เปลี่ยนจาก "LED_BUILTIN" เป็น "D4" ตามภาพด้านล่างนี้เลย

เปลี่ยนจาก LED_BUILTIN เป็น D4

ที่มาของภาพจากแหล่งข้อมูลที่เกี่ยวข้อง

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "najad"
category: ""
components:
  - "1x ESP8266 NodeMCU"
description: "มาเรียนวิธีโปรแกรม NodeMCU กันเถอะ วัยรุ่น! เริ่มจากเซ็ต Arduino IDE ให้รู้จักบอร์ด NodeMCU แล้วก็เขียนโค้ดลงไปแบบตึงๆ รับรองว่าเทพๆ จัดไปได้เลย"
difficulty: "Easy"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX181V9KKsbJL2b6wkKFiXX9EXH9i0/ki+h662gRBoWZ05Bx/uyntNGg9ZGdKtCo6U0LetgqDYVYuMmdeLgsPdS6SeNz0yGVpk0w="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/using-arduino-ide-to-program-nodemcu-67d448_cover.jpg"
lang: "en"
likes: 9
passwordHash: "89b37ba8747c1fef62b42b693f327f3517a633a809aed391d7106b63329fcf9f"
price: 1499
seoDescription: "Learn how to program NodeMCU using Arduino IDE with this simple step-by-step tutorial."
tags:
  - "embedded"
title: "ลงมือโค้ด NodeMCU ด้วย Arduino IDE งานง่ายแต่หล่อ!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/tGZCuHjsEHA"
views: 92711