반응형

#include <ESP8266WiFi.h>

#ifndef STASSID
#define STASSID "공유기ID"
#define STAPSK  "공유기PW"
#endif

const char* ssid     = STASSID;
const char* password = STAPSK;

void setup() {
  Serial.begin(115200);

  IPAddress ip (192, 168, 0, 15); //내가 원하는 IP
  IPAddress gateway (192, 168, 0, 1);
  IPAddress subnet (255, 255, 255, 0);

  WiFi.config (ip, gateway, subnet); //내가 원하는 설정 반영
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP()); //예상되는 결과 : 192.168.0.15
}

void loop() {
 
}

위와 같은 방식으로 ESP8266보드에 IP를 고정시킬 수 있다! 단, 내가 원하는 IP를 할당받은 다른 기기가 없어야하겠다!

ESP8266보드가 인터넷공유기에 연결되면 공유기의 재량으로 IP를 할당받게 되는데 이것을 내가 원하는 IP로 설정하는 방법이다!

 

집에서 ESP8266보드를 웹서버로 구동시키려면 IP주소가 바뀌면 곤란해진다!

내가 동사무소에 방문해야하는데 1시간마다 동사무소 주소가 바뀌면 곤란해지는것과 같다!

 

사물인터넷(IoT)에서 서버-클라이언트 통신을 하려면 결국 서버의 주소를 클라이언트가 알고 있어야하는데 서버의 주소가 동적이라면 쓸모가 없게된다!

 

그러므로 개인적으로 사용하더라도 내가 원하는 IP를 고정해줄 수 있으면 그럭저럭 쓸만하다고 볼 수 있다!

위 예제는 IP를 192.168.0.15로 고정하는 예제이다!

 

#include <ESP8266WiFi.h>

#ifndef STASSID
#define STASSID "popcorn"
#define STAPSK  "11213144"
#endif

const char* ssid     = STASSID;
const char* password = STAPSK;

void setup() {
  Serial.begin(115200);

  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  wifi(20);
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  WiFi.disconnect (true);
  wifi(21);
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  wifi(22);
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
 
}

void wifi(int myip){
  IPAddress ip (192, 168, 0, myip);
  IPAddress gateway (192, 168, 0, 1);
  IPAddress subnet (255, 255, 255, 0);
  WiFi.config (ip, gateway, subnet);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
}

그리고 이 코드를 활용하면 내가 원하는 IP를 바꿔가면서 쓸 수 있다!

공유기로 부터 받은 IP주소가 192.168.0.20 ~ 192.168.0.22로 순서대로 바뀌는 예제이다!

끝!

반응형
Posted by 덕력킹
,