Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Σε αυτό το διδακτικό θα φτιάξουμε έναν αισθητήρα πάρκου. Η ιδέα αυτού του αισθητήρα στάθμευσης είναι να δείξει πράσινο όταν έχετε άφθονο χώρο για να τραβήξετε το αυτοκίνητό σας μπροστά στο πάρκινγκ και στη συνέχεια να γίνει κίτρινο καθώς πλησιάζετε στην πλήρως μπροστινή θέση και έπειτα κόκκινο όταν πρέπει να σταματήσετε. Θα δημιουργήσουμε αυτό το σύστημα με το Raspberry Pi και θα χρησιμοποιήσουμε μερικές αποστάσεις που μπορούμε εύκολα να δοκιμάσουμε.
Βήμα 1: Πράγματα που θα χρειαστείτε
Θα χρειαστείτε τα ακόλουθα στοιχεία εκτός από τη ρύθμιση Raspberry Pi.
- HC-SR04 Αισθητήρας υπερήχων απόστασης
- Led (X3)
- Αντίσταση 330Ω (X3)
- Αντίσταση 10KΩ (x2)
- Ανδρικά-αρσενικά / αρσενικά-θηλυκά άλματα καλωδίων
- Breadboard
Βήμα 2: Κάντε την καλωδίωση
- Ενεργοποίηση για τον αισθητήρα απόστασης είναι GPIO 4, ηχώ είναι GPIO 18, το πράσινο φως 17, το κίτρινο φως 27 και το κόκκινο φως 22.
- Οι αντιστάσεις 330 ohm είναι για τα led και συνδέονται με το θετικό σκέλος των led και μετά με το GPIO.
- Οι αντιστάσεις 10K ohm είναι για τον πείρο ηχώ του αισθητήρα απόστασης και συνδέονται με το GPIO.
Βήμα 3: Κωδικός
εισαγωγή RPi. GPIO ως GPIOimport time
GPIO.setwarnings (False)
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM)
TRIG = 4
ECHO = 18
ΠΡΑΣΙΝΟ = 17
ΚΙΤΡΙΝΟ = 27
ΚΟΚΚΙΝΟ = 22
GPIO.setup (TRIG, GPIO. OUT)
GPIO.setup (ECHO, GPIO. IN)
GPIO.setup (ΠΡΑΣΙΝΟ, GPIO. OUT)
GPIO.setup (ΚΙΤΡΙΝΟ, GPIO. OUT)
GPIO.setup (RED, GPIO. OUT)
def green_light ():
GPIO.output (ΠΡΑΣΙΝΟ, GPIO. HIGHT)
GPIO.output (ΚΙΤΡΙΝΟ, GPIO. LOW)
GPIO.output (RED, GPIO. LOW)
def yellow_light ():
GPIO.output (ΠΡΑΣΙΝΟ, GPIO. LOW)
GPIO.output (ΚΙΤΡΙΝΟ, GPIO. HIGHT)
GPIO.output (RED, GPIO. LOW)
def red_light (): GPIO.output (ΠΡΑΣΙΝΟ, GPIO. LOW)
GPIO.output (ΚΙΤΡΙΝΟ, GPIO. LOW)
GPIO.output (RED, GPIO. HIGH)
def get_distance ():
GPIO.output (TRIG, True)
time.sleep (0.00001)
GPIO.output (TRIG, False)
ενώ GPIO.input (ECHO) == False: start = time.time ()
ενώ GPIO.input (ECHO) == True: τέλος = time.time ()
signal_time = τέλος-εκκίνηση
απόσταση = signal_time / 0.000058
απόσταση επιστροφής
ενώ True:
απόσταση = get_distance ()
ώρα. ύπνος (0,05)
εκτύπωση (απόσταση)
αν απόσταση> = 25:
πράσινο φως()
elif 25> απόσταση> 10:
κίτρινο φως ()
elif απόσταση <= 5:
κόκκινο φως()
Εάν η απόσταση είναι μεγαλύτερη ή ίση με 25 cm, δείχνουμε πράσινο φως. Αν είναι μεταξύ 10 και 25 εκατοστών, θα γίνουμε κίτρινοι και μετά θα κοκκινίσουμε για λιγότερο από ή ίσο με 10 εκατοστά.