ESP8266 Trình theo dõi nối tiếp

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Giới thiệu về Serial Monitor

Serial Monitor là một công cụ có trong Arduino IDE. Nó có hai chức năng:

  • ESP8266 sang PC: Nhận dữ liệu từ ESP8266 và hiển thị trên màn hình. Thông thường được dùng cho gỡ lỗi và giám sát.
  • Từ PC đến Arduino: Gửi lệnh từ PC đến ESP8266.

Chúng ta PHẢI kết nối ESP8266 với PC bằng cáp USB để sử dụng Serial Monitor. Chính cáp này được dùng để nạp mã cho ESP8266, và dữ liệu được trao đổi giữa Serial Monitor và ESP8266 thông qua nó.

Cách Sử Dụng Serial Monitor

Mở Trình theo dõi nối tiếp

Nhấp vào biểu tượng Serial Monitor ở phía bên phải của Arduino IDE.

Arduino ide - cách mở serial monitor

Các mục trên Serial Monitor

  • Bảng điều khiển đầu ra: Hiển thị dữ liệu nhận được từ ESP8266.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Ô checkbox cho tự động cuộn: Lựa chọn giữa bật tự động cuộn hoặc tắt tự động cuộn.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Cung cấp một hộp kiểm để hiển thị dấu thời gian: một tùy chọn để hiển thị dấu thời gian trước dữ liệu hiển thị trên Serial Monitor.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Nút Xóa Đầu ra: Xóa toàn bộ văn bản khỏi bảng điều khiển đầu ra.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Chọn tốc độ baud: Chọn tốc độ truyền thông (baud rate) giữa ESP8266 và máy tính. 2. Giá trị này PHẢI khớp với giá trị được sử dụng trong mã ESP8266 (trong hàm Serial.begin()).
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Lưu ý:

Khi chúng ta chọn tốc độ baud, ngay cả khi giá trị này không bị thay đổi, ESP8266 sẽ được đặt lại. Do đó, đây là một cách để đặt lại ESP8266.

  • Ô nhập văn bản: Người dùng có thể gõ các ký tự sẽ được gửi tới ESP8266.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Lựa chọn kết thúc:
    • Chọn các ký tự sẽ được thêm vào dữ liệu gửi tới Arduino:
    • Không có ký tự kết thúc dòng: không thêm ký tự nào
    • Dòng xuống: thêm ký tự xuống dòng (LF, hoặc '\n')
    • Ký tự CR: thêm ký tự CR (CR, hoặc '\r')
    • Cả NL và CR: thêm cả hai ký tự xuống dòng và CR (CRLF, hoặc '\r\n')
    COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  
    • Nhấn nút Gửi sẽ khiến Trình theo dõi nối tiếp gửi dữ liệu trong ô văn bản, kèm theo các ký tự kết thúc, tới ESP8266.
    COM6
    Send
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

ESP8266 Đến PC

Đặt tốc độ baud và khởi động cổng Serial bằng hàm Serial.begin() để truyền dữ liệu từ ESP8266 sang PC.

Serial.begin(baudrate);
  • Sử dụng Serial.println("Xin chào thế giới!").
  • Gửi dữ liệu đến Serial Monitor bằng một trong các hàm sau: Serial.print(), Serial.println(), Serial.write().
  • Ví dụ, bạn có thể gửi “Xin chào thế giới!” tới Serial Monitor bằng cách sử dụng Serial.println("Xin chào thế giới!").
Serial.println("Hello World!");

Ví dụ sử dụng

Trong trường hợp này, chúng ta sẽ truyền “ArduinoGetStarted.com” từ ESP8266 đến Serial Monitor mỗi giây một lần.

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp8266/esp8266-serial-monitor */ void setup() { Serial.begin(9600); } void loop() { Serial.println("ArduinoGetStarted.com"); delay(1000); }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Hãy xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu tiên bạn sử dụng ESP8266.
  • Nối các thành phần như được hiển thị trong sơ đồ.
  • Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch ESP8266 phù hợp, ví dụ NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng.
  • Sao chép mã nguồn và mở nó bằng Arduino IDE.
  • Nhấp nút Upload trên Arduino IDE để biên dịch và tải mã nguồn lên ESP8266.
  • Mở Serial Monitor.
  • Chọn tốc độ baud là 9600.
  • Xem đầu ra trên Serial Monitor.
COM6
Send
ArduinoGetStarted.com ArduinoGetStarted.com ArduinoGetStarted.com ArduinoGetStarted.com
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Xem xét thay thế hàm Serial.println() bằng hàm Serial.print().

Từ PC đến ESP8266

Cách gửi dữ liệu từ máy tính đến Arduino và đọc nó trên ESP8266

Nhập văn bản vào Serial Monitor và nhấn nút Gửi.

Thiết lập tốc độ baud và khởi động cổng Serial bằng mã ESP8266 sau đây:

  • Đọc dữ liệu từ cổng nối tiếp

Lấy dữ liệu từ cổng Serial bằng đoạn mã ESP8266 dưới đây:

  • Xử lý dữ liệu

Xử lý dữ liệu với sự trợ giúp của mã ESP8266 dưới đây:

Serial.begin(baudrate);
  • Xác nhận xem dữ liệu có sẵn hay không.
if(Serial.available()) { // TODO }
String data = Serial.readStringUntil("\r\n");

Ví dụ sử dụng

Trong ví dụ này, chúng ta sẽ gửi các lệnh từ Serial Monitor đến ESP8266 để kích hoạt hoặc vô hiệu hóa đèn LED tích hợp. Các lệnh như sau:

  • “ON”: để bật đèn LED
  • “OFF”: để tắt đèn LED

ESP8266 làm thế nào để nhận diện một lệnh đầy đủ? Ví dụ, khi chúng ta gửi “OFF”, ESP8266 làm thế nào để phân biệt giữa “O”, “OF”, và “OFF”?

Khi gửi một lệnh, chúng tôi sẽ thêm ký tự xuống dòng ('\\n') bằng cách chọn tùy chọn “newline” trên Serial Monitor. ESP8266 sẽ đọc dữ liệu cho đến khi gặp ký tự xuống dòng. Ký tự này được gọi là một dấu phân cách.

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp8266/esp8266-serial-monitor */ void setup() { Serial.begin(9600); pinMode(LED_BUILTIN, OUTPUT); // set the digital pin as output: } void loop() { if(Serial.available()) // if there is data comming { String command = Serial.readStringUntil('\n'); // read string until meet newline character if(command == "ON") { digitalWrite(LED_BUILTIN, HIGH); // turn on LED Serial.println("LED is turned ON"); // send action to Serial Monitor } else if(command == "OFF") { digitalWrite(LED_BUILTIN, LOW); // turn off LED Serial.println("LED is turned OFF"); // send action to Serial Monitor } } }

Hướng dẫn từng bước

  • Nối các bộ phận như được hiển thị trong sơ đồ.
  • Kết nối mạch ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bảng ESP8266 phù hợp, ví dụ NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
  • Sao chép mã và mở nó trong Arduino IDE.
  • Nhấp vào nút Upload để tải mã lên ESP8266.
  • Mở Serial Monitor.
  • Đặt tốc độ baud là 9600 và chọn tùy chọn xuống dòng.
  • “ON” hoặc “OFF” và nhấn nút Send.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Kiểm tra đèn LED tích hợp trên bo mạch ESP8266. Trạng thái của nó sẽ là BẬT hoặc TẮT.
  • Chúng ta cũng có thể xem trạng thái của đèn LED trên Serial Monitor.
COM6
Send
LED is turned ON
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Nhập các lệnh “ON” hoặc “OFF” một vài lần.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.