top of page
블로그: Blog2

코인 Ticker 만들기 #13.Station 모드

이번 강좌에서는 Station 모드에 대해서 배워보도록 하겠습니다.


Station 모드는 Wemos D1 mini 를 하나의 단말기기(PC나 스마트폰 등)로 사용하여


공유기의 Wifi SSID 에 접속하여 인터넷에 접근하는 방식이라고 이해하시면 되겠습니다.


샘플 소스를 통해 알아보도록 하겠습니다.


1. 아두이노 IDE 에서 아래 메뉴를 순서대로 실행합니다.

- 메뉴 / 예제 / ESP8266Wifi / HTTPRequest

2. 이 예제는 공유기의 SSID 에 접속한 후

GitHub API 사이트에 접속하여 GET 방식으로 결과를 받아 처리하는 예제입니다.

3. 소스를 컴파일 하고 Wemos D1 mini 에 업로드 합니다.


4. 시리얼 모니터를 통해 아래 결과가 확인되면 정상 입니다.



5. 소스에 대해서 주석으로 설명을 달아놓았습니다.


// HTTP Request 릉 위한 헤더파일을 참조합니다.

#include <ESP8266WiFi.h>

#include <WiFiClientSecure.h>


// 공유기의 SSID 접속정보를 설정합니다.

// 각자 공유기의 SSID 와 비밀번호를 확인하여 설정합니다.

const char* ssid = "........";

const char* password = "........";


// host 정보를 세팅합니다.

// GitHub 의 API 주소와 포트 입니다.

const char* host = "api.github.com";

const int httpsPort = 443;


// 복호화 키로 소스 그대로 사용합니다.

const char* fingerprint = "35 85 74 EF 67 35 A7 CE 40 69 50 F3 C0 F6 80 CF 80 3B 2E 19";


void setup() {

Serial.begin(115200);

Serial.println();

Serial.print("connecting to ");

Serial.println(ssid);

WiFi.mode(WIFI_STA); // Station 모드로 설정합니다.

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) { // Wifi가 접속될때까지 대기합니다.

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("WiFi connected");

Serial.println("IP address: ");

Serial.println(WiFi.localIP());


WiFiClientSecure client; // WiFiClientSecure class 를 통해 연결객체를 생성합니다.


Serial.print("connecting to ");

Serial.println(host);


// GitHub API 서버에 접속을 시도합니다.

if (!client.connect(host, httpsPort)) {

Serial.println("connection failed");

return;

}


// 암호화 키가 일치하는지 확인합니다.

if (client.verify(fingerprint, host)) {

Serial.println("certificate matches");

} else {

Serial.println("certificate doesn't match");

}


// Request 하위 주소를 설정합니다.

String url = "/repos/esp8266/Arduino/commits/master/status";

Serial.print("requesting URL: ");

Serial.println(url);


// GET 방식으로 Request 주소에 접속합니다.

client.print(String("GET ") + url + " HTTP/1.1\r\n" +

"Host: " + host + "\r\n" +

"User-Agent: BuildFailureDetectorESP8266\r\n" +

"Connection: close\r\n\r\n");


Serial.println("request sent");

// Request 주소에 접속이 되면

// 헤더 정보를 읽어옵니다.

while (client.connected()) {

String line = client.readStringUntil('\n');

if (line == "\r") {

Serial.println("headers received");

break;

}

}

// 개행문자 전까지 데이터 정보를 읽어옵니다.

String line = client.readStringUntil('\n');

// 데이터 정보가 success 인경우와 그렇지 않은경우에 대해서 결과를 시리얼로 출력합니다

if (line.startsWith("{\"state\":\"success\"")) {

Serial.println("esp8266/Arduino CI successfull!");

} else {

Serial.println("esp8266/Arduino CI has failed");

}

Serial.println("reply was:");

Serial.println("==========");

Serial.println(line);

Serial.println("==========");

Serial.println("closing connection");

}


void loop() {

}


이상으로 Station 모드에 대해서 배워보았습니다.


감사합니다.

 
 
 

Comentários


Join our mailing list

Never miss an update

뉴스레터 구독하기

최신 업데이트를 받아보세요!

대한민국 경기도 수원시 장안구 연무동 21 유천프라자 가동 508호

  • facebook
  • twitter
  • linkedin

©2018 by 윈드마켓. Proudly created with Wix.com

bottom of page