아두이노 RS422에서 WiFi로
이 가이드에서는 Arduino Uno R4 WiFi를 사용하여 Serial RS422에서 WiFi 변환기를 구축하는 방법을 탐구하겠습니다. 이 설정을 통해 Arduino는 시리얼 RS422 인터페이스에서 데이터를 읽고 이를 동일한 로컬 영역 네트워크(LAN) 내에서나 인터넷을 통해 원격으로 TCP 서버로 전송할 수 있습니다. 또한 TCP 서버에서 데이터를 받아 시리얼 RS422 인터페이스를 통해 다시 보낼 수도 있습니다.
이 단계들을 통해 아두이노를 사용하여 직렬 RS-422 장치와 TCP/IP 서버 사이에 다재다능한 통신 연결을 구축할 수 있습니다.
1 × 아두이노 우노 R4 와이파이 쿠팡 | 아마존
1 × (또는) DIYables STEM V4 IoT 쿠팡 | 아마존
1 × USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1 × USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1 × TTL-RS422 변환 모듈 쿠팡 | 아마존
1 × 점퍼케이블 쿠팡 | 아마존
1 × (옵션 ) RS422 to USB 변환 케이블 아마존
1 × (추천 ) 아두이노 우노 R4용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1 × (추천 ) Sensors/Servo Expansion Shield for Arduino UNO R4 쿠팡 | 아마존
1 × (추천 ) 아두이노 우노 R4용 브레드보드 쉴드 쿠팡 | 아마존
1 × (추천 ) 아두이노 우노 R4용 케이스 쿠팡 | 아마존
1 × (추천 ) 아두이노 우노 R4용 전원 분배기 쿠팡 | 아마존
1 × (추천 ) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
아두이노에서 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 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.