การควบคุม ESP8266 ESP-01 ด้วย AT command
ESP-01 เป็นโมดูล WiFi โดยตัวมันเองจะมี SOC (System On a Chip) เป็นของตัวเอง ทำให้สามารถทำงานและรับอินพุตหรือส่งเอาต์พุตได้เองโดยไม่ต้องอาศัยไมโครคอนโทรลเลอร์อื่น ซึ่ง ESP8266 สามารถมีได้ถึง 9 GPIOs (General Purpose Input Output) ทั้งนี้ขึ้นอยู่กับรุ่น ดังนั้นเราสามารถนำมาประยุกต์ใช้สำหรับทำให้ไมโครคอนโทรลเลอร์ เช่น Arduino สามารถเชื่อมต่อกับ WiFi หรือจะโปรแกรมคำสั่งลงไปใน ESP8266 โดยตรงก็ได้เช่นกันESP8266 ESP-01 สามารถทำงานได้ 3 โหมด ดังนี้
- Access Point (AP) ทำหน้าที่เป็นตัวปล่อยสัญญาณ WiFi เพื่อให้อุปกรณ์อื่นสามารถเชื่อมต่อสื่อสารกับ ESP-01 ได้
- Station (STA) ทำหน้าที่เป็นอุปกรณ์ไปเชื่อมต่อกับตัวปล่อยสัญญาณ WiFi อื่น เพื่อใช้เครือข่ายไร้สาย ทำให้อุปกรณ์ที่อยู่ในเครือข่ายเดียวกันสามารถสื่อสารกับ ESP-01 ได้
- Both ทำหน้าที่ได้ทั้ง 2 โหมด คือ ถ้า ESP-01 ไม่สามารถเชื่อมต่อ WiFi ในโหมด STA ได้ ก็จะทำงานในโหมด AP แทน
ESP8266 จะติดตั้ง AT Firmware มาให้จากโรงงาน ทำให้ Arduino สามารถสั่งงาน ESP8266 ด้วย AT commands ผ่านการสื่อสารแบบ Serial ได้ทันทีโดยไม่ต้องเขียนโปรแกรมใด ๆ ลงไปใน ESP8266
ที่มา : https://www.amazon.co.uk/HiLetgo-ESP8266-Serial-Wireless-Transceiver/dp/B00O9DSZBA |
อุปกรณ์
- Arduino UNO
- ESP8266 ESP-01
- Buck Converter
การต่อวงจร
ESP-01 ต้องการไฟเลี้ยง 3.3v ประกอบด้วย Pin ต่าง ๆ ดังรูปที่มา : http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/esp8266-esp-01-pin-outs-and-schematics/ |
- Tx -> Tx (pin 1)
- Rx -> Rx (pin 0)
- Vcc -> 3.3v
- CH_PD -> 3.3v
- GND -> GND
การใช้งาน
- อัพโหลด Sketch ที่ฟังก์ชัน setup และ loop ไม่มีการทำงานใด (Bare Minimum) ไปยัง Arduino เพื่อให้มั่นใจว่าไม่มีโปรแกรมเดิมทำงานอยู่
- เปิดหน้าจอ Serial Monitor ตั้งค่า baud rate ไปที่ 115200 และตั้งโหมดเป็น Both NL & CR
- พิมพ์ AT แล้วกด enter ถ้ามีข้อความ OK ตอบกลับมา แสดงว่าสามารถใช้งานได้
ที่มา : https://www.arduinoall.com/article/21/%E0%B8%AA%E0%B8%AD%E0%B8%99-%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5-%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-arduino-wi-fi-module-esp8266
AT commands พื้นฐาน
1. STA Mode
AT+CWMODE=1
- 1 = STA
- 2 = AP
- 3 = Both
2. Check Mode
AT+CWMODE?
3. Connecting Wi-Fi Network
ในกรณีที่ ESP-01 ทำงานในโหมด STA จะเป็นจะต้องเชื่อมต่อกับเครือข่าย WiFi
AT+CWJAP
ใช้ตรวจสอบสัญญาณ WiFi ที่สามารถรับได้ทั้งหมด
AT+CWJAP= “SSID”,“Password”
ใช้เชื่อมต่อเครือข่าย WiFi
AT+CIFSR
ใชตรวจสอบหมายเลข IP Address ที่ได้รับจากการเชื่อมต่อกับเครือข่าย WiFi
4. Enable Connections
กำหนดโหมดในการเชื่อมต่อเป็นแบบหลายการเชื่อมต่อในกรณีที่ต้องการให้ ESP-01 เป็น Server
AT+CIPMUX=1
- 0 = Single
- 1 = Multiple
AT+CIPSERVER=1,80
ใช้เริ่มการทำงาน Server โดยใช้พอร์ต 80 และหมายเลขตัวแรกหมายถึงว่าต้องการให้ทำงานในโหมด close server mode (0) หรือ open server mode (1)
เมื่อใช้ web browser เชื่อมต่อมายัง ESP-01 โดยพิมพ์หมายเลข IP ของ ESP-01 ลงในช่องที่อยู่แล้วกด enter จะปรากฏ HTTP request message ขึ้นมาที่หน้าจอ serial monitor
ที่มา : http://www.instructables.com/id/Getting-Started-With-the-ESP8266-ESP-01/ |
จากนั้นสามารถส่งข้อมูลตอบกลับได้โดย
AT+CIPSEND=0,5
เลข 0 หมายถึง channel ที่จะใช้ส่งข้อมูลออกไป และ 5 คือจำนวน byte ของข้อมูล เมื่อกด enter จะปรากฏ ">" ขึ้นมาบนหน้าจอ Serial Monitor จากนั้นพิมพ์ Hello กด enter แล้วรอจนขึ้นข้อควา SEND OK แต่ข้อความจะยังไม่ปรากฏที่หน้าจอ Web browser ต้องปิดการเชื่อมต่อด้วยคำสั่ง
AT+CIPCLOSE=0
เลข 0 คือ channel ที่ต้องการปิดการเชื่อมต่อ
สามารถศึกษา AT commands เพิ่มเติมได้จาก http://www.electrodragon.com/w/Wi07c หรือใช้โปรแกรมช่วยพิมพ์ AT commands จาก arduinoall.com
บรรณานุกรม
- JayconSystem. (2016). GETTING STARTED WITH THE ESP8266 ESP-01. เข้าถึงได้จาก http://www.instructables.com/id/Getting-Started-With-the-ESP8266-ESP-01/
- Arduinoall. (2558). สอน วิธี ใช้งาน Arduino Wi-Fi Module ESP8266. เข้าถึงได้จาก https://www.arduinoall.com/article/21/%E0%B8%AA%E0%B8%AD%E0%B8%99-%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5-%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-arduino-wi-fi-module-esp8266
AT+CWJAP -> AT+CWLAP น่าจะคำสั่งนี้นะครับ
ตอบลบใช้ตรวจสอบสัญญาณ WiFi ที่สามารถรับได้ทั้งหมด