กลับไปหน้ารวมไฟล์
esp8266-setup-and-first-wifi-connection-bd42ba.md

ESP8266 - การตั้งค่าและการเชื่อมต่อ WiFi ครั้งแรก

ESP8266 Sunbathing
ESP8266 - Sunbathing

ถ้าคุณเพิ่งได้โมดูล ESP8266 มาอยู่ในมือ แต่ยังสับสนว่าจะเริ่มต้นอย่างไร หรือจะทำให้มันทำงานกับโปรเจกต์ของคุณได้อย่างไร ไม่ต้องกังวล! ผมเคยเป็นมาก่อน และวันนี้ผมจะมาแบ่งปันเทคนิคการใช้งานพื้นฐานที่จะเปลี่ยนงานที่ยากให้กลายเป็นเรื่องง่าย บทความนี้เป็นคู่มือฉบับสมบูรณ์ที่จะช่วยให้คุณก้าวแรกเข้าสู่โลกของ IoT (Internet of Things) และเชื่อมต่อโปรเจกต์ของคุณเข้ากับเครือข่าย WiFi ได้อย่างมืออาชีพ

(สำหรับใครที่สนใจสำรวจโปรเจกต์ ESP8266 ที่ซับซ้อนขึ้น สามารถเยี่ยมชมบล็อกได้ที่ virginrobotics.blogspot.com)

ทำไมต้อง ESP8266?

หากคุณเคยฝันที่จะควบคุมโปรเจกต์ของคุณผ่านอินเทอร์เน็ต ไม่ว่าจะเป็นการสั่งงาน Servo motor, การเปิด/ปิด LED หรือการสร้างระบบ Smart Home ขนาดเล็ก ESP8266 คือกุญแจสำคัญที่จะทำให้ความฝันนั้นเป็นจริง มันทำงานคล้ายกับ Bluetooth module อย่าง HC-05 แต่มีความซับซ้อนและทรงพลังกว่ามาก เนื่องจากสามารถพาโปรเจกต์ของคุณก้าวข้ามข้อจำกัดด้านระยะทางผ่านเครือข่ายไร้สายได้

สำหรับมือใหม่ ESP8266 อาจดูใช้งานยากในตอนแรก (ผมเองก็เคยงมอยู่เป็นเดือน!) แต่บทความนี้จะสรุปเฉพาะเนื้อหาที่จำเป็นและวิธีที่รวดเร็วที่สุดเพื่อให้มันเริ่มทำงานได้


ข้อกำหนดด้าน Hardware

ก่อนที่คุณจะเริ่มต้น คุณจะต้องมีส่วนประกอบเหล่านี้เพื่อให้ระบบทำงานได้อย่างเสถียร:

  1. ESP8266 Module (รุ่น ESP-01): พระเอกของงานนี้
  2. Resistors ขนาด 1k Ohm (3 ตัว): ใช้เพื่อสร้าง Voltage Divider เพื่อลดแรงดันไฟฟ้าสัญญาณ TX จาก Arduino (5V) ลงเหลือ 3.3V ป้องกันความเสียหายของโมดูล
  3. Breadboard Power Supply Module: (แนะนำเป็นอย่างยิ่ง) เนื่องจาก ESP8266 กินกระแสไฟฟ้าสูงในระหว่างการส่งข้อมูล WiFi (สูงสุด 200-300mA) และขา 3.3V บนบอร์ด Arduino มักจะไม่สามารถจ่ายกระแสไฟฟ้าได้เพียงพอ ทำให้โมดูลรีเซ็ตบ่อยครั้ง
  4. Arduino UNO Board: ใช้เป็นตัวกลางสำหรับการสื่อสารและการโปรแกรม
  5. Jumper Wires (แบบ Male to Male และ Female to Male)
  6. Breadboard

Breadboard Power Supply
การแยกรางไฟ 5V และ 3.3V บน Breadboard เพื่อความปลอดภัย


การประกอบวงจร

คำเตือนสำคัญ: ESP8266 ทำงานที่ 3.3V เท่านั้น ห้ามต่อ 5V จาก Arduino เข้ากับขา VCC โดยตรง หรือส่งสัญญาณ Logic 5V เข้าที่ขา RX โดยตรงเด็ดขาด เพราะจะทำให้โมดูลเสียหายทันที!

รายละเอียดขาสำคัญ:

  • VCC: ต่อเข้ากับ 3.3V (จากแหล่งจ่ายไฟภายนอก)
  • GND: ต่อ Ground ทั้งหมดเข้าด้วยกัน
  • CH_PD (Enable): ต้องต่อเข้ากับ 3.3V เพื่อเปิดใช้งานโมดูล
  • TX: ต่อเข้ากับขา 2 ของ Arduino (ผ่าน SoftwareSerial)
  • RX: ต่อเข้ากับขา 3 ของ Arduino (ต้องผ่านวงจร Voltage Divider เพื่อลดเหลือ 3.3V)

Circuit Diagram

หมายเหตุ: สำหรับการจ่ายไฟ บอร์ด Arduino สามารถรับไฟจากขา Vin ได้หากคุณใช้แหล่งจ่ายไฟภายนอก

Wiring Setup


Source Code

เราจะใช้ Arduino เป็น "สะพาน" สำหรับการสื่อสารระหว่าง Serial Monitor ของคอมพิวเตอร์กับ ESP8266 โดยใช้ไลบรารี SoftwareSerial เพื่อแยกขาสำหรับการสื่อสารออกจาก Hardware Serial ปกติ

#include <SoftwareSerial.h>

// Define RX and TX pins for communication with ESP8266
// Arduino Pin 2 (RX) connects to ESP8266's TX
// Arduino Pin 3 (TX) connects to ESP8266's RX (via Voltage Divider)
SoftwareSerial ESPserial(2, 3); 

void setup() 
{
  // Initialize Serial Monitor at 115200 baud
  Serial.begin(115200);     
  
  // Initialize Software Serial for ESP8266 
  // Factory default is usually 115200 baud
  ESPserial.begin(115200);  
  
  Serial.println("");
  Serial.println("Remember to set Both NL & CR in the serial monitor.");
  Serial.println("Ready");
  Serial.println("");    
}

void loop() 
{
  // Read data from ESP8266 and send to Serial Monitor
  if ( ESPserial.available() )   {  Serial.write( ESPserial.read() );  }
  
  // Read commands from Serial Monitor and send to ESP8266
  if ( Serial.available() )       {  ESPserial.write( Serial.read() );  }
}

การทดสอบด้วย AT Commands

เมื่ออัปโหลดโค้ดเสร็จแล้ว ให้เปิด Serial Monitor และตั้งค่ามุมขวาล่างเป็น "Both NL & CR" ที่ความเร็ว 115200 baud

  1. พิมพ์ AT แล้วกด Enter
  2. หากโมดูลทำงานถูกต้อง จะตอบกลับมาว่า OK

AT Command OK

ขั้นตอนที่ 1: การเปลี่ยน Baud Rate

เนื่องจาก SoftwareSerial ทำงานได้ไม่เสถียรนักที่ 115200 baud (ซึ่งอาจทำให้เกิดข้อมูลขยะ) เราจึงควรเปลี่ยนความเร็วของ ESP8266 เป็น 9600 baud เพื่อความแม่นยำสูงสุด

ส่งคำสั่ง:

AT+UART_DEF=9600, 8, 1, 0, 0

Change Baud Rate

หากได้รับ OK แสดงว่าความเร็วได้ถูกเปลี่ยนแล้ว ตอนนี้ข้อมูลบนหน้าจอจะอ่านไม่ออกเนื่องจากความเร็วไม่ตรงกัน ให้ปิด Serial Monitor และกลับไปแก้ไขโค้ดใน Arduino IDE:

Update Code

เปลี่ยนทั้ง Serial.begin(115200) และ ESPserial.begin(115200) เป็น 9600 จากนั้นอัปโหลดโค้ดอีกครั้ง

ขั้นตอนที่ 2: การเชื่อมต่อ WiFi

เมื่อการสื่อสารกลับมาทำงานได้ที่ 9600 baud แล้ว ให้ทดสอบโดยการส่ง AT อีกครั้งเพื่อยืนยัน

AT Test 9600

จากนั้น ตั้งค่าโหมดการทำงานเป็น Station (Client) mode ด้วยคำสั่ง:

AT+CWMODE=1

CWMODE

ขั้นตอนที่ 3: การสแกนหาและเชื่อมต่อเครือข่าย

ลองสแกนหาเครือข่าย WiFi ใกล้เคียงด้วยคำสั่ง:

AT+CWLAP

Scan WiFi

เมื่อคุณพบชื่อ WiFi ของคุณแล้ว ให้เชื่อมต่อโดยใช้คำสั่ง (แทนที่ด้วยชื่อ WiFi และรหัสผ่านของคุณ):

AT+CWJAP="Your WiFi Name", "Your Password"

Connect WiFi

หากคุณเห็น WIFI CONNECTED และ WIFI GOT IP ขอแสดงความยินดีด้วย! โมดูลของคุณเชื่อมต่ออินเทอร์เน็ตแล้ว

สุดท้าย ตรวจสอบ IP Address ของโมดูลโดยใช้คำสั่ง:

AT+CIFSR

Check IP

บทสรุปและขั้นตอนถัดไป

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

ติดตามโปรเจกต์เจ๋งๆ เพิ่มเติมได้ที่: virginrobotics.blogspot.com

Final Setup

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

title: "ESP8266 - Setup and First WiFi Connection"
description: "Your first project with the ESP8266: connect to your home's WiFi."
author: "neverofftheinternet"
category: ""
tags:
  - "wifi"
  - "internet of things"
views: 131522
likes: 31
price: 870
difficulty: "Intermediate"
components:
  - "1x SparkFun Breadboard Power Supply Stick 5V/3.3V"
  - "1x Breadboard (generic)"
  - "2x Resistor 1k ohm"
  - "1x ESP8266 ESP-01"
  - "1x Arduino UNO"
  - "1x Male/Female Jumper Wires"
tools: []
apps:
  - "1x Arduino IDE"
  - "1x Windows 10"
downloadableFiles:
  - "https://github.com/imalwaysontheinternet/ESP8266Config"
  - "https://github.com/imalwaysontheinternet/ESP8266Config"
documentationLinks: []
passwordHash: "768f23e538c70dd98f4b1982cf124658772726c3ba661d3d45ab5b7715e69fde"
encryptedPayload: "U2FsdGVkX19zNSMC/RM5m4biW1tQcCytM5u+cPWj74eTZt9x6FF6DOX4hJfdlANOHz0UN7CJ4w4BczoYGU9cRvZoUPJfa2J1ORP7R+Cop2Si6artEvQr78IRKh3Jy3HE"
seoDescription: "Learn how to setup ESP8266 and establish your first WiFi connection with this simple beginner project."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/esp8266-setup-and-first-wifi-connection-bd42ba_cover.jpg"
lang: "th"