Meter TDS Arduino: Semak Kualiti Air Akuarium & Penapis Rumah

Kartun probe TDS putih dengan hujung pin perak dicelup ke dalam akuarium kaca berisi ikan emas oren, dengan riak teal di permukaan air

Meter kualiti air yang paling berguna di rumah ialah yang boleh dibawa dari paip ke akuarium. Sambungkan probe TDS ke Arduino Uno melalui board pengukurnya, paparkan bacaan ppm pada OLED 0.96 inci, dan anda boleh bandingkan air paip, output penapis dan air akuarium dalam beberapa saat setiap satu. Ada satu kerja solder kecil yang wajib β€” kami tunjukkan di mana dan kenapa.

Apa sebenarnya yang diukur oleh sensor TDS?

Sensor TDS (Total Dissolved Solids) tidak mengira zarah satu persatu β€” ia mengukur betapa senangnya arus elektrik mengalir melalui air. Garam dan mineral yang larut berpecah menjadi ion, dan ion itulah yang membawa arus antara dua elektrod probe TDS: semakin banyak ion, semakin tinggi kekonduksian, dan board menukar kekonduksian itu kepada anggaran jumlah pepejal terlarut dalam ppm (mg seliter). Air tulen hampir tidak mengalirkan arus langsung.

Faham juga apa yang ia tidak nampak. Bakteria, klorin dan kebanyakan bahan organik hampir tidak mengubah kekonduksian, jadi bacaan rendah bukan pengesahan air selamat diminum, dan bacaan tinggi bukan bermakna racun β€” air mineral memang dijual dengan ratusan ppm secara sengaja, manakala air RO membaca hampir sifar kerana membrannya menolak ion. Sebab itulah angka tunggal kurang bermakna berbanding perbezaan antara dua bacaan: paip lawan output penapis menjawab soalan “penapis saya masih berfungsi ke?” dengan nombor, bukan agakan.

Bacaan yang anda nampak Apa maksudnya Apa ia TIDAK bermaksud
Hampir 0–50 ppm pada output RO Membran RO sedang menolak hampir semua mineral terlarut β€” penapis berfungsi Bukan jaminan bebas kuman; bakteria tidak kelihatan pada meter ini
Output penapis karbon β‰ˆ sama dengan paip Normal β€” penapis karbon menyasarkan klorin, rasa dan bau, bukan pepejal terlarut Bukan bukti penapis karbon anda rosak
Ratusan ppm pada air mineral Mineral itu memang produknya β€” dilarutkan secara sengaja Bukan tanda air itu kotor atau berbahaya
TDS akuarium menaik minggu demi minggu Pepejal terkumpul: sisa makanan, najis, dan air tersejat meninggalkan mineralnya Bukan pengganti ujian ammonia atau pH β€” ia isyarat masa untuk tukar air

Panduan air kami yang lain mengukur paras β€” seperti monitor tangki JSN-SR04T β€” atau mengepamnya seperti sistem siram pokok automatik. Ini binaan pertama yang meletakkan angka pada air itu sendiri.

Parts list

ItemPriceQty
Soldering Service for Circuit Boards & Electronics - 5 Pins Soldering ServiceSoldering Service for Circuit Boards & Electronics - 5 Pins Soldering ServiceSOLSE05RM0.80

TDS Board tiba dengan empat pad A0/T1/βˆ’/+ kosong dan tiada header dalam kotak. Tambah servis soldering 5 pin dan kami solderkan bahagian header 4 pin ke pad tersebut untuk anda β€” mesej kami di WhatsApp dahulu supaya kami tahu ia untuk board TDS ini.

Apa yang ada dalam kotak β€” dan apa yang wajib disolder?

Modul TDS Water Quality Sensor kami tiba sebagai dua bahagian: board pengukur biru bertanda TDS BOARD V1.0, dan probe silinder putih dengan dua elektrod pin di hujungnya, kabel hitam kalis airnya berakhir dengan plag JST-XH putih yang masuk ke soket 2 pin di tepi kiri board. Soket JST-XH 3 pin di bawahnya ialah soket output β€” kabelnya tidak disertakan, jadi laluan kita ialah ruangan empat pad berlabel A0, T1, βˆ’ dan + di tepi kanan board, yang setiap satunya bertanda jelas pada silkscreen.

Keempat-empat pad itu tiba sebagai lubang kosong tanpa header, dan tiada jalur header dalam kotak β€” jadi solder datang dahulu. Patahkan bahagian 4 pin daripada jalur header male 40 pin, masukkan ke pad A0/T1/βˆ’/+, dan solder dari belakang; panduan solder header pin kami merangkumi tekniknya langkah demi langkah. Tidak mahu memegang soldering iron? Baris pilihan dalam senarai komponen di atas menguruskannya.

Kartun close-up board TDS biru dengan empat lubang pad kosong, penyepit memegang header male 4 pin di atasnya dan soldering iron menghampiri dari kanan
Satu-satunya kerja solder dalam projek ini: bahagian 4 pin daripada jalur header male, dipasang ke ruangan pad A0/T1/βˆ’/+ yang tiba kosong.

Kenapa board TDS perlu “menggoncang” probe dengan AC?

Cip CD4060BM pada board itu ialah pengayun β€” ia memacu probe dengan voltan berselang-seli (AC), bukan DC, dan di sinilah tersembunyi sebab probe ini tidak boleh dibaca dengan dua wayar terus ke pin analog. Arus DC yang mengalir melalui air menarik ion ke elektrod dan membentuk lapisan bercas di permukaannya β€” polarisasi β€” yang semakin mencekik arus, jadi bacaan terus melayang turun tanpa henti. Pengujaan AC menukar arah terlalu pantas untuk lapisan itu terbentuk. Cip LMV324A di sebelahnya kemudian menukar isyarat probe kembali kepada voltan DC licin yang boleh dibaca oleh pin A0.

Angka kerjanya: board TDS ini berjalan pada bekalan 3.3–5.5 V, menarik 3–6 mA, dan mengeluarkan 0–2.3 V analog untuk julat pengukuran 0–1000 ppm, dengan ketepatan Β±10% skala penuh pada 25 Β°C. Voltan itu ditukar kepada ppm oleh polinomial pengeluar β€” (133.42VΒ³ βˆ’ 255.86VΒ² + 857.39V) Γ— 0.5 β€” dan V dalam formula itu sepatutnya voltan yang telah dipampas suhu, kerana ion bergerak lebih lincah dalam air yang lebih suam β€” kekonduksian air naik kira-kira 2% bagi setiap darjah Celsius. Pad T1 ialah input untuk probe suhu; kita membiarkannya kosong dan menetapkan 25 Β°C dalam kod, jadi air yang lebih sejuk membaca sedikit rendah dan air lebih suam membaca sedikit tinggi. Untuk kegunaan membanding β€” paip lawan penapis, minggu ini lawan minggu lepas β€” bandingkan air pada suhu yang serupa dan had ini hampir tidak kelihatan.

Bagaimana cara mendawai TDS Board dan OLED ke Uno?

Header 4 pin yang baru disolder itu, bersama header male yang tiba sedia terpasang pada OLED 0.96 inci, menjadikan pendawaian ini kerja jumper male-female semata-mata β€” tiada breadboard: hujung female ke pin modul, hujung male ke soket header female Uno. Kalau di tangan anda cuma ada jumper male-male, sekeping breadboard menyelesaikan jurang gender itu.

Pin modul Pin Uno Kenapa
TDS + 5V Bekalan board β€” julat 3.3–5.5 V; 5 V sepadan dengan VREF dalam sketch
TDS βˆ’ GND Salah satu daripada dua soket GND pada header POWER
TDS A0 A0 Output analog 0–2.3 V yang dibaca sketch
TDS T1 β€” Input probe suhu β€” dibiarkan kosong; pampasan dibuat dalam kod pada 25 Β°C
OLED GND GND Header modul ini GND dahulu: GND VCC SCL SDA
OLED VCC 3.3V Modul SSD1306 ini berjalan lancar pada 3.3–5 V
OLED SCL A5 Clock I2C Uno (atau soket SCL di hujung header digital R3)
OLED SDA A4 Data I2C Uno (atau soket SDA)

Perhatikan susunan header GND-dahulu pada OLED β€” GND VCC SCL SDA, terbalik daripada tabiat VCC-dahulu kebanyakan modul lain, dan mendawai ikut tabiat di sinilah cara klasik membakarnya. Satu peraturan keselamatan yang kekal sepanjang projek: semuanya DC voltan rendah, tetapi air dan elektronik tetap bukan kawan β€” cabut kabel USB dahulu setiap kali anda mengalih, mengisi atau menuang air berhampiran binaan ini.

Macam mana rupa sketch meter TDS ini?

Pasang library Adafruit SSD1306 daripada Library Manager dan biarkan IDE menarik Adafruit GFX sekali. Satu keputusan dalam kod ini berbaloi difahami: bacaan mentah ditapis dengan median, bukan purata. Pengujaan AC dan permukaan air yang bergerak menghasilkan pancang sesekali dalam bacaan ADC β€” purata membenarkan satu pancang menyeret keseluruhan bacaan, manakala median membuangnya terus.

// Meter TDS mudah alih: TDS Board V1.0 pada A0, OLED SSD1306 pada bus I2C.
// Bacaan ppm dikemas kini pada skrin lebih kurang sekali sesaat.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 oled(128, 64, &Wire, -1);

const uint8_t PIN_TDS = A0;     // pad A0 board TDS -> pin A0 Uno
const float   VREF    = 5.0;    // board dibekalkan dari pin 5V Uno
const uint8_t N       = 30;     // saiz penimbal median

int   sampel[N];                // bacaan ADC mentah
uint8_t idx = 0;

// Suhu air dianggap tetap 25 darjah C - pad T1 tidak disambung,
// jadi pampasan suhu dibuat dalam kod pada nilai tetap ini.
const float SUHU_AIR = 25.0;

// Median menapis pancang sesekali daripada pengujaan AC board
// jauh lebih baik daripada purata biasa.
float median(int *d, uint8_t n) {
  int t[N];
  for (uint8_t i = 0; i < n; i++) t[i] = d[i];
  for (uint8_t i = 0; i < n - 1; i++)          // isih sisipan ringkas
    for (uint8_t j = i + 1; j < n; j++)
      if (t[j] < t[i]) { int s = t[i]; t[i] = t[j]; t[j] = s; }
  if (n & 1) return t[n / 2];
  return (t[n / 2 - 1] + t[n / 2]) / 2.0;
}

void setup() {
  Serial.begin(9600);
  if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {  // modul ini menjawab pada 0x3C
    Serial.println("SSD1306 not found at 0x3C - check wiring");
    while (true) delay(100);
  }
  oled.setTextColor(SSD1306_WHITE);
  for (uint8_t i = 0; i < N; i++) sampel[i] = analogRead(PIN_TDS);
}

void loop() {
  static unsigned long tSampel = 0, tPapar = 0;

  // Ambil satu bacaan setiap 40 ms ke dalam penimbal bulat
  if (millis() - tSampel >= 40) {
    tSampel = millis();
    sampel[idx] = analogRead(PIN_TDS);
    idx = (idx + 1) % N;
  }

  // Kira dan papar sekali setiap saat
  if (millis() - tPapar >= 1000) {
    tPapar = millis();

    float v = median(sampel, N) * VREF / 1024.0;   // ADC -> volt

    // Pampasan suhu: kekonduksian air naik ~2% setiap darjah C.
    // Dengan SUHU_AIR = 25.0 pekali ini = 1.0 (tiada pembetulan).
    float pekali = 1.0 + 0.02 * (SUHU_AIR - 25.0);
    float vKompensasi = v / pekali;

    // Polinomial penukaran voltan -> ppm daripada pengeluar board
    float ppm = (133.42 * vKompensasi * vKompensasi * vKompensasi
               - 255.86 * vKompensasi * vKompensasi
               + 857.39 * vKompensasi) * 0.5;
    if (ppm < 0) ppm = 0;

    Serial.print("V=");
    Serial.print(v, 3);
    Serial.print("  TDS=");
    Serial.print(ppm, 0);
    Serial.println(" ppm");

    oled.clearDisplay();
    oled.setTextSize(1);
    oled.setCursor(0, 0);
    oled.print("TDS");
    oled.setCursor(98, 0);
    oled.print(v, 2);
    oled.print("V");
    oled.setTextSize(3);                 // angka besar, boleh baca dari jauh
    oled.setCursor(10, 22);
    oled.print(ppm, 0);
    oled.setTextSize(1);
    oled.setCursor(104, 36);
    oled.print("ppm");
    oled.display();
  }
}

Ia compile kepada 16,746 bait β€” separuh ruang sketch Uno. Baris SUHU_AIR sengaja ditulis sebagai pemboleh ubah dan bukannya angka tertanam: pada 25 Β°C pekalinya tepat 1.0, dan sesiapa yang kemudian menambah probe suhu pada pad T1 hanya perlu menggantikan satu nilai itu dengan bacaan sebenar.

Bagaimana nak guna bacaan ppm di rumah?

Meter TDS paling berkuasa sebagai alat banding, jadi mulakan dengan garis dasar: celup hujung probe ke dalam segelas air paip, tunggu angka menetap, dan catat. Kemudian gelas kedua dari output penapis β€” RO bawah sinki sepatutnya jatuh mendadak berbanding paip, penapis luar rumah jenis karbon pula membaca hampir sama, dan kedua-dua keputusan itu normal seperti jadual tafsiran di atas. Untuk akuarium, satu bacaan seminggu yang dicatat ialah trend yang boleh dipercayai: air tersejat meninggalkan mineralnya, sisa makanan terkumpul, dan garis yang menaik ialah isyarat awal masa untuk tukar sebahagian air.

Teknik mencelup ada tiga peraturan mudah. Celup hujung probe sahaja β€” paras air kekal di bawah kolar beralur, dan simpang kabel tidak sesekali masuk air. Pegang probe diam dan jauhkan daripada gelembung penapis atau aliran pam, kerana air bergerak menggoyangkan bacaan. Selepas setiap sampel, bilas probe dengan air bersih dan keringkan, supaya sisa sampel masin tidak menaikkan bacaan sampel seterusnya.

Kartun dua gelas air dengan penapis krem di tengah, anak panah teal mengalir dari gelas berbintik ke gelas bersih, dan probe TDS putih mencelup ke dalam gelas kedua
Ujian sebelum-dan-selepas: air yang sama diukur di paip dan di output penapis β€” perbezaan antara dua bacaan itulah jawapannya, bukan angka tunggal.

Kesilapan biasa yang kami nampak

Probe disambung terus ke pin analog tanpa board. Dua wayar ke dalam air memang menghasilkan bacaan β€” yang melayang turun tanpa henti sementara polarisasi DC mencekik arus di permukaan elektrod. Pengujaan AC board itulah yang menjadikan bacaan stabil; probe tanpa board bukan meter.

OLED didawai VCC-dahulu ikut tabiat. Header paparan ini GND VCC SCL SDA β€” ground dahulu. Baca silkscreen setiap kali sebelum kuasa dihidupkan, kerana bekalan terbalik boleh menamatkan riwayat modul.

Seluruh probe dicelup sampai tenggelam kolar. Hanya hujung berelektrod yang perlu berada dalam air. Kolar dan simpang kabel kekal di atas paras air β€” reka bentuk kalis airnya untuk celupan, bukan rendaman keseluruhan.

Air sejuk peti ais dibanding dengan air paip suhu bilik. Kekonduksian naik kira-kira 2% setiap darjah Celsius dan kod menetapkan suhu 25 Β°C, jadi perbandingan silang suhu memberi kesimpulan yang mengelirukan. Biarkan sampel sejuk itu mencapai suhu bilik dahulu.

Bacaan dijadikan kata putus muktamad kualiti air. Meter ini penganggar hobi dengan ketepatan Β±10% skala penuh β€” maksudnya peratusan itu dikira pada hujung julat 1000 ppm, bukan pada bacaan semasa, jadi sisihan boleh mencapai Β±100 ppm di mana-mana bacaan. Sisihan itu kebanyakannya sistematik pada probe yang sama, sebab itulah trend dan perbandingan kekal boleh dipercayai β€” tetapi ia bukan alat pensijilan air minuman.

Soalan Lazim

Adakah bacaan TDS rendah bermakna air selamat diminum?

Tidak. TDS hanya menganggar pepejal terlarut melalui kekonduksian β€” bakteria, virus dan klorin hampir tidak mengubahnya, jadi air tercemar boleh membaca rendah dan air mineral yang elok membaca tinggi. Gunakan bacaan untuk memantau penapis dan trend akuarium, bukan sebagai kata putus keselamatan.

Kenapa bacaan TDS saya tidak stabil?

Punca biasa: probe bergerak, gelembung udara melekat pada elektrod, atau sampel diambil betul-betul dalam aliran pam atau penapis. Pegang probe diam dalam air tenang dan biarkan beberapa saat β€” median dalam sketch menapis pancang sesekali, tetapi ia tidak boleh membetulkan air yang sentiasa bergolak.

Boleh guna meter ini untuk akuarium air masin?

Tidak sesuai. Air laut berada sekitar 35,000 ppm, jauh melepasi julat pengukuran 0–1000 ppm board ini, jadi bacaannya tepu dan tidak bermakna. Untuk akuarium air tawar, kolam ikan dan penapis rumah, julat itu pula tepat di tengah kegunaannya.

Perlukah saya kalibrasi sensor TDS ini?

Untuk kegunaan membanding β€” paip lawan penapis, minggu ini lawan minggu lepas β€” tidak perlu: polinomial pengeluar dalam sketch sudah memadai, dan ketepatan Β±10% skala penuh terpakai sama pada kedua-dua belah perbandingan. Kalibrasi dengan larutan rujukan hanya berbaloi jika anda memerlukan angka mutlak yang boleh dibandingkan dengan meter lain.

Boleh biarkan probe terendam sepanjang masa dalam akuarium?

Jangan. Probe ini direka untuk celupan sekejap: ukur, keluarkan, bilas dan keringkan. Rendaman berterusan mempercepat hakisan elektrod dan mengalihkan bacaan dari masa ke masa β€” dan satu bacaan seminggu pun sudah cukup untuk trend akuarium yang berguna.

Kartun binaan siap meter TDS β€” Arduino Uno biru berwayar ke board TDS dan OLED yang memaparkan angka, dengan probe putih tercelup dalam gelas air
Meter siap: Uno membekalkan kedua-dua modul, board TDS menghantar voltannya ke A0, dan OLED memaparkan ppm cukup besar untuk dibaca dari jauh.

Kualiti air berhenti menjadi tekaan sebaik sahaja ia menjadi angka yang anda catat sendiri. Solder empat pin itu, celup hujung probe, dan lain kali ada yang bertanya sama ada penapis di rumah masih berfungsi, jawapan anda ialah dua bacaan β€” sebelum dan selepas.

Kemas kini terakhir Ogos 2026. Tersangkut? Chat dengan kami di WhatsApp.

Leave a Reply

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