ESP32 RS485

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng giao tiếp RS485 với ESP32. Cụ thể, chúng ta sẽ học những khía cạnh sau:

Linh Kiện Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×Cáp USB Type-C
1×Module TTL to RS485
1×Dây Jumper
1×(Tùy chọn) Bộ Chuyển Đổi USB to RS485
1×(Tùy chọn) Cáp USB to RS485
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

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

Về Module TTL to RS485

Khi sử dụng giao tiếp serial trên ESP32 với các hàm như Serial.print(), Serial.read(), và Serial.write(), việc truyền dữ liệu xảy ra qua chân TX, trong khi việc nhận dữ liệu diễn ra thông qua chân RX. Những chân này hoạt động ở mức TTL, có nghĩa là chúng xử lý tín hiệu với phạm vi hạn chế. Do đó, đối với giao tiếp serial trên khoảng cách xa, việc chuyển đổi tín hiệu TTL sang chuẩn tín hiệu RS232, RS485, hoặc RS422 trở nên cần thiết.

Trong hướng dẫn này, chúng ta sẽ khám phá việc sử dụng RS485 (còn được gọi là RS-485) với ESP32 bằng cách sử dụng module TTL to RS485. Module này tạo điều kiện chuyển đổi tín hiệu TTL sang tín hiệu RS485 và ngược lại.

Sơ Đồ Chân

Module RS485 to TTL có hai giao diện:

  • Giao diện TTL (kết nối với ESP32):
    • Chân VCC: Chân nguồn này nên được kết nối với VCC (5V hoặc 3.3V).
    • Chân GND: Chân nguồn này nên được kết nối với GND (0V).
    • Chân RXD: Chân dữ liệu này nên được kết nối với chân TX của ESP32.
    • Chân TXD: Chân dữ liệu này nên được kết nối với chân RX của ESP32.
  • Giao diện RS485:
    • Chân D+ (A hoặc TR+): Chân này tạo điều kiện giao tiếp dữ liệu.
    • Chân D- (B hoặc TR-): Chân này được sử dụng để truyền dữ liệu.
    • Chân GND: Mặc dù tùy chọn, việc bao gồm chân này được khuyến khích mạnh mẽ để giảm thiểu nhiễu, đảm bảo hiệu suất tối ưu.
    rs-485 module sơ đồ chân
    image source: diyables.io

Sơ Đồ Kết Nối

ESP32 ttl to rs485 sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

Cách Lập Trình ESP32 để sử dụng module RS485

  • Khởi tạo giao diện Serial:
Serial2.begin(9600);

Code ESP32

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 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/esp32/esp32-rs485 */ void setup() { // start communication with baud rate 9600 Serial.begin(9600); // Serial Monitor Serial2.begin(9600, SERIAL_8N1, 16, 17); // RS485 // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on Serial if (Serial2.available()) { char data = Serial2.read(); // read the received character Serial.print(data); // print the recived data to Serial Monitor } }

Kiểm Thử

Bạn có thể thực hiện kiểm thử bằng cách gửi dữ liệu từ PC của bạn tới ESP32 qua RS-485 và ngược lại. Để làm điều này, hãy làm theo các bước dưới đây:

  • Kết nối ESP32 với PC của bạn qua cáp RS485-to-USB như dưới đây:
ESP32 rs485 to pc communication
  • Cài đặt một chương trình Terminal Serial như Tera Term hoặc PuTTY
  • Mở chương trình Serial Terminal và cấu hình các thông số Serial (cổng COM, tốc độ baud...)
  • Nhập một số dữ liệu từ Serial Terminal để gửi tới ESP32.
  • Nếu thành công, bạn sẽ thấy dữ liệu echo trên Serial Terminal.

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.

Bài hướng dẫn liên quan