아두이노 RS422에서 WiFi로 | Arduino RS422 to WiFi
이 가이드에서는 Arduino Uno R4 WiFi를 사용하여 Serial RS422에서 WiFi 변환기를 구축하는 방법을 탐구하겠습니다. 이 설정을 통해 Arduino는 시리얼 RS422 인터페이스에서 데이터를 읽고 이를 동일한 로컬 영역 네트워크(LAN) 내에서나 인터넷을 통해 원격으로 TCP 서버로 전송할 수 있습니다. 또한 TCP 서버에서 데이터를 받아 시리얼 RS422 인터페이스를 통해 다시 보낼 수도 있습니다.
이 단계들을 통해 아두이노를 사용하여 직렬 RS-422 장치와 TCP/IP 서버 사이에 다재다능한 통신 연결을 구축할 수 있습니다.
1 | × | Arduino UNO R4 WiFi | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | TTL to RS422 Module | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) RS422 to USB Cable | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino UNO R4 | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino UNO R4 | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino UNO R4 | Amazon | |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
아두이노에서 RS422와 TCP 통신 사용 방법을 모른다면, 다음 튜토리얼에서 그것들에 대해 배우십시오:
아두이노는 시리얼 RS422 인터페이스를 통해 시리얼 장치에 연결합니다.
아두이노는 TCP 서버(여러분의 PC에 있는 TCP 서버 소프트웨어 또는 TCP 서버로 프로그래밍된 다른 아두이노일 수 있음)에 연결하는 TCP 클라이언트로 작동합니다.
아두이노는 시리얼 RS422 인터페이스에서 데이터를 읽고 그것을 TCP 서버로 보냅니다.
아두이노는 TCP 연결에서 데이터를 읽고 그것을 시리얼 RS422 인터페이스로 보냅니다.
하드웨어 시리얼을 사용하는 경우의 연결도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
소프트웨어 시리얼을 사용하는 경우의 배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
#include <WiFiS3.h>
const char* WIFI_SSID = "YOUR_WIFI_SSID";
const char* WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
const char* TCP_SERVER_ADDR = "192.168.0.26";
const int TCP_SERVER_PORT = 1470;
WiFiClient TCP_client;
void setup() {
Serial.begin(9600);
Serial.println("Arduino: TCP CLIENT");
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("WiFi 모듈과의 통신 실패!");
while (true)
;
}
String fv = WiFi.firmwareVersion();
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
Serial.println("펌웨어를 업그레이드 해주세요");
}
Serial.print("SSID에 연결을 시도합니다: ");
Serial.println(WIFI_SSID);
while (WiFi.begin(WIFI_SSID, WIFI_PASSWORD) != WL_CONNECTED) {
delay(10000);
}
Serial.print("WiFi에 연결 됨 ");
Serial.println(WIFI_SSID);
if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT))
Serial.println("TCP 서버에 연결됨");
else
Serial.println("TCP 서버에 연결 실패");
}
void loop() {
if (TCP_client.connected()) {
if (TCP_client.available()) {
char c = TCP_client.read();
Serial.write(c);
}
if (Serial.available()) {
char c = Serial.read();
TCP_client.write(c);
}
} else {
Serial.println("연결이 끊어졌습니다");
TCP_client.stop();
if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT)) {
Serial.println("TCP 서버에 재연결됨");
} else {
Serial.println("TCP 서버에 재연결 실패");
delay(1000);
}
}
}
#include <WiFiS3.h>
#include <SoftwareSerial.h>
SoftwareSerial rs422(6, 7);
const char* WIFI_SSID = "YOUR_WIFI_SSID";
const char* WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
const char* TCP_SERVER_ADDR = "192.168.0.26";
const int TCP_SERVER_PORT = 1470;
WiFiClient TCP_client;
void setup() {
Serial.begin(9600);
rs422.begin(9600);
Serial.println("Arduino: TCP CLIENT");
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("WiFi 모듈과의 통신 실패!");
while (true)
;
}
String fv = WiFi.firmwareVersion();
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
Serial.println("펌웨어를 업그레이드해주세요");
}
Serial.print("SSID에 연결을 시도합니다: ");
Serial.println(WIFI_SSID);
while (WiFi.begin(WIFI_SSID, WIFI_PASSWORD) != WL_CONNECTED) {
delay(10000);
}
Serial.print("WiFi에 연결됨 ");
Serial.println(WIFI_SSID);
if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT))
Serial.println("TCP 서버에 연결됨");
else
Serial.println("TCP 서버에 연결 실패");
}
void loop() {
if (TCP_client.connected()) {
if (TCP_client.available()) {
char c = TCP_client.read();
rs422.write(c);
}
if (rs422.available()) {
char c = rs422.read();
TCP_client.write(c);
}
} else {
Serial.println("연결이 끊김");
TCP_client.stop();
if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT)) {
Serial.println("TCP 서버에 재연결됨");
} else {
Serial.println("TCP 서버에 재연결 실패");
delay(1000);
}
}
}
다음 흐름으로 데이터를 보내어 테스트를 할 수 있습니다:
그것을 하기 위해서는 아래 단계들을 따르세요:
상단의 배선도와 같이 TTL-to-RS422 모듈과 RS422-to-USB 케이블을 사용하여 PC에 아두이노 우노 R4 WiFi를 연결하세요.
ezTerm과 같은 TCP 서버 소프트웨어 프로그램을 설치하세요.
시리얼 프로그램을 열고 시리얼 파라미터(COM 포트, 보율 등)를 구성하세요.
TCP 서버 프로그램을 열고 TCP 서버로 구성한 다음, Listen 버튼을 클릭하세요.
출력은 다음과 같습니다:
C:\WINDOWS\system32>ipconfig
Windows IP Configuration
Ethernet adapter:
Subnet Mask . . . . . . . . . . . : 255.0.0.0
IPv4 Address. . . . . . . . . . . : 192.168.0.26
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
아두이노 코드에서 TCP 서버(당신의 PC)의 IP 주소를 업데이트하세요. 위 예시에서는: 192.168.0.26
아두이노 IDE에서 Upload 버튼을 클릭해 아두이노 보드에 코드를 컴파일하고 업로드하세요.
시리얼 프로그램에서 몇 가지 데이터를 입력해서 시리얼을 통해 아두이노로 보내세요.
성공하면, TCP 서버 소프트웨어에서 에코 데이터를 볼 수 있을 것입니다.
TCP 서버 프로그램에서 몇 가지 데이터를 입력해서 TCP를 통해 아두이노로 보내세요.
성공하면, 시리얼 프로그램에서 에코 데이터를 볼 수 있을 것입니다.
상업용 RS422-이더넷 변환기를 사용하고 싶다면, CSE-H55N2 시리얼 이더넷 변환기를 구입할 수 있습니다.
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.