Arduino UNO R4 Cảm Biến Mưa (Rain Sensor)

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Arduino UNO R4 với cảm biến mưa để phát hiện mưa hoặc tuyết. Chúng ta sẽ tìm hiểu các chủ đề sau:

Arduino UNO R4 rain sensor

Sau đó bạn có thể thay đổi code để bật motor hoặc báo động khi phát hiện mưa hoặc tuyết.

Phần Cứng Cần Thiết

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
1×Cáp USB Type-C
1×Cảm Biến Mưa (Rain Sensor)
1×Dây Nối Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Cảm Biến Mưa

Cảm biến mưa có thể phát hiện và đo lượng mưa hoặc tuyết. Nó cung cấp hai loại tín hiệu đầu ra: tín hiệu số (LOW hoặc HIGH) và tín hiệu analog.

Cảm biến mưa có hai thành phần:

  • Tấm cảm biến
  • Module điện tử
rain sensor sơ đồ chân
image source: diyables.io

Tấm cảm biến

Tấm cảm biến được đặt ngoài trời nơi có thể tiếp xúc với mưa hoặc tuyết, như trên mái nhà. Tấm này có nhiều đường dẫn đồng, được chia thành hai loại: đường nguồn và đường cảm biến. Hai loại đường này tách biệt và không kết nối trừ khi nước hoặc tuyết nối chúng lại. Cả hai loại đường đều hoạt động giống nhau, vì vậy bạn có thể chọn bất kỳ đường nào làm đường nguồn và đường khác làm đường cảm biến.

Module điện tử

Module điện tử của cảm biến mưa chuyển đổi tín hiệu từ tấm cảm biến thành giá trị analog hoặc số mà Arduino UNO R4 có thể đọc được. Nó có bốn chân.

  • Chân VCC: Kết nối với VCC (3.3V đến 5V).
  • Chân GND: Kết nối với GND (0V).
  • Chân DO: Đây là chân đầu ra số. Nó hiển thị HIGH khi không có mưa và LOW khi phát hiện mưa. Điều chỉnh mức phát hiện mưa bằng potentiometer.
  • Chân AO: Đây là chân đầu ra analog. Giá trị đầu ra giảm khi có nhiều nước trên tấm cảm biến và tăng khi có ít nước.

Nó cũng có hai đèn LED:

  • Một đèn báo nguồn (PWR-LED).
  • Một đèn báo trạng thái mưa (DO-LED) trên chân DO: nó sáng khi có mưa.

Cách Hoạt Động

Đối với chân DO:

  • Module bao gồm một potentiometer để điều chỉnh độ nhạy.
  • Nếu mức mưa vượt quá giới hạn đã đặt, chân đầu ra của cảm biến trở thành LOW và đèn DO-LED sáng.
  • Nếu mức mưa dưới giới hạn đã đặt, chân đầu ra của cảm biến vẫn ở HIGH và đèn DO-LED tắt.

Đối với chân AO:

  • Khi có nhiều nước trên tấm cảm biến, giá trị từ chân AO thấp hơn.
  • Khi có ít nước trên tấm cảm biến, giá trị từ chân AO cao hơn.

Potentiometer không thay đổi giá trị trên chân AO.

Sơ Đồ Kết Nối

Kết nối chân VCC của cảm biến với chân 3.3V hoặc 5V trên Arduino UNO R4. Tuy nhiên, kết nối trực tiếp có thể làm giảm tuổi thọ của cảm biến do ăn mòn điện hóa. Thay vào đó, tốt hơn là kết nối chân VCC của cảm biến với chân đầu ra trên Arduino. Sau đó bạn có thể lập trình chân này để cấp nguồn cho cảm biến chỉ khi đọc giá trị. Phương pháp này giúp giảm thiểu tác động của ăn mòn điện hóa.

Module cảm biến mưa có hai đầu ra. Bạn có thể sử dụng một hoặc cả hai, tùy thuộc vào nhu cầu của bạn.

Arduino UNO R4 rain sensor sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Code Arduino UNO R4 - Đọc giá trị từ chân DO

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino-uno-r4/arduino-uno-r4-rain-sensor */ #define POWER_PIN 3 // The Arduino UNO R4 pin that provides the power to the rain sensor #define DO_PIN 4 // The Arduino's pin connected to DO pin of the rain sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(POWER_PIN, OUTPUT); // configure the power pin pin as an OUTPUT pinMode(DO_PIN, INPUT); } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rain_state = digitalRead(DO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF if (rain_state == HIGH) Serial.println("The rain is NOT detected"); else Serial.println("The rain is detected"); delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Các Bước Thực Hiện

Hãy làm theo hướng dẫn từng bước:

  • Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn Arduino UNO R4 - Cài Đặt Phần Mềm.
  • Kết nối cảm biến mưa với Arduino Uno R4 theo sơ đồ đã cung cấp.
  • Kết nối bo mạch Arduino Uno R4 với máy tính của bạn bằng cáp USB.
  • Khởi chạy Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
  • Sao chép code ở trên và mở nó trong Arduino IDE.
  • Nhấn nút Upload trong Arduino IDE để upload code lên Arduino UNO R4.
  • Nhỏ một vài giọt nước lên cảm biến mưa.
  • Kiểm tra kết quả trên Serial Monitor.
COM6
Send
The rain is NOT detected The rain is NOT detected The rain is NOT detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is detected The rain is NOT detected The rain is NOT detected The rain is NOT detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Xin lưu ý, nếu đèn LED sáng liên tục hoặc tắt ngay cả khi cảm biến tiếp xúc với mưa, bạn có thể thay đổi potentiometer để điều chỉnh độ nhạy của cảm biến.

Code Arduino UNO R4 - Đọc giá trị từ chân AO

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino-uno-r4/arduino-uno-r4-rain-sensor */ #define POWER_PIN 3 // The Arduino UNO R4 pin that provides the power to the rain sensor #define AO_PIN A0 // The Arduino UNO R4 pin connected to AO pin of the rain sensor void setup() { // initialize serial communication Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // configure the power pin pin as an OUTPUT } void loop() { digitalWrite(POWER_PIN, HIGH); // turn the rain sensor's power ON delay(10); // wait 10 milliseconds int rainValue = analogRead(AO_PIN); digitalWrite(POWER_PIN, LOW); // turn the rain sensor's power OFF Serial.println(rainValue); // print out the analog value delay(1000); // pause for 1 sec to avoid reading sensors frequently to prolong the sensor lifetime }

Các Bước Thực Hiện

  • Sao chép code và mở nó trong Arduino IDE
  • Nhấn nút Upload trong Arduino IDE để upload code lên Arduino UNO R4
  • Nhỏ một ít nước lên cảm biến mưa
  • Kiểm tra kết quả trên Serial Monitor.
COM6
Send
225 2426 236 563 687 959 975 1009 1017 1053 1078 841 743 440 279
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.