Lab.Vatli365
← Cấp độ 3 · Cảm biến đơn giản

Bài 17 · Công nghệ

Cảm biến chuyển động PIR
nhìn sự thay đổi nhiệt, không chụp ảnh và không nhận dạng người

PIR thường được gọi là cảm biến người, nhưng cách gọi ấy dễ làm ta hiểu quá khả năng của nó. Cảm biến chỉ phản ứng với sự thay đổi bức xạ hồng ngoại trong vùng nhìn. Không có camera, không biết ai đang đi qua và cũng không đo được khoảng cách.

Thời lượng
1 tiết (45 phút)
Chi phí một nhóm
≈ 25 nghìn đồng (chưa tính bo)
Cấp độ
3 / 12
Trạng thái
Đã có phần cứng, đang hoàn thiện
01

Mục tiêu và yêu cầu cần đạt

Bài này là dịp tốt để nói về giới hạn cảm biến và quyền riêng tư. PIR chỉ trả về một bit có hoặc không có thay đổi. Nó phù hợp để đếm lần kích hoạt, nhưng không đủ căn cứ để kết luận ai có mặt hay một phòng chắc chắn đang trống.

Sau bài này học sinh làm được

  • Giải thích PIR phản ứng với thay đổi bức xạ hồng ngoại.
  • Đọc tín hiệu số từ GPIO27 và điều khiển LED ở GPIO23.
  • Đo thời gian ổn định sau cấp nguồn và thời gian giữ tín hiệu.
  • So sánh khả năng phát hiện khi đi ngang và đi thẳng.
  • Nêu được giới hạn: không đo khoảng cách, không nhận dạng và có thể báo sai.
Gắn với chương trình
  • Công nghệ — cảm biến đầu vào, hệ thống điều khiển và đánh giá giải pháp.
  • Tin học — dữ liệu logic, rẽ nhánh và nguyên tắc tối thiểu hoá dữ liệu.

Đối chiếu chương trình môn và khối lớp cụ thể trước khi đưa vào kế hoạch bài dạy.

02

Lí thuyết

PIR nhìn sự thay đổi giữa các vùng

Phần tử pyroelectric bên trong phản ứng với thay đổi bức xạ hồng ngoại. Thấu kính trắng chia vùng nhìn thành nhiều vùng nhỏ. Khi một vật ấm di chuyển từ vùng này sang vùng khác, tín hiệu thay đổi rõ và module đưa chân OUT lên mức cao.

Đi ngang thường dễ thấy hơn đi thẳng

Đi ngang cắt qua nhiều vùng của thấu kính, nên tín hiệu thay đổi liên tiếp. Đi thẳng về phía cảm biến có thể tạo thay đổi nhỏ hơn. Kết quả còn phụ thuộc nhiệt độ phòng, quần áo, tốc độ và vị trí đặt cảm biến.

Hai núm chỉnh hai việc khác nhau

Một biến trở chỉnh độ nhạy, biến trở kia chỉnh thời gian OUT giữ mức cao. Nếu xoay cả hai cùng lúc, ta không biết thay đổi do đâu. Giữ một núm cố định, đo núm còn lại rồi mới đổi vai.

03

Linh kiện

Linh kiệnMô tả, lưu ý khi muaSố lượng · giá
ESP32 DevKit V1Bo 30 chân1 · 90–150k
PIR HC-SR501Module có hai biến trở chỉnh độ nhạy và độ trễ1 · 20–30k
LED 5 mm và điện trở 220 ΩĐèn báo chuyển động1 bộ · 700đ
Thước dây và băng dính giấyĐánh dấu vị trí thử1 bộ
04

Lắp mạch và sơ đồ nối dây

Đỏ · nguồn dương Đen · GND Vàng · SCL Xanh dương · SDA Trắng · tín hiệu Xanh lá · 1-Wire
KhốiNối dâyNguồn
Nguồn PIRVCC → 5V của ESP32 · GND → GNDNguồn thấp áp từ USB, không dùng nguồn ngoài
Tín hiệu PIROUT → GPIO27OUT mức logic phù hợp để ESP32 đọc
LEDGPIO23 → 220 Ω → LED → GNDLED sáng khi OUT ở mức cao
Hai biến trởGiữ vị trí giữa lúc bắt đầuSau đó chỉ đổi từng biến một
B17.1 Ảnh thực

PIR hướng ra khoảng trống, ESP32 và LED đặt phía sau, có vạch khoảng cách trên sàn.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có
B17.2 Hình vẽ

VCC PIR nối 5V, GND chung, OUT nối GPIO27 và LED nối GPIO23.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có
B17.3 Sơ đồ thử

Hai đường di chuyển: đi ngang qua vùng nhìn và đi thẳng về phía cảm biến.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có

Để cảm biến nhìn ra khoảng trống

  1. Rút USB, xác định đúng ba chân VCC, OUT, GND theo chữ in trên module.
  2. Nối VCC → 5V, GND → GND, OUT → GPIO27.
  3. Lắp LED ở GPIO23 qua điện trở 220 Ω.
  4. Đặt PIR cố định, tránh hướng vào cửa sổ nắng, quạt sưởi hoặc rèm lay động.
  5. Cấp nguồn và không đi trước cảm biến trong ít nhất 30 giây.
Chỉ nguồn USB thấp áp

Chân 5V ở đây là nguồn thấp áp từ cổng USB để nuôi module. Không nối PIR với điện lưới, đèn 220 V hay bất kì tải điện áp cao nào.

Đừng kết luận phòng trống

Người ngồi yên lâu có thể không kích hoạt PIR. Vì vậy sản phẩm lớp học chỉ báo “vừa có chuyển động”, không gắn nhãn “có người” hoặc dùng để giám sát cá nhân.

05

Mã nguồn

Mã dùng MicroPython cho ESP32. PIR không ghi hình hay nhận dạng; thử trong lớp bằng chuyển động bình thường, không thu dữ liệu định danh.

Bước 1 — báo chuyển động
# Bai 17 - Cam bien chuyen dong PIR HC-SR501
from machine import Pin
import time

# ===== CẤU HÌNH =====
CHAN_PIR = 27
CHAN_LED = 23
CHU_KY_MS = 300
# ====================

pir = Pin(CHAN_PIR, Pin.IN)
led = Pin(CHAN_LED, Pin.OUT)

print("Cho PIR on dinh sau khi cap nguon...")
time.sleep_ms(30000)

while True:
    co_chuyen_dong = pir.value() == 1

    if co_chuyen_dong:
        led.on()
        print("Co chuyen dong")
    else:
        led.off()

    time.sleep_ms(CHU_KY_MS)

Dòng chờ 30 giây là thời gian khởi động thực hành, không phải con số cố định cho mọi module. Nếu OUT vẫn đổi bất thường, chờ thêm và kiểm tra hướng nhìn.

Bước 2 — đo thời gian giữ mức cao
# Do khoang thoi gian OUT giu muc 1
from machine import Pin
import time

pir = Pin(27, Pin.IN)
print("Cho PIR on dinh...")
time.sleep_ms(30000)

bat_dau = None
trang_thai_cu = pir.value()

while True:
    trang_thai = pir.value()
    if trang_thai == 1 and trang_thai_cu == 0:
        bat_dau = time.ticks_ms()
        print("Bat dau bao")
    elif trang_thai == 0 and trang_thai_cu == 1 and bat_dau is not None:
        do_tre = time.ticks_diff(time.ticks_ms(), bat_dau)
        print("Giu muc cao:", do_tre, "ms")
    trang_thai_cu = trang_thai
    time.sleep_ms(20)

Mỗi lần đi qua chỉ ghi một khoảng thời gian. Xoay rất nhẹ núm trễ, thử lại cùng đường đi và so sánh. Không vừa xoay độ nhạy vừa xoay độ trễ.

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ử

Lập bản đồ phát hiện đơn giản

Khoảng cáchĐi ngang: số lần phát hiện/5Đi thẳng: số lần phát hiện/5Ghi chú
1 m…/5…/5…
2 m…/5…/5…
3 m…/5…/5…

Danh sách kiểm

  • PIR ổn định sau cấp nguồn trước khi ghi dữ liệu.
  • OUT nối GPIO27, LED nối GPIO23.
  • Mỗi điều kiện được thử ít nhất năm lần.
  • Chỉ thay đổi một biến trở trong mỗi lượt khảo sát.
  • Kết luận dùng từ “phát hiện chuyển động”, không nói “nhận dạng người”.
07

Kinh nghiệm và cạm bẫy

Cứ đứng trước PIR để xem thì PIR không bao giờ ổn định

Lần đầu dựng bài, tôi nhìn sát LED để chờ nó tắt. Chính việc bước qua lại kiểm tra dây đã liên tục kích hoạt cảm biến. Đặt máy tính sang một bên và đứng sau PIR giúp tách lỗi mạch khỏi chuyển động của người thử.

Nhầm thời gian giữ mức cao với tốc độ chương trình

OUT có thể giữ mức 1 nhiều giây dù người đã đi khỏi. Đây là thiết lập của module, không phải vòng lặp bị treo. Đo cạnh lên và cạnh xuống sẽ nhìn ra ngay.

08

Ứng dụng trong dạy học

Công nghệTin họcToánSTEM

Công nghệ — đặc tính cảm biến quyết định thiết kế

Muốn đặt PIR ở hành lang, học sinh phải biết vùng nhìn, hướng chuyển động thuận lợi và thời gian trễ. Một chương trình đúng không cứu được vị trí lắp sai.

Tin học — dữ liệu tối thiểu vẫn giải quyết được việc

PIR chỉ tạo một bit và không thu hình ảnh. Đây là ví dụ rõ về chọn loại dữ liệu ít xâm phạm hơn khi bài toán chỉ cần biết vừa có chuyển động.

Bài học STEM 5 hoạt động — “Đèn báo lối đi thấp áp”

Hoạt động 1 — Xác định vấn đề. Cần báo có người vừa đi qua một lối tối trong mô hình.

Tiêu chí sản phẩm: phát hiện ít nhất 4/5 lần ở 2 m; không dùng camera; chỉ điều khiển LED thấp áp.

Hoạt động 2 — Kiến thức nền. Hồng ngoại, vùng nhìn, tín hiệu số và độ trễ.

Hoạt động 3 — Đề xuất phương án. So vị trí và góc đặt PIR bằng sơ đồ.

Hoạt động 4 — Chế tạo và thử. Thử hai hướng đi ở ba khoảng cách.

Hoạt động 5 — Báo cáo và điều chỉnh. Chọn góc cho tỉ lệ phát hiện cao nhất, nêu giới hạn.

Hướng mở rộng
  • Đếm số lần kích hoạt theo từng khoảng 10 phút mà không lưu thông tin cá nhân.
  • So ảnh hưởng của nhiệt độ phòng tới khoảng cách phát hiện.
  • Thêm trạng thái chờ để tránh đếm nhiều lần trong một lượt đi qua.
  • Hướng thi Khoa học kĩ thuật: bố trí chiếu sáng thấp áp tiết kiệm cho mô hình hành lang.