아두이노/NodeMCU

[NodeMCU] WiFi 연결 테스트

Eu4ng 2020. 7. 24. 19:14

* 선행 조건

- 이 블로그에서 사용하는 분할 코딩 규칙을 알고 있다

 

사용제품: NodeMCU V2 CP2102/ESP8266/ESP-12E

핀 연결: x

 

외부 라이브러리:

x

 

소스 코드:

- 프로젝트 이름: wifi

더보기

wifi 탭

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  WIFI_Connect();
}

void loop() {
  
}

 

_wifi 탭

#include <ESP8266WiFi.h>

char ssid[21] = "wifi 이름";
char pass[21] = "wifi 비밀번호";

 

main 탭

void WIFI_Connect(){
  delay(10);
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);
  
  int count = 0;
  int retry = 0;
  boolean connection = true;
  
  while (WiFi.status() != WL_CONNECTED) {
    if(count > 30){
      retry++;
      if(retry == 3){
        connection = false;
        break;
      }
      Serial.println();
      check_wifi();
      Serial.println("retry in 3 seconds");
      count = 0;
      delay(3000);
    }
    else{
      Serial.print(".");
      digitalWrite(LED_BUILTIN, HIGH);
      delay(250);
      digitalWrite(LED_BUILTIN, LOW);
      delay(250);
      count++;  
    }
  }
  if(connection){
    Serial.println();
    Serial.println("Connected");
  }
  else{
    Serial.println();
    Serial.println("Failed");
  }
}

void check_wifi(){
  int c = WiFi.status();
  switch(c){
    case 0:
      Serial.println("Wi-Fi is in process of changing between statuses");
    break;
    case 1:
      Serial.println("configured SSID cannot be reached");
    break;
    case 3:
      Serial.println("WiFi connected");
    break;
    case 6:
      Serial.println("WiFi password is incorrect");
    break;
  }
}

 

 

시리얼 모니터

더보기

연결 실패시

연결 성공시