프로젝트

NODE MCU ESP8266 보드로 LED 제어하기

페이지 정보

작성자 드래곤사우르스 작성일17-01-24 15:20 조회7,971회 댓글0건

본문


안녕하세요 메카솔루션 메이커 홍동길입니다.


이번에는 NODE MCU ESP8266보드를 이용해 웹을 이용해서 LED를 제어하는 기본적인 예제를 배워보고자 합니다.


부품 목록 확인하기


다음 링크에서 부품목록을 확인 할 수 있습니다.


http://mechasolution.com/shop/goods/cart_share.php?share=1&mode=addItem&goodsno[]=539585&ea[]=1&goodsno[]=66&ea[]=1&goodsno[]=330508&ea[]=1&goodsno[]=7&ea[]=1&goodsno[]=673&ea[]=1


와이파이 접속하기


#include <ESP8266WiFi.h>

const char* ssid     = "Wifi ssid";//WIFI 이름

const char* password = "Wifi pswd";//WIFI 비밀번호

void setup() {

  Serial.begin(115200);

  delay(1000);

  WiFi.disconnect();

  Serial.print("Connecting to ");

  Serial.println(ssid);

  WiFi.begin(ssid, password);

  Serial.println(WiFi.SSID());

  WiFi.setAutoConnect(true); //자동 접속 설정

  WiFi.setAutoReconnect(true); //자동 재접속 설정 

  WiFi.waitForConnectResult();

  Serial.println(WiFi.localIP());

}


void loop() {}



ESP8266은 자동 접속과 자동재접속 기능이 있기때문에 매번 소스코드 마다 와이파이 접속에 대한 정보와 연결 시도에 대한 코드를 넣지 않아도 됩니다.


위의 와이파이 접속 소스코드를 오린 뒤, 또다른 코드를 올려주면 됩니다.


웹 LED 제어 소스코드


#include <ESP8266WiFi.h>

#include <WiFiClient.h>

#include <ESP8266WebServer.h>

#include <ESP8266mDNS.h>


ESP8266WebServer server(80);


int led = 14;


void setup(void){

  pinMode(led, OUTPUT);

  digitalWrite(led, LOW);

  Serial.begin(115200);


  // 연결 완료 까지 대기

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.print(".");

  }

  Serial.println("");

  Serial.print("Connected to ");

  Serial.println(WiFi.SSID());

  Serial.print("IP address: ");

  Serial.println(WiFi.localIP());


  if (MDNS.begin("esp8266")) {

    Serial.println("MDNS responder started");

  }


  //접속별 동작 설정


  server.on("/", [](){

    server.send(200, "text/html", "<h1>ESP8266 LED</h1><a href=\"/off\"><h1>OFF</h1></a><a href=\"/on\"><h1>ON</h1></a>");

  });


  server.on("/on", [](){//ON 으로 접속시 LED를 켭니다.

    digitalWrite(led, HIGH);

    server.send(200, "text/html", "<a href=\"/off\"><h1>OFF</h1></a>");

  });


  server.on("/off", [](){//OFF 으로 접속시 LED를 끕니다.

    digitalWrite(led, LOW);

    server.send(200, "text/html", "<a href=\"/on\"><h1>ON</h1></a>");

  });

  

  //서버 사용을 시작합니다.


  server.begin();

  Serial.println("HTTP server started");

}


void loop(void){

  server.handleClient();//클라이언트 접속을 관리합니다.

}




소스코드는 위와 같습니다.


server.on함수는 웹서버 접속 정보에 따른 동작을 제어합니다.


그리고 loop문으로 돌면서 server.handleClient(); 함수가 접속이 될때마다 위에서 설정된 함수를로 전달을 시켜주게 되는 방식으로 웹서버가 구성이 됩니다.


회로도 알아보기 


본 예제에서는 저항없이 LED를 연결에서 테스트만 하였으나 안전한 사용을 위해서는 LED에 저항을 연결해 주어야합니다.




동작영상



감사합니다.


출처: 메카솔루션


sally_special-9




댓글목록

등록된 댓글이 없습니다.


모바일 버전으로 보기