Lắp hệ thống cảnh báo rò rỉ nước bằng Arduino, cảm biến tiếp xúc và còi

Hệ thống hoạt động như thế nào?

Cảm biến tiếp xúc có các đường dẫn điện trên bề mặt. Khi nước nối các đường này, mô-đun cảm biến có thể đổi trạng thái ở chân tín hiệu số DO. Arduino đọc trạng thái đó và phát âm thanh bằng còi piezo khi phát hiện nước.

Đây là mô hình học tập dùng để cảnh báo tại chỗ, không thay thế thiết bị chống ngập hoặc biện pháp bảo vệ điện. Khả năng phát hiện phụ thuộc vào vị trí đặt cảm biến, độ dẫn điện của nước và cách chỉnh mô-đun.

Chuẩn bị linh kiện và xác định chân

Chuẩn bị một Arduino Uno, một mô-đun cảm biến nước tiếp xúc có các chân VCC, GND, DO, một còi piezo thụ động phù hợp để điều khiển bằng chân tín hiệu Arduino, dây nối và cáp USB. Nếu mô-đun có đầu dò tách rời, nối đầu dò vào mô-đun theo ký hiệu trên sản phẩm.

Hướng dẫn này dùng chân DO, không dùng chân AO. Kiểm tra ký hiệu chân và điện áp cấp được ghi trên mô-đun trước khi nối; không suy đoán vị trí chân chỉ từ màu dây.

Nối mạch khi chưa cấp nguồn

Nối VCC của mô-đun cảm biến với chân 5V của Arduino Uno, GND với GND và DO với chân D2. Nối cực dương của còi piezo thụ động với D8, cực âm với GND. Mọi linh kiện phải dùng chung GND.

Chỉ cấp nguồn USB sau khi đã kiểm tra lại từng dây. Không nối đầu dò hoặc Arduino trực tiếp với điện lưới. Nếu dùng loại còi khác piezo thụ động, hãy kiểm tra yêu cầu điện áp và dòng điện của nó; không mặc định rằng chân Arduino có thể cấp nguồn trực tiếp cho còi đó.

Đặt đầu dò và hiệu chỉnh tín hiệu

Đặt phần tiếp xúc của cảm biến tại điểm thấp, nơi nước rò rỉ có khả năng chảy tới trước tiên. Giữ mô-đun xử lý tín hiệu, Arduino và các đầu nối cao hơn vùng có thể bị ướt; chỉ đưa phần đầu dò được thiết kế để tiếp xúc với nước tới vị trí cần theo dõi.

Nhiều mô-đun có núm chỉnh ngưỡng và có thể xuất mức LOW hoặc HIGH khi ướt. Sau khi nạp chương trình bên dưới, mở Serial Monitor ở 9600 baud để xem số lần đọc được trạng thái ướt. Thử đầu dò khô, rồi nhỏ một ít nước lên vùng tiếp xúc. Nếu kết quả đảo ngược, đổi WATER_ACTIVE_LEVEL từ LOW thành HIGH và nạp lại chương trình; nếu phản ứng không ổn định, chỉnh ngưỡng của mô-đun rồi thử lại.

Nạp chương trình cảnh báo

Chương trình lấy ba mẫu cách nhau 200 mili giây. Còi chỉ kêu khi cả ba mẫu đều báo ướt, giúp giảm phản ứng với một lần đọc nhiễu. Hằng số WATER_ACTIVE_LEVEL được đặt là LOW để làm điểm bắt đầu; cần đối chiếu với mô-đun thực tế như hướng dẫn ở trên.

const int sensorPin = 2;
const int piezoPin = 8;
const int WATER_ACTIVE_LEVEL = LOW;

void setup() {
pinMode(sensorPin, INPUT);
pinMode(piezoPin, OUTPUT);
Serial.begin(9600);
}

void loop() {
int wetSamples = 0;

for (int i = 0; i < 3; i++) {
if (digitalRead(sensorPin) == WATER_ACTIVE_LEVEL) {
wetSamples++;
}
delay(200);
}

Serial.println(wetSamples);

if (wetSamples == 3) {
tone(piezoPin, 2200);
} else {
noTone(piezoPin);
}
}

Kiểm tra và xử lý khi cảnh báo chưa đúng

Khi đầu dò khô, Serial Monitor nên hiển thị 0 và còi im lặng. Nhỏ từng ít nước lên vùng tiếp xúc: nếu ba lần đọc liên tiếp báo ướt, màn hình hiển thị 3 và còi kêu. Lau khô đầu dò để xác nhận còi ngừng kêu. Không đổ nước lên Arduino hoặc mô-đun điện tử.

Nếu còi kêu liên tục khi khô, hãy kiểm tra mức kích hoạt LOW/HIGH, chỉnh ngưỡng và xem có nước hoặc cặn bẩn bắc cầu giữa các đường dẫn trên đầu dò không. Nếu cảm biến báo ướt nhưng không nghe tiếng, kiểm tra cực và loại còi: lệnh tone() trong ví dụ dành cho piezo thụ động. Nếu không có dữ liệu trên Serial Monitor, kiểm tra cổng kết nối và tốc độ 9600 baud.

Sử dụng và bảo dưỡng an toàn

Ngắt nguồn trước khi chuyển dây, lau chùi hoặc thay vị trí đầu dò. Sau mỗi lần thử, lau khô vùng tiếp xúc và kiểm tra các đầu nối có bị ẩm không. Bề mặt cảm biến tiếp xúc có thể bị bám cặn hoặc xuống cấp theo thời gian, nên thử lại định kỳ bằng một lượng nước nhỏ.

Không dựa vào mô hình này làm biện pháp bảo vệ duy nhất cho khu vực có thiết bị điện. Nếu phát hiện rò rỉ gần ổ cắm hoặc thiết bị dùng điện lưới, tránh chạm vào vùng ướt và xử lý nguồn điện theo quy trình an toàn phù hợp.