488
Arduino Uno R4 WiFi 연결 방법
이 코드는 아두이노가 WiFi에 연결되고 간단한 HTTP 서버로 동작하도록 설정합니다. 클라이언트가 특정 URL을 요청하면, 응답으로 “Hello, World!” 메시지를 반환합니다.
주요 부분 설명
- WiFi 설정 및 초기화
char ssid[] = "??????"; // WiFi 네트워크 이름 (SSID)
char pass[] = "???????"; // WiFi 네트워크 비밀번호
int status = WL_IDLE_STATUS;
WiFiServer server(80); // 포트 80에서 HTTP 서버 생성
ssid
와pass
변수에 WiFi 네트워크의 SSID와 비밀번호를 설정합니다. 서버 객체는 포트 80에서 HTTP 서버를 실행하도록 초기화됩니다.setup()
함수- 시리얼 통신을 시작하고 WiFi 모듈이 연결되는지 확인합니다.
WiFi.begin()
으로 네트워크에 연결을 시도하고 연결이 완료될 때까지 반복합니다.- 연결이 성공하면, 서버를 시작하고 WiFi 상태(예: IP 주소, 신호 강도)를 출력합니다.
loop()
함수server.available()
를 호출하여 클라이언트가 요청할 때까지 기다립니다.- 클라이언트가 연결되면, 요청을 읽어들여
/?k
문자열을 포함하는지 확인합니다. - 조건에 맞는 경우
Hello, World!
메시지를 응답으로 보냅니다. 그렇지 않으면 “404 Not Found” 응답을 전송합니다.
- WiFi 상태 정보 출력
printWifiStatus()
함수는 연결된 WiFi의 SSID, IP 주소, 신호 강도를 출력합니다.
void setup() {
// 시리얼 통신 시작 및 WiFi 연결 시도
...
}
void loop() {
// 클라이언트 요청 처리
...
}
- 전체 코드
#include <WiFiS3.h>
char ssid[] = "??????"; // your network SSID (name)
char pass[] = "???????"; // your network password (use for WPA, or use as key for WEP)
int status = WL_IDLE_STATUS;
WiFiServer server(80); // HTTP server on port 80
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
// Check for the WiFi module
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("Communication with WiFi module failed!");
while (true);
}
// Attempt to connect to WiFi network
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
status = WiFi.begin(ssid, pass);
delay(10000);
}
// Start the server
server.begin();
Serial.println("Server started");
printWifiStatus();
}
void loop() {
WiFiClient client = server.available();
if (client) {
String request = client.readStringUntil('\r');
client.flush();
Serial.println("Received request: " + request);
if (request.indexOf("/?k") != -1) {
// Client requested with 'k'
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/plain");
client.println("Connection: close");
client.println();
client.println("Hello, World!");
Serial.println("Responded with 'Hello, World!'");
} else {
// Handle other requests or respond with 404
client.println("HTTP/1.1 404 Not Found");
client.println("Content-Type: text/plain");
client.println("Connection: close");
client.println();
client.println("Not Found");
}
client.stop();
}
}
void printWifiStatus() {
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
long rssi = WiFi.RSSI();
Serial.print("Signal strength (RSSI): ");
Serial.print(rssi);
Serial.println(" dBm");
}
라즈베리 파이 연결 방법 링크 : https://dubukimch.com/라즈베리파이-c으로-아두이노와-http-통신-방법/