05.05(10주차) ThingSpeak_DHT11 - rlarlqor0513/smart-device GitHub Wiki

아래 코드를 Esp32에 업로드

#include <WiFi.h>
#include <WiFiClient.h>
#include <DHT.h>

#define WIFI_SSID "YourWiFiSSID"
#define WIFI_PASSWORD "YourWiFiPassword"

#define DHT_PIN 4 // DHT11 센서 연결 핀
#define DHT_TYPE DHT11

#define THINGSPEAK_SERVER "api.thingspeak.com"
#define THINGSPEAK_API_KEY "YourThingSpeakAPIKey"
#define THINGSPEAK_CHANNEL_ID "YourChannelID"

DHT dht(DHT_PIN, DHT_TYPE);

WiFiClient client;

void setup() {
  Serial.begin(115200);

  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  Serial.println("Connected to WiFi!");

  dht.begin();
}

void loop() {
  float temperature = dht.readTemperature(); // 온도 읽기
  float humidity = dht.readHumidity(); // 습도 읽기

  if (isnan(temperature) || isnan(humidity)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.print(" °C, Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");

  if (client.connect(THINGSPEAK_SERVER, 80)) {
    String data = String("field1=") + String(temperature) +
                  "&field2=" + String(humidity);

    String request = String("POST /update HTTP/1.1\n") +
                     "Host: " + String(THINGSPEAK_SERVER) + "\n" +
                     "Connection: close\n" +
                     "X-THINGSPEAKAPIKEY: " + String(THINGSPEAK_API_KEY) + "\n" +
                     "Content-Type: application/x-www-form-urlencoded\n" +
                     "Content-Length: " + String(data.length()) + "\n\n" +
                     data;

    client.print(request);

    Serial.println("Sending data to ThingSpeak...");

    delay(2000); // ThingSpeak 서버에 전송을 위해 충분한 지연 시간

    client.stop();
  }
  else {
    Serial.println("Failed to connect to ThingSpeak!");
  }

  delay(5000); // 5초마다 전송
}

ThingSpeak에서 다른 위젯 추가

"Add Widgets"

19

계랑기 생성

20 21

시계 생성

22 23

결과 확인

image

⚠️ **GitHub.com Fallback** ⚠️