지난 번에 이어서 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 접속 테스트도 무사히 마쳤습니다. 이걸로 미세먼지 표시기 만들기를 계속할 수 있겠네요.
'아두이노' 카테고리의 다른 글
아두이노 나노 (0) | 2019.04.10 |
---|---|
[모듈] 라인 트레이서 센서(적외선 송수신 센서) Part 1 (0) | 2019.04.10 |
아두이노 우노와 마이크로비트용 스피커 모듈 연결 (0) | 2019.04.08 |
[모듈] 레이저 센서 HW-483(?) (0) | 2019.03.29 |
WeMos D1 mini 사용기 Part 1 (0) | 2019.03.25 |