ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

ปัญหาการใช้งาน ESP8266 -01

bigboss

ผมซื้อมา 2 ตัว ตัวแรกใช้ AT Command ผ่าน serial monitor ได้ อีกตัวไม่ได้ ลองเอาตัวที่ปกติมาลองทำตามขั้น เปิดปิด LED พบว่ามันหยุดที่ AT+RST ผมต่อตาม clip video เลยครับ ผมลองกับโปรแกรมอื่น ปรากฎว่าใช้ softwareserial ไม่ได้ ผมใช้กับ arduino uno

ไม่ทราบว่าต้องทำไรเพิ่มเติมไหม หรือ module เสียครับ เพราะเห็นบางคนไม่แนะนำต่อตรงให้ต่อผ่าน logic level converter

QUOTE 
ความคิดเห็นที่ #1
ธีรพงษ์

ตอนแรกผมก็เจอปัญหานี้ครับ พบว่า

1. ESP8266-01 ค่าโรงงานคือ baud rate 115200 bps ตรงนี้สำคัญมากครับ ต้องตั้ง baud rate ให้ตรง แล้วเวลาทดสอบให้ใช้คำสั่ง AT+GMR แทนครับ ถ้า ESP8266 ตอบกลับมาถูกต้อง แสดงว่าใช้ได้แล้ว

2.ถ้าใช้ (ผมก็ใช้) software serial ซึ่งตัว software serial นี้มี baud rate สูงสุดที่ 19200bps (การันตีที่ 9600bps เกินนี้ต้องลองเอง) ทั้งนี้เนื่องจาก error ของ clock speed ใน controller เอง ถ้าจะใช้ ESP8266 กับ softserial ต้องต่อ ESP8266 กับ serial port ธรรมดาก่อน แล้วส่งคำสั่ง AT+UART_DEF=9600,8,1,0,0 คำสั่งนี้จะตั้งค่าโรงานจาก 115200 เป็น 9600 แทน ส่งคำสั่งอื่น baudrate จะกลับมาที่ 115200 หลัง reset จากนั้นถึงเอาไปใช้กับ softserial ได้

3. คำสั่ง AT command ทุกอัน ต้องเป็นตัวพิมพ์ใหญ่หมด ตัวพิมพ์เล็กมันไม่รู้จัก

4. ESP8266-01 ผมซื้อจากร้านนี้มา 2 ตัว เป็น ESP8266-01S ตัวนึง กับ ESP8266-01 อีกตัว พบว่ามีตัวนึงใช้ AT command ได้ ส่วนอีกตัวใช้ไม่ได้ ตัวที่ใช้ไม่ได้เนื่องจากไม่มี firmware ของ AT command อยู่ ดูได้จาก AT+GMR flash ลงไปใหม่ก็หาย เพราะ ESP8266 จะมี firmware อยู่ 3 ส่วน คือ ESP8266-01 firmware + AT command firmware + factory default setting firmware

5. ทั้งหมดต่อตรง ไม่ต้องผ่าน logic converter ยกเว้นไฟเลี้ยง ต้องใช้ 3.3v ซึ่งต่อตรงจาก UNO ก็พอ

6.ผมเดาว่าคุณใช้ UNO R3 ส่วนผมใช้ UNO R3 SMD มันจะใช้ serial monitor ไม่ได้เลย ดีว่ามี USB to TTL อยู่ เลยตั้งค่า default baud rate ได้

QUOTE 
ความคิดเห็นที่ #2
เจ้าของร้าน

โมดูลไม่น่ามีปัญหานะครับ รับประกันให้ทุกชิ้น ลองทำตามที่คุณธีรพงษ์แนะนำ

ขอเสริมว่า ให้ใช้ Arduino IDE จะเขียนง่ายกว่า มีคอร์สสอน ESP8266 ของทางเว็บ ลองศึกษาการใช้งานได้ฟรีครับ

QUOTE 
ความคิดเห็นที่ #3
bigboss
ขอบคุณทุกท่าน ผมสอบถามเพิ่มว่าถ้าผมใช้ arduino IDE ควบคุมการทำงาน ผมยังใช้บอร์ด arduino ต่อทำงานกับโมดุลอื่นได้หรือไม่ครับ
QUOTE 
ความคิดเห็นที่ #4
เจ้าของร้าน

ทำได้ มีสอนในคอร์ส ESP8266 ด้วยแล้วครับ

QUOTE 
ความคิดเห็นที่ #5
ธีรพงษ์
อีกอันครับ ถ้าคุณได้เขียน sketch ของ ESP8266 เข้าไปโดยตรงแล้ว AT command จะใช้ไม่ได้นะครับ ต้อง flash AT command firmware กลับเข้าไปใหม่ครับ
QUOTE 
ความคิดเห็นที่ #6
เจ้าของร้าน

ใช่แล้วครับ

การโปรแกรมใหม่ เหมือนกับการโปรแกรมทั่ว ๆ ไป ผ่านขา rx,tx แบบเดียวกับโปรแกรมด้วย Arduino IDE

QUOTE 
ความคิดเห็นที่ #7
bigboss
เห็นบทเรียนส่วนมากเป็น nodemcu ส่วนบท esp8266-01s ต้องถอด ATmega328 ออก แสดงว่า uno smd ใช้ไม่ได้ใช่ไหมครับ
QUOTE 
ความคิดเห็นที่ #8
ธีรพงษ์

ผมใช้ ESP8266-01 เป็น wifi ต่อกับ UNO SMD อยู่ครับ เพราะต้องใช้ขา analog input. ใช้ UNO คุยกับ ESP8266-01 ผ่าน softserial ครับ

ที่ต้องถอดเอา ATmega328 ออก เพราะเขาต้องการใช้ USB to TTL ที่อยู่บน UNO board ในการคุยระหว่าง Serial port กัย Serial ของ ESP8266-01 เท่านั้นครับ ถ้าไม่ถอดออก ตัว ATmega328 จะไป block serial communication ทำให้โปรแกรม ESP8266 ไม่ได้ ส่วนแบบ SMD มันถอดไม่ได้ ก็แค่นั้นครับ ไม่เกี่ยวกับความสามารถของ UNO

คือสรุปว่า UNO ที่ถอด ATmega328 มันก็คือแหล่งจ่ายไฟ + USB to TTL ดีๆ นี่เอง

ส่วนตัวผมนั้นใช้ USB to TTL ในการต่อกับ ESP8266-01 แล้วส่ง AT command ลงไปเปลี่ยน baud rate ครับ

อย่างที่บอกครับ ก่อนใช้งาน ต้องตั้ง default baud rate ของ ESP8266 เป็น 9600 bps ก่อน เสร็จแล้วต่อขา digital pin 2 เข้า Rx ของ ESP8266 และ pin3 เข้า Tx แล้วโหลด sketch นี้ลงไปที่ UNO

#include

SoftwareSerial EPS8266_Serial(3, 2); // UNO RX,TX

void setup() {

Serial.begin(9600); //USB Serial Port

EPS8266_Serial.begin(9600); //ESP8266 serial port

EPS8266_Serial.println("AT+GMR");

}

void loop() {

while (Serial.available())

EPS8266_Serial.write(Serial.read());

while (EPS8266_Serial.available())

Serial.write(EPS8266_Serial.read());

}

โหลด sketch นี้แล้ว ตั้ง baud rate เป็น 9600 ที่ serial monitor ตอนทดสอบนะครับ sketch นี้แค่อ่านเขียนค่าระหว่าง serial port กับ softserial ครับ

QUOTE 
ความคิดเห็นที่ #9
ธีรพงษ์

แต่ถ้าคุณอยากใช้ ESP8266-01 แทน UNO เลยก็ใช้ได้ครับ ผมใช้อยู่ แต่ผม write sketch ด้วย Arduino IDE ผ่าน USB to TTL เข้า ESP-01 เลยครับ

ไม่เคยลอง write sketch ด้วย Arduino IDE ผ่าน Arduino as ISP เข้า ESP-01 ครับ อย่างที่บอก ติดเรื่อง baud rate ทั้ง ESP เอง และ baud rate ในการเขียน sketch ของ IDE เอง ต้องไปศึกษาดูว่าตัว IDE มันตั้งค่า baud rate ตรงไหน ถ้าคุณอยากลองศึกษาดูก็ได้ครับ

สำหรับผม เสียเงินซื้อ adapter ไม่ถึงร้อย ประหยัดเวลาขึ้นเยอะครับ เอาเวลาไปศึกษาโค๊ดตัวอื่นดีกว่า

ถ้าคุณจะเอา ESP ไปใช้กับ Arduino 3.3V พวก pro micro 3.3v ก็จะมีปัญหาเดียวกัน เพราะ Arduiono 3.3v ใช้ clock speed ที่ 8MHz ทำให้มี baud rate สูงสุดที่ 57600 bps เท่านั้น

ดังนั้น ต้องถามว่าคุณอยากจะได้อะไรกันแน่

1. ใช้ Auduino IDE เขียน UNO sketch โหลดลง UNO แล้วใช้ ESP-01 ต่อ WiFi ให้ UNO โดยให้ UNO คุยกับ ESP-01 ผ่าน AT command

2. ใช้ Auduino IDE เขียน ESP8266 sketch โหลดลง ESP-01 โดยพยายามใช้ UNO เป็น programmer แบบนี้ ใช้ USB to TTL สะดวกกว่าเยอะครับ

QUOTE 
ความคิดเห็นที่ #10
เจ้าของร้าน

ใช่ครับ ใน arduino uno จะมีภาค usb ttl ซึ่งปกติจะต่อกับขา rx,tx ของ ic atmega328P เพื่อใช้ในการโปรแกรม

การโปรแกรม esp8266 จะผ่านทาง usb ttl ซึ่งถ้ามี arduino uno ก็สามาถใช้ส่วนนี้ต่อเพื่อโปรแกรมได้ ก็จะประหยัดได้นิดหน่อย

การใช้งานเพื่อที่จะไม่ชนกับขา arduino ก็ต้องถอด ic ออกก่อน ดังนั้น  arduino รุ่นที่เป็น smd จะใช้ฟังก์ชันนี้ไม่ได้ ก็ต้องซื้อ usb ttl เพิ่ม

การใช้โมดูล usb ttl แบบแยก ก็ต่อขาตำแหน่งเดียวกันกับแบบ arduino uno ดังนั้นถ้าใช้งานเป็นแล้ว ก็ใช้แบบไหนก็ได้

สำหรับ nodemcu ก็คือ esp8266 รุ่น esp-12E ที่รวม ภาคจ่ายไฟ + ภาค usb ttl + ขยายขาให้ทดลองได้ง่าย

ถ้าใช้ nodemcu ได้ ก็แสดงว่าใช้ esp8266 ได้แล้วครับ

แสดงความคิดเห็นที่ 1-10 จากทั้งหมด 18 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม