Мазмұны:

MAX7219 LED Matrix MQTT Esp8266 көмегімен: 6 қадам
MAX7219 LED Matrix MQTT Esp8266 көмегімен: 6 қадам

Бейне: MAX7219 LED Matrix MQTT Esp8266 көмегімен: 6 қадам

Бейне: MAX7219 LED Matrix MQTT Esp8266 көмегімен: 6 қадам
Бейне: Using HT16K33 4 digit seven segment display with ESP8266 NodeMCU and D1 Mini 2024, Қараша
Anonim
MAX7219 LED Matrix MQTT Esp8266 көмегімен
MAX7219 LED Matrix MQTT Esp8266 көмегімен

Мен MAX7219 жарықдиодты дисплейімді MQTT серверіне қосуға тырыстым және MQTT жазылымынан мәтінді алуға тырыстым.

бірақ мен интернетте сәйкес код ала алмадым, сондықтан мен өзімнің кодты құра бастадым …

және нәтиже өте жақсы болады …

  • кез келген мәтінді дисплейде көрсетуге болады
  • дисплейдің қарқындылығын реттеуге болады
  • айналдыру жылдамдығын орнатуға болады

Жабдықтар

  1. Esp8266 даму тақтасы. (менің жағдайда бұл NODE MCU v1.0)
  2. MAX7219 жарықдиодты матрицалық дисплей.

Қажетті бағдарламалық қамтамасыз ету:

  1. Arduino IDE.
  2. MQTT сервері. (менің жағдайым маска)

Кітапхана қажет:

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

1 -қадам: Esp8266 Development үшін Arduino IDE орнатыңыз

Esp8266 Development үшін Arduino IDE орнатыңыз
Esp8266 Development үшін Arduino IDE орнатыңыз

Arduino теңшелімдерін ашыңыз, содан кейін төмендегі URL -ді қосымша тақталар менеджерінің URL -мекенжайларына қойыңыз:

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» #MAX_DEVICES 4 анықтаңыз // сіздің құрылғыңыздың санын анықтаңыз #CLK_PIN D5 анықтаңыз // немесе SCK #DATA_PIN 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; // әдепкі қарқындылық char curMessage [MESG_SIZE]; char newMessage [MESG_SIZE]; bool newMessageAvailable = жалған; жарамсыз scrollDataSink (uint8_t dev, MD_MAX72XX:: transformType_t t, uint8_t col) {} uint8_t scrollDataSource (uint8_t dev, MD_MAX72XX:: transformType_t t) {статикалық тізім {S_IDLE, S_NEXOW_CHAR_, S_NEX_CHOW_, S_NEX_CHOW_ статикалық char *p; статикалық uint16_t curLen, showLen; статикалық uint8_t cBuf [8]; uint8_t colData = 0; қосқыш (күй) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = жалған; } күй = 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 ++]; егер (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // жылжытыңыз - кері байланыс барлық деректерді жүктейді prevTime = millis (); // келесі жолы басталу нүктесі}} void setup () {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 жазылымының мәтіні клиентке жазылу тақырыбы.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 жазылымының тақырыбы айналдыру жылдамдығын бақылау клиенті.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 кодын жүктеңіз

Esp8266 кодын жүктеңіз
Esp8266 кодын жүктеңіз

енді дұрыс тақта түрін және сериялық портты таңдаңыз, содан кейін жүктеуді басыңыз.

6 -қадам: Барлығын тексеріңіз

егер бәрі дұрыс болса, онда сіздің esp8266 сіздің MQTT серверіңізге қосылады.

енді, егер бірдеңе дисплейде/мәтін тақырыбында жарияланатын болса, ол көрсетіледі.

{

тақырып: «leddisplay/text», пайдалы жүктеме: «сіздің хабарламаңыз осында»}

егер дисплей қарқындылығын орнатқыңыз келсе

{

тақырып: «leddisplay/intensity», пайдалы жүктеме: «2» // максимум 15 және мин 0}

егер дисплейдің айналдыру жылдамдығын орнатқыңыз келсе

{

тақырып: «leddisplay/scroll», пайдалы жүктеме: «100» // максимум - 255 және мин 0}

Бақытты кодтау

Ұсынылған: