달력

5

« 2025/5 »

  • 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

#include
#include "SSD1306.h"
#include "DHT.h"

#define DHTPIN 12 // Data 핀 설정 D6 또는 12
#define DHTTYPE DHT22 // 센서종류 설정 파란색 DHT11, 흰색 DHT22

const char* ssid = "*******"; // 와이파이 공유기의 SSID star
const char* password = "*********"; // 와이파이 공유기의 접속 비밀번호 또는 shiny

WiFiServer server(80); // 웹서버용 포트 번호
SSD1306 display(0x3c, 5, 4);
DHT dht(DHTPIN, DHTTYPE, 15); // DHT 센서 설정

void setup() {
Serial.begin(9600);
Serial.println();
Serial.println("DHT22/SSD1306");
Serial.println("8266 WebServer");
dht.begin();

display.init();
display.flipScreenVertically();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_16);
display.drawString(0, 10, "DHT22/SSD1306");
display.drawString(0, 26, "8266 WebServer");
display.display();

// 와이파이 네트워크에 접속
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected!!");

// 웹서버 개시
server.begin();
Serial.println("Server started");

// 접속할 IP 주소 표시
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
Serial.println();
}

void loop() {
float t, h;
String temp, humi;
t = dht.readTemperature();
h = dht.readHumidity();
temp = t;
humi = h;

// 클라이언트가 접속되었는지 확인
WiFiClient client = server.available();
if(!client) {
return;
}

// 클라이언트가 데이터를 보낼 때까지 기다림
Serial.println("new client");
while(!client.available()) {
delay(1);
}

// 리퀘스트의 첫번째 줄을 읽어들임
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();


// 클라이언트 리퀘스트에 대한 응답 메시지
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("");
client.println("");
client.println("");

if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
display.clear();
display.drawString(0, 2, "Fail to read!!");
display.display();
client.print("DHT22 Test");
client.println("
");
client.print("===========");
client.println("
");

client.print("Failed to read from DHT");
client.println("
");
client.println("");
} else {
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" ^C,\t");
Serial.print("Humidity: ");
Serial.print(h);
Serial.println(" %");

display.clear();
display.setFont(ArialMT_Plain_10);
display.drawString(100, 0, "o");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 2, "Temp : C");
display.drawString(56, 2, temp);
display.drawString(0, 18, "Humid : %");
display.drawString(56, 18, humi);
display.display();

client.print("DHT22 Test");
client.println("
");
client.print("===========");
client.println("
");

client.print("Temp : ");
client.print(t);
client.print("^C");
client.println("
");

client.print("Humi : ");
client.print(h);
client.print("%");
client.println("
");
client.println("

");

client.println("");
}
delay(1);
Serial.println("Client disconnected");
Serial.println("");

}

'IOT[WeMos & NodeMCU]' 카테고리의 다른 글

Wifi망 DHT22 센서값 검색 Wemos D1 mini  (0) 2019.12.09
NTP Clock_Wemos D1 mini R2  (0) 2019.12.06
AP Scanner_WeMos D1 mini R2  (0) 2019.12.06
I2CScanner_Wemos D1 mini R2  (0) 2019.12.06
I2C 주소 스캔_WeMos D1 mini R2  (0) 2019.12.06
:
Posted by gonlab