📑 เนื้อหาในบทความ
🔍 ภาพรวม Arduino UNO R4 WiFi
Arduino UNO R4 WiFi เป็นบอร์ด Arduino รุ่นล่าสุดที่ถูกพัฒนาขึ้นโดย Arduino โดยร่วมมือกับ Renesas และ Espressif บอร์ดนี้ถือเป็นการก้าวกระโดดของ Arduino เพราะเป็นครั้งแรกที่มีการนำ Dual-Processor Architecture มาใช้งาน
โดยมีไมโครคอนโทรลเลอร์หลัก Renesas RA4M1 ทำหน้าที่ประมวลผลหลัก และ ESP32-S3 ที่ทำหน้าที่จัดการการเชื่อมต่อไร้สาย WiFi และ Bluetooth ทำให้สามารถสร้างโปรเจกต์ IoT ที่ซับซ้อนได้อย่างง่ายดาย
💡 เกร็ดความรู้: Arduino UNO R4 WiFi ถูกปล่อยตัวเมื่อปี 2023 และถือเป็นการอัปเกรดครั้งใหญ่จาก UNO R3 ที่ใช้งานมายาวนานกว่า 10 ปี โดยมีการปรับปรุงทั้งประสิทธิภาพและฟีเจอร์ใหม่ๆ มากมาย
⭐ คุณสมบัติหลักของ Arduino UNO R4 WiFi
Dual-Processor Architecture
Renesas RA4M1 48MHz + ESP32-S3 240MHz สำหรับ WiFi/Bluetooth
WiFi & Bluetooth
รองรับ WiFi 802.11n 2.4GHz และ Bluetooth 5.0 LE
Memory ขยาย
32KB SRAM + 256KB Flash เพิ่มขึ้นจาก 2KB ใน R3
Qwiic Connector
ระบบเชื่อมต่อ I2C แบบ plug-and-play ไม่ต้องบัดกรี
12x8 LED Matrix
จอ LED 5x12 สร้างสรรค์งานแสงสวยงามได้ทันที
DAC 12-bit
Digital-to-Analog Converter ความละเอียดสูง
🔧 ฮาร์ดแวร์และการต่อใช้งาน
ขา GPIO หลักๆ
| ขา | คำอธิบาย | หมายเหตุ |
|---|---|---|
| D0-D13 | Digital I/O | PWM 6 ช่องสัญญาณ |
| A0-A5 | Analog Input | ADC 14-bit |
| SDA, SCL | I2C | ใกล้กับ AREF |
| RX, TX | Serial | 0 และ 1 |
| Qwiic | I2C Connector | ด้านข้างบอร์ด |
สเปกเทคนิค
- ▸Microcontroller หลัก: Renesas RA4M1 (ARM Cortex-M4) 48MHz
- ▸Wireless Module: ESP32-S3 240MHz
- ▸Memory: 32KB SRAM, 256KB Flash
- ▸Voltage: 5V (operating), 7-12V (input via DC jack)
- ▸Current per I/O: 20mA (max 8mA recommended)
- ▸DAC: 2 channels 12-bit (A0, A1)
- ▸USB: USB-C with native support
🛠️ การติดตั้งและเตรียมการ
ขั้นตอนที่ 1: ติดตั้ง Arduino IDE 2.x
Arduino UNO R4 WiFi ต้องการ Arduino IDE เวอร์ชัน 2.0 ขึ้นไป ซึ่งมีการปรับปรุง UI และฟีเจอร์ใหม่ๆ มากมาย
- ดาวน์โหลด Arduino IDE 2.x จาก arduino.cc
- ติดตั้งตามปกติบน Windows/Mac/Linux
- เปิด Arduino IDE หลังจากติดตั้งเสร็จ
ขั้นตอนที่ 2: เพิ่ม Board Support
เนื่องจาก UNO R4 WiFi เป็นบอร์ดรุ่นใหม่ จึงต้องติดตั้ง board package ก่อนใช้งาน
- เปิด Arduino IDE แล้วไปที่ Tools > Board > Boards Manager
- ค้นหาคำว่า "UNO R4" ในช่องค้นหา
- ติดตั้ง "Arduino UNO R4 Boards" โดย Arduino
- รอจนกว่าจะติดตั้งเสร็จ (ประมาณ 5-10 นาที)
ขั้นตอนที่ 3: เลือกบอร์ดและ Port
- ✅ เลือกบอร์ด: Tools > Board > Arduino UNO R4 WiFi
- ✅ เลือก Port: Tools > Port > (เลือก port ที่ตรวจพบ)
- ✅ เช็คใน Tools > Get Board Info เพื่อยืนยัน
💡 โปรเจกต์แรก: กระพริบ LED (Blink)
มาเริ่มต้นด้วยโปรเจกต์คลาสสิกที่ทุกคนต้องผ่าน นั่นคือการทำให้ LED กระพริบ!
Code: Blink LED
// โปรแกรมกระพริบ LED สำหรับ Arduino UNO R4 WiFi
// LED ตัวที่ 13 คือ LED บนบอร์ด (built-in LED)
// ตั้งค่าเริ่มต้น (รันครั้งเดียวเมื่อเริ่มเปิดเครื่อง)
void setup() {
// ตั้งค่าขา LED pin เป็น output
pinMode(LED_BUILTIN, OUTPUT);
// เริ่ม Serial Monitor สำหรับ debugging
Serial.begin(9600);
Serial.println("Arduino UNO R4 WiFi - Blink LED Started!");
}
// วนลูปไปเรื่อยๆ (รันซ้ำตลอดเวลา)
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // เปิด LED (HIGH = 5V)
delay(1000); // รอ 1000ms (1 วินาที)
digitalWrite(LED_BUILTIN, LOW); // ปิด LED (LOW = 0V)
delay(1000); // รอ 1 วินาที
}วิธีอัปโหลดโค้ด
- คัดลอกโค้ดด้านบนไปวางใน Arduino IDE
- กดปุ่ม Verify (✓) เพื่อตรวจสอบโค้ด
- กดปุ่ม Upload (→) เพื่อส่งโค้ดไปยังบอร์ด
- รอสักครู่ จะเห็น LED บนบอร์ดกระพริบทุกๆ 1 วินาที
✅ สำเร็จ! ถ้า LED กระพริบแล้ว แสดงว่าบอร์ดของคุณพร้อมใช้งานแล้ว! ต่อไปเราจะลองเชื่อมต่อ WiFi กัน
🌐 การเชื่อมต่อ WiFi ครั้งแรก
Arduino UNO R4 WiFi มาพร้อมกับไลบรารี WiFi ที่ใช้งานง่าย มาลองเชื่อมต่อกับเครือข่าย WiFi กัน
Code: WiFi Connection Test
// โปรแกรมทดสอบการเชื่อมต่อ WiFi
// สำหรับ Arduino UNO R4 WiFi
#include <WiFiS3.h> // ไลบรารี WiFi สำหรับ UNO R4 WiFi
// แก้ไขค่า SSID และ Password ของคุณที่นี่
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
void setup() {
Serial.begin(9600);
// รอสักครู่ให้ Serial เริ่มทำงาน
delay(2000);
Serial.println("\n\n=== Arduino UNO R4 WiFi ===");
Serial.println("กำลังเชื่อมต่อ WiFi...");
// เริ่มการเชื่อมต่อ WiFi
WiFi.begin(ssid, password);
// วนลูปรอจนกว่าจะเชื่อมต่อสำเร็จ
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\n✅ เชื่อมต่อ WiFi สำเร็จ!");
Serial.print("📡 IP Address: ");
Serial.println(WiFi.localIP());
Serial.print("📶 Signal Strength: ");
Serial.print(WiFi.RSSI());
Serial.println(" dBm");
}
void loop() {
// ตรวจสอบสถานะการเชื่อมต่อ
if (WiFi.status() == WL_CONNECTED) {
// เชื่อมต่ออยู่ ทำอะไรก็ตามที่ต้องการ
delay(10000); // รอ 10 วินาที
} else {
// หายต่อ พยายามเชื่อมต่อใหม่
Serial.println("❌ WiFi หายต่อ! กำลังพยายามเชื่อมต่อใหม่...");
WiFi.begin(ssid, password);
delay(5000);
}
}ขั้นตอนการใช้งาน
- แก้ไข
ssidและpasswordให้ตรงกับเครือข่ายของคุณ - อัปโหลดโค้ดไปยังบอร์ด
- เปิด Serial Monitor (Tools > Serial Monitor)
- ตั้งค่า Baud rate เป็น 9600
- ดูผลลัพธ์ที่ Serial Monitor
⚠️ คำเตือน: รหัสผ่าน WiFi จะถูกเก็บในบอร์ดแบบ Plain Text หากใช้งานจริง ควรใช้วิธีเข้ารหัสหรือบันทึกใน Secure Element เพื่อความปลอดภัย
✨ การใช้งาน LED Matrix 12x8
หนึ่งในฟีเจอร์ที่น่าสนใจของ UNO R4 WiFi คือ 12x8 LED Matrix ที่ติดมากับบอร์ด สามารถสร้างงานศิลปะแสง แสดงข้อความ หรือทำเกมง่ายๆ ได้
Code: Simple LED Matrix Animation
// โปรแกรมแสดง Animation บน LED Matrix
// สำหรับ Arduino UNO R4 WiFi
#include <Arduino_LED_Matrix.h> // ไลบรารี LED Matrix
// สร้าง object สำหรับ LED Matrix
ArduinoLEDMatrix matrix;
// กำหนด frame (เฟรม) ของ animation
// แต่ละ byte แทน 1 แถว ใช้ 8 columns x 12 rows
uint8_t frame[8][12] = {
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0 },
{ 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0 },
{ 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0 },
{ 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
void setup() {
Serial.begin(9600);
matrix.begin(); // เริ่มต้นใช้งาน LED Matrix
Serial.println("LED Matrix Started!");
}
void loop() {
// โหลดและแสดง frame
matrix.loadFrame(frame[0]);
// วนลูปเพื่อสร้าง animation effect
for (int i = 0; i < 8; i++) {
matrix.renderBitmap(frame[i], 8, 12);
delay(200); // รอ 200ms ระหว่างแต่ละเฟรม
}
}ตัวอย่างโปรเจกต์ LED Matrix
- Text Scroller: แสดงข้อความเลื่อนจากขวาไปซ้าย
- Pong Game: เกม Pong ง่ายๆ บน LED Matrix
- Music Visualizer: แสดงคลื่นเสียงจากไมโครโฟน
- Status Indicator: แสดงสถานะ WiFi/Server เป็นภาพ
⚖️ เปรียบเทียบ UNO R3 vs R4 WiFi
| ฟีเจอร์ | UNO R3 | UNO R4 WiFi |
|---|---|---|
| Microcontroller | ATmega328P | RA4M1 + ESP32-S3 |
| Clock Speed | 16 MHz | 48 MHz + 240 MHz |
| SRAM | 2 KB | 32 KB |
| Flash | 32 KB | 256 KB |
| ADC Resolution | 10-bit | 14-bit |
| DAC | ❌ ไม่มี | ✅ 12-bit (2ch) |
| WiFi | ❌ ไม่มี | ✅ ESP32-S3 |
| USB | USB-B | USB-C |
| LED Matrix | ❌ ไม่มี | ✅ 12x8 |
💡 ควรเลือกรุ่นไหน? ถ้าต้องการทำโปรเจกต์ IoT, เชื่อมต่อ Cloud, หรือต้องการประสิทธิภาพสูง เลือก R4 WiFi แต่ถ้าโปรเจกต์เดิมๆ ที่ใช้ R3 อยู่แล้ว R3 ก็ยังเพียงพอ
🎓 สรุป
Arduino UNO R4 WiFi ถือเป็นการก้าวกระโดดที่สำคัญของ Arduino ด้วย Dual-Processor Architecture ที่ทรงพลัง, WiFi ในตัว, และฟีเจอร์ใหม่ๆ อย่าง LED Matrix ทำให้เหมาะสำหรับ:
- โปรเจกต์ IoT และ Smart Home
- การเรียนรู้การเขียนโปรแกรมระดับสูง
- การสร้างโปรเจกต์ที่ต้องการประสิทธิภาพ
- การเชื่อมต่อ Cloud Services (AWS IoT, Google Cloud, etc.)
🚀 โปรเจกต์ถัดไปที่ควรลอง
- ✓ เชื่อมต่อ CynoIoT Platform สำหรับจัดการข้อมูล IoT
- ✓ สร้าง Weather Station ส่งข้อมูลไปยัง Cloud
- ✓ ทำ Smart Plant Monitoring แจ้งเตือนผ่าน Line
- ✓ สร้าง Web Server ควบคุม Relay ผ่าน WiFi
พร้อมที่จะเริ่มต้นสร้างโปรเจกต์ IoT แล้วหรือยัง?
Arduino UNO R4 WiFi พร้อมให้คุณสร้างสรรค์โปรเจกต์ที่คุณฝันไว้!
ดูโปรเจกต์ตัวอย่าง →