Πίνακας περιεχομένων:
Βίντεο: Πίνακας μηνυμάτων IoT RPi LED: 3 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Σε αυτό το Instructable, έχω φτιάξει έναν πίνακα μηνυμάτων LED συνδεδεμένου wifi χρησιμοποιώντας ένα Raspberry Pi (RPi). Οι χρήστες θα συνδεθούν με τον διακομιστή ιστού του Raspberry Pi χρησιμοποιώντας τα προγράμματα περιήγησής τους για να υποβάλουν σύντομα μηνύματα που θα εμφανίζονται στην οθόνη LED 8x8. Δεδομένου ότι η διασύνδεση μήτρας LED 8x8 με το πρόγραμμα οδήγησης MAX7219 στην Python είναι καλά τεκμηριωμένη από άλλους στο Διαδίκτυο, αυτό το έργο εστιάζει στη δημιουργία μιας διεπαφής διακομιστή ιστού και στη χρήση μηνυμάτων ZeroMQ για τη διαχείριση των εισερχόμενων μηνυμάτων.
Ενημέρωση: Εδώ είναι ένα έργο παρακολούθησης IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board
(Είμαι διευκολυντής συλλόγου για Girls Who Code Club και κατέληξα σε αυτό το απλό έργο για να διδάξω στους μαθητές το σχεδιασμό και την αποστολή μηνυμάτων web.)
Βήμα 1: Ρύθμιση υλικού
Αυτό το έργο απαιτεί το ακόλουθο υλικό:
- Raspberry Pi
- Πηγή τροφοδοσίας USB όπως το Anker με κοντό καλώδιο USB σε MicroUSB
- MAX7219 δομοστοιχείο μήτρας με κορδέλα (Aliexpress για λιγότερο από $ 2)
- Περίβλημα (έφτιαξα ένα από κουτί από χαρτόνι και σπρέι βαμμένο σε μαύρο χρώμα)
Η ρύθμιση υλικού είναι το εύκολο μέρος. Απλώς συνδέστε ένα καλώδιο κορδέλας 5 καλωδίων από τη μήτρα LED στο έγγραφο βιβλιοθήκης RPi ανά MAX7219.
LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO Pin #6 (GND) DIN-> GPIO Pin #19CS-> GPIO Pin #24CLK-> GPIO Pin # 23
Χρησιμοποίησα μια ταινία αφρού διπλής όψης για να τοποθετήσω τη μονάδα LED στη θήκη RPi. Στη συνέχεια, έφτιαξα ένα περίβλημα από κουτί από χαρτόνι για να χωρέσω και RPi και μπαταρία.
Βήμα 2: Ρύθμιση λογισμικού
Το RPi πρέπει να έχει το ακόλουθο λογισμικό:
- Python 3
- Apache 2 websever
- Max7219 πρόγραμμα οδήγησης για Python
- Μηνύματα ZeroMQ
Python 3
Το RPi θα πρέπει να έχει ήδη προεγκατεστημένο το Python 3. Ενώ ο κωδικός μου είναι γραμμένος για Python 3, το Python 2 θα πρέπει να λειτουργεί με λίγες μικρές αλλαγές.
Apache 2
Εγκαταστήστε το Apache και ενεργοποιήστε την Python CGI scripting. Παρακάτω υπάρχουν δύο υπέροχοι πόροι για τη ρύθμιση του Apache σε RPi, οπότε δεν θα επαναλάβω εδώ. Ακολουθήστε τα παρακάτω μαθήματα για να ρυθμίσετε το Apache και το CGI. Βεβαιωθείτε ότι τα σενάρια *.py είναι εκτελέσιμα από ένα πρόγραμμα περιήγησης.
- https://raspberrywebserver.com/cgiscripting/
- https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/
Πρόγραμμα οδήγησης Max7291
Εγκαταστήστε το πρόγραμμα οδήγησης Max7219 ακολουθώντας τον πιο πρόσφατο οδηγό εγκατάστασης:
https://max7219.readthedocs.io/en/latest/install.html
Μετά την εγκατάσταση, εκτελέστε τον παράδειγμα κώδικα, matrix_test.py, ανά εγκατάσταση οδηγό για να εμφανίσετε το "Hello World" στο LED Matrix. Αυτό πρέπει να λειτουργήσει πριν πάτε στο επόμενο βήμα.
Μηνύματα ZeroMQ
Γιατί χρειαζόμαστε μηνύματα; Δοκιμάστε να εκτελέσετε το παραπάνω παράδειγμα κώδικα, matrix_test.py, σε δύο οθόνες τερματικού ταυτόχρονα. Το σύστημα θα επιτρέψει την ταυτόχρονη εκτέλεση πολλών κωδικών, αλλά θα δείτε μηνύματα που αλληλεπικαλύπτονται, κάτι που δεν είναι επιθυμητό. Σε περιβάλλον μεμονωμένου χρήστη, αυτό μπορεί να μην είναι πρόβλημα, καθώς μπορείτε να βεβαιωθείτε ότι μόνο ένα πρόγραμμα θα μπορούσε να εκτελεστεί τη φορά. Σε περιβάλλον πολλών χρηστών, όπως ο ιστός, το σύστημα πρέπει να δημιουργήσει μια ουρά FIFO (Πρώτη-Σε-Πρώτα-Έξω) για να βεβαιωθεί ότι μόνο ένα άτομο θα μπορούσε να εκτελέσει τον κώδικα ενώ άλλα περιμένουν. Παρόλο που μπορεί να υπάρχουν άλλες λύσεις για να το πετύχουμε, αποφάσισα να χρησιμοποιήσω το ZeroMQ για τη διαχείριση της ουράς FIFO. Ο κωδικός διακομιστή ZeroMQ περιέχει την πραγματική κλήση λειτουργίας για να εμφανίζει ένα μήνυμα στη μήτρα LED ένα κάθε φορά, ενώ ο διακομιστής ιστού λειτουργεί ως πελάτης ZeroMQ για να ερωτά και να υποβάλλει μηνύματα στον διακομιστή ZeroMQ. Με αυτόν τον τρόπο, ενώ πολλοί χρήστες μπορούσαν να υποβάλλουν μηνύματα ταυτόχρονα μέσω μιας ιστοσελίδας, ο διακομιστής ZeroMQ θα εμφανίζει μόνο ένα μήνυμα τη φορά.
Για αυτό το έργο, θα εγκαταστήσουμε απλώς το pyzmq πακέτο Python και όχι ολόκληρο το πακέτο ZeroMQ.
τρέξιμο:
sudo pip3 εγκατάσταση pyzmq
Διαβάστε τον οδηγό ZeroMQ στη διεύθυνση https://zguide.zeromq.org και δοκιμάστε το παράδειγμα του hello world server και του πελάτη στην Python. Αντιγράψτε τον παράδειγμα κώδικα Python τόσο για διακομιστή όσο και για πελάτη στο RPi και βεβαιωθείτε ότι λειτουργούν πριν πάτε στο επόμενο βήμα.
Βήμα 3: Ρύθμιση ιστοσελίδας
Στην ιστοσελίδα, χρησιμοποίησα το πλαίσιο εκκίνησης css/js για να κάνω τη σελίδα να φαίνεται όμορφη. Αυτό είναι εντελώς προαιρετικό.
Κατεβάστε το συνημμένο αρχείο led_msg.tar.gz στη ρίζα ή τον υπο-κατάλογο Apache. Για να ξεφορτώσετε το αρχείο tar gzip'd, εκτελέστε:
tar -xzvf led_msg.tar.gz
Αυτό δημιουργεί τα ακόλουθα αρχεία:
msg.py (κύριο πρόγραμμα)
templates/interstitial.html (html template) templates/send_msg.html (html template) static/img/led_150x150-j.webp
Προαιρετικά, εγκαταστήστε το πλαίσιο εκκίνησης css/js κάτω από τον στατικό κατάλογο.
Εισαγάγετε τη διεύθυνση URL για msg.py το πρόγραμμα περιήγησής σας και βεβαιωθείτε ότι εμφανίζεται η ιστοσελίδα. Μην στείλετε ακόμα μήνυμα !!!
Πριν από την υποβολή μηνυμάτων, ο διακομιστής ZeroMQ πρέπει να ξεκινήσει να δέχεται μηνύματα από τον πελάτη ιστοσελίδας και να τα εμφανίζει στη μήτρα LED. Τίποτα δεν θα εμφανιστεί στην οθόνη εάν ο διακομιστής ZeroMQ δεν εκτελείται.
Κατεβάστε τον συνημμένο κώδικα max7219_server.py στον αρχικό σας κατάλογο, όχι σε Apache root dir όπου θα μπορούσε να εκτελεστεί από χρήστες του διαδικτύου. Εκτελέστε το ως root:
sudo python max7219_server.py
Τώρα ο διακομιστής ZeroMQ είναι έτοιμος να λάβει μηνύματα από την ιστοσελίδα. Εισαγάγετε και υποβάλετε ένα απλό μήνυμα από την ιστοσελίδα. Εάν όλα έχουν ρυθμιστεί σωστά, θα δείτε αυτό το μήνυμα στην οθόνη του διακομιστή ZeroMQ καθώς και στη μήτρα LED.
Εάν θέλετε να τερματίσετε τη λειτουργία του διακομιστή, απλώς κάντε το Control-C για έξοδο από την οθόνη του διακομιστή.
Αυτό είναι. Ελπίζω να απολαύσετε αυτό το έργο όσο και εγώ.
Μια βελτίωση που θα μπορούσατε να κάνετε είναι να κάνετε την επικοινωνία ZeroMQ μεταξύ του διακομιστή και των πελατών ασύγχρονη, έτσι ώστε η ιστοσελίδα να μην περιμένει ενώ εμφανίζονται άλλα μηνύματα. Επίσης, μπορείτε να επισυνάψετε επιπλέον μήτρα LED σε λειτουργία cascade. Το αφήνω σε εσάς.
Συνιστάται:
Πίνακας μηνυμάτων λωρίδας LED: 3 βήματα
Πίνακας μηνυμάτων LED Strip: Αυτό το οδηγό θα σας καθοδηγήσει στη διαδικασία δημιουργίας μιας πλακέτας μηνυμάτων από ξεχωριστά διευθυνσιοδοτούμενες ταινίες NeoPixel LED. Αυτό το έργο είναι μια προσαρμοσμένη έκδοση μιας πινακίδας που παράγεται από τον Josh Levine, την οποία μπορείτε να βρείτε στη διεύθυνση https://github.com/bigjo
Πώς να δημιουργήσετε ένα πλαίσιο μηνυμάτων στα Windows: 4 βήματα
Πώς να φτιάξετε ένα πλαίσιο μηνυμάτων στα Windows: Έμαθα πώς να το κάνετε αυτό πριν από μερικά χρόνια και σκέφτηκα ότι μπορεί να σας το δείξω. Χρειάζεται μόνο 5 λεπτά και είναι πραγματικά διασκεδαστικό να το κάνετε
Πώς να δημιουργήσετε έναν ιστότοπο πίνακα μηνυμάτων χρησιμοποιώντας PHP και MYSQL: 5 βήματα
Πώς να δημιουργήσετε έναν ιστότοπο πίνακα μηνυμάτων χρησιμοποιώντας PHP και MYSQL: Αυτό το διδακτικό θα σας δείξει πώς να δημιουργήσετε έναν ιστότοπο πίνακα μηνυμάτων χρησιμοποιώντας php, mysql, html και css. Εάν είστε νέοι στην ανάπτυξη ιστοσελίδων, μην ανησυχείτε, θα υπάρχουν λεπτομερείς εξηγήσεις και αναλογίες, ώστε να κατανοήσετε καλύτερα τις έννοιες. Χαλάκι
Υπολογιστής μηνυμάτων κειμένου: 6 βήματα
Υπολογιστής ανταλλαγής μηνυμάτων κειμένου: Τώρα προϊόν! http://www.rubydevices.com.au/productSelect/RubyCalculatorΗ ολοκλήρωση ενός μεταπτυχιακού τίτλου στην Ηλεκτρολόγος Μηχανικός χρειάστηκε λίγο σκληρή δουλειά. Wasταν ένας μακρύς πενταετής δρόμος που μου άρεσε πολύ. Στο τέλος του 2015 αποφοίτησα από το πανεπιστήμιο
Σύστημα μηνυμάτων LED σε πτυσσόμενο τροχό ποδηλάτου Strida: 7 βήματα
Σύστημα μηνυμάτων LED σε πτυσσόμενο τροχό Strida: Αφού αγόρασα το πτυσσόμενο ποδήλατο strida, ένα από τα πρώτα πράγματα που έκανα ήταν να ελέγξω το instructables.com για τυχόν έργα που σχετίζονται με το strida. Και έμεινα έκπληκτος όταν είδα ότι δεν υπήρχε. Έχω σχεδιάσει λοιπόν να κάνω ένα διδακτικό που μπορεί να