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 :
- NodeMCU V3 Lolin atau board esp lainnya, BELI
- Sensor DHT11, BELI
- Kabel jumper, BELI
- Library DHT11, download
- Chanel thingspeak
Rangkaian
Keterangan :
- Pin + dihubungkan ke 3V
- Pin Out dihubungkan ke D2
- Pin GND dihubungkan ke GND
Pembuatan Channel
Step by step
- Sign in ke Thingspeak.com
- Masuk Channel > Klik New Channel, isi bagian seperti gambar berikut. > Save Channel.
- 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.
- 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.
maaf kalo pakai arduino di r1 apakah sama source codenya? dan untuk rangkaiannya seperti apa ya?
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
Gan programnya apakah sama kalau tidak pakai nodemcu?, saya pakai arduino mega
monitoring suhu sama kekeruhan
karena arduino mega tidak memiliki wifi maka source akan beda, khususnya di bagian pengiriman data
kenapa kirim datanya setiap 1 menit ya? cara ganti biar 15 detik bagaimana?
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)
kalo di SM memang cepet kak, tapi di thingspeak kenapa bisa sampai 5 menit untuk mengirim data?
tergantung koneksi internet dan kinerja server thingspeak-nya
saya mau nyoba transfer datanya secara serial gitu , tapi pas saya coba outpunya gabung gitu antara suhu sama kelembapan . ada solusinya ??
oh ya gan saya mau nyoba misal kalau transfer datanya itu lewat arduino dulu apa codingannya beda ?
kalo metode kirim datanya sama mas
kok punya saya outputnya ” failed to read from dht sensor
cek kabelnya longgar atau salah pin, atau ada yang putus,
itu hanya masalah pada pembacaan sensor dht11nya
sudah bisa gan , makasih
sip…