2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Trong hướng dẫn này, chúng tôi sẽ xây dựng một cảm biến công viên. Ý tưởng của cảm biến đỗ xe này là hiển thị màu xanh lá cây khi bạn có nhiều chỗ để kéo xe về phía trước trong bãi đỗ, sau đó chuyển sang màu vàng khi bạn đến gần vị trí phía trước hoàn toàn và sau đó chuyển sang màu đỏ khi bạn nên dừng lại. Chúng tôi sẽ xây dựng hệ thống này với Raspberry Pi của mình và sử dụng một số khoảng cách mà chúng tôi có thể dễ dàng kiểm tra.
Bước 1: Những thứ bạn sẽ cần
Bạn sẽ cần các thành phần sau ngoài thiết lập Raspberry Pi.
- Cảm biến khoảng cách siêu âm HC-SR04
- Led (X3)
- Điện trở 330Ω (X3)
- Điện trở 10KΩ (x2)
- Dây nhảy nam-nam / nam-nữ
- Breadboard
Bước 2: Đi dây
- Kích hoạt cho cảm biến khoảng cách là GPIO 4, tiếng vang là GPIO 18, đèn xanh là 17, đèn vàng là 27 và đèn đỏ là 22.
- Điện trở 330 ohm dành cho led và chúng đang kết nối với chân dương của led rồi đến GPIO.
- Điện trở 10K ohm dành cho chân echo của cảm biến khoảng cách và kết nối với GPIO.
Bước 3: Mã
nhập RPi. GPIO dưới dạng thời gian nhập GPIO
GPIO.setwarnings (Sai)
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM)
TRIG = 4
ECHO = 18
XANH LÁ = 17
VÀNG = 27
ĐỎ = 22
GPIO.setup (TRIG, GPIO. OUT)
GPIO.setup (ECHO, GPIO. IN)
GPIO.setup (XANH LÁ, GPIO. OUT)
GPIO.setup (VÀNG, GPIO. OUT)
GPIO.setup (RED, GPIO. OUT)
def green_light ():
GPIO.output (XANH LÁ, GPIO. HIGH)
GPIO.output (VÀNG, GPIO. LOW)
GPIO.output (RED, GPIO. LOW)
def yellow_light ():
GPIO.output (XANH, GPIO. LOW)
GPIO.output (VÀNG, GPIO. HIGH)
GPIO.output (RED, GPIO. LOW)
def red_light (): GPIO.output (GREEN, GPIO. LOW)
GPIO.output (VÀNG, GPIO. LOW)
GPIO.output (ĐỎ, GPIO. HIGH)
def get_distance ():
GPIO.output (TRIG, True)
time.sleep (0,00001)
GPIO.output (TRIG, False)
trong khi GPIO.input (ECHO) == Sai: start = time.time ()
trong khi GPIO.input (ECHO) == True: end = time.time ()
signal_time = end-start
khoảng cách = signal_time / 0,000058
khoảng cách trở lại
trong khi Đúng:
khoảng cách = get_distance ()
time.sleep (0,05)
in (khoảng cách)
nếu khoảng cách> = 25:
đèn xanh()
elif 25> khoảng cách> 10:
đèn vàng()
khoảng cách elif <= 5:
đèn đỏ()
Nếu khoảng cách lớn hơn hoặc bằng 25 cm thì ta hiện đèn xanh. Nếu nó từ 10 đến 25 cm, chúng ta sẽ chuyển sang màu vàng, và sau đó chúng ta sẽ chuyển sang màu đỏ khi nhỏ hơn hoặc bằng 10 cm.