아두이노에서 ESP8266이라는 아이를 이용해서 인터넷을 이용할 준비[바로가기]도 하고, 이를 이용해서 Blynk라는 아이를 이용해서 아두이노에 폰에서 와이파이로 아두이노에 접근[바로가기]하는 것도 했었습니다. 그 과정에서 살짝... ESP8266을 좀 더 테스트해볼 생각을 했는데요. 이번에는 아예 ESP8266을 탑재한 아두이노 호환보드인 WeMOS 보드를 사용해볼려고 합니다.
이렇게 생겼네요^^. 사실 이 보드는 최근 제가 자주 구매하는 메카솔루션[바로가기]에서 구매했는데요. 저는 WeMOS D1 R2 보드인줄 알았는데. 알고보니 R1이네요...ㅠㅠ. 뭐 그래도 상관없습니다. 잘 동작하더라구요^^
먼저 아두이노에서 이 보드를 사용하기 위해 Github에서 라이브러리 공식 페이지[바로가기]로 갑니다. 제가 왜 저가다 빨간 박스를 쳤을까요?ㅜㅜ. 빨간박스 위에 Boards manager link에 있는 주소를 긁어다 CTRL+C를 눌러줍니다^^
그리고, 아두이노 IDE의 Preferences를 눌러서 아까 주소를 붙여 넣습니다. 저는 OpenCR보드[바로가기]도 추가해서 두 줄이네요^^
그리고 보드매니저를 열어서 eps8266으로 검색해서 설치해 줍니다.
이제... 보드는 WeMOS D1 R!으로 셋하고, 포트는 연결된 포트로~, Upload Speed도 잡아줍니다~^^
메카솔루션 블로그에 있듯이 Blink예제를 한 번 돌려서 보드 이상유무도 확인해보구요~
한가지.. 영문 주석에도 있지만, LED_BUILTIN은 반전이에요~ low가 on, high가 off^^ 아무튼... 뭐 LED 동작하니까.. 정상인거겠죠... ^^ 다음 단계로 건너가요~~~
예제에서 HelloServer를 찾아 불러옵니다. 자신의 IP의 정보만 넣고 런닝~~~~~
그러면 저렇게 시리얼모니터에 나타나면 됩니다. 오케이~~~~~ 이제 simple web server 예제를 수행해볼까요. 아두이노 보드가 쉽게 말하면 웹페이지를 만들고 PC에서 거기에 접속해 보는거죠^^ 해당 예제[바로가기]를 한 번 따라해 보았습니다.
위 예제입니다.^^ 위 예제의 코드는
#include <ESP8266WiFi.h> const char* ssid = "R------"; const char* password = "rn------"; //int ledPin = 14; WiFiServer server(80); IPAddress ip(192, 168, --, --); IPAddress gateway(192, 168, --, --); void setup() { Serial.begin(115200); delay(10); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); Serial.print(F("Setting static ip to : ")); Serial.println(ip); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); IPAddress subnet(255, 255, 255, 0); // set subnet mask to match your network WiFi.config(ip, gateway, subnet); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("."); Serial.println("WiFi connected"); // Start the server server.begin(); Serial.println("Server started"); // Print the IP address Serial.print("Use this URL : "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { return; } // Wait until the client sends some data Serial.println("new client"); while(!client.available()){ delay(1); } // Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); // Match the request int value = LOW; if (request.indexOf("/LED=ON") != -1) { digitalWrite(LED_BUILTIN, LOW); value = HIGH; } if (request.indexOf("/LED=OFF") != -1){ digitalWrite(LED_BUILTIN, HIGH); value = LOW; } // Return the response client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.print("LED pin is now: "); if(value == HIGH) { client.print("On"); } else { client.print("Off"); } client.println("<br><br>"); client.println("Click <a href=\"/LED=ON\">here</a> turn the LED on Arduino ON<br>"); client.println("Click <a href=\"/LED=OFF\">here</a> turn the LED on Arduino OFF<br>"); client.println("</html>"); delay(1); Serial.println("Client disconnected"); Serial.println(""); }
입니다. 이 코드가 배포되는 방금 말씀드린 esp learning 홈페이지도 들러보세요. 좋은 공부거리들이 많더라구요^^
그리고 시리얼 모니터를 돌리면 나타나는 주소로 접근합니다. 웹브라우저로~~~ 그러면 위 그림처럼 되죠. 저것도 분명 홈페이지입니다.^^
어때요? ㅎㅎ 홈페이지에 접근해서 LED를 on, off하는 걸 선택해서.. 아두이노를 다루는 거죠...&^^. 이제 이걸 이용하면 더 재미있는걸 많이 해볼 수 있겠어요 ㅎㅎ^^
'Hardware > Arduino and Friends' 카테고리의 다른 글
GY86에 있는 지자기 센서 HMC5883L 사용하기 (26) | 2018.04.11 |
---|---|
아두이노에서 자이로, 가속도 센서 MPU6050 테스트 (38) | 2018.04.04 |
음성 인식이 되는 아두이노 - ArduVoice 아두보이스 (20) | 2018.03.16 |
아두이노에서 PIR 근적외선 모션 감지 센서 테스트 (24) | 2018.03.05 |
아두이노 Arduino에서 HC-06 블루투스 Bluetooth 모듈 사용기 (24) | 2018.02.28 |
휴대폰에서 와이파이를 통해 아두이노 제어하기 초간단 예제 - ESP8266과 Blynk (28) | 2018.02.12 |
아두이노에서 인터넷을 연결하기 위한 ESP8266 준비하기 (20) | 2018.02.07 |