9. Use The ThingSpeak with ESP32 - EnglishNo/ESP32 GitHub Wiki

ESP32๋ฅผ ์ด์šฉํ•ด ThingSpeak์— ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ

https___thingspeak com_channels_2126213_charts_1_bgcolor=%23ffffff color=%23d62020 dynamic=true results=60 type=line update=15 ์™ธ ํŽ˜์ด์ง€ 3๊ฐœ - ๊ฐœ์ธ - Microsoftโ€‹ Edge 2023-04-29 ์˜คํ›„ 3_26_25

"ThingSpeak"์ด ๋ฌด์—‡์ธ๊ฐ€?


  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐ๋„ท ์ƒ์˜ ์‚ฌ๋ฌผ ์ธํ„ฐ๋„ท(IoT) ํ”Œ๋žซํผ์ด๋‹ค.
  • *MATLAB๋ฅผ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ ๋ถ„์„๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” IoT์žฅ์น˜์—์„œ ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋ถ„์„ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์˜ˆ - ๊ฐ€์ƒ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์„ ํ†ตํ•ด ์ž‘๋ฌผ ์žฌ๋ฐฐ์— ๋Œ€ํ•œ ์˜์‚ฌ ๊ฒฐ์ • ๋‚ด๋ฆผ, ๊ฑด๊ฐ• ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์‹ ์ฒด ํ™œ๋™ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ๊ฐœ์ธ ๊ฑด๊ฐ• ์ƒํƒœ๋ฅผ ํŒŒ์•…

(MATLAB - ์ˆ˜์น˜ ํ•ด์„, ํ–‰๋ ฌ ์—ฐ์‚ฐ, ์‹ ํ˜ธ ์ฒ˜๋ฆฌ, ๊ฐ„ํŽธํ•œ ๊ทธ๋ž˜ํ”ฝ ๊ธฐ๋Šฅ ๋“ฑ์„ ํ†ตํ•ฉํ•˜์—ฌ ๊ณ ์„ฑ๋Šฅ์˜ ์ˆ˜์น˜ ๊ณ„์‚ฐ ๋ฐ ๊ฒฐ๊ณผ์˜ ๊ฐ€์‹œํ™” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด์ž, ํ–‰๋ ฌ์„ ๊ธฐ์ดˆ๋กœ ํ•˜์—ฌ ์ˆ˜ํ•™๊ณผ ๊ณตํ•™ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์–ธ์–ด์ด๋‹ค.

(์ถœ์ฒ˜ - https://terms.naver.com/entry.naver?cid=42346&docId=859905&categoryId=42346)


"ThingSpeak" ์‚ฌ์šฉ๋ฒ•

    https___thingspeak com_channels_2126213_charts_1_bgcolor=%23ffffff color=%23d62020 dynamic=true results=60 type=line update=15 ์™ธ ํŽ˜์ด์ง€ 3๊ฐœ - ๊ฐœ์ธ - Microsoftโ€‹ Edge 2023-04-29 ์˜คํ›„ 3_45_03

  1. "ThingSpeak" ์‚ฌ์ดํŠธ์— ์ ‘์† ๋ฐ ํšŒ์› ๊ฐ€์ž…

    https___thingspeak com_channels_2126213_charts_1_bgcolor=%23ffffff color=%23d62020 dynamic=true results=60 type=line update=15 ์™ธ ํŽ˜์ด์ง€ 3๊ฐœ - ๊ฐœ์ธ - Microsoftโ€‹ Edge 2023-04-29 ์˜คํ›„ 3_45_34

  2. ๋กœ๊ทธ์ธ ํ›„์— ์ฑ„๋„ ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ

    https___thingspeak com_channels_2126213_charts_1_bgcolor=%23ffffff color=%23d62020 dynamic=true results=60 type=line update=15 ์™ธ ํŽ˜์ด์ง€ 3๊ฐœ - ๊ฐœ์ธ - Microsoftโ€‹ Edge 2023-04-29 ์˜คํ›„ 3_45_54

  3. ์ฑ„๋„ ์ด๋ฆ„์ด๋‚˜ ํ•„๋“œ ์„ค์ •

    https___thingspeak com_channels_2126213_charts_1_bgcolor=%23ffffff color=%23d62020 dynamic=true results=60 type=line update=15 ์™ธ ํŽ˜์ด์ง€ 3๊ฐœ - ๊ฐœ์ธ - Microsoftโ€‹ Edge 2023-04-29 ์˜คํ›„ 3_46_25

  4. ์ฑ„๋„์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉด ์„ฑ๊ณต!

"Arduino IDE"๋ฅผ ์ด์šฉํ•ด "ThingSpeak"์— ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ

    ThingSpeak_Practice _ Arduino IDE 2 1 0 2023-04-29 ์˜คํ›„ 4_15_46

  1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•ด๋‹น "ThingSpeak" ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜
  2. #include <WiFi.h> // ์™€์ดํŒŒ์ด๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    #include <ThingSpeak.h> // "ThingSpeak"์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    
    const char* WifiID = "(๋ณธ์ธ์˜ ์™€์ดํŒŒ์ด ID ์ž…๋ ฅ)"; // ์™€์ดํŒŒ์ด ์•„์ด๋”” ์ž…๋ ฅ
    const char* WifiPass = "(๋ณธ์ธ์˜ ์™€์ดํŒŒ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ)"; // ์™€์ดํŒŒ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ
    
    WiFiClient client; // ThingSpeak์— ์ ‘์†ํ•  Wifi ๊ฐ์ฒด ์ƒ์„ฑ
    const long chanID = (๋ณธ์ธ์˜ ThingSpeak ์ฑ„๋„ ID ์ž…๋ ฅ); // "ThingSpeak" ์ฑ„๋„์— ์žˆ๋Š” ID ์ž…๋ ฅ
    const char* WriteKey = "(๋ณธ์ธ์˜ ThingSpeak ์ฑ„๋„ Write Key ์ž…๋ ฅ)"; // "ThingSpeak" ์ฑ„๋„์˜ "API Keys" ์ฐฝ์— ์žˆ๋Š” "Write API Key"์˜ ์ฝ”๋“œ(Key) ์ž…๋ ฅ
    
    // WiFi ๊ฐ์ฒด๋กœ ThingSpeak์™€ ํ†ต์‹  ์‹œ์ž‘
    void setup() {
        Serial.begin(9600); // ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ์ดˆ๊ธฐํ™” (์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์€ ์ปดํ“จํ„ฐ์™€ ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ ์‚ฌ์ด์˜ ํ†ต์‹  ๋ฐฉ๋ฒ•)
        delay(10);
    
        initWiFi(); // WiFi ์ดˆ๊ธฐํ™”
        ThingSpeak.begin(client); // ThingSpeak ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ดˆ๊ธฐํ™”(ThingSpeak ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ์ค€๋น„), WiFiClient ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ๋ฐ›์•„์•ผ ํ•จ
    }
    
    // ์ธ์ž๋ฅผ ThingSpeak์˜ ์ฑ„๋„๋กœ ๋ณด๋‚ด๋Š” ์ฝ”๋“œ
    void loop() {
        for(int i = 0; i < 4; i++) {
            ThingSpeak.writeField(chanID, 1, i, WriteKey); // ์ˆœ์„œ๋Œ€๋กœ ThingSpeak ์ฑ„๋„ ID, ์ฑ„๋„ ๋ฒˆํ˜ธ, ๋ณด๋‚ด๋ ค๋Š” ๊ฐ’, ThingSpeak์— ์žˆ๋Š” WriteKey ์ž…๋ ฅ!, ํ•ด๋‹น 
            ThingSpeak ์ฑ„๋„์˜ ํ•„๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ํ•จ์ˆ˜
            delay(15000);
        }
    }
    
    // WiFi ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜
    void initWiFi() {
        WiFi.begin(WifiID, WifiPass); // ์™€์ดํŒŒ์ด ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ, ESP32์ด ์™€์ดํŒŒ์ด์— ์—ฐ๊ฒฐ๋˜๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜
        while (WiFi.status() != WL_CONNECTED) { // WiFi.status()ํ•จ์ˆ˜๋Š” ESP32์ด ์™€์ดํŒŒ์ด์— ์—ฐ๊ฒฐ ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜, ์™€์ดํŒŒ์ด์— ์—ฐ๊ฒฐ์ด ์•ˆ ๋˜์–ด์žˆ์œผ๋ฉด ์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ์— "." ์ถœ๋ ฅ
            delay(500);
            Serial.println(".");
        }
    }
    

    ํ•ด๋‹น ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ์ปดํŒŒ์ผํ•˜๋ฉด ๋!

-๋ฒˆ์™ธ- ThingSpeak์— ์˜จ๋„์™€ ์Šต๋„ ๋ฐ์ดํ„ฐ ์ „์†กํ•˜๊ธฐ

(์ฐธ๊ณ  - https://github.com/EnglishNo/ESP32/wiki/4.-ESP32-DHT11-And-LCD)


#include <WiFi.h> // ์™€์ดํŒŒ์ด๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
#include <ThingSpeak.h> // "ThingSpeak"์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
#include "DHT.h" // DTH.h ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€

DHT dht(13, DHT11); // DHT ์„ค์ • dht(ํ•€, DHT ์ข…๋ฅ˜)
const char* WifiID = "SK_WiFiGIGA1AA7"; // ์™€์ดํŒŒ์ด ์•„์ด๋”” ์ž…๋ ฅ
const char* WifiPass = "2006085191"; // ์™€์ดํŒŒ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ

WiFiClient client; // ThingSpeak์— ์ ‘์†ํ•  Wifi ๊ฐ์ฒด ์ƒ์„ฑ
const long chanID = 2126213; // "ThingSpeak" ์ฑ„๋„์— ์žˆ๋Š” ID ์ž…๋ ฅ
const char* WriteKey = "GBUTP12OK3MUI97H"; // "ThingSpeak" ์ฑ„๋„์˜ "API Keys" ์ฐฝ์— ์žˆ๋Š” "Write API Key"์˜ ์ฝ”๋“œ(Key) ์ž…๋ ฅ

// WiFi ๊ฐ์ฒด๋กœ ThingSpeak์™€ ํ†ต์‹  ์‹œ์ž‘
void setup() {
    Serial.begin(9600); // ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ์ดˆ๊ธฐํ™” (์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์€ ์ปดํ“จํ„ฐ์™€ ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ ์‚ฌ์ด์˜ ํ†ต์‹  ๋ฐฉ๋ฒ•)
    dht.begin();
    delay(10);

    initWiFi(); // WiFi ์ดˆ๊ธฐํ™”
    ThingSpeak.begin(client); // ThingSpeak ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ดˆ๊ธฐํ™”(ThingSpeak ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ์ค€๋น„), WiFiClient ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌ๋ฐ›์•„์•ผ ํ•จ
}

// ์ธ์ž๋ฅผ ThingSpeak์˜ ์ฑ„๋„๋กœ ๋ณด๋‚ด๋Š” ์ฝ”๋“œ
void loop() {
    int tem = dht.readTemperature(); // ์˜จ๋„ ๊ฐ’ ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ tem์— ์ €์žฅ
    int hum = dht.readHumidity(); // ์Šต๋„ ๊ฐ’ ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ hum์— ์ €์žฅ

    ThingSpeak.writeField(chanID, 2, tem, WriteKey); // 2๋ฒˆ ํ•„๋“œ์— ์˜จ๋„ ๊ฐ’ ์ „์†ก
    Serial.print("Tem : "); Serial.println(tem); // ์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ์— ์˜จ๋„ ๊ฐ’ ์ถœ๋ ฅ
    delay(15000);

    ThingSpeak.writeField(chanID, 3, hum, WriteKey); // 3๋ฒˆ ํ•„๋“œ์— ์Šต๋„ ๊ฐ’ ์ „์†ก
    Serial.print("Hum : "); Serial.println(hum); // ์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ์— ์Šต๋„ ๊ฐ’ ์ถœ๋ ฅ
    delay(15000);
}

// WiFi ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜
void initWiFi() {
    WiFi.begin(WifiID, WifiPass); // ์™€์ดํŒŒ์ด ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ, ESP32์ด ์™€์ดํŒŒ์ด์— ์—ฐ๊ฒฐ๋˜๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜
    while (WiFi.status() != WL_CONNECTED) { // WiFi.status()ํ•จ์ˆ˜๋Š” ESP32์ด ์™€์ดํŒŒ์ด์— ์—ฐ๊ฒฐ ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜, ์™€์ดํŒŒ์ด์— ์—ฐ๊ฒฐ์ด ์•ˆ ๋˜์–ด์žˆ์œผ๋ฉด ์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ‹ฐ์— "." ์ถœ๋ ฅ
        delay(500);
        Serial.println(".");
    }
}

-๊ฒฐ๊ณผ-

ThingSpeak Practice - ThingSpeak IoT ์™ธ ํŽ˜์ด์ง€ 2๊ฐœ - ๊ฐœ์ธ - Microsoftโ€‹ Edge 2023-05-14 ์˜คํ›„ 5_47_33

"ThingSpeak"์˜ ์ฑ„๋„ ํ•„๋“œ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด๋‚ด์ง€๋Š” ๋ชจ์Šต

-.Clipchamp.5.mp4

ThingSpeak_Practice _ Arduino IDE 2 1 0 2023-04-29 ์˜คํ›„ 4_41_23

(๋งŒ์•ฝ ESP32๊ฐ€ ์™€์ดํŒŒ์ด์™€ ์—ฐ๊ฒฐ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์ด๋ ‡๊ฒŒ ์‹œ๋ฆฌ์–ผ ๋ชจ๋‹ˆํ„ฐ์— "."์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค!)

์ด๋ฒˆ ์‹ค์Šต์„ ํ†ตํ•ด ์•Œ๊ฒŒ ๋œ ์ 

  • WiFi.status(), ThingSpeak.writeField(), WiFi.begin() ๋“ฑ, ๋ช‡๋ช‡ ํ•จ์ˆ˜๋“ค์˜ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ThingSpeak ์ฑ„๋„์˜ WriteKey์˜ ์œ„์น˜๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ThingSpeak์—์„œ ์ฐจํŠธ๋‚˜ Display ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ๊ฐ€๋ฆฌํ‚ฌ ํ•„๋“œ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ThingSpeak์˜ ์ฑ„๋„ ์„ค์ •์—์„œ ํ•„๋“œ ์ฐฝ์— ๋ฌธ์žฅ์„ ์ ๋Š” ๊ฒƒ์€ ํ•„๋“œ ๋ฒˆํ˜ธ๋‚˜ ๊ทธ๋ž˜ํ”„์˜ ๊ตฌ์„ฑ ์š”์†Œํ•˜๊ณ  ํ•ด๋‹น ์ƒํ™ฉ์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

์ด๋ฒˆ ์‹ค์Šต์— ์–ด๋ ค์› ๋˜ ์ ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ์‹

  • ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ๋„ ์ปดํŒŒ์ผ์ด ๋˜์ง€ ์•Š๊ณ , ๋ฌด์Šจ ์˜ค๋ฅ˜์ธ์ง€ ์ •ํ™•ํžˆ ์•Œ๋ ค์ฃผ์ง€ ์•Š์•„ ํž˜๋“ค์–ด ํ–ˆ์œผ๋‚˜, ์•„๋‘์ด๋ˆ„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ํ”„๋กœ๊ทธ๋žจ์„ ์—…๋ฐ์ดํŠธํ•˜๋‹ˆ ์ปดํŒŒ์ผ์ด ๋˜์—ˆ๋‹ค.
  • ํ•™๊ต์—์„œ๋Š” ThingSpeak์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋˜์ง€ ์•Š์•„, ์–ด๋””๊ฐ€ ๋ฌธ์ œ์ธ์ง€ ๋‹นํ™ฉํ–ˆ์ง€๋งŒ, ์ง‘์—์„œ ์ง‘์˜ ์™€์ดํŒŒ์ด ID, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋‹ˆ ThingSpeak์— ๋ฐ์ดํ„ฐ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ „์†ก๋˜์—ˆ๋‹ค.
  • ์Šต๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ThingSpeak๋กœ ์ „์†ก์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ์˜จ๋„๋ฅผ ThingSpeak๋กœ ์ „์†กํ•˜๊ณ  ๋”œ๋ ˆ์ด๋ฅผ 15์ดˆ๋ฅผ ์ฃผ๊ณ  ์Šต๋„๋ฅผ ์ „์†กํ•˜๊ณ ์ž ํ•˜๋‹ˆ๊น ์„ฑ๊ณต์ ์œผ๋กœ ์ „์†ก์ด ๋˜์—ˆ๋‹ค.
โš ๏ธ **GitHub.com Fallback** โš ๏ธ