반응형



[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


반응형

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

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

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요.

+ Recent posts