Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Εγκατάσταση του Arduino IDE για ανάπτυξη Esp8266
- Βήμα 2: Λήψη εξωτερικών βιβλιοθηκών
- Βήμα 3: Γράψτε λίγο κώδικα τώρα
- Βήμα 4: Διάγραμμα κυκλώματος
- Βήμα 5: Μεταφόρτωση κωδικού στο Esp8266
- Βήμα 6: Δοκιμάστε τα πάντα
Βίντεο: MAX7219 LED Matrix MQTT χρησιμοποιώντας Esp8266: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Προσπαθούσα να συνδέσω την οθόνη LED MAX7219 σε διακομιστή MQTT και να λάβω ένα κείμενο από τη συνδρομή MQTT προς εμφάνιση.
αλλά δεν έλαβα κατάλληλο κωδικό στο διαδίκτυο, οπότε άρχισα να φτιάχνω τον δικό μου…
και το αποτέλεσμα έρχεται πολύ καλά…
- μπορείτε να εμφανίσετε οποιοδήποτε κείμενο στην οθόνη led
- μπορείτε να ρυθμίσετε την ένταση της οθόνης
- μπορείτε να ρυθμίσετε την ταχύτητα κύλισης
Προμήθειες
- Ένας πίνακας ανάπτυξης esp8266. (η περίπτωσή μου είναι NODE MCU v1.0)
- Οθόνη μήτρας MAX7219 LED.
Απαιτείται λογισμικό:
- Arduino IDE.
- Ένας διακομιστής MQTT. (η περίπτωση μου Mosquitto)
Απαιτείται βιβλιοθήκη:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Βήμα 1: Εγκατάσταση του Arduino IDE για ανάπτυξη Esp8266
ανοίξτε τις προτιμήσεις του Arduino και στη συνέχεια επικολλήστε την παρακάτω διεύθυνση URL στις διευθύνσεις διευθύνσεων πρόσθετων πινάκων:
arduino.esp8266.com/stable/package_esp8266com_index.json
στη συνέχεια Εργαλεία> Πίνακες> Διαχειριστής πινάκων και αναζητήστε το esp8266 και εγκαταστήστε το.
τώρα το Arduino ide είναι έτοιμο για ανάπτυξη esp8266.
Βήμα 2: Λήψη εξωτερικών βιβλιοθηκών
τώρα χρειαζόμαστε μερικές βιβλιοθήκες για MAX7219 και MQTT Client.
ας κατεβάσουμε και να δημιουργήσουμε τις βιβλιοθήκες
μεταβείτε στο Sketch> Include Library> Manage Libraries on Arduino IDE
και αναζητήστε το EspMQTTClient και κάντε κλικ στην Εγκατάσταση
Σημείωση: Εγκαταστήστε όλες τις εξαρτημένες βιβλιοθήκες, είναι σημαντικό
Αναζητήστε ξανά MD_MAX72xx και κάντε κλικ στην επιλογή Εγκατάσταση
Βήμα 3: Γράψτε λίγο κώδικα τώρα
Τώρα επικολλήστε τον παρακάτω κώδικα
#περιλαμβάνω
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // ο αριθμός των συσκευών σας #define CLK_PIN D5 // ή SCK #define DATA_PIN D7 // ή MOSI #define CS_PIN D4 // ή SS // μπορείτε να το ορίσετε σε οποιαδήποτε καρφίτσα #ορίστε HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // αλλάξτε ανάλογα με τον τύπο οθόνης σας MD_MAX72XX mx = MD_MAX72XX (HARDWARE_TYPE, CS_PIN, MAX_DEVICES); const uint8_t MESG_SIZE = 255; const uint8_t CHAR_SPACING = 1; uint8_t SCROLL_DELAY = 75; // προεπιλεγμένη καθυστέρηση κύλισης uint8_t ΕΝΤΑΣΗ = 5; // προεπιλεγμένη ένταση char curMessage [MESG_SIZE]; char newMessage [MESG_SIZE]; bool newMessageAvailable = false; void scrollDataSink (uint8_t dev, MD_MAX72XX:: transformType_t t, uint8_t col) {} uint8_t scrollDataSource (uint8_t dev, MD_MAX72XX:: transformType_t t) {static enum {S_IDLE, S_NEXT_CHOW, S_NEXT_CHAR, στατικό char *p; στατικό uint16_t curLen, showLen; στατικό uint8_t cBuf [8]; uint8_t colData = 0; switch (κατάσταση) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } κατάσταση = S_NEXT_CHAR; Διακοπή; περίπτωση S_NEXT_CHAR: εάν (*p == '\ 0') κατάσταση = S_IDLE; else {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; κατάσταση = S_SHOW_CHAR; } Διακοπή; θήκη S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // κύλιση κατά μήκος - η επανάκληση θα φορτώσει όλα τα δεδομένα prevTime = millis (); // σημείο εκκίνησης για την επόμενη φορά}} void setup () {Serial.begin (115200); mx.begin (); mx.control (MD_MAX72XX:: ΕΝΤΑΣΗ, ΕΝΤΑΣΗ); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "Έξυπνη οθόνη"); } void onConnectionEstablished () {// Θέμα συνδρομής MQTT για πελάτη κειμένου εμφάνισης.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// Θέμα συνδρομής MQTT για έλεγχο έντασης οθόνης
client.subscribe ("leddisplay/intensity", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // Θέμα συνδρομής MQTT για οθόνη ελέγχου κύλισης ταχύτητας κύλισης client.subscribe ("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Για λεπτομερείς πληροφορίες, ανατρέξτε σε αυτό το αποθετήριο
github.com/souravj96/max7219-mqtt-esp8266
Βήμα 4: Διάγραμμα κυκλώματος
συνδέστε την οθόνη MAX7219 με το NODE MCU
Βήμα 5: Μεταφόρτωση κωδικού στο Esp8266
τώρα επιλέξτε τον σωστό τύπο πίνακα και σειριακή θύρα και πατήστε upload.
Βήμα 6: Δοκιμάστε τα πάντα
αν όλα πάνε σωστά τότε το esp8266 θα είναι συνδεδεμένο στον διακομιστή MQTT.
τώρα, αν κάτι θα δημοσιευτεί στο θέμα leddisplay/text που θα εμφανιστεί.
{
θέμα: "leddisplay/text", ωφέλιμο φορτίο: "το μήνυμά σας εδώ"}
εάν θέλετε να ρυθμίσετε την ένταση της οθόνης
{
θέμα: "προβολή/ένταση", ωφέλιμο φορτίο: "2" // max είναι 15 και min 0}
εάν θέλετε να ρυθμίσετε την ταχύτητα κύλισης της οθόνης
{
θέμα: "leddisplay/scroll", ωφέλιμο φορτίο: "100" // max είναι 255 και min 0}
Καλή κωδικοποίηση
Συνιστάται:
DIY -- Πώς να φτιάξετε ένα ρομπότ αράχνη το οποίο μπορεί να ελεγχθεί χρησιμοποιώντας το smartphone χρησιμοποιώντας το Arduino Uno: 6 βήματα
DIY || Πώς να φτιάξετε ένα ρομπότ αράχνη το οποίο μπορεί να ελεγχθεί χρησιμοποιώντας το smartphone χρησιμοποιώντας το Arduino Uno: Ενώ φτιάχνετε ένα ρομπότ αράχνη, μπορείτε να μάθετε τόσα πολλά πράγματα για τη ρομποτική. Όπως και η κατασκευή ρομπότ είναι τόσο διασκεδαστική όσο και προκλητική. Σε αυτό το βίντεο θα σας δείξουμε πώς να φτιάξετε ένα ρομπότ Spider, το οποίο μπορούμε να λειτουργήσουμε χρησιμοποιώντας το smartphone μας (Androi
Οικιακός αυτοματισμός χρησιμοποιώντας MQTT και ESP8266: 6 βήματα
Αυτοματισμός σπιτιού χρησιμοποιώντας MQTT και ESP8266: Σήμερα, ο αυτοματισμός του σπιτιού είναι η τάση και η αναδυόμενη εποχή του IoT (Internet of Things). Όλοι προσπαθούν να αυτοματοποιήσουν το σπίτι με κάποιον τρόπο που μπορεί να είναι τηλεχειριζόμενο ή χειροκίνητο. Και αυτό τους κάνει τη ζωή ευκολότερη. Υπάρχουν τεχνικές για τον έλεγχο των ανθρώπων
Control Led σε όλο τον κόσμο χρησιμοποιώντας το Διαδίκτυο χρησιμοποιώντας το Arduino: 4 βήματα
Control Led σε όλο τον κόσμο χρησιμοποιώντας το Διαδίκτυο χρησιμοποιώντας το Arduino: Γεια, είμαι ο Rithik. Θα κάνουμε ένα ελεγχόμενο από το Διαδίκτυο led χρησιμοποιώντας το τηλέφωνό σας. Θα χρησιμοποιήσουμε λογισμικό όπως το Arduino IDE και το Blynk. Είναι απλό και αν το πετύχατε μπορείτε να ελέγξετε όσα ηλεκτρονικά εξαρτήματα θέλετε
Raspberry Pi Μιλώντας στο ESP8266 χρησιμοποιώντας το MQTT: 8 βήματα
Raspberry Pi Talking to ESP8266 Using MQTT: Σε αυτό το έργο, θα εξηγήσω τι είναι το πρωτόκολλο MQTT και πώς χρησιμοποιείται για την επικοινωνία μεταξύ συσκευών. Στη συνέχεια, ως πρακτική επίδειξη, θα δείξω πώς να ρυθμίσετε ένα σύστημα πελάτη και μεσίτη, όπου μια μονάδα ESP8266 καθώς και RPi tal
Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (Θερμοκρασία): 6 Βήματα
Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (Temperature): Σε αυτή την ευκαιρία θα πραγματοποιήσουμε μια γρήγορη δοκιμή σε μια μήτρα led με το ενσωματωμένο MAX7219 με τη μονάδα ESP8266 και έτσι ώστε να μην είναι πολύ απλό θα διαβάσουμε τη θερμοκρασία ενός αισθητήρα DS18B20. Σε μελλοντικά σεμινάρια θα το ενσωματώσουμε σε άλλες πλατφόρμες