Home Arduino [아두이노] Arduino Uno R4 WiFi 연결 방법

[아두이노] Arduino Uno R4 WiFi 연결 방법

by DUBUKIMCH

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 서버 생성

  • ssidpass 변수에 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-통신-방법/

You may also like

Leave a Comment

error: Content is protected !!