4/9/2017
Hướng Dẫn Sử Dụng Module Wifi ESP8266 V1 Với Arduino Uno :: Bài viết :: STDIO
ĐÀO TẠO
BÀI VIẾT
STDIO?
:: BÀI VIẾT
NỘI DUNG BÀI VIẾT
Tìm bài viết
XEM TRÊN DI ĐỘNG
BOOKMARK
#540 7 THÁNG TRƯỚC 12773
Hướng Dẫn Sử Dụng Module Wifi ESP8266 V1 Với
Arduino Uno
ĐIỆN TỬC/C++HTMLSTDIOMẠNG MÁY TÍNHSẢN PHẨM PHẦN CỨNG
TRẦN THỊ THU HIỀN ESP8266 là một chip tích hợp cao - System on Chip (SoC), có khả năng xử lý và lưu trữ
tốt, cung cấp khả năng vượt trội để trang bị thêm tính năng wifi cho các hệ thống khác hoặc đóng vai trò
như một giải pháp độc lập. ESP8266 cung cấp khả năng kết nối mạng wifi đầy đủ và khép kín, bạn có thể
sử dụng nó để tạo một web server đơn giản hoặc sử dụng như một access point.
Giới thiệu
ESP8266 là một chip tích hợp cao - System on Chip (SoC), có khả năng xử lý và lưu trữ tốt, cung cấp khả năng
vượt trội để trang bị thêm tính năng wifi cho các hệ thống khác hoặc đóng vai trị như một giải pháp độc lập.
BÀI CÙNG LO
Sử Dụng Arduino IDE
ESP8266 NodeMCU
Hướng Dẫn Sử Dụng
RF315 Truyền Nhận
Sóng Vơ Tuyến Bằng
Giới Thiệu Intel Galile
Ba Định Luật Cơ Bản
Điện
Điện Trở - Resistor
Có hai cách
phần mềm
nhất là làm
đơn giản để
khơng có c
sót. Cách t
làm cho nó
tạp để khơn
thiếu sót nà
C.A.R. Hoa
Module wifi ESP8266 v1 cung cấp khả năng kết nối mạng wifi đầy đủ và khép kín, bạn có thể sử dụng nó để
tạo một web server đơn giản hoặc sử dụng như một access point.
Tiền đề bài viết
Bài viết được thực hiện theo đặt hàng của STDIO Training và STDIO Electronics, giúp bạn đọc hiểu rõ cách
thức hoạt động và thao tác với module Wifi ESP8266 v1.
Đối tượng hướng đến
Bạn đọc bài viết này để tiếp cận trọn vẹn bắt buộc phải có các khối kiến thức vững về:
Lập trình C/C++.
Kiến trúc phần mềm.
Lập trình Arduino.
Lập trình web front-end.
Mạng máy tính, giao thức HTTP.
Thao tác với tập lệnh AT.
THAM GI
Đăng ký thành viê
dụng đầy đủ dịch
luận, học hỏi tại S
HỌC LẬP TRÌN
TẠI STDIO TRA
Bạn muốn học lậ
C/C++ từ đầu, bà
chuyên sâu?
TÌM HIỂU & Đ
Thông số kỹ thuật
Wifi 802.11 b/g/n
Wifi 2.4 GHz, hỗ trợ WPA/WPA2
Chuẩn điện áp hoạt động 3.3V
Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến 115200
Có 3 chế độ hoạt động: Client, Access Point, Both Client and Access Point
Hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK, WPA2_PSK, WPA_WPA2_PSK
Hỗ trợ cả 2 giao tiếp TCP và UDP
Tích hợp cơng suất thấp 32-bit CPU có thể được sử dụng như là bộ vi xử lý ứng dụng
SDIO 1.1 / 2.0, SPI, UART
Làm việc như các máy chủ có thể kết nối với 5 máy con
Sơ đồ chân và các chức năng
/>
1/5
4/9/2017
Hướng Dẫn Sử Dụng Module Wifi ESP8266 V1 Với Arduino Uno :: Bài viết :: STDIO
URXD(RX) — dùng để nhận tín hiệu trong giao tiếp UART với vi điều khiển
VCC — đầu vào 3.3V
GPIO 0 — kéo xuống thấp cho chế độ upload bootloader
RST — chân reset cứng của module, kéo xuống mass để reset
GPIO 2 — thường được dùng như một cổng TX trong giao tiếp UART để debug lỗi
CH_PD — kích hoạt chip, sử dụng cho Flash Boot và updating lại module, nối với mức cao
GND — nối với mass
UTXD (TX) — dùng để truyền tín hiệu trong giao tiếp UART với vi điều khiển
Sơ đồ lắp đặt mạch Arduino giao tiếp với ESP8266
điều khiển bật tắt LED thông qua wifi
Ở đây tôi sử dụng trực tiếp LED nối với chân D13 được tích hợp sẵn trên board Arduino.
Giới thiệu
Tiền đề bài viết
Đối tượng hướng đến
Thông số kỹ thuật
Sơ đồ chân và các chức năng
Sơ đồ lắp đặt mạch Arduino giao tiếp
với ESP8266 điều khiển bật tắt LED thông qua wifi
Môi trường thử nghiệm
Những điểm cần lưu ý khi nạp code cho Arduino
Uno để giao tiếp với ESP8266
Code ESP8266 làm web server gửi lệnh bật tắt
LED 13
Chạy thử nghiệm
Kết nối đến module wifi ESP8266 v1
Truy cập vào IP của module wifi ESP8266 (mặc
định là 192.168.4.1) và kiểm tra tính năng
Lời cám ơn
Mơi trường thử nghiệm
Trình duyệt web Mozilla Firefox 48.0.1
Window 10 Pro
Arduino IDE 1.6.4
Module wifi ESP 8266 v1
Board Arduino Uno
Đối với các mơi trường khác bạn vui lịng tự điều chỉnh cho phù hợp.
Những điểm cần lưu ý khi nạp code cho Arduino Uno
để giao tiếp với ESP8266
Arduino Uno nạp code bằng bootloader sử dụng USB UART. Arduino Uno gửi lệnh điều khiển (tập lệnh AT) cho
ESP8266 cũng bằng giao tiếp UART. Tuy nhiên board Arduino chỉ có 1 chân RX và 1 chân TX cho phép thực
hiện giao tiếp UART. Điều đó dẫn đến 2 sự lựa chọn:
1. Sử dụng chân RX và TX có sẵn trên Arduino để nạp code sau khi nạp code xong thì mới kết nối 2 chân
đó với ESP8266. Với phương pháp này bạn phải thêm một khoảng thời gian delay ở hàm setup() để đảm
bảo là sau khi kết nối ESP8266 với Arduino, thì ESP8266 vẫn nhận được đầy đủ các tập lệnh AT từ
Arduino. Tuy nhiên, bạn không thể debug qua cổng Serial do cổng này đang đóng vai trị kết nối với
ESP8266.
2. Sử dụng SoftwareSerial để giả lập thêm 1 cổng Serial nữa để gửi tập lệnh AT cho ESP8266. Thư viện
SoftwareSerial đã được trang bị sẵn trong Arduino IDE nên bạn không cần phải tải thêm. Với cách này
/>
2/5
4/9/2017
Hướng Dẫn Sử Dụng Module Wifi ESP8266 V1 Với Arduino Uno :: Bài viết :: STDIO
thì bạn có thể debug thơng qua Serial tuy nhiên code sẽ phức tạp hơn.
Ở ví dụ dưới đây tơi chọn phương án thứ nhất và chọn thời gian delay là 5s để kết nối chân TX và RX của
Arduino với chân RX và TX của ESP8266 ngay sau khi nạp code thành công.
Code ESP8266 làm web server gửi lệnh bật tắt LED 13
Bạn có thể download code mẫu tại đây hoặc sao chép từ bên dưới (khuyến khích tải thay vì sao chép để tránh
các vấn đề về Unicode).
Giới thiệu
Tiền đề bài viết
Đối tượng hướng đến
Thông số kỹ thuật
Sơ đồ chân và các chức năng
Sơ đồ lắp đặt mạch Arduino giao tiếp
với ESP8266 điều khiển bật tắt LED thông qua wifi
Môi trường thử nghiệm
Những điểm cần lưu ý khi nạp code cho Arduino
Uno để giao tiếp với ESP8266
Code ESP8266 làm web server gửi lệnh bật tắt
LED 13
Chạy thử nghiệm
Kết nối đến module wifi ESP8266 v1
Truy cập vào IP của module wifi ESP8266 (mặc
định là 192.168.4.1) và kiểm tra tính năng
Lời cám ơn
1. #define LED_PIN 13
2.
3. #define CMD_SEND_BEGIN "AT+CIPSEND=0"
4. #define CMD_SEND_END "AT+CIPCLOSE=0"
5.
6. #define STDIO_PROTOCOL_HTTP 80
7. #define STDIO_PROTOCOL_HTTPS 443
8. #define STDIO_PROTOCOL_FTP 21
9. #define STDIO_PROTOCOL_CURRENT STDIO_PROTOCOL_HTTP
10.
11. #define STDIO_CHAR_CR 0x0D
12. #define STDIO_CHAR_LF 0x0A
13.
14. #define STDIO_STRING_EMPTY ""
15.
16. #define STDIO_DELAY_SEED 1000
17. #define STDIO_DELAY_1X (1*STDIO_DELAY_SEED)
18. #define STDIO_DELAY_2X (2*STDIO_DELAY_SEED)
19. #define STDIO_DELAY_3X (3*STDIO_DELAY_SEED)
20. #define STDIO_DELAY_4X (4*STDIO_DELAY_SEED)
21. #define STDIO_DELAY_5X (5*STDIO_DELAY_SEED)
22.
23. bool hasRequest = false;
24.
25. void setup()
26. {
27. delay(STDIO_DELAY_5X);
28. Serial.begin(115200);
29.
30. pinMode(LED_PIN, OUTPUT);
31. digitalWrite(LED_PIN, LOW);
32.
33. initESP8266();
34. }
35.
36. void loop()
37. {
38. while(Serial.available())
39. {
40. bufferingRequest(Serial.read());
41. }
42.
43. if(hasRequest == true)
44. {
45. String htmlResponse = "<!doctype html>"
46. "<html>"
47. "<head>"
48. "<title>STDIO.VN ESP8266 DEMO</title>"
49. "</head>"
50. "<body>"
51. "
STDIO.VN ESP8266 DEMO
"
52. "<form action='' method='GET'>"
53. "<input type='radio' name='LED' name='STDIO' value='STDIO_ON' /> LED ON
"
54. "<input type='radio' name='LED' name='STDIO' value='STDIO_OFF' /> LED OFF
"
55. "<input type='submit' value='Submit' />"
56. "</form>"
57. "</body>"
58. "</html>";
59.
60. String beginSendCmd = String(CMD_SEND_BEGIN) + "," + htmlResponse.length();
61. deliverMessage(beginSendCmd, STDIO_DELAY_1X);
62. deliverMessage(htmlResponse, STDIO_DELAY_1X);
63. deliverMessage(CMD_SEND_END, STDIO_DELAY_1X);
64. hasRequest = false;
65. }
66. }
67.
68. void initESP8266()
69. {
70. deliverMessage("AT+RST", STDIO_DELAY_2X);
71. deliverMessage("AT+CWMODE=2", STDIO_DELAY_3X);
72. deliverMessage("AT+CWSAP=\"STDIO_ESP8266\",\"STDIOElectronics\",1,4", STDIO_DELAY_3X);
73. deliverMessage("AT+CIFSR", STDIO_DELAY_1X);
74. deliverMessage("AT+CIPMUX=1", STDIO_DELAY_1X);
75. deliverMessage(String("AT+CIPSERVER=1,") + STDIO_PROTOCOL_CURRENT, STDIO_DELAY_1X);
76. }
77.
78. void bufferingRequest(char c)
79. {
80. static String bufferData = STDIO_STRING_EMPTY;
81.
82. switch (c)
83. {
/>
3/5
4/9/2017
Hướng Dẫn Sử Dụng Module Wifi ESP8266 V1 Với Arduino Uno :: Bài viết :: STDIO
84. case STDIO_CHAR_CR:
85. break;
86. case STDIO_CHAR_LF:
87. {
88. STDIOProcedure(bufferData);
89. bufferData = STDIO_STRING_EMPTY;
90. }
91. break;
92. default:
93. bufferData += c;
94. }
95. }
96.
97. void STDIOProcedure(const String& command)
98. {
99. hasRequest = command.startsWith("+IPD,");
100.
101. if(command.indexOf("STDIO_OFF") != ‐1)
102. {
103. digitalWrite(LED_PIN, LOW);
104. }
105. else if(command.indexOf("STDIO_ON") != ‐1)
106. {
107. digitalWrite(LED_PIN, HIGH);
108. }
109. }
110.
111. void deliverMessage(const String& msg, int dt)
112. {
113. Serial.println(msg);
114. delay(dt);
115. }
Chạy thử nghiệm
Lần lượt thực hiện các bước sau để kiểm tra việc điều khiển bật tắt LED 13 thông qua wifi với module
ESP8266
Kết nối đến thiết bị và kiểm tra tín hiệu
Truy cập vào địa chỉ IP của module wifi ESP8266 (mặc định là 192.168.4.1) và kiểm tra tính năng
Kết nối đến module wifi ESP8266 v1
Mở command prompt (Start > Run gõ cmd) và gõ lệnh sau để kiểm tra tín hiệu kết nối.
1. ping 192.168.4.1
Nếu kết nối thành cơng bạn sẽ nhận được kết quả sau:
Giới thiệu
Tiền đề bài viết
Đối tượng hướng đến
Thông số kỹ thuật
Sơ đồ chân và các chức năng
Sơ đồ lắp đặt mạch Arduino giao tiếp
với ESP8266 điều khiển bật tắt LED thông qua wifi
Môi trường thử nghiệm
Những điểm cần lưu ý khi nạp code cho Arduino
Uno để giao tiếp với ESP8266
Code ESP8266 làm web server gửi lệnh bật tắt
LED 13
Chạy thử nghiệm
Kết nối đến module wifi ESP8266 v1
Truy cập vào IP của module wifi ESP8266 (mặc
định là 192.168.4.1) và kiểm tra tính năng
Lời cám ơn
Truy cập vào IP của module wifi ESP8266 (mặc định là
192.168.4.1) và kiểm tra tính năng
Trong trường hợp này tơi dùng trình duyệt web Google Chrome 50+ để kiểm tra.
Lời cám ơn
/>
4/5
4/9/2017
Hướng Dẫn Sử Dụng Module Wifi ESP8266 V1 Với Arduino Uno :: Bài viết :: STDIO
Cám ơn các chuyên gia đã hỗ trợ cho tôi các kiến thức để hoàn tất bài viết này:
La Kiến Vinh về kiến thức mạng máy tính và website, C/C++ và mã máy.
Vũ Quang Huy về các vấn đề tối ưu hóa và tổ chức kiến trúc phần mềm.
Phạm Tấn Khải về các giao thức và vấn đề chuyên sâu của điện, điện tử.
Chân thành cám ơn STDIO Training và STDIO Electronics đã hỗ trợ tôi các thiết bị cần thiết để tơi hồn
tất bài viết này.
Tags
hướng dẫn sử dụng module wifi esp8266 v1 với arduino uno
cách sử dụng chip wifi esp8266 v1
sử dụng module wifi esp8266 v1
module wifi esp8266 với arduino uno
VỀ TÁC GIẢ
TRẦN THỊ THU HIỀN
TÌM HIỂU TƠI
LẬP TRÌNH VIÊN TẠI GAMELOFT
Đam mê khoa học nền tảng để giải quyết các vấn đề dài hạn hơn. Thơng qua q trình
được học tập tại trường ĐH Khoa học tự nhiên và quá trình đào tạo về lập trình tại STDIO
tơi được động viên để tạo ra các giải pháp dài hạn giải quyết các vấn đề cho tương lai dựa
vào nền tảng mà bản thân mình có.
Cơng nghệ và ngơn ngữ lập trình được sinh ra như thế nào?
Chọn học lập trình từ nền tảng - Chọn STDIO Training.
NỀN TẢNG QUYẾT ĐỊNH TẤT CẢ
THẢO LUẬN
TRANG CHÍNH
SẢN PHẨM & DỊCH VỤ
CỘNG ĐỒNG
Chính Sách Bảo Mật
Bài Viết
Đào Tạo
STDIO Fanpage
Chính Sách Hoạt Động
Nhật Ký
Bugs
STDIO Tube
STDIO?
Giới thiệu
Rulek
Tiền đề bài viết
Liên Hệ
Đối tượng hướng đến
STDIO Starter Kit v3
Thông số kỹ thuật
Sơ đồ chân và các chức năng
Sơ đồ lắp đặt mạch Arduino giao tiếp
với ESP8266 điều khiển bật tắt LED thông qua wifi
Môi trường thử nghiệm
Những điểm cần lưu ý khi nạp code cho Arduino
Uno để giao tiếp với ESP8266
CÔNG TY TNHH STDIO - A18-C18, TRUNG ĐƠNG PLAZA, 30, TRỊNH ĐÌNH THẢO, HỊA THẠNH, TÂN PHÚ, HỒ CHÍ MINH
09.333.101.28 -
383/1 QUANG TRUNG, PHƯỜNG 10, QUẬN GỊ VẤP, THÀNH PHỐ HỒ CHÍ MINH
SỐ GIẤY PHÉP ĐKKD: 0311563559 DO SỞ KẾ HOẠCH VÀ ĐẦU TƯ TPHCM CẤP NGÀY 23/02/2012
Code ESP8266 làm web server gửi lệnh bật tắt
LED 13
Chạy thử nghiệm
Kết nối đến module wifi ESP8266 v1
©STDIO, 2013-2017
Truy cập vào IP của module wifi ESP8266 (mặc
định là 192.168.4.1) và kiểm tra tính năng
Lời cám ơn
/>
5/5