
Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02

Jeg prøvde å koble min MAX7219 LED -skjerm til en MQTT -server og motta en tekst fra MQTT -abonnementet for å vise.
men jeg fikk ingen passende kode på internett, så jeg begynte å bygge min egen …
og resultatet kommer ganske bra …
- du kan vise hvilken som helst tekst på LED -skjermen
- du kan justere intensiteten på displayet
- du kan stille inn rullehastigheten
Rekvisita
- Et utviklingsbrett esp8266. (mitt tilfelle er NODE MCU v1.0)
- MAX7219 LED Matrix Display.
Programvare som trengs:
- Arduino IDE.
- En MQTT -server. (min sak Mosquitto)
Bibliotek nødvendig:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Trinn 1: Konfigurer Arduino IDE for Esp8266 Development

åpne Arduinos preferanser, og lim deretter inn URL -adressen nedenfor i Aditional Boards Manager -nettadresser:
arduino.esp8266.com/stable/package_esp8266com_index.json
deretter Tools> Boards> Boards Manager og søk etter esp8266 og installer den.
nå er din Arduino ide klar for esp8266 utvikling.
Trinn 2: Last ned eksterne biblioteker
nå trenger vi noen biblioteker for MAX7219 og MQTT Client.
la oss laste ned og sette opp bibliotekene
naviger til Skisse> Inkluder bibliotek> Administrer biblioteker på Arduino IDE
og søk etter EspMQTTClient og klikk Installer
NB: Installer alle avhengige biblioteker, det er viktig
Søk igjen etter MD_MAX72xx og klikk Installer
Trinn 3: Skriv litt kode nå
Lim nå inn koden nedenfor
#inkludere
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // device count #define CLK_PIN D5 // or SCK #define DATA_PIN D7 // or MOSI #define CS_PIN D4 // or SS // you can set it til en hvilken som helst pin #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // endre i henhold til skjermtypen 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; // standard rulleforsinkelse uint8_t INTENSITY = 5; // standard intensitet char curMessage [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 enum {S_IDLE, S_NEXT_CHAR, S_SHOW_ statisk røyke *p; statisk uint16_t curLen, showLen; statisk uint8_t cBuf [8]; uint8_t colData = 0; switch (state) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } tilstand = S_NEXT_CHAR; gå i stykker; case S_NEXT_CHAR: if (*p == '\ 0') state = S_IDLE; annet {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; tilstand = S_SHOW_CHAR; } gå i stykker; case S_SHOW_CHAR: colData = cBuf [curLen ++]; hvis (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // bla med - tilbakeringingen vil laste alle data prevTime = millis (); // utgangspunkt for neste gang}} ugyldig oppsett () {Serial.begin (115200); mx.begin (); mx.control (MD_MAX72XX:: INTENSITY, INTENSITY); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "Smart Display"); } void onConnectionEstablished () {// MQTT -abonnementstema for visningstekst client.subscribe ("leddisplay/text", (const String & nyttelast) {sprintf (curMessage, payload.c_str ());});
// MQTT -abonnementstema for skjermintensitetskontroll
client.subscribe ("leddisplay/intensitet", (const String & nyttelast) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // MQTT -abonnementstema for skjermrullehastighetskontroll client.subscribe ("leddisplay/scroll", (const String & nyttelast) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
For detaljert informasjon, se dette depotet
github.com/souravj96/max7219-mqtt-esp8266
Trinn 4: Kretsdiagram

koble til MAX7219 -skjermen med NODE MCU
Trinn 5: Last opp kode til Esp8266

nå velger du riktig brettype og seriell port og klikker deretter på Last opp.
Trinn 6: Test alt
hvis alt går riktig, blir esp8266 koblet til MQTT -serveren.
nå, hvis noe vil bli publisert om leddisplay/tekstemne som vil bli vist.
{
emne: "leddisplay/text", nyttelast: "meldingen din her"}
hvis du vil angi intensiteten på displayet
{
emne: "leddisplay/intensitet", nyttelast: "2" // maks er 15 og min 0}
hvis du vil angi rullehastigheten på displayet
{
emne: "leddisplay/scroll", nyttelast: "100" // maks er 255 og min 0}
Glad koding
Anbefalt:
Hvordan bruke DS1307 Bruke Arduino: 7 trinn

Hvordan bruke DS1307 Bruke Arduino: DS1307 er en sanntidsklokke IC (RTC). Denne IC brukes til å gi tidsdata. Tildelt tid starter fra sekunder, minutt, timer, dager, dato, måned og år. Denne IC krever ytterligere eksterne komponenter som Crystal og 3,6V batterier. Krystall
Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: 10 trinn

Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: I denne instruksen vil jeg vise hvordan du bruker SplatPost -skriveren av ShinyQuagsire. Uten klare instruksjoner ville noen som ikke har erfaring med kommandolinjen ha litt problemer. Målet mitt er å forenkle trinnene ned til poi
Neopixel Ws2812 Rainbow LED-glød med M5stick-C - Kjører Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: 5 trinn

Neopixel Ws2812 Rainbow LED-glød med M5stick-C | Running Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: Hei folkens i denne instruksen, vi lærer hvordan du bruker neopixel ws2812 LED eller led strip eller led matrise eller led ring med m5stack m5stick-C utviklingstavle med Arduino IDE, og vi skal lage et regnbuemønster med den
Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (temperatur): 6 trinn

Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (temperatur): I denne muligheten vil vi utføre en rask test til en matrise ledd med den integrerte MAX7219 med modul ESP8266, og slik at det ikke er veldig enkelt, vil vi lese temperaturen på en sensor DS18B20. I fremtidige opplæringsprogrammer vil vi integrere det med andre plattformer
Hvordan bruke Wiimote som en datamus ved å bruke stearinlys som sensor !!: 3 trinn

Slik bruker du Wiimote som en datamus ved å bruke stearinlys som en sensor !!: Denne guiden viser deg hvordan du kobler din Wii -fjernkontroll (Wiimote) til din PC og bruker den som en mus