sv6nob raspberry pi shutdown button close

 

Στον οδηγό αυτό, θα περιγράψουμε πως μπορούμε να βάλουμε ένα κουμπί για να κάνει ασφαλή τερματισμό το Raspberry Pi 3 ώστε να αποφεύγουμε τον απότομο κλείσιμό του από την παροχή τροφοδοσίας με κίνδυνο τη δημιουργία προβλημάτων στην κάρτα μνήμης και τα δεδομένα μας.

Γιατί, μην ξεχνιόμαστε, το Raspberry είναι ένας υπολογιστής και όταν το κλείνουμε από την παροχή, είναι σαν να τραβάμε τον σταθερό υπολογιστή μας από την πρίζα για να κλείσει.

   

 

 

Για το project αυτό, θα χρειαστούμε τα εξής:

-          Ένα button Push ON, δηλαδή ενώνει τις επαφές όταν το πατάμε.

-          Λίγο καλώδιο για να ενώσουμε τις επαφές του button με το raspberry

-          Κολλητήρι και κόλληση

-          Όρεξη να δούμε λίγο κώδικα σε python, don’t worry… ευκολάκι είναι!

sv6nob raspberry pi shutdown button open

Στο πρώτο βήμα, θα χρειαστεί να συνδεθούμε στο Raspberry μας με SSH ή αν έχουμε εγκατεστημένο γραφικό περιβάλλον, να ανοίξουμε το τερματικό.

Η πρώτη μας εντολή είναι να συνδεθούμε στο σύστημα σαν διαχειριστές

sudo su

και πληκτρολογούμε τον κωδικό μας αν μας ζητηθεί

Στην περίπτωση που έχουμε Write Protected σύστημα, όπως το pi-star, θα πρέπει στο σημείο αυτό να τρέξουμε

rpi-rw

ώστε να μπορούμε να πραγματοποιήσουμε αλλαγές στο σύστημα.

Ελέγχουμε οτι υπάρχει εγκατεστημένη η python και αν οχι, την εγκαθιστάμε με

sudo apt-get update

sudo apt-get install python

Στη συνέχεια, μετακινούμαστε στον home φάκελό μας με

cd /home/pi/

το pi μπορεί να είναι διαφορετικό ανάλογα την διανομή που έχουμε. Πχ σε pi-star είναι pi-star και σε ubuntu είναι ubuntu.

Στο σημείο αυτό κατεβάζουμε το python scriptμε την εντολή

wget https://www.mariosv.gr/images/shutdown.py

Προτείνω το αρχείο να το κάνουμε κρυφό για λόγους ασφαλείας με την εντολή

mv shutdown.py .shutdown.py

Πλέον το αρχείο δεν είναι ορατό με την εντολή ls αλλά μόνο με την ls –la

Στο επόμενο βήμα, αρκετά σημαντικό θα έλεγα, θα πρέπει να ελέγξουμε ποιο Raspberry έχουμε ώστε να ταιριάζουν τα GPIO.

cat /proc/cpuinfo

η εντολή αυτή θα μα δώσει το Revision όπως φαίνεται στην εικόνα που ακολουθεί.

sv6nob raspberry pi cpuinfo

Από το https://elinux.org/RPi_HardwareHistory διασταυρώνουμε οτι το Revision που έχουμε αντιστοιχεί στο Pi 3 Model B και μετά συνεχίζουμε στο επόμενο βήμα.

Ανοίγουμε το python script που κατεβάσαμε πιο πριν με την εντολή

nano .shutdown.py

και στο σημείο που αναφέρει GPIO_NUMBER_HERE πληκτρολογούμε το GPIO pin που επιλέξαμε.

Στην δική μου περίπτωση, με βάση το σχέδιο, έχουμε το GPIO 26, οπότε η συγκεκριμένη γραμμή θα είναι gpio_pin_number=26

sv6nob raspberry pi shutdown button schematic

Μπορούμε να επιλέξουμε όποιο pin επιθυμούμε από τη λίστα καθώς και όποιο ground μας βολεύει. Πρότασή μου είναι να μην βάλουμε κάποιο pin που έχει και εναλλακτική λειτουργία.

Δίνουμε προσοχή στο αρχείο να μην κάνουμε κάποιο λάθος, διότι αποτελεί σειρά ενεργειών που δεν επιδέχονται το παραμικρό λάθος.

Όταν είμαστε έτοιμοι, πατάμε CTRL + x μετά y και ENTER για αποθήκευση και έξοδο.

Καλό θα ήταν να σιγουρέψουμε οτι το script είναι σωστά γραμμένο τρέχοντας την εντολή

python .shutdown.py

Αν δούμε οτι δεν βγάζει κάποιο σφάλμα και πηγαίνει σε νέα κενή γραμμή, είμαστε εντάξει και πατάμε CTRL + c για να σταματήσει η εκτέλεση.

Επόμενο βήμα είναι να ορίσουμε το script να ξεκινάει στην εκκίνηση του Raspberry.

sudo nano /etc/rc.local

και στο τέλος του αρχείου και πριν το exit 0 προσθέτουμε την γραμμή

python /home/pi/.shutdown.py &

όπου pi ότι είχαμε βάλει και πιο πάνω

sv6nob raspberry pi rclocal

Όταν είμαστε έτοιμοι, πατάμε CTRL + x μετά y και ENTER για αποθήκευση και έξοδο.

Στο σημείο αυτό είμαστε έτοιμοι να κολλήσουμε τα καλώδια και το button στο raspberry. Αποσυνδέουμε την τροφοδοσία του raspberry υποχρεωτικά πριν συνεχίσουμε και αποσυνδέουμε οτιδήποτε περιφερειακό είναι συνδεδεμένο.

Αν δεν επιθυμούμε να κολλήσουμε επάνω στα pins, μπορούμε να χρησιμοποιήσουμε θηλυκά pins που να εφαρμόζουν επάνω στο raspberry.

sv6nob raspberry pi shutdown button schematic

Με προσοχή, κολλάμε τα καλώδια και το μπουτόν στο ground και στο gpio που επιλέξαμε, μονώνουμε τις ενώσεις μας και στερεώνουμε το μπουτόν ώστε να μην υπάρξει περίπτωση να πέσει επάνω στην πλακέτα και βραχυκυκλώσει κάτι.

ΠΡΟΣΟΧΗ! Το python script θα πρέπει υποχρεωτικά να τρέχει στην εκκίνηση του συστήματος διότι εκεί ορίζεται η εσωτερική pull up αντίσταση για να μην υποστεί κάποια ζημιά το raspberry. Επίσης, δεν αφήνουμε το button μόνιμα πατημένο διότι κάποια pins, ορίζονται σαν output στην εκκίνηση, πριν ξεκινήσει το δικό μας script και μπορεί να προκληθεί ζημιά στο raspberry.

Το τελευταίο βήμα είναι να αναγνωρίσουμε πότε έχει κλείσει το raspberry μας όταν θα έχουμε πατήσει το button. Πιέζοντας το button, θα δούμε μετά από λίγα δευτερόλεπτα το πράσινο led του raspberry να αναβοσβήσει γρήγορα δέκα φορές. Αυτό σημαίνει ότι έχει τερματίσει η λειτουργία του και πλέον είναι ασφαλές να του αποσυνδέσουμε την τροφοδοσία.

Η εφαρμογή των οδηγιών γίνεται με δικό σας ρίσκο και δεν φέρω καμία ευθύνη για το αποτέλεσμα.

QRZ callsign lookup:

sv6nob amateur radio symbol
 




Η ιστοσελίδα χρησιμοποιεί cookies για την σωστή λειτουργία, την πλοήγηση, την ανάλυση κίνησης, για social media, και άλλες λειτουργίες. Οι επισκέπτες και χρήστες της, θα πρέπει σύμφωνα με τις οδηγίες της αρχής προστασίας προσωπικών δεδομένων να συμφωνούν με τη χρήση των εν λόγω cookies.