ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Arduino] Wifi
    전기전자공학/실습 2018. 2. 1. 14:47

    Wifi  모듈 포트 인식하기 위한 파일

    nodeMCU.zip


    아두이노 ->환경설정 => 추가적인 보드 매니저에 밑에 url 추가한다! (For esp8266 설치)

    http://arduino.esp8266.com/stable/package_esp8266com_index.json



    아두이노 -> 툴 -> 보드매니저 ->esp8266 설치


    내 컴퓨터 -> 장치관리자 -> 포트 -> 와이파이 모듈 연결되 포트 번호 확인 (나의 경우: com6)


    => 아두이노 -> 툴 -> 포트 -> com6에서 com8로 바꿔줘야됨!

    => 아두이노 -> 보드 -> 'Arduino Uno'에서 'NodeMCU 1.0 (ESP-12E Module)' 로 바꾸기!


    와이파이 모듈 D7(GPIO 13) 과 LED (+)단자 연결./ 와이파이 모듈 GND와 LED (-) 단자 연결



    예제: 웹서버에 접속해서 LED 제어


    #include <ESP8266WiFi.h>


    const char* ssid = "IUnes";

    const char* password = "kkkk1234";


    int ledPin = 13; //GPIO 13, D7

    WiFiServer server(80); //Q1 


    void setup() {

      Serial.begin(115200);

      delay(10);

      

      pinMode(ledPin, OUTPUT); 

      digitalWrite(ledPin, LOW);


      Serial.println();

      Serial.println();

      Serial.println("Connecting to ");

      Serial.println(ssid);


      WiFi.begin(ssid, password); //Q2


      while (/* Q3 */WiFi.status() != WL_CONNECTED) {

        delay(500);

        Serial.println(".");

      }

      Serial.println("");

      Serial.println("WiFi Connected");


      server.begin(); //Q4

      Serial.println("Server started");


      //Print the IP address - 웹에서 접속할 IP를 알려 준다.

      Serial.println("Use this URL to connect: ");

      Serial.println("http://");

      Serial.println(/* Q5 본인 아이피 출력 */WiFi.localIP());

      Serial.println("/");

    }


    // the loop function runs over and over again forever

    void loop() {

      WiFiClient client = server.available();  //Q6 접속한 클라이언트 연동

      if(!client) {

        return;

      }


      Serial.println("new client");

      while(!client.available()){

        delay(1);

      }


      //첫번째 라인 읽기

      String request = client.readStringUntil('\r');

      Serial.println(request);

      client.flush(); //? 이건 뭐지?


      int value = LOW;

      if (request.indexOf("/LED=ON") != -1) {

        digitalWrite(ledPin, HIGH);

        value = HIGH;

      }

      if(request.indexOf("/LED=OFF") != -1) {

        digitalWrite(ledPin, LOW);

        value = LOW;

      }


      //서버 응답 -> 이제부터는 HTML 관련이다.

      client.println("HTTP/1.1 200 OK");

      client.println("Content-Type: text/html");

      client.println("");

      client.println("<!DOCTYPE HTML>");

      client.println("<html>");

      client.println("<head>");

      client.println("<title>NodeMCU Control</title>");

      client.println("<meta name='viewport' content='width=device-width, user-scalable=no'>");

      client.println("</head>");

      client.println("<body>");

      client.println("<div style='width: 300px; margin: auto; text-align: center;'>");

      client.println("<h3>NodeMCU Web Server</h3>");

      client.println("<p>");

      client.print("Led pin is now : ");

      if(value == HIGH) {

        client.println("On");

      } else {

        client.println("Off");

      }

      client.println("</p>");

      //client.println("<br><br>");

      client.println("<a href=\"/LED=ON\"\"><button>Turn On </button></a>");

      client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />");  

      client.println("</div>");

      client.println("</body>");

      client.println("</html>");


      delay(1);

      Serial.println("Client disconnected");

      Serial.print("");

      

    }


    와이파이(내 폰 핫스팟)에 연결되면

    WiFi Connected

    Server started

    Use this URL to connect: 

    http://

    172.20.10.10

    /


    폰 인터넷에 172.20.10.10. 치면 led on/off 화면 뜸 -> 제어 가능

    웹서버에 접속해서 제어 가능!



    무선은 전파 이용 . 전파는 빛!




    예제 : 시간 서버에서 시간 받아오기!


    #include <ESP8266WiFi.h>

    #include <time.h>


    const char* ssid = "IUnes";  

    const char* password = "kkkk1234"; 

    int timezone = 9; // 동경


    void setup(void) {

      Serial.begin(115200);


      Serial.println("start start");


      WiFi.mode(WIFI_STA); //Q1. 모드 설정

      WiFi.begin(ssid, password);

      Serial.println("\nConnecting to WiFi");

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

        Serial.print("Connecting...");

        delay(1000);

      }


      configTime(timezone * 3600, 0, "pool.ntp.org", "time.nist.gov");  //Q2. 시간 설정

      Serial.println("\nWaiting for time");

      while (!time(nullptr)) { //시간가져오기

       Serial.print(".");

       delay(1000);

      }

      Serial.println("");

    }


    void loop() {

        

      time_t now = time(nullptr);

     

        Serial.println(ctime(&now));


        delay(1000);



    }


    댓글

Designed by Tistory.