Membuat Aplikasi Monitoring Suhu dan Kelembaban | Koding Indonesia

Membuat Aplikasi Monitoring Suhu dan Kelembaban

Halo sahabat kodingindonesia, kali ini kita akan membuat device IoT sederhana menggunakan thinger.io sebagai platform Internet of Things tempat kita menyimpan dan juga menampilkan data via internet dan NodeMCU sebagai perangkat utama yang kita program untuk menerima data suhu dan kelembaban dari sensor DHT11Berikut skema sedehana mengenai device IoT yang akan dibuat:

 

Persiapan Perangkat dan Alat

Untuk dapat mengikuti tutorial ini, sahabat harus mempersiapkan beberapa perangkat berikut:

Penulis juga memberikan link untuk membeli perangkat tersebut secara online (Karena menurut pengalaman penulis  harga di toko online lebih murah, tetapi sahabat harus lebih teliti dan hati-hati mencari toko onlinenya ya hehehe)

  • NodeMCU, board wifi kecil berbasis ESP8266. ESP8266 dikenal sebagai modul wifi yang handal dan ekonomis. ESP8266 inilah yang menghubungkan perangkat kita dengan internet via WiFi. https://goo.gl/w6Ov4r
  • DHT11, sensor bertipe keluaran digital yang dapat mengukur suhu dan kelembaban secara bersamaan. Sensor ini dapat mengukur suhu 0 – 50 °C dan mengukur kelembaban 20 – 90 % RH. https://goo.gl/xjhJID
  • Breadboard https://goo.gl/SGeae4
  • Kabel jumper https://goo.gl/N3Lxkw

Selain perangkat-perangkat diatas, sahabat juga memerlukan Wifi Access Point yang terhubung ke internet. Namun jika sahabat tidak memiliki Wifi Access Point, sahabat  dapat menggunakan smartphone untuk dijadikan hotspot yang nantinya akan digunakan oleh NodeMCU untuk terkoneksi ke internet.

 

Selanjutnya kita akan melihat rangkaian dan program sensor.


Rangkaian dan Program Testing Pembacaan Sensor DHT11 pada NodeMCU

Pada langkah pertama ini kita mulai merangkai device IoT sederhana menggunakan NodeMCU sebagai inti dari alat ini dan DHT11 sebagai sensor suhu dan kelembaban, berikut skematiknya :

 

 

Kemudian setelah selesai merangkainya, kita terlebih dahulu membuat program untuk mencoba membaca sensor DHT11 yang nantinya data sensor tersebut dikirim ke Thinger.io melalui internet. Berikut programnya :

#include <ESP8266WiFi.h> 
#include <DHT.h>
#define DHTPIN D7 //Pin data dari DHT terhubung ke pin D7 NodeMCU
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("Baca DHT11");
  dht.begin();
}

void loop() {
  delay(1000); //1 detik
  float h = dht.readHumidity(); //Membaca kelembaban
  float t = dht.readTemperature(); //Membaca suhu dalam satuan Celcius
  float f = dht.readTemperature(true); //Membaca suhu dalam satuan Fahrenheit
  Serial.print("Kelembaban: ");
  Serial.print(h);
  Serial.print("% RH ");
  Serial.print("Suhu: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.println(" *F");
}

Setelah program di upload ke NodeMCU menggunakan Arduino IDE, maka kita dapat melihat output sensor menggunakan serial monitor pada Arduino IDE seperti contoh dibawah ini :





.

Mempersiapkan thinger.io untuk Menampilkan Data dari NodeMCU Secara Online dan Membuat Program

Jika tahap pertama sudah berhasil, kita akan lanjut ke tahap kedua. Pada tahap ini kita akan mencoba mengirim data ke thinger.io secara online dari data sensor DHT11 yang sudah terbaca oleh NodeMCU. Berikut langkah-langkahnya :

Registrasi thinger.io di sini, https://console.thinger.io/#/signup

Jika berhasil registrasi dan login, maka sahabat akan masuk ke tampilan seperti ini:

 

 

Setelah itu masuk ke “Device”, lalu pilih “+ Add Device”

Di sini kita akan mendaftarkan device NodeMCU yang kita gunakan agar dapat terhubung ke thinger.io secara online. Perlu sahabat ketahui untuk “Device Id” dan “Device credentials” dapat diisi sesuai keinginan sahabat tetapi harus sahabat catat dan simpan baik-baik, karena keduanya akan digunakan NodeMCU sebagai penghubung ke thinger.io.

Setelah selesai melakukan registrasi di thinger.io, sekarang kita mulai membuat program untuk mengirim data yang di baca NodeMCU ke thinger.io.

 

 

Berikut progam yang akan di upload ke NodeMCU untuk mengirim data yang di baca NodeMCU ke thinger.io:

#include <ESP8266WiFi.h> 
#include <DHT.h>
#include <ThingerESP8266.h>

#define USERNAME "KodingIndonesia" //Username thinger.io
#define DEVICE_ID "KodingIndonesia_NodeMCU_1" 
#define DEVICE_CREDENTIAL "***"

#define SSID "***" //Hotspot yang kita pakai
#define SSID_PASSWORD "***"

#define DHTPIN D7 //Pin data dari DHT terhubung ke pin D7 NodeMCU
#define DHTTYPE DHT11

ThingerESP8266 thing(USERNAME, DEVICE_ID, DEVICE_CREDENTIAL);

DHT dht(DHTPIN, DHTTYPE);

float hum,temp;

void setup() {
  Serial.begin(9600);
  Serial.println("Baca DHT11");

  dht.begin();

  thing.add_wifi(SSID, SSID_PASSWORD);

  thing["dht11"] >> [](pson& out){
    out["humidity"] = hum;
    out["celsius"] = temp;
  };
}

void loop() {  
  thing.handle(); 
  
  //sensor membutuhkan waktu 250 ms ketika membaca suhu dan kelembaban 
  float h = dht.readHumidity(); //Membaca kelembaban
  float t = dht.readTemperature(); //Membaca suhu dalam satuan Celcius
  float f = dht.readTemperature(true); //Membaca suhu dalam satuan Fahrenheit

  hum = h;
  temp = t;
}

 

Silahkan klik Next Step di bawah ini untuk melanjutkan belajar.

[/nextpage]

Setelah program di upload ke NodeMCU menggunakan Arduino IDE, maka seharusnya ketika kita membuka “Device” pada thinger.io akan muncul tulisan “Connected” seperti dibawah ini :

Namun apabila “Disconnected”, maka ada beberapa yang harus sahabat cek ulang :

  • Koneksi internet yang sahabat pakai
  • Pastikan semua informasi yang sahabat masukan pada program Arduino sudah benar atau belum.
#define USERNAME "KodingIndonesia" //Username thinger.io
#define DEVICE_ID "KodingIndonesia_NodeMCU_1" 
#define DEVICE_CREDENTIAL "***"

#define SSID "***" //Hotspot yang kita pakai
#define SSID_PASSWORD "***"

Kemudian langkah selanjutnya, sahabat masuk ke “Dashboard” dan klik “+ Add Dashboard”

Lalu isi semua field sesuai keinginan sahabat, contoh seperti dibawah ini :

 

 

Langkah selanjutnya sahabat masuk ke “Dashboard”, lalu pilih dashboard yang telah sahabat buat sebelumnya.

 

Setelah muncul tampilan seperti dibawah ini, sahabat klik tombol yang ada di ujung kanan atas pada tampilan :

Maka akan muncul seperti gambar di bawah ini dan klik “+ Add Widget” :

dan silahkan sahabat isi sesuai pengaturan sahabat, seperti contoh dibawah ini :

 

 

Maka setelah di save, seharusnya akan muncul “Donut Chart” seperti gambar di bawah ini dan menampilkan suhu yang dikirim dari NodeMCU melalui internet :

dan setelah saya tambahkan lg widget dengan pengaturan seperti dibawah ini :

 

 

maka tampilan akhirnya akan seperti ini :

Nah sahabat, belajar IoT itu cukup mudah kan ?? 🙂

Seperti biasa, jika tutorial ini di rasa bermanfaat, silahkan like & share ya sahabat ?
atau bila sahabat ingin bertanya, silahkan komen di bawah ya ?

Terimakasih ?
Salam KODINGINDONESIA

Anton Prafanto
Anton Prafanto
Konten developer kodingindonesia.com & staf pengajar tetap di Universitas Mulawarman Samarinda