10. ThingSpeak DHT11 WIFI - sunbang123/Smart_device GitHub Wiki

WIFI๋ž€?

  • Wi-Fi (Wireless Fidelity)๋Š” ๋ฌด์„  ๋„คํŠธ์›Œํฌ ๊ธฐ์ˆ ๋กœ, ์ปดํ“จํ„ฐ, ์Šค๋งˆํŠธํฐ, ํƒœ๋ธ”๋ฆฟ ๋“ฑ์˜ ์žฅ์น˜๊ฐ€ ์ธํ„ฐ๋„ท์— ์ ‘์†ํ•˜๊ณ  ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ.
  • Wi-Fi๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธํ„ฐ๋„ท์— ์œ ์„  ์—ฐ๊ฒฐ ์—†์ด ๋ฌด์„ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ.

ThingSpeak Wifiํ†ต์‹ 

  • ThingSpeak๋Š” Wi-Fi๋ฅผ ํ†ตํ•ด ์žฅ์น˜์™€ ์ธํ„ฐ๋„ท ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์„ ์ง€์›ํ•จ.
  • ์žฅ์น˜(์˜ˆ: ESP32)์—์„œ ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ThingSpeak ์„œ๋ฒ„๋กœ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ.

์‹ค์Šต : ThingSpeak & WIFI

์ฝ”๋“œ

ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ€์ ธ์˜ค๊ธฐ

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

WiFi ์—ฐ๊ฒฐ ์„ค์ •ํ•˜๊ธฐ

#define WIFI_SSID "[wifi id]"
#define WIFI_PASSWORD "[password]"

ESP32์™€ DHT11 ์˜จ์Šต๋„ ์„ผ์„œ, ๊ทธ๋ฆฌ๊ณ  ThingSpeak ์‚ฌ์šฉ ์„ค์ •


#define DHT_PIN 13 // DHT11 ์„ผ์„œ ์—ฐ๊ฒฐ ํ•€
#define DHT_TYPE DHT11

#define THINGSPEAK_SERVER "api.thingspeak.com"
#define THINGSPEAK_API_KEY "7OWWUL25WGUBU610"
#define THINGSPEAK_CHANNEL_ID 2153944

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์ดˆ๋งˆ๋‹ค ์ „์†ก
}

๊ฒฐ๊ณผํ™”๋ฉด

  • Serial Monitor์— ์ถœ๋ ฅ๋œ ๋ชจ์Šต
  • ThingSpeak

์‹ค์Šต์„ ํ†ตํ•ด ๋Š๋‚€์ 

  • ThingSpeak์™€ wifi ์—ฐ๋™์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™” ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Œ.
  • wifi ํ†ต์‹ ์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ThingSpeak์— ์ง์ ‘ ์‹ค์Šตํ•ด๋ณด๋ฉด์„œ ํฅ๋ฏธ๋ฅผ ๋Š๋‚Œ.
โš ๏ธ **GitHub.com Fallback** โš ๏ธ