คำอธิบาย
NodeMCU ESP8266
NodeMCU คือบอร์ดไมโครคอนโทรลเลอร์ที่พัฒนาโดยใช้ชิป ESP8266 ของบริษัท Espressif ซึ่งโดดเด่นในด้าน:
-
เชื่อมต่อ Wi-Fi ได้ในตัว
-
ราคาถูก
-
ใช้งานร่วมกับ Arduino IDE ได้ง่าย
-
เหมาะสำหรับ IoT (Internet of Things) เช่น ควบคุมอุปกรณ์ผ่านอินเทอร์เน็ต, ส่งข้อมูลเซนเซอร์ขึ้นเว็บ, ทำบ้านอัจฉริยะ
ชื่อ "NodeMCU" มาจาก "Node MicroController Unit" โดยเริ่มแรกใช้ภาษา Lua แต่ปัจจุบันนิยมเขียนด้วยภาษา C/C++ ผ่าน Arduino IDE มากกว่า
สเปคของ NodeMCU ESP8266
รายการ
|
รายละเอียด
|
ชิปหลัก
|
ESP8266 (ESP-12E หรือ ESP-12F)
|
ความเร็วซีพียู
|
80 MHz (Overclock ได้ถึง 160 MHz)
|
หน่วยความจำ (Flash)
|
4MB
|
SRAM (RAM)
|
64KB
|
Wi-Fi
|
802.11 b/g/n (2.4GHz), รองรับทั้ง STA และ AP
|
แรงดันใช้งาน
|
3.3V (แต่ USB ใช้ 5V ได้ เพราะมีตัวแปลงในตัว)
|
พอร์ต USB
|
ใช้ชิป CH340 หรือ CP2102 (สำหรับโปรแกรมผ่าน USB)
|
จำนวน GPIO
|
11 ขา (บางขามีฟังก์ชันพิเศษ เช่น PWM, ADC, I2C, SPI)
|
ขา ADC
|
1 ขา (อ่านค่า Analog ได้ 0–1V)
|
แรงดันขา Digital
|
3.3V (ถ้าใช้กับ 5V ต้องมีตัวต้านทานแบ่งแรงดัน)
|
3. การใช้งาน NodeMCU ESP8266
จุดเด่น:
-
เชื่อม Wi-Fi ได้ในตัว (ไม่ต้องมีโมดูลแยก)
-
โหลดโค้ดผ่าน USB ได้เลย
-
ทำงานร่วมกับเว็บ, โทรศัพท์, ฐานข้อมูลออนไลน์ได้
-
รองรับการเขียนด้วย Arduino IDE หรือ PlatformIO
ตัวอย่างการใช้งานยอดนิยม:
✅ ควบคุมหลอดไฟผ่าน Wi-Fi
✅เขียนเว็บเซิร์ฟเวอร์ในตัว ควบคุมผ่านเว็บเบราว์เซอร์
✅ ส่งข้อมูลเซนเซอร์ (DHT11, MQ-2, Soil) ไปยัง Firebase / ThingSpeak
✅ ทำ Node ส่งข้อมูลผ่าน Wi-Fi ไปยัง Server หรือ MQTT
✅ สร้างระบบแจ้งเตือนผ่าน LINE Notify หรือ Telegram
ตัวอย่างโค้ด: เปิดเว็บเซิร์ฟเวอร์แบบง่าย
include <ESP8266WiFi.h>
const char* ssid = "YOUR_WIFI_NAME";
const char* password = "YOUR_WIFI_PASSWORD";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("กำลังเชื่อม WiFi...");}
Serial.println("เชื่อมต่อแล้ว: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (client) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<h1>Hello from NodeMCU!</h1>");
delay(1000);
}
}
