아두이노 - TCP 클라이언트 | Arduino - TCP Client
이 튜토리얼에서는 아두이노 우노 R4 WiFi를 TCP 클라이언트로 프로그래밍하는 방법과 TCP 서버와 데이터를 교환하는 방법을 배우게 됩니다.
준비물
1 | × | Arduino UNO R4 WiFi | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | (Optional) Jumper Wires | 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 |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
아두이노 코드
/*
* 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다
* 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/arduino/arduino-tcp-client
*/
#include <WiFiS3.h>
const char* WIFI_SSID = "YOUR_WIFI_SSID"; // WIFI SSID로 변경하세요
const char* WIFI_PASSWORD = "YOUR_WIFI_PASSWORD"; // WIFI 비밀번호로 변경하세요
const char* TCP_SERVER_ADDR = "192.168.0.26"; // TCP 서버의 IP 주소로 변경하세요
const int TCP_SERVER_PORT = 1470;
WiFiClient TCP_client;
void setup() {
Serial.begin(9600);
Serial.println("Arduino: TCP CLIENT");
// WiFi 모듈을 확인하세요:
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);
// WiFi 네트워크에 연결 시도:
while (WiFi.begin(WIFI_SSID, WIFI_PASSWORD) != WL_CONNECTED) {
delay(10000); // 연결을 위해 10초 기다림:
}
Serial.print("WiFi에 연결됨 ");
Serial.println(WIFI_SSID);
// TCP 서버에 연결
if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT)) {
Serial.println("TCP 서버에 연결됨");
TCP_client.write("Hello!"); // TCP 서버에 보냄
TCP_client.flush();
} else {
Serial.println("TCP 서버에 연결 실패");
}
}
void loop() {
// 서버로부터 데이터 읽기 및 Serial로 출력
if (TCP_client.available()) {
char c = TCP_client.read();
Serial.print(c);
}
if (!TCP_client.connected()) {
Serial.println("연결이 끊어짐");
TCP_client.stop();
// TCP 서버에 다시 연결
if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT)) {
Serial.println("TCP 서버에 재연결됨");
TCP_client.write("Hello!"); // TCP 서버에 보냄
TCP_client.flush();
} else {
Serial.println("TCP 서버에 재연결 실패");
delay(1000);
}
}
}
빠른 걸음
그것을 하기 위해, 아래 단계들을 따르세요:
- 아두이노를 USB Type-C 케이블을 통해 PC에 연결하세요.
- ezTerm과 같은 TCP 서버 소프트웨어 프로그램을 설치하세요.
- TCP 서버 프로그램을 열고 TCP 서버로 설정한 다음, 듣기 버튼을 클릭하세요.
- PC에서 명령 프롬프트를 엽니다.
- 아래 명령을 실행하여 PC의 IP 주소를 찾습니다:
ipconfig
출력 결과는 다음과 같습니다:
Command Prompt
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 버튼을 클릭하여 코드를 아두이노 보드에 컴파일하고 업로드하세요.
- 시리얼 모니터를 엽니다.
- 시리얼 모니터에서 아래를 볼 수 있습니다.
COM6
Connected to WiFi YOUR_WIFI_SSID
Connected to TCP server
Autoscroll
Clear output
9600 baud
Newline
TCP 서버에 연결한 후, 아두이노는 TCP 서버에 "Hello!"를 보낼 것이며, 이 텍스트를 TCP 서버 소프트웨어에서 확인할 수 있을 것입니다.
- TCP 서버 프로그램에 데이터를 입력하여 TCP를 통해 아두이노로 전송하십시오.
- 성공하면 시리얼 모니터에서 데이터를 볼 수 있습니다.
COM6
Connected to WiFi YOUR_WIFI_SSID
Connected to TCP server
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
Autoscroll
Clear output
9600 baud
Newline