Salah satu proyek program keahlian teknik elektronika yang sedang dan terus dikembangkan saat ini membuat Hidroponik dengan sistem kendali elektronik. Pada hidroponik ini ada 3 parameter yang akan distabilkan yakni ketinggian air, suhu air dan PH air. Untuk menstabilkan ketiga parameter sebut dibutuhkan sensor-sensor yang sesuai untuk mendeteksi nilai paramter tersebut.
Komponen utama yang digunakan:
- Sensor ketinggian Air, 1 pcs
- Sensor Suhu Air, 1 pcs
- Sensor PH Air, 1 pcs
- Modul STM32, 1 pcs
- Pompa Air, 1 pcs
- Katup Solenoid 12V, 1 pcs
- Pipa 3 inci dan pendukungnya
Sensor ketinggian Air
Untuk menstabilkan ketinggian air, sensor ini dipasang di salah satu pipa hidroponik yang ketinggian airnya mewakili seluruh pipa hidroponik.
Sensor Suhu Air:
Untuk menstabilkan Suhu air, sensor ini bisa dipasang dalam salah satu pipa hidroponik yang dilewati sirkulasi air.
Sensor PH Air
Untuk menstabilkan PH air, sensor ini bisa dipasang dalam bak penampungan air bagian dari sirkulasi air.

Katup Solenoid
Penggerak atau aktuator yang digunakan bisa katup solenoid yang membuka atau menutup asupan air dari Toren.
Sistem kendali elektronik hidroponik yang dibuat memiliki cara kerja sebagai berikut:
Air dalam pipa hidroponik akan berputar terus menerus seperti pada akuarium dengan menggunakan pompa air. Kemudian tiap 10 menit sistem hidroponik mendapat tambahan air selama 30 detik, setelah itu akan dideteksi ketinggian air jika terjadi ketinggian air tidak sesuai maka akan ditambah pemberian air lagi selama 10 detik, setelah itu akan dideteksi suhi air jika terjadi suhu air tidak sesuai maka akan ditambah pemberian air selama 10 detik, terakhir akan dideteksi PH air jika tidak sesuai makan akan ditambah pemberian air selama 10 detik. Begitu seterusnya prosesnya berulang tiap waktu 10 menit.
Cari cara kerja di atas jika dibuat dalam bentuk flowchart sebagai berikut :
Setelah menentukan alur program yang dibuat dalam bentuk flow chart kemudian buat rangkaian skematik mengguanakan perangkat lunak Eagle sebagai berikut:
Layout PCB :
Urutan program yang sedang dikembangkan sebagai berikut; (masih masa pengembangan)
#include <DallasTemperature.h>
#define SUHU_BUS PA7
OneWire oneWire(SUHU_BUS);
DallasTemperature sensors(&oneWire);
const int sensorTinggiPin = PA6;
int sensorValueTinggi = 0;
int pHSense = PB0;
int samples = PB1;
float adc_resolution = 1024.0;
#define KATUP PB4
#define RELAY PB5
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(KATUP, OUTPUT);
pinMode(RELAY, OUTPUT);
}
float ph (float voltage) {
return 7 + ((2.5 - voltage) / 0.18);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(KATUP, HIGH);
digitalWrite(RELAY, HIGH);
delay(10000);
sensorValueTinggi = analogRead(sensorTinggiPin);
Serial.print("Nilai analog: ");
Serial.println(sensorValueTinggi);
Serial.println("Pengukuran Suhu DS18B20");
sensors.begin();
Serial.print("Membaca suhu...");
sensors.requestTemperatures();
Serial.print("Suhu: ");
Serial.print(sensors.getTempCByIndex(0));
Serial.println(" oC");
delay(1);
int measurings = 0;
for (int i = 0; i < samples; i++) {
measurings += analogRead(pHSense);
delay(1);
}
float voltage = 5 / adc_resolution * measurings / samples;
Serial.print("pH= ");
Serial.println(ph(voltage));
delay(1);
if (sensorValueTinggi >= 200) {
digitalWrite(KATUP, HIGH);
digitalWrite(RELAY, HIGH);
delay(1);
}
else {
digitalWrite(KATUP, LOW);
digitalWrite(RELAY, LOW);
delay(1);
}
digitalWrite(KATUP, LOW);
digitalWrite(RELAY, LOW);
delay(10000);
}




Comments