ESP8266 RS422

Trong hướng dẫn này, chúng ta sẽ đi sâu vào cách thiết lập giao tiếp RS422 với ESP8266. Chúng ta sẽ đi qua các bước sau một cách chi tiết:

Hướng dẫn cũng cung cấp chỉ dẫn cho cả Hardware SerialSoftwareSerial.

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×TTL to RS422 Module
1×dây jumper
1×(Tùy chọn) RS422 to USB Cable
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)

Về Mô-đun TTL sang RS-422

Khi sử dụng giao tiếp nối tiếp trên ESP8266 thông qua các hàm như Serial.print(), Serial.read(), và Serial.write(), ESP8266 sẽ phát dữ liệu qua chân TX và nhận dữ liệu qua chân RX. Các chân này hoạt động ở mức TTL, có nghĩa là tín hiệu chúng xử lý có phạm vi giới hạn. Do đó, để giao tiếp nối tiếp ở khoảng cách xa hơn, cần chuyển đổi tín hiệu TTL sang các chuẩn RS-232, RS-422 hoặc RS-485.

Trong hướng dẫn này, chúng ta sẽ đi sâu vào việc sử dụng RS422 (hay còn gọi là RS-422) với ESP8266 bằng cách dùng một mô-đun TTL sang RS422. Mô-đun này cho phép chuyển đổi tín hiệu TTL thành tín hiệu RS422 và ngược lại.

Bố trí chân

Mô-đun RS422 sang TTL có hai giao diện:

  • Giao diện TTL (kết nối với ESP8266) bao gồm 4 chân
    • Chân VCC: chân nguồn, cần được nối với VCC (5V, hoặc 3.3V)
    • Chân GND: chân nguồn, cần được nối với GND (0V)
    • Chân RXD: chân dữ liệu, cần được nối với chân TX của ESP8266
    • Chân TXD: chân dữ liệu, cần được nối với chân RX của ESP8266
  • Giao diện RS422 gồm các chân sau:
    • Chân A (R+): chân RX+ của module, kết nối chân này với chân TX+ (T+ hoặc chân Y) của thiết bị RS422 khác.
    • Chân B (R-): chân RX- của module, kết nối chân này với chân TX- (T- hoặc chân Z) của thiết bị RS422 khác.
    • Chân Y (T+): chân TX+ của module, kết nối chân này với chân RX+ (R+ hoặc chân A) của thiết bị RS422 khác.
    • Chân Z (T-): chân TX- của module, kết nối chân này với chân RX- (R- hoặc chân B) của thiết bị RS422 khác.
    sơ đồ chân của mô-đun rs-422
    image source: diyables.io

Sơ đồ đấu dây

  • Sơ đồ nối dây khi sử dụng giao tiếp nối tiếp phần cứng
sơ đồ đấu nối ESP8266 NodeMCU ttl sang rs422

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

  • Sơ đồ đấu dây khi sử dụng serial bằng phần mềm
sơ đồ kết nối ESP8266 NodeMCU từ rs-422 sang ttl

This image is created using Fritzing. Click to enlarge image

Cách Lập Trình ESP8266 để Sử Dụng Mô-đun RS422

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

Serial.begin(9600);
  • Nếu bạn sử dụng SoftwareSerial, bạn cần bao gồm thư viện và khai báo một đối tượng SoftwareSerial:
#define RX_PIN D7 #define TX_PIN D6 // Define the SoftwareSerial objects and their pins SoftwareSerial rs422(RX_PIN, TX_PIN);

Mã ESP8266 cho Serial phần cứng

/* * 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-rs422 */ void setup() { // start communication with baud rate 9600 Serial.begin(9600); // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on Serial if (Serial.available()) { char data = Serial.read(); // read the received character Serial.print(data); // echo back to data to the sender } }

Mã ESP8266 cho Software Serial

/* * 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-rs422 */ #include <SoftwareSerial.h> #define RX_PIN D7 #define TX_PIN D6 // define the SoftwareSerial object and their pins SoftwareSerial rs422(RX_PIN, TX_PIN); void setup() { // start communication with baud rate 9600 rs422.begin(9600); // wait a moment to allow serial ports to initialize delay(100); } void loop() { // Check if there's data available on rs422 if (rs422.available()) { char data = rs422.read(); // read the received character rs422.print(data); // echo back to data to the sender } }

Kiểm thử

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

  • Kết nối ESP8266 với PC của bạn bằng cáp RS422-to-USB như bên dưới:
giao tiếp rs-422 giữa ESP8266 NodeMCU và pc
  • Cài đặt một chương trình Terminal Serial như Tera Term hoặc PuTTY
  • Mở chương trình Terminal Serial và cấu hình các tham số Serial (cổng COM, tốc độ baud...)
  • Nhập dữ liệu từ Terminal Serial để gửi đến ESP8266.
  • Nếu thành công, bạn sẽ thấy dữ liệu phản hồi hiển thị trên Terminal Serial.

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