Arduino UNO เชื่อมต่อ Wi-Fi ด้วย ESP8266

ภาพรวมโครงการ

Arduino UNO เป็นไมโครคอนโทรลเลอร์ยอดนิยม แต่จุดอ่อนของมันก็คือไม่มี Wi-Fi ในตัว หากคุณต้องการควบคุมหรือส่งข้อมูล Arduino ผ่านอินเทอร์เน็ต คุณจำเป็นต้องมีบางสิ่งเพิ่มเติม วิธีแก้ที่ประหยัดและง่ายที่สุดคือการใช้ ESP8266 - โมดูลไฟ Wi-Fi ราคาถูก

โครงการนี้จะสอนให้คุณเชื่อมต่อ ESP8266 กับ Arduino UNO อย่างถูกต้อง ตั้งค่าการสื่อสาร และสุดท้ายควบคุม Arduino ผ่านมือถือของคุณ ทั้งหมดนี้ทำได้โดยไม่ต้องใช้บอร์ด Shield หรือบอร์ด ESP32 ราคาที่แพงกว่า

Arduino UNO เชื่อมต่อ ESP8266
ระบบ Arduino UNO ที่เชื่อมต่อกับ ESP8266 สำหรับการทำงานแบบไร้สาย

อุปกรณ์ที่คุณต้องใช้

ก่อนเริ่มต้น ให้แน่ใจว่าคุณมีอุปกรณ์เหล่านี้พร้อม:

Arduino UNO

บอร์ดไมโครคอนโทรลเลอร์หลัก ตัวควบคุมทั้งระบบ

ESP8266 (ESP-01)

โมดูล Wi-Fi ขนาดเล็ก เพื่อการเชื่อมต่อไร้สาย

สายเคเบิล USB A-B

สำหรับอัปโหลด Sketch เข้า Arduino และจ่ายไฟ

บอร์ด Breadboard

สำหรับต่อจุดต่อต่างๆ แบบไม่ถาวร

สายเจ้มเปอร์ (Jumper Wires)

เพื่อเชื่อมต่อระหว่าง Arduino กับ ESP8266

ตัวต้านทาน 10K Ohm

สำหรับการตั้งค่า Pull-up บนขา Reset ของ ESP

LED และตัวต้านทาน 220 Ohm

ตัวเลือก - สำหรับการทดสอบและการควบคุม

คอมพิวเตอร์ + Arduino IDE

ที่มีโปรแกรม Arduino IDE ติดตั้งแล้ว

ข้อมูลเพิ่มเติม: ESP8266 บางรุ่นต้องการจ่ายไฟแยก 3.3V ดังนั้นจึงสำคัญที่ต้องใช้ Voltage Regulator หรือ Power Supply 3.3V แบบสตอร์ก

ทำไมต้องใช้ ESP8266 กับ Arduino

Arduino UNO ดีเยี่ยมสำหรับโครงการที่เป็นพื้นฐาน แต่มันไม่มี Wi-Fi ในตัว ถ้าคุณอยากให้ Arduino ของคุณเชื่อมต่อกับ Internet ส่งข้อมูล หรือควบคุมจากไกล คุณมีตัวเลือกหลายอย่าง:

1. ซื้อ Arduino ที่มี Wi-Fi ในตัว (เช่น Arduino MKR WiFi 1010): ดีแต่ราคาแพง (ราคา 2-3 เท่า)

2. ใช้ Ethernet Shield: ต้องมีสาย Ethernet และ Internet Gateway ดังนั้นจึงไม่สะดวก

3. ใช้ ESP8266: ราคาถูก (60-80 บาท) มี Wi-Fi ในตัว สามารถเชื่อมต่อ Wireless ไม่มีสาย นี่คือวิธีที่ประหยัด

เมื่อ Arduino เชื่อมต่อกับ ESP8266 ผ่าน Serial (TX/RX) คุณสามารถสั่งให้ ESP ส่งคำสั่ง HTTP ไปยังเซิร์ฟเวอร์ ส่วน Arduino ก็ทำงานตามปกติ ระบบนี้ช่วยให้อัปกเกรด Arduino เก่าๆ ให้มีความสามารถเชื่อมต่อ Internet ได้อย่างประหยัด

แผนภาพการเชื่อมต่อ Arduino UNO กับ ESP8266
แผนภาพแบบบล็อคของระบบ - Arduino ขับเคลื่อน ESP8266 เพื่อส่งข้อมูลไปยัง Cloud

กระบวนการทำงานทั้งหมด

ก่อนที่จะเริ่มต่อวงจร สิ่งสำคัญคือต้องเข้าใจการทำงานของระบบ:

ขั้นที่ 1: Arduino รับคำสั่ง - Arduino UNO รับสัญญาณจากเซ็นเซอร์หรือปุ่มควบคุม
ขั้นที่ 2: Arduino ส่งคำสั่งให้ ESP8266 - Arduino ส่งข้อมูลผ่าน Serial (RX/TX) ไปยัง ESP8266
ขั้นที่ 3: ESP8266 ประมวลผล - ESP8266 รับข้อมูลจาก Arduino และสร้างคำขอ HTTP หรือ MQTT
ขั้นที่ 4: ESP8266 เชื่อมต่อ Wi-Fi - ESP8266 เชื่อมต่อไปยัง Wi-Fi Router และส่งข้อมูลไปยังเซิร์ฟเวอร์หรือ Cloud
ขั้นที่ 5: ตอบรับและควบคุม - Server ส่งข้อมูลกลับมา ESP8266 → Arduino → ควบคุมอุปกรณ์ (LED, Motor เป็นต้น)

ความงดงาม: ทั้งหมดนี้เกิดขึ้นอย่างรวดเร็ว ในเวลาเพียงไม่กี่มิลลิวินาที คุณจะไม่รู้สึกว่ามีการหน่วงเวลา

วิธีต่อวงจร

นี่คือส่วนที่สำคัญที่สุด การต่อวงจรผิดจะทำให้ ESP8266 หรือ Arduino เสีย เราจะทำให้มันง่ายๆ:

การเชื่อมต่อหลักระหว่าง Arduino UNO และ ESP8266:

Arduino UNO → ESP8266
TX (Pin 1) → RX (Pin 2)
RX (Pin 0) → TX (Pin 1)
GND → GND
3.3V → VCC (ผ่าน Voltage Regulator)

ขาสำคัญอื่นๆ: CH_PD (Chip Power Down) ต้องต่อเข้า 3.3V เพื่อให้ ESP8266 ทำงาน Reset (RST) ต่อเข้า 3.3V ผ่านตัวต้านทาน 10K Ohm

ไดอะแกรมการต่อวงจร Arduino UNO กับ ESP8266
ไดอะแกรมการต่อวงจรโดยละเอียด - ต่อให้ถูกต้องตามนี้

ขั้นตอนการตั้งค่า

ขั้นที่ 1: ติดตั้ง ESP8266 Board ใน Arduino IDE

1. เปิด Arduino IDE
2. ไปที่ File → Preferences
3. ใส่ URL นี้ลงใน "Additional Board Manager URLs":

http://arduino.esp8266.com/stable/package_esp8266com_index.json

4. ไปที่ Tools → Board → Board Manager
5. ค้นหา "ESP8266" แล้วติดตั้ง

ขั้นที่ 2: เลือก Serial Ports

1. ต่อ Arduino UNO เข้ากับคอมพิวเตอร์
2. ไปที่ Tools → Port → เลือก COM Port ที่ถูกต้อง
3. ไปที่ Tools → Board → เลือก "Arduino Uno"

ขั้นที่ 3: ใช้ SoftwareSerial เพื่อสื่อสารกับ ESP8266

เราจะใช้ Pin 10 และ 11 เป็น Soft Serial เพื่อคุยกับ ESP8266 (Pin 0 และ 1 ใหญ่ใช้สำหรับอัปโหลดโค้ด)

เคล็ดลับ: ตรวจสอบให้แน่ใจว่า ESP8266 เชื่อมต่อกับ Wi-Fi ที่ถูกต้อง และ Arduino IDE บอร์ด Manager ได้ติดตั้ง ESP8266 แล้ว

ควบคุม Arduino ผ่านมือถือ

หลังจากทั้งหมดทำงานแล้ว คุณสามารถใช้แอป Serial Monitor บนมือถือของคุณเพื่อส่งคำสั่งให้ Arduino ผ่าน Wi-Fi:

วิธีทำ:
1. ติดตั้งแอป "Serial Monitor" หรือ "Arduino Bluetooth Terminal" บนมือถือ
2. ที่ ESP8266 สร้าง Server ที่รับคำขอ HTTP
3. เมื่อคุณส่งคำขอจาก App ESP8266 จะรับและส่งต่อให้ Arduino
4. Arduino ประมวลผลคำสั่ง เช่น เปิด/ปิด LED

ตัวอย่าง: คุณเปิดแอป ส่งคำสั่ง "LED_ON" → Wi-Fi ส่งไปยัง ESP8266 → ESP ส่งต่อให้ Arduino → Arduino เปิด LED

หมายเหตุ: คุณสามารถสร้าง Custom App ด้วย Android Studio หรือ MIT App Inventor เพื่อให้มี UI ที่สวยงามและ User-friendly
ตัวอย่างการควบคุม Arduino ผ่านมือถือ
ตัวอย่างแอปบนมือถือที่ใช้ควบคุม Arduino UNO ผ่าน Wi-Fi

โค้ดตัวอย่าง

นี่คือโค้ดพื้นฐานสำหรับให้ Arduino และ ESP8266 สื่อสารกัน:

Arduino UNO Code:

#include <SoftwareSerial.h>

// Pin 10 (RX) และ 11 (TX) สำหรับ ESP8266
SoftwareSerial esp(10, 11);

void setup() {
  Serial.begin(9600); // Serial Monitor
  esp.begin(115200); // ESP8266 speed
  pinMode(13, OUTPUT); // LED บน Pin 13
}

void loop() {
  if (esp.available()) {
    String command = esp.readStringUntil('\n');
    if (command == "LED_ON") {
      digitalWrite(13, HIGH);
      esp.println("LED is ON");
    }
    if (command == "LED_OFF") {
      digitalWrite(13, LOW);
      esp.println("LED is OFF");
    }
  }
}

โค้ดนี้จะรับคำสั่ง "LED_ON" หรือ "LED_OFF" จาก ESP8266 แล้วควบคุม LED บน Pin 13 ของ Arduino

ขั้นตอน:
1. Copy โค้ดด้านบน
2. ไปที่ Arduino IDE → Sketch → Verify
3. ต่อ Arduino UNO เข้า USB
4. ไปที่ Sketch → Upload (เลือก COM Port ที่ถูกต้อง)
5. เมื่ออัปโหลดเสร็จ ESP8266 ควรจะได้รับข้อมูลจาก Arduino แล้ว

ข้อเตือน: หากอัปโหลดไม่สำเร็จ ตรวจสอบให้แน่ใจว่า Pin 0 และ 1 ว่าง (ไม่มีสิ่งอื่นต่อเข้า) และเลือก Com Port ที่ถูกต้อง

สรุป

คุณได้เรียนรู้วิธีการเชื่อมต่อ Arduino UNO กับ ESP8266 เพื่อให้ Arduino มีความสามารถในการเชื่อมต่อ Wi-Fi โดยไม่ต้องซื้อบอร์ดราคาแพง ระบบนี้เหมาะสำหรับโครงการต่างๆ เช่น:

• ระบบโฮมออโตเมชัน (Smart Home)
• ระบบเก็บข้อมูลที่เซ็นเซอร์
• ระบบเตือนภัย และการป้องกัน
• โครงการ IoT ระดับเบิกน้อย

ถึงแม้ว่า ESP32 จะดีกว่า แต่ Arduino + ESP8266 นี้จะช่วยให้คุณประหยัดเงิน และยังคงมีคุณสมบัติทั้งหมดที่คุณต้องการ ต่อไปคุณสามารถขยายโครงการนี้โดยเพิ่มเซ็นเซอร์เพิ่มเติม บอร์ดขยาย หรือแม้แต่ Database เพื่อเก็บข้อมูล

ขอให้สนุกกับการสร้างสรรค์! หากมีปัญหา หรือต้องการช่วยเหลือเพิ่มเติม โปรดติดต่อเราผ่านช่องทางด้านล่าง

แท็ก


Blog posts