Monitoring
Monitoring suhu dan kelembaban adalah kata yang populer dalam sistem kontrol, apalagi monitoring berbasis web atau smartphone. Sesuatu yang bisa dilihat, di tracking atau di pantau sambil minum kopi kesukaan dan beberapa cake di tangan.
Tentu saja monitoring ini akan memudahkan kita, tidak perlu berada ditempat yang mau di ukur, apalagi misalnya device yang mau di monitoring berada di tempat extrime, berbahaya, tentu meninjau langsung membutuhkan effort yang jauh lebih besar. yah mungkin itu kenapa akhir-akhir di gaungkan industri 4.0, salah satu nya adalah monitoring.
Blynk
Blynk adalah sebuah layanan aplikasi yang universal yang bisa di custome sendiri atau di rubah-rubah untuk di gunakan sebagai monitoring atau kendali berbasis internet. Jadi untuk sistem sederhana bisa menggunakan aplikasi ini, dengan sedikit pengaturang di Arduino nya dan di aplikasi blynk nya, kita bisa memonitoring suhu dan kelembaban berbasis internet di smartphone kita. lengkap nya bisa rujuk ke website official ya langsung
Persiapan Monitoring
Install Blynk
Sebelum kita monitoring Suhu dan kelembaban dari sensor DHT21 maka silahkan download dulu aplikasi blynk nya, cukup search blynk di playstore dan install. Setelah registrasi, kemudian login ke blynk nya.
setelah berhasil di register dan login, langkah selanjut nya adalah membuat form aplikasi di blynk nya, apakah yang akan kita tampilkan? untuk lebih jelas nya cara pembuatan form di aplikasi ini, bisa langsung lihat video di singkat bawah ini.
Install Library
Setelah kita buat form aplikasi monitoring di aplikasi blynk nya langkah selanjut nya adalah install atau ada library arduino pendukung nya, silahkan download 3 link library berikut ini.
- Library TinyGSM
- Library sensor kelembaban dan Suhu DHT.h
- Library adafruit sensor
- Autoscan I2C LCD arduino
Pastikan semua Library di atas sudah di add di Arduino teman-teman, jika tidak akan banyak program yang error ketika di compile.
Ganti Bautrate SIM800
Karena kita akan menggunakan SIM800v2 sebagai akses internet nya, maka untuk koneksi yang lebih stabil di anjurkan ganti bautrate ke 38400. Sementara bautrate default SIM800v2 adalah mode Auto. Bagaimana kah cara merubah nya?
Sebelum kita ganti baut rate dengan printah at-command, silahkan hubungkan sim800v2 dan usb to ttl seperti pada gambar di bawah ini,
Pastikan hal berikut jika ingin ganti bautrate nya sim800v2
- Hubungkan TXD usb to TTL ke RXD sim800v2
- Hubungkan RXD usb to TTL ke TXD sim800v2
- Hubungkan GND usb to TTL ke GND sim800v2
- Hubungkan vcc/+5v ke sumber tegangan +5v/2A, gunakan sumber tegangan external dengan tegangan +5V dan besar Arus minimal 2A, bisa gunakan modul LM2596 atau buat power supply sendiri dengan menggunakan regulator LM2596 +5v atau LM2576 +5v
Setelah di atas sudah terpenuhi, connectkan usb to ttl ke laptop, bukan Arduino IDE, cocokan di com berapa kemudian buka serial monitor ganti bautrate ke 9600. langkah selanjut nya seperti berikut
AT <enter>
akan muncul respon OK jika berhasil
AT+IPR = 38400 <enter>
akan muncul respon OK dan bautrate telah berhasil di ganti, sekarang coba ganti bautrate ke 38400 di serial monitor nya, kemudian kita check dengan perintah berikut.
AT+IPR? <enter>
akan muncul respon. Untuk lebih mudah nya, teman-teman bisa download ebook nya dengan klik tombol di bawah ini
Uji Sensor DHT21
Langkah selanjut nya untuk project monitoring suhu dan kelembaban ini adalah uji sensor DHT21, sensor ini adalah sensor yang mampu membaca kelembaban dan suhu di ruangan sekitar. Bagaiamanakah cara menguji sensor ini? Sebelum menguji nya, coba perhatikan rangkaian sederhana di gambar di bawah ini.
Pastikan wiring sensor DHT21, LCD i2C sudah tepat seperti gambar, ada resistor 10k sebagai pull up di pin data sensor kelembaban dan suhu nya. setelah itu kita coba masukkan program berikut ini.
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include "DHT.h" #define DHTPIN 15 // what digital pin we're connected to // Uncomment whatever type you're using! //#define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht(DHTPIN, DHTTYPE); LiquidCrystal_I2C lcd(16, 2); float h,t,f; float hic, hif; void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); lcd.autoAddress(); lcd.begin(); dht.begin(); } void loop() { lcd.setCursor(0,0); lcd.print("Humidity & Themp"); lcd.setCursor(0,1); lcd.print("H:"); lcd.print(h,1); lcd.print("% "); lcd.print("T:"); lcd.print(t,1); lcd.print("C"); baca_sensor(); } void baca_sensor(){ // Wait a few seconds between measurements. delay(2000); // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) h = dht.readHumidity(); // Read temperature as Celsius (the default) t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) f = dht.readTemperature(true); // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } // Compute heat index in Fahrenheit (the default) hif = dht.computeHeatIndex(f, h); // Compute heat index in Celsius (isFahreheit = false) hic = dht.computeHeatIndex(t, h, false); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.println(""); lcd.clear(); }
Final Program
Final program, sebenarnya banyak step lagi yang harus di uji sebelum memaparkan program ini, mulai dari uji sim800v2 nya apakah sudah bekerja atau tidak, uji blynk apakah sudah bisa nampil atau tidak di aplikasi android kita nya,
Untuk mempersingkat nya, berikut program final nya,
#include "DHT.h" #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <SoftwareSerial.h> #define BLYNK_PRINT Serial // Select your modem: #define TINY_GSM_MODEM_SIM800 //#define TINY_GSM_MODEM_SIM900 //#define TINY_GSM_MODEM_M590 //#define TINY_GSM_MODEM_A6 // Default heartbeat interval for GSM is 60 // If you want override this value, uncomment and set this option: //#define BLYNK_HEARTBEAT 30 #include <TinyGsmClient.h> #include <BlynkSimpleSIM800.h> // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "YourAuthBlynk"; // Your GPRS credentials // Leave empty, if missing user or pass char apn[] = "Internet"; char user[] = ""; char pass[] = ""; // Hardware Serial on Mega, Leonardo, Micro //#define SerialAT Serial1 // or Software Serial on Uno, Nano SoftwareSerial SerialAT(4, 3); // RX, TX TinyGsm modem(SerialAT); BlynkTimer timer; LiquidCrystal_I2C lcd(20, 4); String line1, line2, line3, line4; #define DHTPIN 15 #define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht(DHTPIN, DHTTYPE); float ThempC, ThempF, Hum; void setup() { // Debug console Serial.begin(9600); lcd.autoAddress(); lcd.begin(); delay(10); // Set GSM module baud rate SerialAT.begin(38400); delay(3000); // Restart takes quite some time // To skip it, call init() instead of restart() line1 = "init modem"; update_lcd(); Serial.println("Initializing modem..."); modem.restart(); line2 = "ok"; update_lcd(); delay(2000); lcd.clear(); line1 = ""; line2 = ""; Blynk.begin(auth, modem, apn, user, pass); timer.setInterval(1500L, readDHT); } void loop() { Blynk.run(); timer.run(); } void update_lcd(){ lcd.setCursor(0,0); lcd.print(line1); lcd.setCursor(0,1); lcd.print(line2); lcd.setCursor(0,2); lcd.print(line3); lcd.setCursor(0,3); lcd.print(line4); } void readDHT(){ //delay(1500); Hum = dht.readHumidity(); ThempC = dht.readTemperature(); ThempF = dht.readTemperature(true); if (isnan(Hum) || isnan(ThempF) || isnan(ThempC)) { lcd.setCursor(0,0); lcd.print("DHT Fail"); return; } line1 = F("blynk sensor DHT21"); line2 = String("HUM : ") + Hum; line3 = String("Themp: ") + ThempC; Blynk.virtualWrite(V0, Hum); Blynk.virtualWrite(V1, ThempC); update_lcd(); }
hal yang penting dari program di atas adalah dua line program berikut?
Blynk.virtualWrite(V0, Hum); Blynk.virtualWrite(V1, ThempC);
V0 dan V1 adalah alamat display yang dituju pada aplikasi blynk nya. V0 dan V1 di sebut juga sebagai virtual pin.
nah sekian dulu tulisan kita yah, semoga bermanfaat. Jangan lupa share jika tulisan ini bisa membantu orang banyak
Thanks