תוכן עניינים:

MAX7219 LED Matrix MQTT באמצעות Esp8266: 6 שלבים
MAX7219 LED Matrix MQTT באמצעות Esp8266: 6 שלבים

וִידֵאוֹ: MAX7219 LED Matrix MQTT באמצעות Esp8266: 6 שלבים

וִידֵאוֹ: MAX7219 LED Matrix MQTT באמצעות Esp8266: 6 שלבים
וִידֵאוֹ: Openhab + Wemos + MQTT + MAX7219 LED Dot Matrix 2024, נוֹבֶמבֶּר
Anonim
MAX7219 מטריקס LED MQTT באמצעות Esp8266
MAX7219 מטריקס LED MQTT באמצעות Esp8266

ניסיתי לחבר את צג ה- LED MAX7219 שלי לשרת MQTT ולקבל טקסט מהמנוי ל- MQTT לתצוגה.

אבל לא קיבלתי קוד מתאים באינטרנט, אז התחלתי לבנות משלי …

והתוצאה מגיעה די טוב…

  • אתה יכול להציג כל טקסט בתצוגת LED
  • אתה יכול להתאים את עוצמת התצוגה
  • אתה יכול להגדיר את מהירות הגלילה

אספקה

  1. לוח פיתוח esp8266. (במקרה שלי זה NODE MCU v1.0)
  2. תצוגת מטריקס LED MAX7219.

נדרשת תוכנה:

  1. Arduino IDE.
  2. שרת MQTT. (המקרה שלי מוסקיטו)

חובה לספרייה:

  1. ESP8266WiFi.h
  2. MD_MAX72xx.h
  3. EspMQTTClient.h

שלב 1: הגדר את Arduino IDE לפיתוח Esp8266

הגדר Arduino IDE לפיתוח Esp8266
הגדר Arduino IDE לפיתוח Esp8266

פתח את ההעדפות של Arduino ולאחר מכן הדבק את כתובת האתר שלהלן בכתובות אתרים של מנהל לוחות נוספים:

arduino.esp8266.com/stable/package_esp8266com_index.json

לאחר מכן כלים> לוחות> מנהל לוחות וחפש esp8266 והתקן אותו.

עכשיו ה- Arduino ide שלך מוכן לפיתוח esp8266.

שלב 2: הורד ספריות חיצוניות

עכשיו אנחנו צריכים כמה ספריות עבור MAX7219 ו- MQTT Client.

בואו להוריד ולהקים את הספריות

נווט אל סקיצה> כלול ספרייה> נהל ספריות ב- Arduino IDE

וחפש EspMQTTClient ולחץ על התקן

הערה: התקן את כל הספריות התלויות, זה חשוב

חפש שוב את MD_MAX72xx ולחץ על התקן

שלב 3: כתוב קוד כלשהו כעת

עכשיו הדבק את הקוד למטה

#לִכלוֹל

#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // מספר המכשיר שלך #הגדר CLK_PIN D5 // או SCK #define DATA_PIN D7 // או MOSI #define CS_PIN D4 // או SS // תוכל להגדיר אותו לכל סיכה #define 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 INTENSITY = 5; // ברירת המחדל של char curessess [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 statum {S_IDLE, S_NEXT_CHAR, S_SHOW_ char *p סטטי; סטטי uint16_t curLen, showLen; סטטי uint8_t cBuf [8]; uint8_t colData = 0; switch (state) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } state = S_NEXT_CHAR; לשבור; מקרה S_NEXT_CHAR: אם (*p == '\ 0') מצב = S_IDLE; אחרת {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; state = S_SHOW_CHAR; } לשבור; מקרה S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // גלול לאורך - החיוג החוזר יטען את כל הנתונים prevTime = millis (); // נקודת התחלה לפעם הבאה}} הגדרת חלל () {Serial.begin (115200); mx.begin (); mx.control (MD_MAX72XX:: INTENSITY, INTENSITY); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "תצוגה חכמה"); } void onConnectionEstablished () {// נושא המנוי ל- MQTT עבור client.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});

// נושא מנוי MQTT לבקרת עוצמת התצוגה

client.subscribe ("leddisplay/עוצמה", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // נושא מנוי MQTT עבור בקרת מהירות גלילת תצוגה client.subscribe ("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } לולאת חלל () {client.loop (); scrollText (); }

למידע מפורט, עיין במאגר זה

github.com/souravj96/max7219-mqtt-esp8266

שלב 4: תרשים מעגלים

תרשים מעגלים
תרשים מעגלים

חבר תצוגת MAX7219 עם NODE MCU

שלב 5: העלה קוד ל- Esp8266

העלה קוד ל- Esp8266
העלה קוד ל- Esp8266

עכשיו בחר את סוג הלוח הנכון והיציאה הטורית שלך ואז לחץ על העלה.

שלב 6: בדוק הכל

אם הכל תקין אז ה- esp8266 שלך יתחבר לשרת MQTT שלך.

עכשיו, אם יפורסם משהו בנושא LEDdisplay/טקסט שיוצג.

{

topic: "leddisplay/text", מטען: "ההודעה שלך כאן"}

אם ברצונך להגדיר את עוצמת התצוגה

{

נושא: "תצוגת LED/עוצמה", מטען: "2" // מקסימום הוא 15 ודקה 0}

אם ברצונך להגדיר את מהירות הגלילה של התצוגה

{

נושא: "leddisplay/scroll", מטען: "100" // מקסימום הוא 255 ודקה 0}

קידוד שמח

מוּמלָץ: