05.05(10주차) ThingSpeak_DHT11 - rlarlqor0513/smart-device GitHub Wiki
#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초마다 전송
}