Bài 15 · Công nghệ · Địa lí
Cảm biến mưa
đo độ ướt bằng những giọt nước có kiểm soát
Tấm cảm biến mưa là nhiều đường dẫn điện đặt sát nhau. Nước nối các đường ấy lại và làm tín hiệu thay đổi. Bài học có vẻ đơn giản, nhưng muốn kết luận đúng phải kiểm soát số giọt, vị trí nhỏ và thời gian lau khô.
01 Mục tiêu và yêu cầu cần đạt
Mục tiêu không phải làm một trạm dự báo thời tiết. Tôi dùng bài này để học sinh thấy rằng một cảm biến rẻ tiền chỉ cho tín hiệu tương đối, và quy trình đo quyết định chất lượng dữ liệu nhiều không kém chương trình.
Sau bài này học sinh làm được
- Nêu được nguyên lí nước làm thay đổi độ dẫn giữa các vạch trên tấm dò.
- Đọc ngõ analog của module bằng ADC1 trên GPIO34.
- Thiết kế phép thử có biến độc lập là số giọt nước.
- Chọn ngưỡng ướt từ số liệu của chính tấm cảm biến.
- Phân biệt phát hiện bề mặt ướt với dự báo mưa.
- Công nghệ — cảm biến, hệ thống cảnh báo và quy trình thử sản phẩm.
- Địa lí — yếu tố thời tiết và giới hạn của dữ liệu tại một điểm đo.
Khi soạn KHBD, chọn yêu cầu cần đạt phù hợp khối lớp và ghi nguồn văn bản chính thức.
02 Lí thuyết
Nước không được “đếm” trực tiếp
Hai nhóm đường kim loại trên tấm dò xen kẽ nhưng không chạm nhau. Khi khô, dòng
giữa chúng rất nhỏ. Nước có ion tạo đường dẫn, làm điện trở giảm. Bo module biến
thay đổi ấy thành điện áp ở chân AO; ESP32 đổi điện áp thành số ADC.
Vì sao cùng năm giọt mà số có thể khác
Một giọt lớn không bằng một giọt nhỏ. Nước nằm thành vũng nối nhiều vạch hơn nước trải mỏng. Khoáng chất trong nước, vết bẩn và lớp oxi hoá cũng làm độ dẫn thay đổi. Vì thế thí nghiệm phải dùng cùng ống nhỏ giọt, cùng loại nước và cùng vị trí.
AO cho cả dải số để ta tự chọn ngưỡng trong chương trình.
DO chỉ cho hai trạng thái theo biến trở trên module. Bài này dùng
AO để học sinh nhìn được dữ liệu và hiệu chuẩn, không dùng DO.
03 Linh kiện
| Linh kiện | Mô tả, lưu ý khi mua | Số lượng · giá |
|---|---|---|
| ESP32 DevKit V1 | Bo 30 chân | 1 · 90–150k |
| Module cảm biến mưa | Tấm dò và bo so sánh có chân AO | 1 · 15–25k |
| LED 5 mm và điện trở 220 Ω | Đèn cảnh báo | 1 bộ · 700đ |
| Ống nhỏ giọt | Giúp giữ lượng nước gần giống nhau | 1 |
| Khay nhựa và khăn giấy | Giữ nước xa bo mạch | 1 bộ |
04 Lắp mạch và sơ đồ nối dây
| Khối | Nối dây | Nguồn |
|---|---|---|
| Nguồn module | VCC → 3V3 · GND → GND | Chỉ cấp 3,3 V để AO không vượt mức GPIO |
| Tín hiệu analog | AO → GPIO34 | Không dùng DO trong bài này |
| Tấm dò | Cắm vào đầu nối của bo cảm biến | Đặt trong khay, thấp hơn ESP32 |
| LED | GPIO23 → 220 Ω → LED → GND | Đúng bảng chân của hồ sơ bo |
Tấm dò nằm trong khay nhựa, bo cảm biến và ESP32 đặt cao, cách xa vùng có nước.
Khung giữ chỗ — thay bằng ảnh chụp thật khi cóVCC 3V3, GND chung, AO nối GPIO34 và LED nối GPIO23 qua điện trở.
Khung giữ chỗ — thay bằng ảnh chụp thật khi cóỐng nhỏ giọt đặt trên cùng một vị trí của tấm dò, bên cạnh là bảng 0, 1, 3 và 5 giọt.
Khung giữ chỗ — thay bằng ảnh chụp thật khi cóTách nước khỏi phần điện tử
- Đặt ESP32 và bo module trên mặt bàn khô, cao hơn khay thử.
- Đặt riêng tấm dò trong khay nhựa rồi nối cáp của nó về module.
- Nối
VCC → 3V3,GND → GND,AO → GPIO34. - Lắp LED ở
GPIO23qua điện trở 220 Ω. - Chạy thử khi tấm hoàn toàn khô trước khi lấy nước.
Không nhỏ nước khi đang cầm tấm dò phía trên ESP32. Nếu nước tràn ra ngoài khay, rút cáp USB, lau khô hoàn toàn rồi mới tiếp tục. Chỉ dùng nước sạch, không dùng dung dịch ăn mòn hay chất dễ cháy.
Một số hướng dẫn trên mạng cấp module bằng 5 V. Ở đây chân AO đi thẳng vào ESP32 nên bảng chân đã chốt dùng 3,3 V để tín hiệu không vượt mức an toàn.
05 Mã nguồn
Mã dùng MicroPython cho ESP32. Chỉ nhỏ nước sạch lên tấm dò đặt trong khay; không để nước chạm bo ESP32 hay cổng USB.
Bước 1 — lấy mẫu theo số giọt# Moi lan chay, doi SO_GIOT thanh 0, 1, 3 hoac 5
from machine import ADC, Pin
import time
cam_bien = ADC(Pin(34))
cam_bien.atten(ADC.ATTN_11DB)
SO_GIOT = 0
print("Chuan bi mau", SO_GIOT, "giot trong 5 giay")
time.sleep_ms(5000)
tong = 0
for lan in range(10):
tong += cam_bien.read()
time.sleep_ms(100)
print(SO_GIOT, "giot - trung binh:", tong // 10)
Mỗi lần chạy chỉ đo một mức. Đổi SO_GIOT thành 0, 1, 3 hoặc 5; sau
mỗi mức, thấm khô tấm và chờ số trở về vùng ban đầu rồi mới thử tiếp.
# Bai 15 - Cam bien mua analog
from machine import ADC, Pin
import time
# ===== CẤU HÌNH =====
CHAN_MUA = 34
CHAN_LED = 23
NGUONG_UOT = 2200 # thay bang nguong cua chinh tam cam bien
CHU_KY_MS = 500
# ====================
cam_bien = ADC(Pin(CHAN_MUA))
cam_bien.atten(ADC.ATTN_11DB)
led = Pin(CHAN_LED, Pin.OUT)
while True:
do_uot = cam_bien.read()
print("Do uot:", do_uot)
# Voi module cua bai nay, be mat uot thuong cho so nho hon.
if do_uot < NGUONG_UOT:
led.on()
else:
led.off()
time.sleep_ms(CHU_KY_MS) Ngưỡng 2200 chỉ là số khởi đầu. Thay nó bằng giá trị nằm giữa vùng khô và vùng ướt đo được. Nếu module của bạn đổi chiều, chọn dấu so sánh theo dữ liệu thật.
Em mô tả bằng tiếng Việt, hệ thống dựng thuật toán và chương trình, rồi nạp thẳng xuống ESP32 qua Wi-Fi.
06 Hiệu chuẩn và kiểm thử
Bảng số liệu có kiểm soát
| Số giọt | Lần 1 | Lần 2 | Lần 3 | Trung bình |
|---|---|---|---|---|
| 0 | … | … | … | … |
| 1 | … | … | … | … |
| 3 | … | … | … | … |
| 5 | … | … | … | … |
Danh sách kiểm
- AO nối GPIO34 và module chỉ nhận 3,3 V.
- Tấm khô có vùng số ổn định trước khi thử.
- Mỗi mức dùng cùng ống, cùng vị trí và cùng thời gian chờ.
- Ngưỡng lấy từ bảng của chính tấm cảm biến.
- Toàn bộ nước nằm trong khay, cách xa bo và máy tính.
07 Kinh nghiệm và cạm bẫy
Khi dựng bài, tôi lau mặt trên rất kĩ mà số vẫn báo ướt. Một giọt nước đã chui xuống mặt dưới và mắc ở đầu nối. Từ đó tôi đặt tấm nghiêng, thấm cả hai mặt và chờ số trở về vùng khô trước mỗi lượt.
Dòng điện một chiều qua bề mặt ướt làm các đường kim loại xuống màu theo thời gian. Chỉ cấp nguồn lúc đo, lau khô sau tiết học và không coi tấm rẻ tiền này là cảm biến ngoài trời dùng lâu dài.
08 Ứng dụng trong dạy học
Công nghệ — thử sản phẩm bằng tiêu chí đo được
Không chấm sản phẩm chỉ vì LED đã sáng. Nhóm phải công bố vùng khô, vùng ướt, ngưỡng chọn và số lần cảnh báo sai trong năm lần thử lặp.
Địa lí — một điểm ướt không phải là dự báo
Tấm dò chỉ cho biết chính bề mặt của nó đang có nước. Dự báo thời tiết cần nhiều đại lượng, nhiều điểm quan trắc và mô hình. Đây là dịp tốt để tách dữ liệu quan sát tại chỗ khỏi một kết luận rộng hơn.
Hoạt động 1 — Xác định vấn đề. Mưa tạt vào cửa sổ khi phòng không có người.
Tiêu chí sản phẩm: phát hiện 3 giọt trong ba lần thử; không báo khi tấm khô; phần điện tử không tiếp xúc nước.
Hoạt động 2 — Kiến thức nền. Độ dẫn điện, ADC, ngưỡng và sai số phép thử.
Hoạt động 3 — Đề xuất phương án. Chọn góc đặt tấm, khay hứng và vị trí LED báo.
Hoạt động 4 — Chế tạo và thử. Thử mù với 0, 1, 3 hoặc 5 giọt do nhóm khác chuẩn bị.
Hoạt động 5 — Báo cáo và điều chỉnh. Lập ma trận đúng–sai, sửa ngưỡng rồi thử lại.
- Đo thời gian khô trong nắng, bóng râm và trước quạt.
- Thiết kế vỏ che để nước tới tấm dò nhưng không tới bo mạch.
- So tấm điện trở với một cảm biến mưa điện dung.
- Hướng thi Khoa học kĩ thuật: hệ cảnh báo rò nước thấp áp cho phòng thiết bị.