fbpx

Thingspeak, Monitoring Suhu dan Kelembaban DHT11 IoT

Pada artikel sebelumnya kita sudah belajar untuk mendaftar ke thingspeak, jika belum silahkan bisa di lihat DISINI. Oke sip lanjut ke tahap berikutnya kali ini akan mencoba untuk memonitoring suhu dan kelembaban menggunakan sensor DHT11. Untuk tampilannya berupa grafik, namun bisa juga dalam bentuk numerik, gauge, dan lamp indikator. Tampilannya bisa dilihat dibawah ini.

Langsung saja yang dibutuhkan :

  1. NodeMCU V3 Lolin atau board esp lainnya, BELI
  2. Sensor DHT11, BELI
  3. Kabel jumper, BELI
  4. Library DHT11, download
  5. Chanel thingspeak

Rangkaian

Keterangan :

  1. Pin + dihubungkan ke 3V
  2. Pin Out dihubungkan ke D2
  3. Pin GND dihubungkan ke GND

Pembuatan Channel

Step by step

  1. Sign in ke Thingspeak.com
  2. Masuk Channel > Klik New Channel, isi bagian seperti gambar berikut. > Save Channel.
  3. Yang perlu diperhatikan adalah nama fied 1 dan 2 harus sama dengan nama field yang ada pada sketch programnya. Disini kita buat field 1 =  suhu dan field 2 = kelembaban.
  4. Selanjutnya kita masuk ke menu API keys > Copy Write Api kemudian pastekan ke sketch program Arduino.

Sketch Program

#include <DHT.h>  // Including library for dht

#include <ESP8266WiFi.h>

String apiKey = "KKE4QRYD1VA35678cg"; //pastekan API keys thingspeak

const char *ssid =  "xxxxxx"; //nama wifi
const char *pass =  "xxxxxx"; //password wifi
const char* server = "api.thingspeak.com";

#define DHTPIN D2          //pin where the dht11 is connected

DHT dht(DHTPIN, DHT11);

WiFiClient client;

void setup()
{
  Serial.begin(115200);
  delay(10);
  dht.begin();

  Serial.println("Connecting to ");
  Serial.println(ssid);


  WiFi.begin(ssid, pass);

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

}

void loop()
{

  float kelembaban = dht.readHumidity();
  float suhu = dht.readTemperature();

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

  if (client.connect(server, 80))  //   "184.106.153.149" or api.thingspeak.com
  {

    String postStr = apiKey;
    postStr += "&field1=";
    postStr += String(suhu);
    postStr += "&field2=";
    postStr += String(kelembaban);
    postStr += "\r\n\r\n";

    client.print("POST /update HTTP/1.1\n");
    client.print("Host: api.thingspeak.com\n");
    client.print("Connection: close\n");
    client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
    client.print("Content-Type: application/x-www-form-urlencoded\n");
    client.print("Content-Length: ");
    client.print(postStr.length());
    client.print("\n\n");
    client.print(postStr);

    Serial.print("Temperature: ");
    Serial.print(suhu);
    Serial.print(" degrees Celcius, Humidity: ");
    Serial.print(kelembaban);
    Serial.println("%. Send to Thingspeak.");
  }
  client.stop();

  Serial.println("Waiting...");

  // thingspeak needs minimum 15 sec delay between updates
  delay(1000);
}

Yang perlu diperhatikan :

  • apiKey = pastekan Write API thingspeak
  • ssid = nama wifi
  • pass = nama pasword

  • nama field 1 dan field 2 harus sama dengan nama field di thingspeak.

Hasilnya berikut ini :

Cukup sekian pembahasan kali ini, semoga bermanfaat.

About the Author

15 thoughts on “Thingspeak, Monitoring Suhu dan Kelembaban DHT11 IoT

    1. agak beda di sisi pengiriman data. Perlu tau dulu pake metode apa koneksi internetnya apakah wireless (wifi) atau wired (kabel LAN). Untuk script ke sensornya sama

  1. Gan programnya apakah sama kalau tidak pakai nodemcu?, saya pakai arduino mega
    monitoring suhu sama kekeruhan

    1. 1 detik kak, coba perhatikan baris program 82 di atas. Delay (1000) artinya delay 1 detik. Kalau mau diganti 15 detik, ubah jadi delay (15000)

      1. kalo di SM memang cepet kak, tapi di thingspeak kenapa bisa sampai 5 menit untuk mengirim data?

  2. saya mau nyoba transfer datanya secara serial gitu , tapi pas saya coba outpunya gabung gitu antara suhu sama kelembapan . ada solusinya ??