Orodha ya maudhui:

MAX7219 LED Matrix MQTT Kutumia Esp8266: 6 Hatua
MAX7219 LED Matrix MQTT Kutumia Esp8266: 6 Hatua

Video: MAX7219 LED Matrix MQTT Kutumia Esp8266: 6 Hatua

Video: MAX7219 LED Matrix MQTT Kutumia Esp8266: 6 Hatua
Video: Using HT16K33 4 digit seven segment display with ESP8266 NodeMCU and D1 Mini 2024, Novemba
Anonim
MAX7219 LED Matrix MQTT Kutumia Esp8266
MAX7219 LED Matrix MQTT Kutumia Esp8266

Nilikuwa najaribu kuunganisha onyesho langu la MAX7219 la LED kwenye seva ya MQTT na kupokea maandishi kutoka kwa usajili wa MQTT kuonyesha.

lakini sikupata nambari yoyote inayofaa kwenye wavuti, kwa hivyo nilianza kujenga yangu mwenyewe…

na matokeo huja vizuri kabisa…

  • unaweza kuonyesha maandishi yoyote kwenye onyesho lililoongozwa
  • unaweza kurekebisha ukubwa wa onyesho
  • unaweza kuweka kasi ya kusogeza

Vifaa

  1. Bodi ya maendeleo ya esp8266. (kesi yangu ni NODE MCU v1.0)
  2. Maonyesho ya Matrix ya MAX7219 ya LED.

Programu inahitajika:

  1. Arduino IDE.
  2. Seva ya MQTT. (kesi yangu Mosquitto)

Maktaba inahitajika:

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

Hatua ya 1: Sanidi Arduino IDE ya Ukuzaji wa Esp8266

Sanidi Arduino IDE ya Maendeleo ya Esp8266
Sanidi Arduino IDE ya Maendeleo ya Esp8266

fungua upendeleo wa Arduino kisha ubandike URL hapa chini katika URL za Meneja wa Bodi za Ziada:

arduino.esp8266.com/stable/package_esp8266com_index.json

kisha Zana> Bodi> Meneja wa Bodi na utafute esp8266 na uisakinishe.

sasa maoni yako ya Arduino iko tayari kwa maendeleo ya esp8266.

Hatua ya 2: Pakua Maktaba za nje

sasa tunahitaji maktaba kadhaa za MAX7219 na Mteja wa MQTT.

wacha tupakue na tuweke maktaba

nenda kwa Mchoro> Jumuisha Maktaba> Dhibiti Maktaba kwenye Arduino IDE

na utafute EspMQTTClient na ubonyeze Sakinisha

NB: Sakinisha maktaba zote tegemezi, ni muhimu

Tafuta tena MD_MAX72xx na ubonyeze Sakinisha

Hatua ya 3: Andika Nambari kadhaa Sasa

Sasa weka nambari iliyo hapa chini

# pamoja

#jumuisha # pamoja na # pamoja na "EspMQTTClient.h" #fafanua MAX_DEVICES 4 // hesabu ya kifaa chako #fafanua CLK_PIN D5 // au SCK #fafanua DATA_PIN D7 // au MOSI #fafanua CS_PIN D4 // au SS // unaweza kuiweka kwa pini yoyote #fafanua HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // badilika kulingana na aina yako ya onyesho 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; // kuchelewesha kwa kusogeza kwa uint8_t UKALI = 5; // kiwango cha chaguo-msingi cha charMessage [MESG_SIZE]; char newMessage [MESG_SIZE]; bool newMessageAvailable = uwongo; batili 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_CHAR, S_SAR tuli st * p; tuli uint16_t curLen, onyeshaLen; tuli uint8_t cBuf [8]; uint8_t colData = 0; kubadili (hali) {kesi S_IDLE: p = curMessage; ikiwa (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = uwongo; } hali = S_NEXT_CHAR; kuvunja; kesi S_NEXT_CHAR: ikiwa (* p == '\ 0') state = S_IDLE; mwingine {showLen = mx.getChar (* p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; hali = S_SHOW_CHAR; } kuvunja; kesi S_SHOW_CHAR: colData = cBuf [curLen ++]; ikiwa (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // songa kando - upigaji simu utapakia data zote prevTime = millis (); // hatua ya kuanza kwa wakati ujao}} usanidi batili () {Serial.begin (115200); kuanza (); Udhibiti wa mx (MD_MAX72XX:: UKALI, UKALI); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "Smart Display"); } batili juu yaConnectionEstablished () {// MQTT mada ya usajili wa onyesho la mteja wa maandishi. jiandikishe ("leddisplay / text", (const String & payload) {sprintf (curMessage, payload.c_str ());}););

Mada ya usajili wa MQTT kwa udhibiti wa kiwango cha kuonyesha

mteja.subscribe ("leddisplay / intensitet", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); Mada ya usajili wa MQTT kwa mteja wa kudhibiti kasi ya kudhibiti kitabu. Jiandikishe ("leddisplay / scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } kitanzi batili () {client.loop (); scrollText (); }

Kwa habari ya kina, rejelea hifadhi hii

github.com/souravj96/max7219-mqtt-esp8266

Hatua ya 4: Mchoro wa Mzunguko

Mchoro wa Mzunguko
Mchoro wa Mzunguko

unganisha onyesho la MAX7219 na NODE MCU

Hatua ya 5: Pakia Nambari kwa Esp8266

Pakia Nambari kwa Esp8266
Pakia Nambari kwa Esp8266

sasa chagua aina yako sahihi ya bodi na bandari ya serial kisha gonga pakia.

Hatua ya 6: Jaribu kila kitu

ikiwa kila kitu kitaenda sawa basi esp8266 yako itaunganishwa na seva yako ya MQTT.

sasa, ikiwa chochote kitachapishwa kwenye mada ya uchezaji / mada ya maandishi ambayo itaonyeshwa.

{

mada: "onyesho / maandishi", malipo ya malipo: "ujumbe wako hapa"}

ikiwa unataka kuweka ukubwa wa onyesho

{

mada: "onyesho / nguvu", malipo ya malipo: "2" // max ni 15 na min 0}

ikiwa unataka kuweka kasi ya kusogeza ya onyesho

{

mada: "onyesha / onyesha", malipo ya malipo: "100" // max ni 255 na min 0}

Furaha ya kuweka alama

Ilipendekeza: