ዝርዝር ሁኔታ:

MAX7219 LED ማትሪክስ MQTT Esp8266 ን በመጠቀም 6 ደረጃዎች
MAX7219 LED ማትሪክስ MQTT Esp8266 ን በመጠቀም 6 ደረጃዎች

ቪዲዮ: MAX7219 LED ማትሪክስ MQTT Esp8266 ን በመጠቀም 6 ደረጃዎች

ቪዲዮ: MAX7219 LED ማትሪክስ MQTT Esp8266 ን በመጠቀም 6 ደረጃዎች
ቪዲዮ: The Eyes test - Led Matrix 32x8 MAX7219 with Arduino 2024, ህዳር
Anonim
MAX7219 ኤል ኤስ ኤል ማትሪክስ MQTT Esp8266 ን በመጠቀም
MAX7219 ኤል ኤስ ኤል ማትሪክስ MQTT Esp8266 ን በመጠቀም

እኔ የ MAX7219 LED ማሳያውን ከ MQTT አገልጋይ ጋር ለማገናኘት እና ለማሳየት ከ MQTT ደንበኝነት ምዝገባ ጽሑፍ ለመቀበል እሞክር ነበር።

ግን በበይነመረቡ ላይ ምንም ተስማሚ ኮድ አላገኘሁም ፣ ስለዚህ የራሴን መገንባት ጀመርኩ…

እና ውጤቱ በጥሩ ሁኔታ ይመጣል…

  • በመሪ ማሳያ ላይ ማንኛውንም ጽሑፍ ማሳየት ይችላሉ
  • የማሳያውን ጥንካሬ ማስተካከል ይችላሉ
  • የማሸብለል ፍጥነትን ማዘጋጀት ይችላሉ

አቅርቦቶች

  1. Esp8266 የልማት ቦርድ። (የእኔ ጉዳይ NODE MCU v1.0 ነው)
  2. MAX7219 LED ማትሪክስ ማሳያ።

የሚያስፈልግ ሶፍትዌር

  1. አርዱዲኖ አይዲኢ።
  2. የ MQTT አገልጋይ። (የእኔ ጉዳይ Mosquitto)

ቤተ -መጽሐፍት ያስፈልጋል

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

ደረጃ 1: Arduino IDE ን ለ Esp8266 ልማት ያዋቅሩ

ለ ‹8866› ልማት Arduino IDE ን ያዋቅሩ
ለ ‹8866› ልማት Arduino IDE ን ያዋቅሩ

የአርዱዲኖ ምርጫዎችን ይክፈቱ እና ከዚህ በታች ያለውን ዩአርኤል በአድማድ ቦርዶች አቀናባሪ ዩአርኤሎች ውስጥ ይለጥፉ

arduino.esp8266.com/stable/package_esp8266com_index.json

ከዚያ መሳሪያዎች> ቦርዶች> የቦርዶች ሥራ አስኪያጅ እና esp8266 ን ይፈልጉ እና ይጫኑት።

አሁን የእርስዎ የአርዱዲኖ ሀሳብ ለ esp8266 ልማት ዝግጁ ነው።

ደረጃ 2 የውጭ ቤተ -ፍርግሞችን ያውርዱ

አሁን ለ MAX7219 እና ለ MQTT ደንበኛ አንዳንድ ቤተ -መጻሕፍት ያስፈልጉናል።

ቤተ መጻሕፍቱን አውርደን እናዋቀር

በ Arduino IDE ላይ ወደ ረቂቅ> ቤተ -መጽሐፍትን ያካትቱ> ቤተ -መጽሐፍቶችን ያቀናብሩ

እና የ EspMQTTC ደንበኛን ይፈልጉ እና ጫን ጠቅ ያድርጉ

ማሳሰቢያ - ሁሉንም ጥገኛ ቤተ -መጻሕፍት ይጫኑ ፣ አስፈላጊ ነው

እንደገና MD_MAX72xx ን ይፈልጉ እና ጫን ጠቅ ያድርጉ

ደረጃ 3 አሁን አንዳንድ ኮድ ይፃፉ

አሁን ከዚህ በታች ያለውን ኮድ ይለጥፉ

#ያካትቱ

#ያካትቱ #ያካትቱ #ያካትቱ "EspMQTTClient.h" #መግለፅ MAX_DEVICES 4 // የመሣሪያዎ ብዛት #ጥራት CLK_PIN D5 // ወይም SCK #ዲፋይ_ፒን D7 // ወይም MOSI #መግለፅ 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 INTENSITY = 5; // ነባሪ ጥንካሬ ቻር መልእክት (MESG_SIZE]; char newMessage [MESG_SIZE]; bool newMessageAvailable = ሐሰት; ባዶ ማሸብለል ዳታሲንክ (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_CHAR ፣ S_NEXT_CHAR ፣ S_NEXT_CHAR ፣ S_NEXT_CHAR ፣ S_NEXT_CHAR ፣ S_NEXT_CHAR ፣ S_NEXT_CHAR ፣ S_NEXT_CHAR ፣ S_NEXT_CHAR ፣ S_NEXT_CHAR ፣ S_NEXT_CHAR የማይንቀሳቀስ ቻር *ገጽ; የማይንቀሳቀስ uint16_t curLen ፣ showLen; የማይንቀሳቀስ uint8_t cBuf [8]; uint8_t colData = 0; መቀየሪያ (ሁኔታ) {ጉዳይ S_IDLE: p = curMessage; ከሆነ (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = ሐሰት; } ግዛት = S_NEXT_CHAR; ሰበር; መያዣ S_NEXT_CHAR: ከሆነ (*p == '\ 0') state = S_IDLE; ሌላ {showLen = mx.getChar (*p ++ ፣ sizeof (cBuf) / sizeof (cBuf [0]) ፣ cBuf); curLen = 0; ግዛት = S_SHOW_CHAR; } መሰበር; መያዣ S_SHOW_CHAR: colData = cBuf [curLen ++]; ከሆነ (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // ሸብልል - የመልሶ መደወያው ሁሉንም ውሂብ prevTime = millis () ይጫናል። // መነሻ ነጥብ ለቀጣዩ ጊዜ}} ባዶነት ማዋቀር () {Serial.begin (115200); mx.begin (); mx.control (MD_MAX72XX:: INTENSITY ፣ INTENSITY); mx.setShiftDataInCallback (ጥቅልል ዳታ ምንጭ); mx.setShiftDataOutCallback (ጥቅልል ዳታሲንክ); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage ፣ “ስማርት ማሳያ”); } ባዶነት onConnectionEstablished () {// MQTT የደንበኝነት ምዝገባ ርዕስ ለደንበኛ ጽሑፍ ደንበኛ። ደንበኝነት ይመዝገቡ ("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 የደንበኝነት ምዝገባ ርዕስ ለዕይታ ማሸብለል ፍጥነት መቆጣጠሪያ ደንበኛ። የደንበኝነት ምዝገባ (“leddisplay/scroll” ፣ (const String & payload) {SCROLL_DELAY = payload.toInt ();})); } ባዶነት loop () {client.loop (); ጥቅልል ጽሑፍ (); }

ለዝርዝር መረጃ ፣ ይህንን ማከማቻ ይመልከቱ

github.com/souravj96/max7219-mqtt-esp8266

ደረጃ 4 የወረዳ ዲያግራም

የወረዳ ዲያግራም
የወረዳ ዲያግራም

MAX7219 ማሳያውን ከ NODE MCU ጋር ያገናኙ

ደረጃ 5 ኮድ ወደ Esp8266 ይስቀሉ

ኮድ ወደ Esp8266 ይስቀሉ
ኮድ ወደ Esp8266 ይስቀሉ

አሁን ትክክለኛውን የቦርድ አይነትዎን እና ተከታታይ ወደብዎን ይምረጡ እና ሰቀላን ይምቱ።

ደረጃ 6 - ሁሉንም ነገር ይፈትሹ

ሁሉም ነገር ትክክል ከሆነ የእርስዎ esp8266 ከእርስዎ MQTT አገልጋይ ጋር ይገናኛል።

አሁን ፣ በሚታየው የመገለጫ/የጽሑፍ ርዕስ ላይ የሆነ ነገር ከታተመ።

{

ርዕሰ ጉዳይ: "leddisplay/text", የክፍያ ጭነት: "የእርስዎ መልዕክት እዚህ"}

የማሳያውን ጥንካሬ ማዘጋጀት ከፈለጉ

{

ርዕሰ ጉዳይ “leddisplay/intensity” ፣ የክፍያ ጭነት “2” // max is 15 እና min 0}

የማሳያውን የማሸብለል ፍጥነት ማዘጋጀት ከፈለጉ

{

ርዕስ: "leddisplay/roll", የክፍያ ጭነት: "100" // ከፍተኛው 255 እና ደቂቃ 0}

ደስተኛ ኮድ ማድረጊያ

የሚመከር: