본문으로 바로가기

아두이노에서 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하는 걸 선택해서.. 아두이노를 다루는 거죠...&^^. 이제 이걸 이용하면 더 재미있는걸 많이 해볼 수 있겠어요 ㅎㅎ^^


댓글을 달아 주세요

  1. BlogIcon 공수래공수거 2018.03.12 09:17 신고

    기분 좋은 한주 시작하시기 바랍니다^^

  2. BlogIcon 즐거운 우리집 2018.03.12 10:08 신고

    성공 성공~! ^^
    그런데 좀 어렵네요 ㅎ

  3. BlogIcon 핑구야 날자 2018.03.12 12:24 신고

    웹브라우저로 가능하다니 괜찮은 테스트네요

  4. BlogIcon 휴식같은 친구 2018.03.12 13:22 신고

    전구에 불이 들어오는 테스트를 하니 흥미로울것 같습니다.
    즐거운 하루 되세요.

  5. BlogIcon 귀요미디지 2018.03.12 13:54 신고

    포근한 봄날씨는 느끼게 해주는 월요일인거 같아요~
    즐거운 하루 되세요 ^^

  6. BlogIcon 『방쌤』 2018.03.12 14:03 신고

    전문 지식이 없으면 이해가 어려운게 맞죠???
    저만 그런거 아니죠???
    저는 사실 블로그 꾸미면서 html 사용하는 것도 완전 전쟁이었거든요^^;;ㅎ

    이제 날씨가 봄이네요~
    즐거운 봄날 보내시길^^

  7. BlogIcon luvholic 2018.03.12 15:27 신고

    홈페이지를 이용한 새로운 정보네요~!!
    새로운 한주 즐겁게 보내세요 :)

  8. BlogIcon 몰드원 2018.03.12 15:53 신고

    오늘도 포스팅 잘 보고 가네요~
    한주 시작 잘 하세요^^

  9. BlogIcon 비키니짐(VKNY GYM) 2018.03.12 18:26 신고

    전문적인거라 잘 모르겠네요ㅎㅎㅎ
    그래도 잘 보고 갑니다!

  10. BlogIcon 스티마 2018.03.12 23:44 신고

    아두이노에 잠깐 다루어 보았는데, 지속적으로 다루고 계시는걸 보니 저도 다시 해봐야겠다는 생각이 듭니다. ^^

  11. BlogIcon peterjun 2018.03.13 00:49 신고

    원리를 알면 정말 재미있게 배울 수 있겠지요.
    즐거운 한주 되세요. ^^

  12. BlogIcon 드래곤포토 2018.03.13 01:17 신고

    즐거운 화요일 되세요 ^^

  13. xero 2018.05.28 21:44 신고

    Wemos처음 사용해보면서 막히는 거 많았는 데, 덕분에 많은 도움 되었습니다.
    순서대로 따라할수 있게 되있어서 쉬웠습니다. 감사합니다 :)