ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NodeMCU V2에서 ds18b20 온도센서로부터 값읽어 웹페이지에 보여주기(arduino IDE)
    NodeMCU 2016. 6. 13. 14:15



    [Arduino/NodeMCU V2] - 아두이노 IDE에서 NodeMCU V2를 사용하기



    라이브러리 설치

    메뉴에서 스케치 -  라이브러리 포함하기 - 라이브러리 관리를 선택합니다

    onewire를 검색하여 설치합니다..

    dallas temperature를 검색하여 설치합니다..




    하드웨어 연결

    아래처럼 DS18B20 온도 센서를 연결합니다.


    실행결과


    시리얼 모니터에서 접속할때 사용할 아이피를 확인 한 후..



    웹브라우저에서 접속하면 1초마다 웹페이지가 갱신되면서 온도가 출력되는 것을 볼 수 있습니다.


    소스코드


    SSID와 패스워드는 사용중인 공유기에 맞추어 변경하셔야 합니다..


    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    #include <ESP8266WiFi.h>
    #include <ESP8266WebServer.h>
    #include <DallasTemperature.h>
     
    #define ONE_WIRE_BUS D1
     
    WiFiServer server(80);
     
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature DS18B20(&oneWire);
     
    const char* ssid = "ssid";
    const char* pass = "password";
     
    char temperatureString[6];
     
    void setup(void){
      Serial.begin(115200);
      Serial.println("");
      
      WiFi.begin(ssid, pass);
     
     
      while (WiFi.status() != WL_CONNECTED) {
        delay(100);
        Serial.print(".");
      }
     
       // Start the server
      server.begin();
     
      
      // Print the IP address
      Serial.print("Use this URL to connect: ");
      Serial.print("http://");
      Serial.print(WiFi.localIP());
      Serial.println("/");
     
     
      
      DS18B20.begin();
       
     
    }
     
    float getTemperature() {
      float temp;
      do {
        DS18B20.requestTemperatures(); 
        temp = DS18B20.getTempCByIndex(0);
        delay(100);
      } while (temp == 85.0 || temp == (-127.0));
      return temp;
    }
     
     
    void loop() {
     
      float temperature = getTemperature();
     
      dtostrf(temperature, 22, temperatureString);
      // send temperature to the serial console
      Serial.println(temperatureString);
     
     
      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();
     
      // 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.println("<meta http-equiv=\"refresh\" content=\"1\"> ");
      client.println("<h1>"); 
      client.println(temperatureString); 
       client.println("</h1>"); 
      client.println("</html>");
     
    }
    cs


    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구독하기


    댓글 0

Designed by Tistory.