1. Trang chủ
  2. » Tất cả

Hướng Dẫn Sử Dụng Module Wifi ESP8266 V1 Với Arduino Uno __ Bài viết __ STDIO

5 41 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 662,34 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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, A

Trang 1

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

  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

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

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

 BÀI CÙNG LOẠI

Sử Dụng Arduino IDE Lập Trình ESP8266 NodeMCU Hướng Dẫn Sử Dụng Module RF315 Truyền Nhận Tín Hiệu Qua Sóng Vô Tuyến Bằng Arduino Giới Thiệu Intel Galileo

Ba Định Luật Cơ Bản Của Dòng Điện 

Điện Trở - Resistor

Có hai cách thiết kế

phần mềm Cách thứ nhất là làm cho nó thật đơn giản để rõ ràng, không có chỗ nào thiếu sót Cách thứ hai là làm cho nó thật phức tạp để không có chỗ thiếu sót nào rõ ràng C.A.R Hoare

THAM GIA STDIO Đăng ký thành viên để sử dụng đầy đủ dịch vụ, thảo luận, học hỏi tại STDIO

HỌC LẬP TRÌNH C/C++ TẠI STDIO TRAINING Bạn muốn học lập trình C/C++ từ đầu, bài bản đến chuyên sâu?

TÌM HIỂU & ĐĂNG KÝ

Trang 2

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

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

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

  

Trang 3

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)

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    (*STDIO_DELAY_SEED)

18. #define STDIO_DELAY_2X    (*STDIO_DELAY_SEED)

19. #define STDIO_DELAY_3X    (*STDIO_DELAY_SEED)

20. #define STDIO_DELAY_4X    (*STDIO_DELAY_SEED)

21. #define STDIO_DELAY_5X    (*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.         "<h1>STDIO.VN ESP8266 DEMO</h1>"

52.         "<form action='' method='GET'>"

53.       "<input type='radio' name='LED' name='STDIO' value='STDIO_ON' /> LED ON<br/>"

54.       "<input type='radio' name='LED' name='STDIO' value='STDIO_OFF' /> LED OFF<br/>"

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.   {

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

  

Trang 4

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:

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

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

  

Trang 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 hoà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 sử dụng module wifi esp8266 v1 cách sử dụng chip wifi esp8266 v1 module wifi esp8266 với arduino uno

 VỀ TÁC GIẢ

TRẦN THỊ THU HIỀN LẬP TRÌNH VIÊN TẠI GAMELOFT

TÌM HIỂU TÔI

Đ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 quá 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

Bài Viết

Nhật Ký

STDIO?

Liên Hệ

SẢN PHẨM & DỊCH VỤ

Đào Tạo Bugs Rulek STDIO Starter Kit v3

CỘNG ĐỒNG

STDIO Fanpage STDIO Tube

Chính Sách Bảo Mật Chính Sách Hoạt Động

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 - DEVELOPER@STDIO.VN 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

©STDIO, 2013-2017

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

  

Ngày đăng: 09/04/2017, 11:00

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm