Sensor Kelembaban Tanah Soil Moisture Sensor dengan Arduino dan ESP8266
Model 1 - Soil Moisture Sensor
Model 2 - Soil Moisture Sensor
Cara mengakses Soil Moisture Sensor secara Online
Soil Moisture Sensor merupakan module untuk mendeteksi kelembaban tanah, yang dapat diakses menggunakan microcontroller seperti arduino, NodeMCU ESP8266.
Sensor kelembaban tanah ini dapat dimanfaatkan pada sistem pertanian, perkebunan, maupun sistem hidroponik mnggunakan hidroton.
Soil Moisture Sensor dapat digunakan untuk sistem penyiraman otomatis atau untuk memantau kelembaban tanah tanaman secara offline maupun online.
Sensor yang dijual pasaran mempunyai 2 module dalam paket penjualannya, yaitu sensor untuk deteksi kelembaban, dan module elektroniknya sebagai amplifier sinyal.
Sensor ini mempunyai potensiometer yang digunakan untuk penyesuaian sensitivitas output digital (D0).
Selain itu terdapat output Analog atau tegangan analog jika ingin mengkonversi output tersebut menjadi data menggunakan ADC.
Bagaimana cara kerjanya?
Pada saat diberikan catudaya dan disensingkan pada tanah, maka nilai Output Analog akan berubah sesuai dengan kondisi kadar air dalam tanah.
Pada saat kondisi tanah :
- Basah : tegangan output akan turun
- Kering : tegangan output akan naik
Tegangan tersebut dapat dicek menggunakan voltmeter DC.
Dengan pembacaan pada pin ADC pada microcontroller dengan tingkat ketelitian 10 bit, maka akan terbaca nilai dari range 0 – 1023.
Sedangkan untuk Output Digital dapat diliat pada nyala led Digital output menyala atau tidak dengan mensetting nilai ambang pada potensiometer.
- Kelembaban tanah melebihi dari nilai ambang maka led akan padam
- Kelembaban tanah kurang dari nilai ambang maka led akan menyala
Contoh: Soil Moisture Sensor dengan Arduino dan i2c LCD
Dalam contoh ini, digunakan display i2c LCD yang akan menampilkan nilai output sensor analog dari pembacaan sensor kelembaban tanah ini.
Berikut rangkaian yang harus dirangkai :
Bahan – bahan yang diperlukan :
- Arduino Uno
- Sensor kelembaban tanah Module
- I2C PCF8574
- LCD 16×2
- Kabel female to female secukupnya
- Kabel female to male secukupnya
Untuk wiring dapat diperhatikan rangkaian diatas.
Kode program
/* www.nyebarilmu.com */ #include <Wire.h> #include <LiquidCrystal_PCF8574.h> LiquidCrystal_PCF8574 lcd(0x38); //dapat dicek menggunakan i2c finder const int digital_input = 2; void setup(){ pinMode(digital_input,INPUT); Serial.begin(9600); lcd.begin(16,2); lcd.setBacklight(255); lcd.setCursor(00,00); lcd.print(" nyebarilmu.com "); lcd.setCursor(00,1); lcd.print(" -SoilMoisture- "); delay(2000); lcd.clear(); } void loop(){ int adc = analogRead(A0); float tegangan = adc * (5.0 / 1023.0); Serial.print("ADC:"); Serial.print(adc); Serial.print(" | "); Serial.print("tegangan:"); Serial.println(tegangan, 2); lcd.setCursor(00,00); lcd.print("ADC:"); lcd.setCursor(4,00); lcd.print(adc); lcd.setCursor(9,00); lcd.print("V:"); lcd.setCursor(11,00); lcd.print(tegangan,2); int status_sensor = digitalRead(digital_input); lcd.setCursor(00,1); lcd.print("Status:"); Serial.print("status:"); if (status_sensor == HIGH) { digitalWrite(13, HIGH); //Led builtin Arduino lcd.setCursor(7,1); lcd.print("Kering"); Serial.println("Kering"); } else { digitalWrite(13, LOW); lcd.setCursor(7,1); lcd.print("Basah "); Serial.println("Basah"); } delay(2000); }
Digital output dapat diadjust dengan memutar potensiometer module elektroniknya sebagai nilai ambang pembacaan.
Hasil percobaan dari kode program diatas :
- Serial Monitor – Baut komunikasi
2. LCD 16×2
Contoh 2: Soil Moisture Sensor dengan NodeMCU dan BLYNK
Untuk contoh kedua ini pembacaan sensor kelembaban tanah akan dibuat online melalui smartphone dengan aplikasi BLYNK.
Dimana aplikasi tersebut mudah digunakan dan gratis, serta stabil dalam pengiriman data dan pembacaan datanya.
Rangakaian Nodemcu dan soil moisture Sensor
Bahan – bahan yang diperlukan :
- NodeMCU ESP8266
- Sensor kelembaban tanah Module
- Smartphone android + install “BLYNK”
- Kabel female to female secukupnya
Kode program
/* www.nyebarilmu.com */ #include <ESP8266WiFi.h> //library esp8266 #include <BlynkSimpleEsp8266.h> //library BLYNK #define BLYNK_PRINT Serial BlynkTimer timer; char auth[] = "d8ff16e65ff044d18f9b6c3ad1eaa87b"; //cek email masing2 setelah setting di aplikasi BLYNK char ssid[] = "Blok21no12"; //nama wifi char pass[] = "Komponen08"; //password wifi void myTimerEvent() { int adc = analogRead(A0); //PIN ADC di NODEMCU float tegangan = adc * (5.0 / 1023.0); Blynk.virtualWrite(V0, adc); //Virtual wire "0" untuk data pembacaan ADC Blynk.virtualWrite(V1, tegangan); //Virtual wire "1" untuk data pembacaan ADC } void setup() { Serial.begin(115200); //baud serial monitor Blynk.begin(auth, ssid, pass); timer.setInterval(1000L, myTimerEvent); //1000L = 1 detik } void loop() { Blynk.run(); timer.run(); }
Hasil dari percobaan diatas
Terimakasih
No comments