아두이노 RS232에서 WiFi로 | Arduino RS232 to WiFi
이 튜토리얼에서는 아두이노 우노 R4 와이파이를 사용하여 시리얼 RS232 장치를 와이파이에 연결하는 변환기를 만드는 방법을 배우게 됩니다. 이 설정을 사용하면, 아두이노는 시리얼 RS232 인터페이스에서 데이터를 읽고 TCP 서버에 데이터를 전송할 수 있으며, 이는 동일한 로컬 네트워크나 인터넷을 통해 가능합니다. 또한 TCP 서버로부터 데이터를 받아 시리얼 RS232 인터페이스를 통해 다시 전송할 수도 있습니다.
다음 단계를 따르면 Arduino를 사용하여 시리얼 RS-232 장치와 TCP/IP 서버 간의 유연한 통신 연결을 설정할 수 있습니다.
1 | × | Arduino UNO R4 WiFi | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | TTL to RS232 Module | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) RS232 to USB Cable | Amazon | |
1 | × | (Optional) RS232 Gender Changer | 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 | |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
RS232 및 TCP 통신을 아두이노와 사용하는 방법을 모른다면, 다음 튜토리얼에서 배워보세요:
아두이노는 RS232 인터페이스를 통해 시리얼 장치에 연결됩니다.
아두이노는 TCP 클라이언트처럼 동작하여 TCP 서버에 연결합니다. TCP 서버는 컴퓨터에서 실행되는 소프트웨어나 TCP 서버로 프로그래밍된 다른 아두이노일 수 있습니다.
아두이노는 시리얼 RS232 인터페이스에서 정보를 읽고 그 정보를 TCP 서버로 보냅니다.
아두이노는 또한 TCP 연결에서 데이터를 읽고 그것을 시리얼 RS232 인터페이스를 통해 다시 보냅니다.
하드웨어 시리얼 사용시 배선도
이 이미지는 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 rs232(7, 6);
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);
rs232.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();
rs232.write(c);
}
if (rs232.available()) {
char c = rs232.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-RS232 모듈과 RS232-to-USB 케이블을 사용하여 Arduino Uno R4 WiFi를 PC에 연결하세요.
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
Arduino IDE에서 Upload 버튼을 클릭하여 아두이노 보드에 코드를 컴파일하고 업로드하십시오.
시리얼 프로그램에서 일부 데이터를 입력하여 시리얼을 통해 아두이노로 전송하십시오.
성공하면 TCP 서버 소프트웨어에서 에코 데이터를 볼 수 있습니다.
TCP 서버 프로그램에서 일부 데이터를 입력하여 TCP를 통해 아두이노로 전송하십시오.
성공하면 시리얼 프로그램에서 에코 데이터를 볼 수 있습니다.
상업용 RS232-To-Ethernet 변환기를 사용하려면 CSE-H53N 시리얼 투 이더넷 변환기를 구입할 수 있습니다.
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.