Përmbajtje:

MAX7219 LED Matrix MQTT Duke përdorur Esp8266: 6 hapa
MAX7219 LED Matrix MQTT Duke përdorur Esp8266: 6 hapa

Video: MAX7219 LED Matrix MQTT Duke përdorur Esp8266: 6 hapa

Video: MAX7219 LED Matrix MQTT Duke përdorur Esp8266: 6 hapa
Video: Chapter 4a Software for ESP8266 Arduboy Game Console ESP8266 DIY Series 2024, Nëntor
Anonim
MAX7219 LED Matrix MQTT Duke përdorur Esp8266
MAX7219 LED Matrix MQTT Duke përdorur Esp8266

Po përpiqesha të lidhja ekranin tim MAX7219 LED me një server MQTT dhe të merrja një tekst nga pajtimi MQTT për tu shfaqur.

por unë nuk mora asnjë kod të përshtatshëm në internet, kështu që fillova të ndërtoj timen…

dhe rezultati vjen mjaft mirë …

  • mund të shfaqni çdo tekst në ekranin led
  • mund të rregulloni intensitetin e ekranit
  • mund të vendosni shpejtësinë e rrotullimit

Furnizimet

  1. Një bord zhvillimi esp8266. (rasti im është NODE MCU v1.0)
  2. MAX7219 Ekran i Matricës LED.

Softueri i nevojshëm:

  1. Arduino IDE.
  2. Një server MQTT. (rasti im Mushkonja)

Kërkohet biblioteka:

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

Hapi 1: Konfiguroni Arduino IDE për zhvillimin Esp8266

Vendosni Arduino IDE për zhvillimin Esp8266
Vendosni Arduino IDE për zhvillimin Esp8266

hapni preferencat e Arduino pastaj ngjitni URL -në e mëposhtme në URL -të e Menaxherit të Bordeve Shtesë:

arduino.esp8266.com/stable/package_esp8266com_index.json

pastaj Tools> Boards> Boards Manager dhe kërkoni për esp8266 dhe instalojeni.

tani ideja juaj Arduino është gati për zhvillimin esp8266.

Hapi 2: Shkarkoni Bibliotekat e Jashtme

tani na duhen disa biblioteka për MAX7219 dhe MQTT Client.

le të shkarkojmë dhe krijojmë bibliotekat

lundroni te Sketch> Përfshini Bibliotekën> Menaxhoni Bibliotekat në Arduino IDE

dhe kërkoni për EspMQTTClient dhe klikoni Instalo

NB: Instaloni të gjitha bibliotekat e varura, është e rëndësishme

Kërkoni përsëri për MD_MAX72xx dhe klikoni Instalo

Hapi 3: Shkruani Disa Kod Tani

Tani ngjitni kodin e mëposhtëm

#përfshi

#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // numërimi i pajisjes tuaj #përcaktoni CLK_PIN D5 // ose SCK #define DATA_PIN D7 // ose MOSI #define CS_PIN D4 // ose SS // mund ta vendosni për çdo pin #përcaktoni HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // ndryshoni sipas llojit të ekranit tuaj 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; // vonesa e parazgjedhur e lëvizjes uint8_t INTENSITET = 5; // intensiteti i parazgjedhur i kurorës së mesazhit [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) {enum statik {S_IDLE, S_NEXT_CHOW, S_NEXT_CHAR,; karik statik *p; statike uint16_t curLen, showLen; statike uint8_t cBuf [8]; uint8_t colData = 0; switch (gjendja) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } gjendja = S_NEXT_CHAR; pushim; rasti S_NEXT_CHAR: nëse (*p == '\ 0') gjendja = S_IDLE; else {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; gjendja = S_SHOW_CHAR; } pushim; rasti S_SHOW_CHAR: colData = cBuf [curLen ++]; nëse (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // lundroni - thirrja do të ngarkojë të gjitha të dhënat paraprake = millis (); // pika fillestare për herën tjetër}} void setup () {Serial.begin (115200); mx.filloj (); mx.control (MD_MAX72XX:: Intensiteti, Intensiteti); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "Smart Display"); } void onConnectionEstablished () {// Tema e abonimit MQTT për klientin e tekstit të shfaqur. abonohu ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});

// Tema e pajtimit MQTT për kontrollin e intensitetit të ekranit

client.subscribe ("leddisplay/intensiteti", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITETI, payload.toInt ());}); // Tema e abonimit MQTT për klientin e kontrollit të shpejtësisë së lëvizjes së ekranit. Abonohu ("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }

Për informacion të detajuar, referojuni këtij depoja

github.com/souravj96/max7219-mqtt-esp8266

Hapi 4: Diagrami i Qarkut

Diagrami i qarkut
Diagrami i qarkut

lidhni ekranin MAX7219 me NODE MCU

Hapi 5: Ngarko kodin në Esp8266

Ngarko kodin në Esp8266
Ngarko kodin në Esp8266

tani zgjidhni llojin tuaj të saktë të bordit dhe portin serik, pastaj shtypni ngarkimin.

Hapi 6: Provoni gjithçka

nëse gjithçka shkon si duhet atëherë esp8266 juaj do të lidhet me serverin tuaj MQTT.

tani, nëse ndonjë gjë do të publikohet në temën leddisplay/tekst që do të shfaqet.

{

tema: "leddisplay/text", ngarkesa: "mesazhi juaj këtu"}

nëse doni të vendosni intensitetin e shfaqjes

{

tema: "leddisplay/intensiteti", ngarkesa: "2" // max është 15 dhe min 0}

nëse doni të vendosni shpejtësinë e lëvizjes së ekranit

{

tema: "leddisplay/scroll", ngarkesa: "100" // max është 255 dhe min 0}

Kodim i lumtur

Recommended: