Pembuatan Alat Penyiram Tanaman Otomatis dengan Kontrol Internet

Pada saat ini banyak hal kegiatan baik pekerjaan rumah dan kantor atau pabrik yang bisa dilakukan secara otomatis. Salah satu pembuatan alat otomasi yang kami bahas disini adalah alat penyiraman, pengembunan, lampu, blower yang dipasang pada kebun ruang tertutup. Namun alat ini dapat pula digunakan untuk penyiraman dan pengembunan pada kebun terbuka. Sedangkan kebun tertutup yang kami pasang alat otomasi ini adalah kebun anggrek. Kami menyebut alat ini adalah Water Planting Otomation atau alat otomasi untuk penyiraman tanaman di kebun anggrek dengan kontrol internet wifi. Satu paket alat yang kami buat ini meliputi software, hardware, pembuatan APK (untuk kontrol melalui jaringan internet WiFi) dan teknis pemasangan alat-alat nya di kebun tersebut. Output Water Planting Otomation atau alat penyiram tanaman otomatis seperti dibawah ini :




misting

sprinkel

blower

lampu

 

Sedangkan detailsnya dapat saya sampaikan sebagai berikut :

Siste Kerja Alat Water Planting Otomation atau Alat Penyiram Tanaman Otomatis
Pada alat yang telah dirancang ini digunakan untuk melakukan otomisasi pada sebuah ruang tanaman. Alat ini dapat bekerja secara otomatis dengan bantuan sensor dan juga dapat dikontrol secara manual melalui aplikasi. Untuk kontrol secara manual system harus memenuhi persyaratan terlebih dahulu, yaitu system dan smartphone yang telah terinstall aplikasi harus terhubung dengan koneksi internet.
Pada alat ini menggunakan 3 buah sensor yaitu DHT11, LDR, dan Soil Moisture dengan 4 buah parameter pengukuran yang dihasilkan oleh sensor – sensor tersebut. 4 parameter tersebut antara lain adalah pengukuran cahaya ruangan yang dilakukan oleh sensor LDR, dimana ketika sensor LDR mendeteksi cahaya pada ruangan adalah “gelap” maka akan mengirimkan data pada NodeMCU yang kemudian akan mengaktifkan Relay 1 yang terlah terhubung dengan lampu agar menyala.
Kemudian parameter yang kedua adalah kelembaban tanah yang diukur dengan menggunakan sensor Soil Moisture. Pada pengukuran sensor Soil Moisture ini output yang dihasilkan oleh sensor berupa data analog yang kemudian diolah NodeMCU untuk dirubah dalam satuan persen. Ketika output sensor yang terbaca atau kelembaban tanah yang terbaca adalah kurang dari 50% maka akan mengaktifkan Relay 3 yang kemudian akan menyalakan Pompa penyiraman. Ketika output sensor Soil Moisture yang telah terbaca lebih dari 65% maka akan menonaktifkan pompa penyiraman.
Selanjutnya untuk parameter ketiga dan keempat adalah Suhu ruangan dan kelembaban udara, kedua parameter ini diukur menggunakan sensor DHT11, dimana output yang dihasilkan oleh sensor DHT11 langsung merupakan Suhu ruangan dengan satuan derajat celcius dan juga kelembaban ruangan dengan satuan persen. Ketika sensor DHT11 mengukur dan menghasilkan suhu diatas 35ºC maka akan mengaktifkan Relay 2 dan kemudian mengaktifkan blower untuk menurunkan suhu ruangan tersebut sampai dibawah 33ºC. Dan ketika sensor DHT11 menghasilkan pengukuran kelembaban ruangan kurang dari 51% maka akan mengaktifkan Relay 4 dan kemudian alat spray air akan aktif sampai kelembaban ruangan tersebut naik ke 64%.
Semua data yang telah diproses oleh NodeMCU yaitu hasil pembacaan dan pengolahan data sensor akan dikirimkan kesebuah database penyimpanan ketika NodeMCU telah terhubung dengan koneksi Internet. Dari database tersebut data akan diolah kembali untuk dikirimkan pada aplikasi smartphone. Pada aplikasi smartphone ini digunakan untuk monitoring dan kontrol output dengan mode manual.

Alat Komponen yang digunakan :

  • 1 Buah 1 Buah Sensor Soil Moisture
  • 1 Buah Modul Sensor Cahaya LDR
  • 1 Buah Nodemcu
  • 1 Buah Relay, 4 channel 5V
  • 1 Buah Sensor Temperatur DHT11

sensor kelembaban tanah

sensor cahaya LDR

Nodemcu

Relay 4 Channel

Sensor Temperatur DHT11
  • Sensor Soil Moisture (Kelembaban Tanah)

Soil Moisture Sensor merupakan module untuk mendeteksi kelembaban tanah, yang dapat diakses menggunakan microcontroller seperti arduino. 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 kelembaban tanah

Pada saat kondisi tanah :
Basah : tegangan output akan turun, prosentase akan terlihat di apk (aplikasi android) pada tingkat kebasahan tertentu, alat penyiraman atau yang biasa disebut sprinkel akan berhenti menyiramkan air secara otomatis.
Kering : tegangan output akan naik, prosentase tingkat kekeringan akan terbaca di apk (aplikasi android) pada tingkat kekeringan tertentu sehingga alat penyiraman atau sprinkel akan menyala untuk menyiramkan air.

 

 

 

 

  • Modul Sensor Cahaya LDR
sensor cahaya LDR

 

Modul sensor cahaya ini memudahkan anda dalam menggunakan sensor LDR (Light Dependent Resistor) untuk mengukur intensitas cahaya. Modul LDR ini memiliki pin output analog dan pin output digital dengan label AO dan DO pada PCB. Nilai resistansi LDR pada pin analog akan meningkat apabila intensitas cahaya meningkat dan menurun ketika intensitas cahaya semakin gelap. Pada pin digital, pada batas tertentu DO akan high atau low, yang dikendalikan sensitivitas nya menggunakan onboard potensiometer
• Input Voltage: DC 3.3V – 5V
• Output: Digital – Sensitivitas bisa diatur, dan analog
• Ukuran PCB : 33 mm x 15 mm

Cara kerja sensor pada alat water planting otomation yang kami buat adalah untuk menyalakan dan mematikan lampu di kebun secara otomatis. Ketika sensor cahaya LDR mendeteksi cahaya, maka lampu akan mati secara otomatis dan sebaliknya jika sensor mendeteksi ruangan sekitar gelap, maka lampu akan menyala secara otomatis.

  • Relay 5V 4 channel

Modul relay adalah salah satu piranti yang beroperasi berdasarkan prinsip elektromagnetik untuk menggerakkan kontaktor guna memindahkan posisi ON ke OFF atau sebaliknya dengan memanfaatkan tenaga listrik. Peristiwa tertutup dan terbukanya kontaktor ini terjadi akibat adanya efek induksi magnet yang timbul dari kumparan induksi listrik. Perbedaan yang paling mendasar antara relay dan sakelar adalah pada saat pemindahan dari posisi ON ke OFF. Relay melakukan pemindahan-nya secara otomatis dengan arus listrik, sedangkan sakelar dilakukan dengan cara manual.

Relay 4 Channel

Pada dasarnya, fungsi modul relay adalah sebagai saklar elektrik. Dimana ia akan bekerja secara otomatis berdasarkan perintah logika yang diberikan. Kebanyakan, relay 5 volt DC digunakan untuk membuat project yang salah satu komponennya butuh tegangan tinggi atau yang sifatnya AC (Alternating Current).
Sedangkan kegunaan relay secara lebih spesifik adalah sebagai berikut:
1. Menjalankan fungsi logika dari mikrokontroler Arduino.
2. Sarana untuk mengendalikan tegangan tinggi hanya dengan menggunakan tegangan rendah.
3. Meminimalkan terjadinya penurunan tegangan.
4. Memungkinkan penggunaan fungsi penundaan waktu atau fungsi time delay function.
5. Melindungi komponen lainnya dari kelebihan tegangan penyebab korsleting.
6. Menyederhanakan rangkaian agar lebih ringkas.

Secara ringkas relay pada alat water planting otomation atau alat penyiram tanaman otomatis adalah sebagai pengubah tegangan dan kontrol terhadap 4 output yitu penyiraman, pengembunan, lampu dan blower.

 

  • NodeMCU
NodeMCU

 

NodeMCU merupakan sebuah open source platform IoT dan pengembangan kit yang menggunakan bahasa pemrograman Lua untuk membantu dalam membuat prototype produk IoT atau bisa dengan memakai sketch dengan adruino IDE. Pengembangan kit ini didasarkan pada modul ESP8266, yang mengintegrasikan GPIO, PWM (Pulse Width Modulation), IIC, 1-Wire dan ADC (Analog to Digital Converter) semua dalam satu board. GPIO NodeMCU. NodeMCU berukuran panjang 4.83cm, lebar 2.54cm, dan berat 7 gram. Board ini sudah dilengkapi dengan fitur WiFi dan Firmwarenya yang bersifat opensource.

 

 

  • Sensor Temperature DHT11
Sensor Temperatur DHT11

merupakan module sensor yang berfungsi untuk mensensing objek suhu dan kelembaban yang memiliki output tegangan analog yang dapat diolah lebih lanjut menggunakan mikrokontroler. Module sensor ini tergolong kedalam elemen resistif seperti perangkat pengukur suhu seperti contohnya yaitu NTC. Kelebihan dari module sensor ini dibanding module sensor lainnya yaitu dari segi kualitas pembacaan data sensing yang lebih responsif yang memliki kecepatan dalam hal sensing objek suhu dan kelembaban, dan data yang terbaca tidak mudah terinterverensi. Sensor DHT11 pada umumya memiliki fitur kalibrasi nilai pembacaan suhu dan kelembaban yang cukup akurat. Penyimpanan data kalibrasi tersebut terdapat pada memori program OTP yang disebut juga dengan nama koefisien kalibrasi.Sensor ini memiliki 4 kaki pin, dan terdapat juga sensor DHT11 dengan breakout PCB yang terdapat hanya memilik 3 kaki pin seperti gambar disamping.

 

DIAGRAM BLOK ALAT PENYIRAM TANAMAN OTOMATIS

Berikut dibawah ini adalah diagram blok Alat Penyiram Tanaman Otomatis atau Water Planting Otomation :

Diagram Blok Water Planting Otomation

 

SCHEMATICS ALAT PENYIRAM TANAMAN OTOMATIS

Berikut di bawah ini adalah gambar skematik water planting otomation atau alat penyiram tanaman otomatis :

schematics alat penyiram tanaman otomatis

Berikut ini adalah desain cetak PCB untuk alat penyiram tanaman otomatis :

PCB desain alat penyiram tanaman otomatis

 

KONEKSI SENSOR DENGAN NODEMCU :

Koneksi Soil Moisture dengan Nodemcu

 

 

 

 

Koneksi DHT11 dengan Nodemcu

 

 

 

 

Koneksi Modul Sensor LDR dengan Nodemcu

 

 

 

 

Koneksi Relay dengan Nodemcu

 

 

 

 

 

 

Source Code (Kode Pemrograman)

Untuk pengerjaan pemrograman alat penyiram tanaman otomatis atau water planting otomation, kami menggunakan bahasa C++ sebagai bahasa pemrograman. Adapan details pemrograman alat penyiram tanaman otomatis adalah sebagai berikut :

#include <ESP8266WiFi.h>

 

#ifndef STASSID

#define STASSID “(((Hotspot_TPHP)))”

#define STAPSK  “smkn1pandakbantul”

#endif

 

const char* ssid     = STASSID;

const char* password = STAPSK;

 

#include “FirebaseESP8266.h”

#define FIREBASE_HOST “water-planting-automation-default-rtdb.firebaseio.com”

#define FIREBASE_AUTH “rcLTo1dbvjujvZ86igD6EsU0wZJLpskeDyrhX5as”

 

FirebaseData firebaseData;

 

#include “DHT.h”

#define DHTPIN D3

#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

 

String status_relay1 = “”;

String status_relay2 = “”;

String status_relay3 = “”;

String status_relay4 = “”;

 

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

 

void setup() {

dht.begin();

Serial.begin(115200);

lcd.init();

lcd.backlight();

Serial.println();

Serial.println();

Serial.print(“Connecting to “);

Serial.println(ssid);

 

WiFi.mode(WIFI_STA);

WiFi.begin(ssid, password);

 

const long timeout = 15000;

long _start = millis();

while ((WiFi.status() != WL_CONNECTED) && (millis() – _start < timeout)) {

Serial.print(“.”);

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“Connecting…”);

delay(500);

}

 

Serial.println();

 

if (WiFi.status() == WL_CONNECTED) {

Serial.println(“CONNECTED”);

Serial.println(“IP: ” + WiFi.localIP().toString());

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“Connected”);

delay(500);

} else {

Serial.println(“WiFi Tidak Terhubung”);

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“WiFi Not”);

lcd.setCursor(0, 1);

lcd.print(“Connected”);

delay(500);

}

 

lcd.clear();

lcd.setCursor(1, 0);

lcd.print(“WATER PLANTING”);

lcd.setCursor(3, 1);

lcd.print(“AUTOMATION”);

delay(500);

lcd.clear();

 

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);

 

pinMode(A0, INPUT);

pinMode(D0, INPUT);

pinMode(D5, OUTPUT);

pinMode(D6, OUTPUT);

pinMode(D7, OUTPUT);

pinMode(D8, OUTPUT);

digitalWrite(D5, 1);

digitalWrite(D6, 1);

digitalWrite(D7, 1);

digitalWrite(D8, 1);

}

 

 

void LDR_Sensor() {

String Cahaya = “”;

int dataLDR = digitalRead(D0);

Serial.print(“LDR:”); Serial.print(dataLDR); Serial.print(”  “);

if (dataLDR == 1) {

Cahaya = “Dark”;

digitalWrite(D5, 0);

Firebase.setString(firebaseData, “relay1”, “1”);

} else {

Cahaya = “Bright”;

digitalWrite(D5, 1);

Firebase.setString(firebaseData, “relay1”, “0”);

}

Serial.print(“Kondisi Cahaya: “); Serial.println(Cahaya);

Firebase.setString(firebaseData, “Cahaya”, Cahaya);

}

 

void bacaLDR_Sensor() {

String Cahaya = “”;

int dataLDR = digitalRead(D0);

Serial.print(“LDR:”); Serial.print(dataLDR); Serial.print(”  “);

if (dataLDR == 1) {

Cahaya = “Dark”;

} else {

Cahaya = “Bright”;

}

Serial.print(“Kondisi Cahaya: “); Serial.println(Cahaya);

Firebase.setString(firebaseData, “Cahaya”, Cahaya);

}

 

void Soil_Sensor() {

int dataSoil = analogRead(A0);

dataSoil = map(dataSoil, 0, 1023, 100, 0);

lcd.setCursor(0, 1);

lcd.print(“Soil :”); lcd.print(dataSoil);

lcd.setCursor(8, 1);

lcd.print(“%”);

Serial.print(“Kelembaban : “); Serial.print(dataSoil); Serial.println(“%”);

Firebase.setFloat(firebaseData, “Soil”, dataSoil);

if (dataSoil <= 50) {

digitalWrite(D7, 0);

Firebase.setString(firebaseData, “relay3”, “1”);

} else if (dataSoil >= 65) {

digitalWrite(D7, 1);

Firebase.setString(firebaseData, “relay3”, “0”);

}

}

 

void bacaSoil_Sensor() {

int dataSoil = analogRead(A0);

dataSoil = map(dataSoil, 0, 1023, 100, 0);

lcd.setCursor(0, 1);

lcd.print(“Soil :”); lcd.print(dataSoil);

lcd.setCursor(8, 1);

lcd.print(“%”);

Serial.print(“Kelembaban : “); Serial.print(dataSoil); Serial.println(“%”);

Firebase.setFloat(firebaseData, “Soil”, dataSoil);

}

 

 

Serial.println(“Sensor DHT11 tidak terbaca !!”);

Firebase.setString(firebaseData, “Suhu”, “DHT11 Tidak terbaca…”);

Firebase.setString(firebaseData, “Humidity”, “DHT11 Tidak terbaca…”);

return;

}

else {

lcd.setCursor(10, 0);

lcd.print(“T:”); lcd.print(suhu);

lcd.setCursor(15, 0);

lcd.print(“C”);

lcd.setCursor(10, 1);

lcd.print(“H:”); lcd.print(humidity);

lcd.setCursor(15, 1);

lcd.print(“%”);

 

Serial.print(“Suhu : “);  Serial.print(suhu); Serial.print(“C”); Serial.print(” “);

Serial.print(“Humidity : “);  Serial.print(humidity); Serial.println(“%”);

}

Firebase.setInt(firebaseData, “Suhu”, suhu);

Firebase.setInt(firebaseData, “Humidity”, humidity);

}

 

void RLY1() {

if (Firebase.getString(firebaseData, “relay1”)) {

if (firebaseData.dataType() == “string”) {

status_relay1 = firebaseData.stringData();

Serial.print(“Stat Relay 1:”); Serial.print(status_relay1); Serial.print(”  “);

if (status_relay1 == “1”) {

digitalWrite (D5, 0);

lcd.setCursor(0, 0);

lcd.print(“Light:”); lcd.print(“ON”);

} else if (status_relay1 == “0”) {

digitalWrite (D5, 1);

lcd.setCursor(0, 0);

lcd.print(“Light:”); lcd.print(“OFF”);

}

}

}

}

 

void RLY2() {

if (Firebase.getString(firebaseData, “relay2”)) {

if (firebaseData.dataType() == “string”) {

status_relay2 = firebaseData.stringData();

Serial.print(“Stat Relay 2:”); Serial.print(status_relay2); Serial.print(”  “);

if (status_relay2 == “1”) {

digitalWrite (D6, 0);

} else if (status_relay2 == “0”) {

digitalWrite (D6, 1);

}

}

}

}

 

void RLY3() {

if (Firebase.getString(firebaseData, “relay3”)) {

if (firebaseData.dataType() == “string”) {

status_relay3 = firebaseData.stringData();

Serial.print(“Stat Relay 3:”); Serial.print(status_relay3); Serial.print(”  “);

if (status_relay3 == “1”) {

digitalWrite (D7, 0);

} else if (status_relay3 == “0”) {

digitalWrite (D7, 1);

}

}

}

}

 

void RLY4() {

if (Firebase.getString(firebaseData, “relay4”)) {

if (firebaseData.dataType() == “string”) {

status_relay4 = firebaseData.stringData();

Serial.print(“Stat Relay 4:”); Serial.print(status_relay4); Serial.println(”  “);

if (status_relay4 == “1”) {

digitalWrite (D8, 0);

} else if (status_relay4 == “0”) {

digitalWrite (D8, 1);

}

}

}

}

 

void cekRelay() {

int Re1 = digitalRead(D5);

int Re2 = digitalRead(D6);

int Re3 = digitalRead(D7);

int Re4 = digitalRead(D8);

String statRe1, statRe2, statRe3, statRe4;

if (Re1 == 0) {

statRe1 = “Relay 1: ON “;

lcd.setCursor(0, 0);

lcd.print(“Light:”); lcd.print(“ON”);

} else if (Re1 == 1) {

statRe1 = “Relay 1: OFF “;

lcd.setCursor(0, 0);

lcd.print(“Light:”); lcd.print(“OFF”);

}

if (Re2 == 0) {

statRe2 = “Relay 2: ON “;

} else if (Re2 == 1) {

statRe2 = “Relay 2: OFF “;

}

if (Re3 == 0) {

statRe3 = “Relay 3: ON “;

} else if (Re3 = 1) {

statRe3 = “Relay 3: OFF “;

}

 

CARA KERJA ALAT PENYIRAM TANAMAN OTOMATIS

  1. Download Aplikasi (Apk) SISIRAM atau Alat Penyiram Tanaman Otomatis yang sudah kami buat, dan kemudian buka di HP Android anda

Kondisi saat aplikasi dengan mode otomatis makan tekan auto pada menu mode.

Kondisi saat aplikasi dengan mode manual jika ingin mematikan salah satu manual control yg diinginkan maka menekan off.

Berikut ini adalah fungsi setiap menu pada aplikasi alat penyiram tanaman otomatis :
a. Pada Lamp di Manual Control adalah untuk menghidupkan lampu dan perintah menyala atau mati akan muncul di Light Intensity.
b. Pada Fan di Manual Control adalah untuk menghidupkan blower dan perintah akan muncul di Temperature
c. Pada Pump di Manual Control adalah untuk menghidupkan pompa penyiraman dan perintah akan muncul di Soil Moisture
d. Pada Misting di Manual Control untuk menyalakan spray air sampai kelembaban ruangan naik, perintah akan muncul di Hummidity

2. Ketika sudah aktif semua pada layar LCD akan muncul tampilannya.
3. Lalu sensor akan langsung membaca kondisi sekitar.
4. Ketika sensor LDR mendeteksi cahaya pada ruangan adalah “gelap” maka akan mengaktifkan Relay 1 kemudian lampu menyala. Ketika output sensor yang terbaca atau kelembaban tanah yang terbaca adalah kurang dari 50% maka akan mengaktifkan Relay 3 yang kemudian akan menyalakan Pompa penyiraman. Ketika sensor DHT11 mengukur dan menghasilkan suhu diatas 35ºC maka akan mengaktifkan Relay 2 yang kemudian blower akan menurunkan suhu ruangan tersebut sampai dibawah 33ºC. Dan ketika sensor DHT11 menghasilkan pengukuran kelembaban ruangan kurang dari 51% maka Relay 4 aktif dan kemudian mengaktifkan alat spray air, sampai kelembaban ruangan tersebut naik ke 64%.

Demikian gambaran secara lengkap cara pembuatan alat penyiram tanaman otomatis berbasis arduino dengan koneksi internet wifi. Alat ini dapat diterapkan diberbagai sektor kehidupan manusia, dengan tujuan mempermudah dan mengotomasi alat alat manual disekitar kita.

Kami menerima dan membuat project project pembuatan alat otomasi lain dengan menggunakan microcontroller arduino dan Internet of Things. Apabila ada yang kurang jelas mengenai pembuatan alat ini atau apabila ada yang ingin dibuatkan alat penyiram tanaman otomatis pada kebun, alat penyiram tanaman otomatis pada green house, alat penyiram tanaman otomatis pada taman, atau aplikasi otomasi dibidang peternakan, rumah dan perkantoran kami siap membuatkannya. silahkan klik link gambar whatsapp dibawah ini untuk informasi lebih lanjut:

 

 

Baca Juga :

Pembuatan alat otomasi dibidang perkebunan dengan arduino dan Internet of Things

Pembuatan alat otomasi dibidang pertanian dengan arduino dan Internet of Things

Pembuatan alat otomasi dibidang peternakan dengan arduino dan Internet of Things

Pembuatan alat otomasi dibidang perikanan dengan arduino dan Internet of Things

Pembuatan alat otomasi dibidang kesehatan dengan arduino dan Internet of Things

Pembuatan alat otomasi dibidang perindustrian dengan arduino dan Internet of Things

Pembuatan Alat Penyiram Tanaman otomatis dengan Arduino dan koneksi internet dengan aplikasi android

Timbangan Bayi Digital atau Alat Otomasi Monitoring Gizi Pada Bayi

Pembuatan Alat otomasi dengan arduino untuk mahasiswa akhir



Tinggalkan Komentar

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.