Πίνακας περιεχομένων:

Λευκό θόρυβο νυχτερινό φως: 11 βήματα (με εικόνες)
Λευκό θόρυβο νυχτερινό φως: 11 βήματα (με εικόνες)

Βίντεο: Λευκό θόρυβο νυχτερινό φως: 11 βήματα (με εικόνες)

Βίντεο: Λευκό θόρυβο νυχτερινό φως: 11 βήματα (με εικόνες)
Βίντεο: ΒΡΟΧΗ τη νύχτα 10 ώρες για ύπνο, χαλάρωση, μελέτη, αϋπνία, μείωση του στρες | Ήχοι δυνατής βροχής 2024, Νοέμβριος
Anonim
Λευκό θόρυβο νυχτερινό φως
Λευκό θόρυβο νυχτερινό φως
Λευκό θόρυβο νυχτερινό φως
Λευκό θόρυβο νυχτερινό φως

Αυτό είναι ένα έργο που έφτιαξα για το 1χρονο παιδί μου για τα Χριστούγεννα. Ειλικρινά όμως, ήταν ένα υγιές δώρο για μένα και τη γυναίκα μου. Είναι μια μηχανή λευκού θορύβου που μπορεί να αναπαράγει πολλούς διαφορετικούς ήχους που επιλέγονται μέσω μιας διεπαφής ιστού και επίσης ενσωματώνει φώτα που αλλάζουν χρώμα ανάλογα με την ώρα (τα κόκκινα φώτα σημαίνουν στο κρεβάτι, τα κίτρινα σημαίνει ότι μπορείτε να παίξετε στο δωμάτιό σας και το πράσινο σημαίνει ότι είναι εντάξει να βγει). Δεδομένου ότι ο γιος μου είναι πολύ μικρός για να πει την ώρα, ένα νυχτερινό φως με χρώμα έμοιαζε πολύ καλή ιδέα.

Είναι ένα πραγματικά εύκολο έργο και αφού έχω ήδη γράψει τον κώδικα, είναι ίσως 1 στα 5 στην κλίμακα δυσκολίας. Εάν έχετε νήπια που σας ενοχλούν πολύ νωρίς το πρωί, θα θελήσετε να το κάνετε.

Βήμα 1: Λίστα μερών

Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών

1. Raspberry Pi Zero W

2. Κάποιου είδους θήκη (χρησιμοποίησα αυτήν από την Amazon)

3. Blinkt από το Pimoroni

4. Ηχείο Phat από Pimoroni (Μπορείτε επίσης να χρησιμοποιήσετε κάποιο άλλο DAC με φθηνά ηχεία)

Θα χρειαστεί να έχετε κάποιες βασικές δεξιότητες συγκόλλησης για να συνδυάσετε το phat των ηχείων, υπάρχει ένας σύνδεσμος με οδηγίες βήμα προς βήμα από τη σελίδα του προϊόντος, οπότε δεν μπορείτε να το χαλάσετε.

5. [ΠΡΟΑΙΡΕΤΙΚΟ] Καλώδιο στήριξης πίνακα micro USB - από το Adafruit

6. μερικά καλώδια σύνδεσης ή άλτες

Αυτό είναι!

Βήμα 2: Κάψτε Raspbian και συνδέστε τους πίνακες

Burn Raspbian και Hook Up the Boards
Burn Raspbian και Hook Up the Boards

Χρησιμοποιώ το Raspian Stretch lite για αυτήν την κατασκευή. Οπότε κάψτε το σε microSD με οποιοδήποτε εργαλείο λειτουργεί για εσάς και, στη συνέχεια, ενεργοποιήστε το pi. Εάν χρειάζεστε βοήθεια για να αποκτήσετε ένα ακέφαλο pi για να συνδεθείτε στο wifi του σπιτιού σας και να ενεργοποιήσετε το ssh, υπάρχουν πολλά σεμινάρια στο διαδίκτυο που μπορούν να σας δείξουν πώς να το κάνετε αυτό, αλλά θα πρέπει να βεβαιωθείτε ότι το έχετε κάνει για τα υπόλοιπα να δουλέψω.

Χρησιμοποιώντας το https://pinout.xyz, μπορείτε να τραβήξετε και τους δύο πίνακες και να λάβετε τα pinouts τους σε αυτόν τον ιστότοπο. Οι πίνακες Blinkt απαιτούν μόνο 4 συνδέσεις και το ηχείο Phat χρειάζεται 9 συνδέσεις.

Θα πρέπει να μοιάζει με τη φωτογραφία όταν τελειώσετε. Τώρα πρέπει να δοκιμάσουμε ότι όλα λειτουργούν.

Βήμα 3: Εγκατάσταση του απαιτούμενου λογισμικού

Τώρα που είμαστε συνδεδεμένοι, θα χρειαστεί να εγκαταστήσουμε το λογισμικό που απαιτείται για να τρέξουμε τους πίνακες Blinkt και Speaker Phat. SSH στο pi και θα βρεθείτε στον αρχικό κατάλογο. Εισάγετε τα ακόλουθα:

μπούκλα https://get.pimoroni.com/blinkt | κτυπώ δυνατά

και μετά όταν ολοκληρωθεί, αυτό:

curl -sS https://get.pimoroni.com/speakerphat | κτυπώ δυνατά

Αυτό θα εγκαταστήσει όλα όσα χρειάζονται και για τις δύο σανίδες Pimoroni. Εάν εισαγάγετε την εντολή ls, θα πρέπει να δείτε έναν κατάλογο Pimoroni. Τώρα, ας γράψουμε λίγο κώδικα και δοκιμάστε τον πίνακα Blinkt.

Βήμα 4: Γράψτε κάποιο κώδικα και δοκιμάστε τον

Δημιουργήστε έναν κατάλογο που ονομάζεται "σενάρια" πληκτρολογώντας σενάρια mkdir και θα κρατήσουμε όλα όσα χρειαζόμαστε για να τρέξουμε εκεί. Έτσι, σενάρια cd για να μπείτε σε αυτόν τον φάκελο.

Τώρα, αυτό που θέλουμε είναι κόκκινα αμυδρά φώτα για τη νύχτα, κίτρινα χαμηλά φώτα για ήσυχο χρόνο παιχνιδιού και ελαφρώς πιο έντονα πράσινα φώτα όταν είναι εντάξει να βγουν. Για μένα, ήθελα κόκκινα φώτα από τις 7:30 το απόγευμα έως τις 6:15 το πρωί, και στις 6:15 το πρωί θα γίνονταν κίτρινα για μια ώρα και, τελικά, πράσινα στις 7:15 το πρωί. Iθελα επίσης να σβήσουν στις 8:30 το πρωί, όταν κανείς δεν ήταν πιθανό να ήταν στο δωμάτιο.

Υπάρχουν δύο τρόποι για να γίνει αυτό. Το πρώτο (ο τρόπος που επέλεξα να το κάνω) είναι με τέσσερα διαφορετικά σενάρια, που προέρχονται από cron jobs. Ο άλλος τρόπος για να το κάνετε, είναι ένα σενάριο, το οποίο περιλαμβάνει μια συνάρτηση χρόνου που εκτελείται κατά την εκκίνηση. Στην πραγματικότητα έγραψα το σενάριο για να το κάνω πρώτα έτσι, αλλά μου φάνηκε λιγότερο αποτελεσματικό από το να το κάνω με βάση το cron, οπότε το άλλαξα. Αν θέλετε τη μέθοδο "ένα σενάριο", ενημερώστε με και μπορώ να το δημοσιεύσω στα σχόλια.

Ας ξεκινήσουμε λοιπόν με το κόκκινο σενάριο. Πληκτρολογήστε touch red.py και μετά nano red.py. Στη συνέχεια, εισαγάγετε τον ακόλουθο κωδικό.

#!/usr/bin/env python

εισαγωγή blinkt blinkt.set_clear_on_exit (False) blinkt.set_brightness (0.3) blinkt.set_pixel (3, 128, 0, 0) blinkt.set_pixel (4, 128, 0, 0) #ορίζει pixels 3 και 4 σε κόκκινο blinkt.show ()

Κάντε το ίδιο για τα yellow.py και green.py.

yellow.py:

#!/usr/bin/env python

εισαγωγή blinkt blinkt.set_clear_on_exit (False) blinkt.set_brightness (0.2) blinkt.set_pixel (2, 128, 128, 0) blinkt.set_pixel (3, 128, 128, 0) blinkt.set_pixel (4, 128, 128, 0) blinkt.set_pixel (5, 128, 128, 0) #ορίζει pixel 2, 3, 4 και 5 σε κίτρινο blinkt.show ()

green.py:

#!/usr/bin/env python

εισαγωγή blinkt blinkt.set_clear_on_exit (False) blinkt.set_brightness (0.2) blinkt.set_all (0, 128, 0) #ορίζει όλα τα εικονοστοιχεία σε πράσινο blinkt.show ()

Και τέλος, θέλουμε ένα σενάριο για την εκκαθάριση του Blinkt όταν δεν χρειάζεται (lightsout.py):

#!/usr/bin/env python

εισαγωγή blinkt blinkt.set_clear_on_exit (True) blinkt.set_brightness (0.1) blinkt.set_all (0, 0, 0) #ορίζει όλα τα εικονοστοιχεία σε απενεργοποίηση blinkt.show ()

Αυτό είναι. Για να δοκιμάσετε τον τύπο python red.py και δείτε αν τα δύο μεσαία εικονοστοιχεία ανάβουν κόκκινο. Στη συνέχεια, πληκτρολογήστε python lightsout.py για να το διαγράψετε. Αυτό είναι! Στη συνέχεια, θα πρέπει να τα ορίσουμε στην καρτέλα cron, ώστε να εκτελούνται όταν θέλουμε.

Βήμα 5: Προσθήκη αυτών των σεναρίων στο Cron

Στο τερματικό SSH, πληκτρολογήστε crontab -e

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

15 6 * * * python /home/pi/scripts/yellow.py15 7 * * * python /home/pi/scripts/green.py 30 8 * * * python /home/pi/scripts/lightsout.py 30 19 * * * python /home/pi/scripts/red.py

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

Αυτά για το νυχτερινό φως! Σούπερ εύκολο. Τώρα ας προχωρήσουμε στη ρύθμιση του τμήματος White Noise αυτής της κατασκευής.

Βήμα 6: Δοκιμή του Phat του ηχείου

Ο ευκολότερος τρόπος (κατά τη γνώμη μου) για να δοκιμάσετε το Speaker Phat είναι με την εγκατάσταση του sox και την εκτέλεση κάποιων στατικών από τη γραμμή εντολών.

sudo apt-get install sox

Μόλις εγκατασταθεί, μπορούμε να δοκιμάσουμε μερικές εντολές αναπαραγωγής. Αυτό πρέπει να ακούγεται σαν κύμα.

play -n synth brownnoise synth pinknoise mix synth 0 0 0 10 10 40 trapezium amod 0.1 30

Πόσο χαλαρωτικό! Ctrl+c θα το σταματήσει. Μα, τι είναι αυτό; Υπάρχουν μια δέσμη LED σε όλη την όψη του ηχείου Phat που ανάβει και δεν μπορούμε να παρεμβαίνουμε με τα φώτα Blinkt. Ας τα απενεργοποιήσουμε λοιπόν.

Για να γίνει αυτό, θα πρέπει να τροποποιήσουμε το αρχείο /etc/asound.conf και να αφαιρέσουμε την προσθήκη VU μετρητή, οπότε δεν θα προσπαθήσει καν να οδηγήσει τα LED στην αρχή. Το έκανα απλά μετονομάζοντάς το. Πληκτρολογήστε αυτήν την εντολή mv /etc/asound.conf /etc/asound.conf.bak Το βρήκα μέσα από λίγο googling, οπότε ίσως υπάρχει καλύτερος τρόπος.

Το Sox λειτουργεί, και αυτό είναι υπέροχο, αλλά σχεδίασα να χρησιμοποιήσω μερικά βρόχουλα MP3 για το τμήμα λευκού θορύβου αυτού του μηχανήματος, οπότε χρειάστηκα μια διαφορετική συσκευή αναπαραγωγής, κατά προτίμηση κάτι πολύ ελαφρύ. Το mpg123 είναι αυτό στο οποίο συμφώνησα. Εγκαταστήστε το τώρα με το sudo apt-get install mpg123

Εντάξει, τώρα που γνωρίζουμε ότι το Speaker Phat λειτουργεί όπως αναμενόταν, ώρα για τη δημιουργία της διεπαφής και των αντίστοιχων σεναρίων.

Βήμα 7: Ρύθμιση ενός μικρού διακομιστή ιστοσελίδων και Webapp

Το Flask είναι ένα micro web πλαίσιο γραμμένο σε Python. Παρέχει όλες τις λειτουργίες που χρειαζόμαστε για τον διακομιστή ιστού (ο οποίος πρόκειται να λειτουργήσει ως εφαρμογή). Εγκαταστήστε το με την ακόλουθη εντολή:

pip3 φιάλη εγκατάστασης

Αυτό θα πάρει λίγο χρόνο, οπότε περιμένετε. Μόλις ολοκληρωθεί, θα χρειαστεί να δημιουργήσουμε τους φακέλους από τους οποίους θα πρέπει να αντλήσουμε όταν εκτελείται ο ιστότοπος και αυτοί οι φάκελοι έχουν συγκεκριμένα ονόματα. Ας ξεκινήσουμε με ένα μέρος για να φιλοξενήσουμε τον ιστότοπο. Από τον αρχικό κατάλογο, δημιουργήστε έναν νέο κατάλογο που ονομάζεται www με το mkdir www. Τώρα cd www σε αυτόν τον κατάλογο. Εδώ χρειαζόμαστε δύο ακόμη καταλόγους, έναν που ονομάζεται στατικός και ένας άλλος που ονομάζεται πρότυπα.

Χρειαζόμαστε επίσης ένα μέρος για να βάλουμε τα βρόχουλα MP3 μας. Έφτιαξα έναν κατάλογο στον αρχικό κατάλογο που ονομάζεται "ήχοι" για αυτό. Βρήκα τα MP3 μου ψάχνοντας για βρόχουλα λευκά MP3 στο Google. Πολλά δωρεάν μέρη για να τραβήξετε. Χρησιμοποίησα το WinSCP για να ανεβάσω τα αρχεία.

Mightσως θέλετε να τα δοκιμάσετε με την εντολή omxplayer παρακάτω παίζοντας με το --vol -### μέρος για να καλέσετε στο σωστό επίπεδο έντασης για το δωμάτιό σας. Και πάλι ένα Ctrl+C θα σταματήσει τη συσκευή αναπαραγωγής.

Τώρα που έχουμε όλα αυτά, ας γράψουμε λίγο πύθωνα για να σταθεί ο διακομιστής ιστού όταν ξεκινήσει το pi. Επιστρέψτε στον κατάλογο www και ξεκινήστε ένα νέο αρχείο που ονομάζεται webapp.py (nano webapp.py) και εισαγάγετε τον ακόλουθο κώδικα

webbapp.py:

#!/usr/bin/python

από φιάλη εισαγωγής Φιάλη, render_template, αίτημα, ανακατεύθυνση εισαγωγής os app = Φιάλη (_ name_) @app.route ('/') def index (): return render_template ('index.html') @app.route ('/rain'), μέθοδοι = ['POST']) def rain (): os.system ("mpg123 -f 8000 --loop -1 ~/scripts/sounds/rain.mp3") return redirect ('/') @app.route ('/waves', Methods = ['POST']) def waves (): os.system ("mpg123 -f 20500 --loop -1 ~/scripts/sounds/waves.mp3") επιστρέφει ανακατεύθυνση ('/') @app.route ('/whitenoise', Methods = ['POST']) def whitenoise (): os.system ("mpg123 --loop -1 ~/scripts/sounds/whitenoise.mp3") επιστροφή ανακατεύθυνσης (' /') @app.route ('/stop ', Methods = [' POST ']) def stop (): os.system ("killall mpg123") return redirect ('/') if _name_ ==' _main_ ': app.run (debug = True, host = '0.0.0.0')

Όπως μπορείτε να δείτε, αυτό το webapp θα έχει 5 σελίδες, μία για το ευρετήριο, 3 για 3 διαφορετικούς ήχους (κύμα, βροχή και λευκοποίηση) και 1 ακόμη για να σταματήσει. Και οι 4 σελίδες εκτός ευρετηρίου ανακατευθύνονται πίσω στο ευρετήριο ('/') αφού εκτελέσουν την εντολή που αποστέλλεται στο omxplayer, οπότε χρειάζεται μόνο να δημιουργήσουμε ένα index.html και τίποτα άλλο. Χρησιμοποιώ το killall εδώ ως λειτουργία διακοπής, επειδή δεν μπορούσα να βρω έναν καλύτερο τρόπο για να στείλω μια εντολή "stop" στο omxplayer. Αν γνωρίζετε έναν καλύτερο τρόπο για να το κάνετε αυτό, θα ήθελα πολύ να το ακούσω!

Τώρα ας βάλουμε μαζί το index.html.

Βήμα 8: Δημιουργία της ιστοσελίδας

Δημιουργία της Ιστοσελίδας
Δημιουργία της Ιστοσελίδας
Δημιουργία της Ιστοσελίδας
Δημιουργία της Ιστοσελίδας
Δημιουργία της Ιστοσελίδας
Δημιουργία της Ιστοσελίδας
Δημιουργία της Ιστοσελίδας
Δημιουργία της Ιστοσελίδας

Αυτές είναι οι εικόνες που χρησιμοποίησα για την κατασκευή μου, αλλά μη διστάσετε να φτιάξετε τη δική σας. Όλα πρέπει να αποθηκευτούν στο στατικό φάκελο που φτιάξαμε νωρίτερα. Το αρχείο index.html που θα φτιάξουμε εδώ πρέπει να βρίσκεται στο φάκελο προτύπων. Αυτό είναι πολύ σημαντικό, διαφορετικά, τίποτα από αυτά δεν θα λειτουργήσει. Εδώ είναι ο κώδικας για το index.html μου (και πάλι, αυτό είναι απλό html, οπότε τροποποιήστε το με όποιον τρόπο λειτουργεί για εσάς).

Δεδομένου ότι το Instructables δεν θα με αφήσει να δημοσιεύσω ακατέργαστο HTML, εδώ είναι ένας σύνδεσμος για το αρχείο όπως υπάρχει στο Dropbox μου:

www.dropbox.com/s/n5xf2btftk5sz9b/index.ht…

Αλλά σε περίπτωση που ποτέ πεθάνει, το αρχείο HTML είναι απλώς ένα φανταχτερό CSS και ένας απλός πίνακας 2x2 με αυτά τα 4 εικονίδια ως κουμπιά με τιμές δημοσίευσης όπως:

form action = "/whitenoise" method = "post"

input src = "/static/whitenoise.png" value = "Λευκός θόρυβος"

Θα πρέπει να είναι πολύ εύκολο να φτιάξεις τον εαυτό σου.

Το τελευταίο βήμα είναι να βεβαιωθείτε ότι το webapp.py λειτουργεί κατά την εκκίνηση, και πάλι, το έκανα προσθέτοντας το στο crontab. Έτσι, για άλλη μια φορά πληκτρολογήστε crontab -e και προσθέστε τα ακόλουθα στο τέλος:

@reboot python3 /home/pi/www/webapp.py

Στη συνέχεια, επανεκκινήστε το pi, δείξτε ένα πρόγραμμα περιήγησης σε άλλο μηχάνημα (το τηλέφωνό σας) στην IP του pi (το καλύτερο αν μπορείτε να το κάνετε αυτό στατικό) και δείτε αν λειτούργησε. Κάντε κλικ στα κουμπιά και δείτε αν έχετε θόρυβο.

Σε τηλέφωνο Android μπορείτε να προσθέσετε σελιδοδείκτη σε έναν ιστότοπο στην αρχική οθόνη σας, κάτι που έκανα με αυτό για να φαίνεται και να μοιάζει με εφαρμογή. Αν θέλετε πραγματικά να φαίνεται "επαγγελματίας", βρείτε ή δημιουργήστε ένα κατάλληλο αρχείο.ico και δώστε στον ιστότοπο το δικό του εικονίδιο που θα εμφανίζεται στην αρχική οθόνη του τηλεφώνου σας και θα μοιάζει πολύ περισσότερο με μια εφαρμογή. Πολλά σεμινάρια στο διαδίκτυο σχετικά με τον τρόπο προσθήκης ενός εικονιδίου (favicon) σε έναν ιστότοπο.

Βήμα 9: Συνδέστε τα πάντα σε μια θήκη

Jam Jam in a Case
Jam Jam in a Case
Jam Jam in a Case
Jam Jam in a Case
Jam Jam in a Case
Jam Jam in a Case

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

Δημιούργησα μια βάση στήριξης για το Raspberry Pi Zero χρησιμοποιώντας λίγο πλαστικό που είχα στο σπίτι. Στη συνέχεια, άνοιξα μερικές τρύπες για τη βάση στήριξης micro USB και χρησιμοποιώντας μερικά αρχεία κοσμημάτων σε τετράγωνο από την τρύπα. Το καλώδιο στήριξης του πίνακα είναι λίγο σκληρό, οπότε μπορεί να αγοράσω προσαρμογέα ορθής γωνίας για τη θύρα micro USB στο Pi κάποια στιγμή στο μέλλον.

Έκοψα ένα μικρό άνοιγμα στο πάνω μέρος της θήκης για να ανοίξει το ηχείο ανοίγοντας δύο τρύπες και συνδέοντάς τες με ένα Dremel. Στη συνέχεια, ανοίξτε τις τρύπες στο καπάκι για να τοποθετήσετε το ηχείο Phat. Για αυτό που αξίζει, μετά τη λήψη αυτής της φωτογραφίας επέστρεψα και έκανα μερικές ακόμη τρύπες, επειδή ο θόρυβος πραγματικά παγιδεύτηκε μέσα στη θήκη. Τοποθέτησα το Blinkt χρησιμοποιώντας αυτό το στόκο αφίσας επειδή το αντικείμενο δεν έχει οπές στήριξης, αλλά το στόκος φαίνεται να κρατάει καλά, οπότε θα γίνει.

Βήμα 10: Αυτό είναι

Αυτό είναι!
Αυτό είναι!

Συνδέστε το και τελειώσατε. Εδώ το δικό μου τρέχει λίγο μετά τις 8 το βράδυ. Η πράσινη λυχνία LED στο ίδιο το pi δεν είναι τόσο φωτεινή όσο φαίνεται αυτή η φωτογραφία.

Μερικές μεταγενέστερες τροποποιήσεις που έκανα:

Πρόσθεσα 4 ακόμη σελίδες στα αρχεία webapp.py και index.html. Αυτά τα 4 είναι "κόκκινα", "κίτρινα", "πράσινα" και "σβηστά". Αρκετά αυτονόητο. Iθελα τη δυνατότητα να το αλλάξω από πράσινο σε κίτρινο αν η γυναίκα και εγώ νιώθαμε πολύ κουρασμένοι και δεν θέλαμε να ενοχληθούμε.

@app.route ('/red', Methods = ['POST']) def red (): os.system ("python ~/scripts/red.py") return redirect ('/')

Βασικά αυτό 4 φορές, εκτελώντας τα 4 διαφορετικά σενάρια, στη συνέχεια μερικά ακόμη κουμπιά στο ευρετήριο που καλούν αυτές τις σελίδες.

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

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

Βήμα 11: Προσθήκη

Αφού το έχτισα αυτό συνειδητοποίησα ότι και η γυναίκα μου και εγώ συχνά αφήνουμε τα τηλέφωνά μας κάτω όταν βάζουμε το παιδί για ύπνο ή για έναν υπνάκο. Έτσι, πρόσθεσα ένα στιγμιαίο κουμπί ώθησης στη φυσική καρφίτσα 36 και συμπεριέλαβα τον ακόλουθο κώδικα (το ονόμασα button.py) για εκτέλεση κατά την εκκίνηση στο rc.local:

#!/usr/bin/env python

import RPi. GPIO as GPIO time import import os import subprocess import re GPIO.setmode (GPIO. BOARD) # Use Physical Pin Number Scheme button = 36 # Το κουμπί είναι συνδεδεμένο στο φυσικό pin 16 GPIO.setup (κουμπί, GPIO. IN, pull_up_down = GPIO. PUD_UP) # Κάντε το κουμπί είσοδο, Ενεργοποιήστε το Pull UP Resistor while True: εάν GPIO.input (κουμπί) == 0: # Περιμένετε το κουμπί πατήστε returnprocess = False # Αρχικά ορίστηκε σε ήχο εκτός λειτουργίας s = subprocess. Popen (["ps", "ax"], stdout = subprocess. PIPE) για x στο s.stdout: if re.search ("mpg123", x): returnprocess = True if returnprocess == Λάθος: os.system ("mpg123 --loop -1 /home/pi/scripts/sounds/whitenoise.mp3 & ") os.system (" python /home/pi/scripts/red.py ") αλλιώς: os.system (" killall mpg123 ") os.system ("python /home/pi/scripts/lightsout.py")

Όπως μπορείτε να δείτε, άλλαξα επίσης σε mpg123 από το omxplayer επειδή είναι πολύ πιο ελαφρύ και απλό στη χρήση.

Πάντως, για κάποιο λόγο όταν έβαλα αυτό το σενάριο στο rc.local, όντως τρέχει κατά την εκκίνηση χωρίς κανένα πρόβλημα. Αλλά ο ήχος είναι πραγματικά ασταθής. Όταν τρέχω το σενάριο κανονικά, με στόκο, δεν υπάρχουν τέτοια θέματα. Αντιμετωπίζω ένα πρόβλημα για αυτό, οπότε αν κάποιος έχει ιδέες, παρακαλώ ενημερώστε με! Ευχαριστώ.

Συνιστάται: