• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

ATA ENDE

Catatan Orang Ende

  • Teknologi Informasi
    • IOT
    • Smart Home
    • Server
    • Mac OS
    • Android
  • Otomotif
    • BMW E36
  • DIY
  • Traveling
    • Ende
  • Olahraga
    • Running
  • Rohani
  • Lainnya
  • Privacy Policy
  • About
You are here: Home / IOT / [DIY] Membuat Sendiri Sensor Level Ketinggian Air Toren dengan Arduino

[DIY] Membuat Sendiri Sensor Level Ketinggian Air Toren dengan Arduino

April 18, 2020 by lorenz 20 Comments

Saat ini terdapat beberapa produk teknologi untuk bisa mendapatkan level ketinggian air dalam suatu bak penampung atau toren air. Salah satu produk yang pernah saya temukan di toko online dari Cina adalah dengan menggunakan sensor ultrasonik dengan harga yang cukup mahal dan susah untuk diintegrasikan dengan perangkat lain. Dengan menggunakan Arduino dan sensor ultrasonik sebenarnya kita bisa membuat modul untuk mengukur ketinggian air namun jarak ukurnya cukup pendek serta rentan rusak karena faktor kelembapan di dalam toren air.

Alternatif lain yang cukup sederhana dan tidak mahal adalah dengan menggunakan sensor saklar tipe pelampung (float switch water level sensor). Sensor pelampung ini dapat dengan mudah ditemukan di toko online dengan harga yang cukup murah. Prinsip kerja sensor ini adalah saklar/switch open-closed berbasis magnet (reed switch) yang akan dialiri arus listrik (Closed) jika magnet yang di dalam pelampung terangkat ke atas ketika level air naik dan menyentuh saklar (Normally Open /NO) dan kembali terputus (Open) jika pelampung turun ke bawah jika level air menurun.

sensor level ketinggian air
Sensor saklar pelampung

Untuk mendapatkan level ketinggian air tentunya kita membutuhkan lebih dari satu sensor . Misalnya untuk mendapatkan level air mulai dari kosong – seperempat (1/4), setengah (1/2), tigaperempat (3/4) dan penuh membutuhkan lima (5) buah sensor yang ditempatkan secara vertikal. Masing-masing sensor tersebut dihubungkan ke input pin dari Arduino sehingga kita bisa mendapatkan status HIGH/LOW untuk sensor-sensor tersebut. Kondisi HIGH didapatkan ketika saklar dalam keadaan tersambung (Closed) dan LOW ketika saklar terputus (Open).

Oke, secara garis besar prinsip kerjanya adalah seperti yang saya jelaskan diatas. Sebagai tambahan, saya menggunakan Arduino yang terhubung ke jaringan Smart Home yang menggunakan controller Openhab dan komunikasi data menggunakan NRF24L01 wireless module (2.4GHZ band) serta gateway/hub untuk menghubungkan/relay komunikasi radio dengan internet menggunakan protokol MQTT. Oleh karena itu untuk screenshot dan video yang dilampirkan merupakan screenshot dari aplikasi smarthome Openhab. Untuk integrasi dengan smarthome tidak saya dibahas disini.

Berikut adalah komponen-komponen yang dibutuhkan:

Sensor-sensor:

  • Float switch water level (5)
  • Waterproof ds18b20 temperature sensor (1)

Komponen pipa untuk water level sensor:

  • Knee 3/4″ (2)
  • Dop 3/4″ (7)
  • Sambungan pipa Tee 3/4″ (5)
  • Sambungan pipa / socket reducer 3/4″ ke 1/2″ (2)
  • Pipa 3/4″ 2 meter
  • Pipa 1/2″ 1 meter

Note: Disini saya menggunakan pipa ukuran 3/4″ karena kebetulan tersedia yang ukuran tersebut. Anda bisa mengganti dengan pipa ukuran 1/2″ sehingga komponen socket reducer tidak diperlukan lagi.

Komponen modul:

  • Arduino Pro Mini 5v/3.3v (bisa diganti jenis lain)
  • Resistor 4K7 (6)
  • Kabel utp 10 meter (sesuikan dengan jarak toren ke modul)
  • RJ45 pcb socket adapter

Note: Anda dapat mengganti kabel utp dengan kabel biasa, disini saya menggunakan kabel utp untuk mempermudah integrasi ke modul dan mengurangi jumlah kabel sehingga lebih rapih.

Membuat Sensor Level Ketinggian Air

Berikut adalah gambar design sensor level ketinggian air yang dibangun:

water level sensor design
Design sensor ketinggian air

Keterangan:

  • K1-2 = Knee
  • D1-7 = Dop
  • So = Sensor suhu
  • S1-5 = Sensor pelampung
  • T1-5 = Sambungan Tee
  • O1 = Pipa keluar

Langkah-langkah

  • Dimulai dari bagian bawah yaitu sensor suhu, buat lubang dengan menggunakan bor pada dop pipa (D1) menggunakan mata bor ukuran 6mm.
  • Masukkan sensor suhu pada lubang dop yang dibuat dengan ujung bagian besi berada di sisi luar.
  • Lapisi lubang luar dengan lem pipa untuk mencegah air masuk.
water proof temperature sensor
  • Bor dop pipa (D2) seukuran dengan diameter sensor pelampung. Saya menggunakan mata bor pagoda (step drill) karena ukuran diameter yang cukup besar.
  • Masukkan sensor pelampung sehingga bagian pelampung berada diluar. Lem bagian luar menggunakan lem pipa sehingga tidak lepas dan juga mencegah air masuk.
  • Sambung dop yang telah terpasang sensor pelampung ke sambungan pipa Tee (T1). Untuk sambungan pipa, ukurannya kira-kira 5cm (bisa dikira-kira sendiri). Pastikan kabel sensor ditarik keluar dari sambungan pipa tee. Jangan lupa untuk menggunakan lem pipa saat memasang sambungan, diampelas terlebih dahulu sehingga lebih kuat. Seal bagian sambungan dengan menggunakan lem pipa untuk memastikan air tidak masuk.
  • Ulangi langkah pemasangan sensor pelampung diatas untuk sisa sensor lainnya (total 5 sensor, T1-T5).
  • Sekarang sambung kabel untuk masing-masing sensor (masing-masing sepasang) hingga panjangnya kira-kira sampai ke ujung paling atas sensor sesuai gambar design. Pada akhirnya terdapat total 13 helai kabel yang keluar dari ujung atas sensor (D7). Tandai kabel untuk masing-masing sensor.
  • Ukur tinggi toren mulai dari dasar toren sampai ke posisi dimana bola pelampung berada (dalam keadaan menutup/air penuh). Tinggi sensor pelampung terakhir bisa berada diatas atau dibawah sedikit dari posisi pelampung sehingga saat air mencapai sensor pelampung paling atas (S5) kita bisa mematikan pompa air. Untuk toren Penguin ukuran 500 liter yang saya gunakan, tinggi dari dasar sampai ke posisi pelampung saat menutup adalah sekitar 95cm. Jadi posisi sensor pelampung harus berada pada ketinggian tersebut.
  • Sambungkan kelima sensor pelampung yang telah terpasang ke sambungan tee dan sensor suhu dengan pipa sampai mencapai tinggi yang diinginkan seperti gambar design diatas.
  • Jangan lupa untuk menggunakan lem pipa pada setiap sambungan dan seal masing-masing sambungan dengan lem pipa untuk mencegah air masuk melalui sela-sela sambungan.
  • Untuk toren Penguin berukuran 500 liter, lubang inlet berukuran 1/2″ sehingga pipa yang bisa masuk adalah pipa 1/2″. Karena saya menggunakan pipa ukuran 3/4″ maka dibutuhkan socket reducer untuk bisa meneruskan pipa dari dalam toren ke luar. Gambar design diatas tidak menggunakan socket reducer dengan asumsi ukuran inlet sama dengan pipa sensor (1/2″)
  • Sekali lagi saya ingatkan, saya menggunakan pipa ukuran 3/4″ karena kebetulan stok yang ada adalah 3/4″ dan juga pada keluran pipa sensor di luar toren (D7), membutuhkan ukuran yang lebih besar dari 1/2″ untuk bisa menyimpan socket adapter rj45.
  • Pastikan kabel-kabel yang keluar dari pipa sensor di luar toren berjumlah 13 buah (10 untuk sensor pelampung, masing2 sensor sepasang (+/-) dan 3 untuk sensor suhu (+/-/data)).
  • Sambungkan kabel-kabel tersebut dengan modul arduino. Saya menggunakan kabel utp karena biar lebih rapih dan juga jarak dari toren ke posisi arduino yang cukup jauh. Untuk itu perlu digunakan alat tambahan berupa socket adapter rj45. Note: socket ini saya cetak sendiri pcb-nya, jika butuh bisa didownload disini file gerbernya.
bagian luar sensor level ketinggian air

Berikut adalah hasil akhir sensor ketinggian air yang sudah terpasang dalam toren

Merangkai Modul Arduino

Modul yang saya gunakan yaitu modul Arduino Pro Mini 3.3v namun anda bisa menggantikannya dengan modul Arduino lain. Schematicnya adalah seperti gambar di bawah:

schematic sensor level ketinggian air
Schematic

Kabel dari masing-masing sensor berupa pasangan kabel positif (arus) dan negatif (ground) . Kedua kabel tersebut dapat dipertukarkan posisinya. Sebaiknya menggunakan warna kabel yang berbeda untuk sambungan sensor tersebut, merah untuk arus, dan hitam untuk ground sehingga gampang dibedakan.

Hubungkan kabel-kabel sbb:

  • Semua kabel arus/positif dari masing-masing sensor dihubungkan dengan 5V Arduino
  • Kabel ground/negatif sensor S1 (level kosong) dihubungkan dengan input D5
  • Kabel ground/negatif sensor S2 (level 1/4) dihubungkan dengan input D6
  • Kabel ground/negatif sensor S3 (level 1/2) dihubungkan dengan input D7
  • Kabel ground/negatif sensor S4 (level 3/4) dihubungkan dengan input D8
  • Kabel ground/negatif sensor S5 (level penuh) dihubungkan dengan input D9
  • Gunakan resistor 4K7 (R1-R5) sebagai pull down resistor untuk masing-masing input untuk menstabilkan input atau mencegah floating (default to LOW)
  • Hubungkan kabel ground (-) dari sensor suhu ke GND Arduino
  • Hubungkan kabel data dari sensor suhu ke input D4 melalui resistor 4K7 sebagai pull up resistor (R6).

Flownya sbb:

  • Ketika air mencapai sensor S1 maka modul akan mendeteksi level HIGH pada Arduino input D5 dan sebaliknya LOW ketika menurun dibawah sensor S1
  • Ketika air mencapai sensor S2 maka modul akan mendeteksi level HIGH pada Arduino input D6 dan sebaliknya LOW ketika menurun dibawah sensor S2
  • Ketika air mencapai sensor S3 maka modul akan mendeteksi level HIGH pada Arduino input D7 dan sebaliknya LOW ketika menurun dibawah sensor S3
  • Ketika air mencapai sensor S4 maka modul akan mendeteksi level HIGH pada Arduino input D8 dan sebaliknya LOW ketika menurun dibawah sensor S4
  • Ketika air mencapai sensor S5 maka modul akan mendeteksi level HIGH pada Arduino input D9 dan sebaliknya LOW ketika menurun dibawah sensor S5

Dengan demikian kita bisa mendeteksi level air dari kosong sampai penuh dan menggunakannya untuk action tertentu. Misalnya, saat air penuh kita bisa mematikan pompa air tentunya pompa air harus terhubung juga ke modul arduino yang sama menggunakan relay atau bisa juga menggunakan komunikasi radio atau mqtt jika pompa berada pada modul arduino yang terpisah. Begitupun juga ketika air mencapai level setengah, pompa air bisa diaktifkan untuk mengisi kembali toren.

Untuk case saya, saya menghubungkan modul arduino yang terhubung dengan network smarthome sehingga status level air bisa dilihat dari aplikasi dan juga untuk mengaktifkan modul saklar pompa air yang terpisah menggunakan komunikasi radio dan relay gateway mqtt. Untuk source code yang saya sertakan hanya basicnya saja, untuk bisa membaca level ketinggian air, adalah bagian anda untuk dikembangkan sesuai dengan kebutuhan masing-masing.

Berikut ada contoh sederhana source code Arduino yang ditulis menggunakan Atom dan PlatformIO IDE. Anda membutuhkan library untuk Dallas temperature sensor, Onewire.h dan DallasTemperature.h. Jika menggunakan Platform IDE, install kedua library diatas dari command line:

pio lib install 1
pio lib install 54

Source code

#include <Arduino.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define PIN_FULL 9
#define PIN_TRIQUARTER 8
#define PIN_HALF 7
#define PIN_ONEQUARTER 6
#define PIN_EMPTY 5
#define PIN_TEMP_SENSOR 4

OneWire oneWire(PIN_TEMP_SENSOR);
DallasTemperature tempSensor(&oneWire);

unsigned long lastLevelRead = 0;
unsigned long lastTempRead = 0;


void printAddress(DeviceAddress deviceAddress) {
    for (uint8_t i = 0; i < 8; i++) {
        if (deviceAddress[i] < 16) Serial.print("0");
        Serial.print(deviceAddress[i], HEX);
    }
}

void setupTempSensor() {
    tempSensor.begin();

    Serial.println("");
    Serial.print("Checking temp sensor... ");
    Serial.print(tempSensor.getDeviceCount(), DEC);
    Serial.print(" sensors found");

    DeviceAddress tempAddr;
    if (!tempSensor.getAddress(tempAddr, 0)) {
        Serial.print(", unable to find address for sensor");
    } else {
        Serial.print(", address: ");
        printAddress(tempAddr);
    }

    Serial.print("\n\n");
}

void setup() {
    Serial.begin(9600);

    pinMode(PIN_FULL, INPUT);
    pinMode(PIN_TRIQUARTER, INPUT);
    pinMode(PIN_HALF, INPUT);
    pinMode(PIN_ONEQUARTER, INPUT);
    pinMode(PIN_EMPTY, INPUT);

    setupTempSensor();
}

void loop() {
    unsigned long currentMillis = millis();

    if (currentMillis - lastLevelRead > 1000) {//one seconds delay
        Serial.println("Water level: ");
        
        uint8_t full = digitalRead(PIN_FULL);
        if (full == 1) {
            Serial.println("Full");
        }

        uint8_t triquarter = digitalRead(PIN_TRIQUARTER);
        if (triquarter == 1) {
            Serial.println("3/4");
        }

        uint8_t half = digitalRead(PIN_HALF);
        if (half == 1) {
            Serial.println("1/2");
        }

        uint8_t onequarter = digitalRead(PIN_ONEQUARTER);
        if (onequarter == 1) {
            Serial.println("1/4");
        }

        uint8_t empty = digitalRead(PIN_EMPTY);
        if (empty == 1) {
            Serial.println("Empty");
        }

        lastLevelRead = millis();
    }

    if (currentMillis - lastTempRead > 10000) { //10 seconds delay
        tempSensor.requestTemperatures();
        float temperature = tempSensor.getTempCByIndex(0);

        Serial.print("Temperature: ");
        Serial.println(temperature);

        lastTempRead = millis();
    }
}


Berikut adalah contoh tampilan aplikasi Smarthome Openhab yang terhubung ke modul sensor ketinggian air, temperature dan sensor kecepatan aliran air yang saya aplikasikan pada toren penampung air di rumah saya. Modul ini juga terintegrasi dengan pompa air menggunakan stop kontak otomatis Sonoff untuk memompa air dari bawah ke atas toren. Tutorial untuk sensor kecepatan aliran air bisa dibaca pada postingan saya selanjutnya.

Related posts:

  1. [DIY] Aplikasi Water Flow Sensor dan Arduino pada Toren Air
  2. Mengenal MySensors, Framework Jaringan Smart Home
  3. Cara Flash Tasmota Firmware pada Stop Kontak Otomatis Sonoff S20
  4. Membangun Server Home Automation dengan Openhab dan Raspberry Pi

Filed Under: DIY, Featured Articles, IOT, IT, Smart Home Tagged With: arduino, atom, iot, level air, openhab, platformio, sensor ketinggian air, smart home, smarthome, toren air, water level sensor

About lorenz

A husband, father, passionate software developer, diy lover, home baker, who loves to learn and create new things.

Reader Interactions

Comments

  1. Yoshimuri Sumimura says

    January 21, 2021 at 11:04 pm

    Sensor pelampungnya beli dimana?

    Reply
    • lorenz says

      January 22, 2021 at 4:56 am

      Di tokopedia banyak mas

      Reply
  2. Hardi says

    March 19, 2021 at 8:17 am

    Klo untuk mengukur level oil apa bisa sensornya di aplikasikan ya

    Reply
    • lorenz says

      March 20, 2021 at 2:16 am

      sepertinya bisa mas .

      Reply
  3. Natahari Wibowo says

    July 29, 2021 at 6:28 am

    Kalau Saya mau tambahkan indikator Lampu LED untuk posisi level Air bisa dipasang antara R=4K7 dan GND yah ?

    Reply
    • lorenz says

      August 4, 2021 at 3:55 am

      Antara resistor 4k7 dgn input saja.

      Reply
  4. gunawan wibisono says

    November 12, 2021 at 4:04 am

    Ijin mencoba dan mengikuti tutorial ini Pak lorenz, Terima kasih

    Reply
    • lorenz says

      November 12, 2021 at 8:10 am

      Silahkan mas..;)

      Reply
    • lorenz says

      February 10, 2022 at 10:16 am

      Silahkan mas 😉

      Reply
  5. Arda Paitama says

    May 2, 2023 at 7:30 am

    halo bang, kalo misalkan mikrokontrolernya menggunakan ESP8266 NodeMCU bisa gak bang

    Reply
    • lorenz says

      May 5, 2023 at 1:36 am

      sy lupa, tp kayaknya jumlah pin di nodemcu kurang, jadi harus pake shift register biar bisa extend port.

      Reply
  6. Arda Paitama says

    June 15, 2023 at 9:07 am

    izin nanya bang untuk buat rangkaian skhematic nya itu buatnya pake software apa bang

    Reply
    • lorenz says

      July 5, 2023 at 4:52 am

      Sy pake Eagle mas

      Reply
  7. Aris says

    September 11, 2023 at 2:24 pm

    Untuk Server openhub bisa d ganti sama pc ? Cara integrasi ke pc dari kontroler gmn ya pa ?

    Reply
    • lorenz says

      November 20, 2023 at 7:52 am

      Bisa harusnya. Integrasinya pake mqtt via Wifi

      Reply
  8. Abah Reza says

    October 9, 2023 at 6:36 am

    hehehe…ketemu disini, keren nih saya dulu manual buatnya, hanya pakai sensorsumur dalam, sambung ke rangkaian LED, mantap Bang Lorenz

    Reply
    • lorenz says

      November 20, 2023 at 7:53 am

      Wah ada Abah Reza..maaf baru buka blog..hehe….thank u ya, iseng2 aja ini project smart home..haha

      Reply
  9. Dicki Armanda says

    November 17, 2023 at 3:33 am

    izin nanya, kabel lan yang digunakan itu pakai yang berapa meter ya mas? dan maksimal kabel lan yang bisa digunakan berapa meter yah?

    Terimakasih

    Reply
    • lorenz says

      November 20, 2023 at 9:47 am

      Tergantung jarak dari toren ke modulnya. Max. 100m

      Reply
  10. sar says

    January 31, 2025 at 7:06 am

    Halo salam kenal.. mau tanya, klo sy request custom yg lebih sederhana apakah bisa? ( hanya memonitor ketinggian air dan notifikasi apabila kosong)

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *


The reCAPTCHA verification period has expired. Please reload the page.

Primary Sidebar

About Me

A husband, father, passionate software developer, diy lover, home baker, who loves to learn and create new things. Read More…

Ende

Bukit Roja Ende Flores

Kembali lagi Ke Bukit Roja (Jilid 2)

May 3, 2021 By lorenz 1 Comment

Bukit Kezimara Ende

Bukit Kezimara, Spot Paralayang Instagramable di Kota Ende

April 29, 2021 By lorenz Leave a Comment

Bukit Woloweku Ende

Bukit Woloweku, Spot Foto Instagramable di Kota Ende

April 26, 2021 By lorenz Leave a Comment

More Posts from this Category

Smart Home

Ip camera hikvision

Cara Online IP Camera CCTV Hikvision

July 28, 2021 By lorenz Leave a Comment

Sonoff Slampher

Cara Menggunakan Sonoff Slampher (Fitting Lampu Otomatis)

July 19, 2021 By lorenz Leave a Comment

Hik-connect

Cara Online CCTV Hikvision dengan Hik-Connect

February 1, 2021 By lorenz Leave a Comment

More Posts from this Category

Tags

ads scanner android arduino berkat rumah bmw bmw e36 bmw m50 bukit roja cctv cooling system electrolux Error 1302 fan belt ffmpeg heart rate hik-connect hikvision home automation Huawei HG8245H5 ibadat pemberkatan rumah Indihome iot ip camera kipas radiator kota ende LAN Port lari m50 mesin cuci openhab raspberrypi running s20 smart home smarthome smart plug sonoff tasmota Telkom tensioner toren air tracking ubuntu USeeTV visco fan

My Strava

Footer

Recent Comments

  • lorenz on Mengatasi BMW E36 Tidak Bisa Distart
  • sar on [DIY] Membuat Sendiri Sensor Level Ketinggian Air Toren dengan Arduino
  • Eriq on Mengatasi BMW E36 Tidak Bisa Distart
  • lorenz on [DIY] Membuat Sendiri Sensor Level Ketinggian Air Toren dengan Arduino
  • lorenz on Diagram Elektrikal Lampu Belakang BMW E36

Galery

Bukit Roja Ende
Bukit Roja Ende
Woloweku Ende
Woloweku Ende
Bukit Kezimara Ende
Bukit Kezimara Ende
Bukit Roja Ende
Bukit Roja Ende
Bukit Roja Ende
Bukit Roja Ende
Bukit Roja Ende
Bukit Roja Ende

Social

  • Facebook
  • Instagram
  • Twitter
  • YouTube

Copyright © 2025 · Ataende.com