Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Konfigurer Arduino IDE for Esp8266 Development
- Trinn 2: Last ned eksterne biblioteker
- Trinn 3: Skriv litt kode nå
- Trinn 4: Kretsdiagram
- Trinn 5: Last opp kode til Esp8266
- Trinn 6: Test alt
Video: MAX7219 LED Matrix MQTT Bruke Esp8266: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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
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
Bruke en Dot Matrix LED med et Arduino- og skiftregister: 5 trinn
Bruke en Dot Matrix LED med et Arduino- og skiftregister: Siemens DLO7135 Dot matrix LED er et fantastisk stykke optoelektronikk. Det er fakturert som en 5x7 Dot Matrix Intelligent Display (r) med minne/dekoder/driver. Sammen med det minnet har den et 96-tegners ASCII-display med øvre og nedre