아두이노 시리얼에서 와이파이 변환기 | Arduino Serial to WiFi Converter
이 튜토리얼에서는 Arduino Uno R4 WiFi를 사용하여 시리얼에서 WiFi 변환기를 만드는 방법을 배워보겠습니다. Arduino는 시리얼 포트에서 데이터를 읽고 그것을 LAN 네트워크 상의 같은 위치에 있는 TCP 서버나 인터넷 상의 원격 서버로 보내며, 그 반대의 경우도 마찬가지입니다. 또한, RS232, RS485, 또는 RS422 모듈을 Arduino에 연결함으로써, RS232에서 WiFi로, RS485에서 WiFi로, 그리고 RS422에서 WiFi로 변환하는 변환기를 만들 수 있습니다.
이 튜토리얼에서는 일반적으로 시리얼을 WiFi로 변환하는 방법에 대해 배우게 됩니다. 특정 종류의 시리얼 인터페이스에 대해서는 아래의 다른 튜토리얼에서 배우게 됩니다:
이 단계들을 통해 아두이노를 사용하여 시리얼 장치와 WiFi 네트워크 사이에 다재다능한 통신 연결을 구축할 수 있습니다.
준비물
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 |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
작동 원리
- 아두이노는 시리얼 인터페이스(TTL, RS232, RS485 또는 RS422)를 통해 시리얼 장치에 연결합니다.
- 아두이노는 TCP 클라이언트로서 TCP 서버(당신의 PC상의 TCP 서버 소프트웨어 또는 다른 아두이노 TCP 서버일 수 있음)에 연결합니다.
- 아두이노는 시리얼 인터페이스에서 데이터를 읽고 이를 TCP 서버로 전송합니다.
- 아두이노는 TCP 연결에서 데이터를 읽고 이를 시리얼 인터페이스로 전송합니다.
아두이노 코드
/*
* 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다
* 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/arduino/arduino-serial-to-wifi-converter
*/
#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");
// check for the WiFi module:
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("Communication with WiFi module failed!");
// don't continue
while (true)
;
}
String fv = WiFi.firmwareVersion();
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
Serial.println("Please upgrade the firmware");
}
Serial.print("Attempting to connect to SSID: ");
Serial.println(WIFI_SSID);
// attempt to connect to WiFi network:
while (WiFi.begin(WIFI_SSID, WIFI_PASSWORD) != WL_CONNECTED) {
delay(10000); // wait 10 seconds for connection:
}
Serial.print("Connected to WiFi ");
Serial.println(WIFI_SSID);
// connect to TCP server
if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT))
Serial.println("Connected to TCP server");
else
Serial.println("Failed to connect to TCP server");
}
void loop() {
if (TCP_client.connected()) {
// read data from TCP and send them to Serial interface
if (TCP_client.available()) {
char c = TCP_client.read();
Serial.write(c);
}
// read data from Serial interface and send them to TCP
if (Serial.available()) {
char c = Serial.read();
TCP_client.write(c);
}
} else {
Serial.println("Connection is disconnected");
TCP_client.stop();
// reconnect to TCP server
if (TCP_client.connect(TCP_SERVER_ADDR, TCP_SERVER_PORT)) {
Serial.println("Reconnected to TCP server");
} else {
Serial.println("Failed to reconnect to TCP server");
delay(1000);
}
}
}
테스팅
다음 흐름으로 데이터를 보내어 테스트를 할 수 있습니다:
- 시리얼 모니터(당신의 PC에서) → 시리얼 → 아두이노 → 와이파이 → TCP 서버 소프트웨어(당신의 PC에서).
- TCP 서버 소프트웨어(당신의 PC에서) → 와이파이 → 아두이노 → 시리얼 → 시리얼 모니터(당신의 PC에서).
하려면 아래 단계를 따르세요:
- 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 버튼을 클릭하여 코드를 아두이노 보드에 컴파일하고 업로드하세요.
- 시리얼로 아두이노에 데이터를 보내려면 시리얼 모니터에 일부 데이터를 입력하세요.
- 모든 것이 올바르게 작동하면 TCP 서버 소프트웨어에서 데이터를 볼 수 있습니다.
- TCP 서버 프로그램에 일부 데이터를 입력하여 TCP를 통해 아두이노로 보내세요.
- 성공하면 시리얼 모니터에서 데이터를 볼 수 있습니다.
만약 상업용 시리얼-이더넷 컨버터를 사용하고 싶다면, 다음과 같은 상업용 제품을 구매할 수 있습니다: