지난 번에 이어서 WeMos D1 mini의 테스트입니다.


이번에는


1) 와이파이 연결 테스트

2) www.google.com 접속 테스트


를 해보겠습니다.


Part 1에서 했던 것처럼 보드 매니저를 통해 WeMos D1 mini용 esp8266 모듈을 추가했다면 관련 라이브러리와 예제도 추가되어 있습니다.


Esp8266 wifi client 예제를 참고해 가면서 테스트를 진행해봅니다.



위처럼 스케치 메뉴에서 예제 > ESP8266WiFi > WiFiClient 를 선택해서 해당 예제를 확인해봅니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <ESP8266WiFi.h>
 
const char* ssid     = "your-ssid";     // 공유기 SSID
const char* password = "your-password"; // 비밀번호
 
const char* host = "www.google.com";   // 서버 호스트 주소
 
void setup() {
  Serial.begin(115200);
  delay(10);
 
  // We start by connecting to a WiFi network
 
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}
 
void loop() {
}
cs


위의 내용 외에도 더 많지만 일단 와이파이 연결만 테스트해 봅니다.


공유기 SSID와 비밀번호를 제대로 입력한 후 시리얼 모니터 화면을 열어놓고 WeMos D1 mini에 업로드 해 줍니다.



짠~ 잘 연결되었네요. 아무런 문제도 없어서 오히려 당혹스럽네요.


이제 www.google.com에 접속해 봅니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
void loop() {
  // put your main code here, to run repeatedly:
  delay(5000);
 
  Serial.print("connecting to ");
  Serial.println(host);
 
  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }
 
  // Create a URI for the request
  // 요청할 주소
  String url = "/";
 
  Serial.print("Requesting URL: ");
  Serial.println(url);
 
  // This will send the request to the server
// 서버에 요청하기 위한 http 헤더 설정입니다. 자세한 내용은 검색을...
  client.print(String("GET "+ url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");
  unsigned long timeout = millis();
  while (client.available() == 0) {
    if (millis() - timeout > 5000) {
      Serial.println(">>> Client Timeout !");
      client.stop();
      return;
    }
  }
 
  Serial.println();
 
  // Read all the lines of the reply from server and print them to Serial
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
 
  Serial.println();
  Serial.println("closing connection");
}
cs


loop() 안을 위와 같이 바꾸고 업로드 하면 결과가 다음과 같이 나옵니다.



HTTP/1.1 200 OK 부터가 host인 www.google.com에 URL "/"을 GET 방식으로 요청한 결과입니다.


200 OK 로 회신이 왔으니 요청은 성공이며 그 외 부분은 응답 헤더의 내용입니다. 자세한 내용은 http 헤더와 관련해서 검색 등을 통해 확인해주세요.


이대로 계속 내버려둬보니 잘 되다가 중간에 스택 오류를 내보내고 멈추는데 갑자기 많은 양의 정보를 받으면서 스택 오버플로우로 멈추는 것 같네요. 좀 더 테스트가 필요해 보입니다.


그래도 일단은 www.google.com 접속 테스트도 무사히 마쳤습니다. 이걸로 미세먼지 표시기 만들기를 계속할 수 있겠네요.

+ Recent posts