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.

Kategori: NodeMCU

15 Komentar

Irvana · Februari 10, 2020 pada 4:30 am

kok punya saya outputnya ” failed to read from dht sensor

    m syefudin · Februari 10, 2020 pada 4:38 am

    cek kabelnya longgar atau salah pin, atau ada yang putus,

    itu hanya masalah pada pembacaan sensor dht11nya

      Irvana · Februari 11, 2020 pada 3:18 am

      sudah bisa gan , makasih

        m syefudin · Februari 11, 2020 pada 3:19 am

        sip…

Irvana · Februari 11, 2020 pada 3:20 am

oh ya gan saya mau nyoba misal kalau transfer datanya itu lewat arduino dulu apa codingannya beda ?

    ajie · Maret 6, 2020 pada 3:34 am

    kalo metode kirim datanya sama mas

Irvana · Februari 11, 2020 pada 3:25 am

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

Martha Suteja · Mei 27, 2020 pada 9:17 am

kenapa kirim datanya setiap 1 menit ya? cara ganti biar 15 detik bagaimana?

    ajie · Mei 27, 2020 pada 10:17 am

    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)

      Martha Suteja · Mei 30, 2020 pada 7:03 am

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

        ajie · Juni 2, 2020 pada 2:57 am

        tergantung koneksi internet dan kinerja server thingspeak-nya

Rangga · Juni 29, 2020 pada 10:49 pm

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

    ajie · Juli 15, 2020 pada 12:02 am

    karena arduino mega tidak memiliki wifi maka source akan beda, khususnya di bagian pengiriman data

setya · September 22, 2020 pada 4:42 am

maaf kalo pakai arduino di r1 apakah sama source codenya? dan untuk rangkaiannya seperti apa ya?

    ajie · September 23, 2020 pada 3:05 am

    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

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Scroll Up
id_IDIndonesian
en_USEnglish id_IDIndonesian