Πίνακας περιεχομένων:
- Βήμα 1: Ηλεκτρονικό κύκλωμα
- Βήμα 2: Κώδικας Python
- Βήμα 3: Πώς να ξεκινήσετε αυτόματα το σενάριο μετά τη διαδικασία εκκίνησης
Βίντεο: Κουμπί απενεργοποίησης για Raspberry Pi: 3 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:31
Το Raspberry Pi είναι μια πολύ χρήσιμη υπολογιστική πλατφόρμα που επιτρέπει τη δημιουργία διαφόρων εφαρμογών έργου IoT/robotics/smart-home/…. Το μόνο πράγμα που δεν έχει, σε σύγκριση με έναν κανονικό υπολογιστή, είναι το κουμπί απενεργοποίησης απενεργοποίησης. Πώς μπορούμε λοιπόν να δημιουργήσουμε ένα μόνοι μας; Εντάξει, ας το κάνουμε μαζί!
Για αυτό το σεμινάριο, θα χρειαστείτε τα ακόλουθα:
- 1 Raspberry Pi έχει ήδη διαμορφωθεί και είναι έτοιμο για χρήση
- 1 πλάκα ψωμιού ή κάτι που θα σας επιτρέψει να δημιουργήσετε το ηλεκτρονικό κύκλωμα
- 1 κουμπί
- 2 καλώδια βραχυκυκλωτήρων
Εάν δεν έχετε χρησιμοποιήσει ποτέ ένα Raspberry Pi, μπορείτε να δείτε το σεμινάριό μου για το πώς και τι να κάνετε για να το διαμορφώσετε:
www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/
Βήμα 1: Ηλεκτρονικό κύκλωμα
Τίποτα εξαιρετικά περίπλοκο εδώ, είναι ένα απλό κύκλωμα. Οι 2 παραπάνω εικόνες εξηγούν την κατασκευή του κυκλώματος. Μπορείτε να χρησιμοποιήσετε όποια καρφίτσα GPIO θέλετε για την είσοδο του κουμπιού, απλώς θα πρέπει να βεβαιωθείτε ότι έχετε ενημερώσει τον κώδικα για να τον αντικατοπτρίζει.
Ας εξηγήσουμε γρήγορα πώς θα λειτουργήσει αυτό:
- το RED σύρμα μεταφέρει το 3,3V στο ένα άκρο του κουμπιού.
- το ΜΑΥΡΟ καλώδιο συνδέει το άλλο άκρο του κουμπιού σε ένα Pi GPIO το οποίο θα χρησιμοποιηθεί ως είσοδος.
- από προεπιλογή το κουμπί είναι ανοιχτό, οπότε δεν υπάρχει τάση που το διαπερνά. Έτσι το ΜΑΥΡΟ καλώδιο είναι στα 0V όταν δεν πατάτε το κουμπί. Αυτό σημαίνει ότι η λογική κατάσταση της εισόδου Pi GPIO είναι 0.
- όταν πατηθεί το κουμπί, η τάση θα περάσει από αυτό και το ΜΑΥΡΟ καλώδιο θα συνδεθεί με τα 3.3V. Το Raspberry Pi θα δει τότε μια τάση 3,3V στην είσοδό του, που αντιστοιχεί σε μια λογική κατάσταση 1.
Βήμα 2: Κώδικας Python
Τώρα που το κύκλωμα είναι έτοιμο για χρήση, πρέπει να γράψουμε τον κώδικα που θα το τρέξει και χρησιμοποιώ την Python σε περιβάλλον PyCharm εδώ. Διαμόρφωσα το κουμπί για απενεργοποίηση του Raspberry Pi μόνο όταν πιέζεται περισσότερο από 3 δευτερόλεπτα κατά συνέπεια. Ο λόγος που το κάνω είναι ότι είναι πολύ εύκολο να το πιέσεις κατά λάθος και δεν θέλεις να κλείσεις το Pi σου τυχαία.
Η παραπάνω οθόνη εκτύπωσης προέρχεται από το περιβάλλον μου PyCharm και ο κωδικός είναι ο ακόλουθος (με μια μικρή διαφορά στη γραμμή 26 που συνδέεται με άλλο έργο αλλά δεν απαιτείται εδώ):
# Αυτός είναι κωδικός aa για την απενεργοποίηση του Raspberry Pi όταν πατάτε και κρατάτε πατημένο ένα καθορισμένο κουμπί για να απενεργοποιήσετε το Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Broadcom pin-αρίθμηση σχήματος button_poweroff, GPIO. RISING) έναρξη = time.time () time.sleep (0.2) # Εναλλαγή κατάργησης ενώ GPIO.input (button_poweroff) == 1: time.sleep (0.01) μήκος = time.time () - έναρξη εάν μήκος > hold_time: os.system ("sudo poweroff")
Το πρώτο πράγμα, εάν έχετε συνδέσει το κουμπί ώθησης σε διαφορετικό GPIO, είναι να ενημερώσετε τη γραμμή 11 στην παραπάνω οθόνη εκτύπωσης με τη σχετική είσοδο GPIO:
button_poweroff = GPIO_X # Ενημέρωση με το σωστό GPIO που χρησιμοποιείται στο κύκλωμά σας
Επίσης, η μεταβλητή hold_time σάς επιτρέπει να τροποποιήσετε τον χρόνο αναμονής που προκαλεί το κλείσιμο του Pi.
Βήμα 3: Πώς να ξεκινήσετε αυτόματα το σενάριο μετά τη διαδικασία εκκίνησης
Τώρα που έχουμε έτοιμο τον κώδικα, πρέπει απλώς να τον εκτελέσουμε. Όμως, θα ήταν βολικό αν μπορούσαμε να εκτελέσουμε αυτό το σενάριο κάθε φορά που ξεκινά το Pi, με αυτόματο τρόπο, οπότε το κουμπί θα λειτουργούσε χωρίς εμάς να εκτελούμε το σενάριο κάθε φορά. Υπάρχουν πολλοί τρόποι για να το κάνετε αυτό. Έχω προσθέσει εδώ μια γραμμή στο αρχείο rc.local που βρίσκεται στο φάκελο / etc / του Pi σας. Εκτελείται ως μέρος της ακολουθίας εκκίνησης.
Πρέπει να ανοίξετε μια γραμμή εντολών και να πληκτρολογήσετε τις ακόλουθες εντολές (1η οθόνη εκτύπωσης παραπάνω):
cd /
cd κλπ sudo nano rc.τοπικό
Η πρώτη εντολή θα σας μεταφέρει από τον κατάλογο /home /pi στον ριζικό, που είναι /.
Στη συνέχεια, η δεύτερη εντολή θα σας μεταφέρει στον κατάλογο / etc /.
Τέλος, το τρίτο θα ανοίξει το αρχείο rc.local ως υπερχρήστης, με πλήρη δικαιώματα επεξεργασίας, τα οποία χρειάζεστε για να τροποποιήσετε το αρχείο.
Μόλις βρεθείτε στο αρχείο, πρέπει απλώς να προσθέσετε μια γραμμή στο τέλος του, αλλά πριν από τη δήλωση εξόδου 0 (2η οθόνη εκτύπωσης παραπάνω):
# Προσθέστε αυτήν τη γραμμή στο αρχείο rc.local για να ξεκινήσει το σενάριο
sudo python /home/pi/Documents/shutdown_with_hold.py &
Υπάρχουν μερικά πράγματα που πρέπει να προσέξετε, εδώ:
- το όνομα του αρχείου σας: στην παραπάνω γραμμή, υποθέτω ότι το αρχείο είναι shutdown_with_hold.py. Αλλά μπορεί να είναι ό, τι θέλετε, απλώς ενημερώστε το όνομα με το δικό σας.
- όπου έχετε αποθηκεύσει το αρχείο σας: στην παραπάνω γραμμή, υποθέτω ότι είναι αποθηκευμένο στον κατάλογο σας/home/pi/Documents. Αλλά και πάλι, μπορεί να είναι οπουδήποτε. Απλά πρέπει να βεβαιωθείτε ότι έχετε βάλει την απόλυτη διαδρομή στο αρχείο σας εδώ.
- ο χαρακτήρας "&" στο τέλος του: αυτό είναι σημαντικό και επιτρέπει την εκτέλεση αυτής της εντολής στο παρασκήνιο
Και αυτό είναι! Έτσι, τώρα, το σενάριο θα εκτελείται κάθε φορά που το Pi σας θα είναι ενεργοποιημένο και θα πρέπει απλώς να πατήσετε πάνω από 3 δευτερόλεπτα στο κουμπί για να το απενεργοποιήσετε.
Συνιστάται:
Εύκολος ανεμιστήρας κυκλώματος με κουμπί ενεργοποίησης/απενεργοποίησης: 3 βήματα
Easy Snap Circuit Fan With On/Off Switch: Αυτό είναι ένα εύκολο έργο χρησιμοποιώντας snap κυκλώματα --- ελπίζω να σας αρέσει! Αυτό το έργο είναι για διασκέδαση και ίσως θα μπορούσε να σας βοηθήσει να δροσιστείτε. Δεν λειτουργεί πραγματικά έτσι, αλλά είναι εκπαιδευτικό! P.S Αυτό το έργο απευθύνεται μόνο σε αρχάριους χωρίς την επίδειξη
Τρόπος ενεργοποίησης/απενεργοποίησης διακόπτη αφής για οικιακές συσκευές: 4 βήματα
Πώς να ενεργοποιήσετε/απενεργοποιήσετε το διακόπτη αφής για οικιακές συσκευές: Αυτός είναι ένας διακόπτης ενεργοποίησης/απενεργοποίησης αφής χωρίς κανένα μικροελεγκτή. Μπορείτε να αγγίξετε το δάχτυλό σας; Πρώτη φορά σε μεταλλική πλάκα και μετά λαμπτήρα; ΕΝΕΡΓΟΠΟΙΗΜΕΝΟ ΚΑΙ Μετά την αφαίρεση του λαμπτήρα δαχτύλου; Μείνετε. Μπορείτε να αγγίξετε το δάχτυλό σας; Δεύτερη φορά σε μεταλλική πλάκα Στη συνέχεια λάμπα;
Χρονοδιακόπτης καθυστέρησης απενεργοποίησης για ποδήλατο: 5 βήματα
Χρονοδιακόπτης καθυστέρησης απενεργοποίησης για ποδήλατο: Πρόβλημα: Έχω προσθέσει διαφορετικές συσκευές στο ποδήλατό μου. Το πρόβλημα είναι είτε συνδέονται απευθείας με την μπαταρία και αντλούν ρεύμα διαρροής είτε μετά τον κύριο διακόπτη και δεν είναι διαθέσιμα όταν κλείνω το ποδήλατό μου. Παραδείγματα: Πρέπει να φορτίσετε
Μικροελεγκτής AVR. Εναλλαγή LED με χρήση διακόπτη με κουμπί. Κουμπί απωθήσεων: 4 βήματα
Μικροελεγκτής AVR. Εναλλαγή LED με χρήση διακόπτη με κουμπί. Πιέζοντας το πλήκτρο Debouncing .: Σε αυτήν την ενότητα, θα μάθουμε πώς να κάνουμε τον κωδικό προγράμματος C για το ATMega328PU για να αλλάξουμε την κατάσταση των τριών LED σύμφωνα με την είσοδο από έναν διακόπτη κουμπιού. Επίσης, έχουμε διερευνήσει λύσεις στο πρόβλημα του "Switch Bounce". Ως συνήθως, θα
Αγγίξτε το κουμπί τροφοδοσίας για Raspberry Pi: 3 βήματα
Αγγίξτε το κουμπί τροφοδοσίας για το Raspberry Pi: Από τότε που εκτύπωσα και άρχισα να χρησιμοποιώ αυτήν τη θήκη για το Retropie μου, πάντα φανταζόμουν πώς να φτιάχνω ένα κουμπί λειτουργίας. Η ιδέα ήταν να αλλάξετε το σχέδιο για να κάνετε το κουμπί μετακίνησης και στη συνέχεια να μετακινήσετε έναν διακόπτη. Στο τέλος είχα μια άλλη ιδέα, όπου δεν χρειαζόμουν να αλλάξω την κάσα