Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Konfigurer Arduino IDE til Esp8266 Development
- Trin 2: Download eksterne biblioteker
- Trin 3: Skriv noget kode nu
- Trin 4: Kredsløbsdiagram
- Trin 5: Upload kode til Esp8266
- Trin 6: Test alt
Video: MAX7219 LED Matrix MQTT Brug Esp8266: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Jeg forsøgte at forbinde min MAX7219 LED -skærm til en MQTT -server og modtage en tekst fra MQTT -abonnementet til visning.
men jeg fik ikke nogen passende kode på internettet, så jeg begyndte at bygge min egen …
og resultatet kommer ganske godt …
- du kan vise enhver tekst på LED -display
- du kan justere skærmens intensitet
- du kan indstille rullehastigheden
Forbrugsvarer
- Et udviklingsbræt esp8266. (min sag er NODE MCU v1.0)
- MAX7219 LED Matrix Display.
Software nødvendig:
- Arduino IDE.
- En MQTT -server. (min sag Mosquitto)
Bibliotek påkrævet:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Trin 1: Konfigurer Arduino IDE til Esp8266 Development
åbne Arduinos præferencer, og indsæt derefter nedenstående URL i Aditional Boards Manager URL'er:
arduino.esp8266.com/stable/package_esp8266com_index.json
derefter Tools> Boards> Boards Manager og søg efter esp8266 og installer det.
nu er din Arduino ide klar til udvikling af esp8266.
Trin 2: Download eksterne biblioteker
nu har vi brug for nogle biblioteker til MAX7219 og MQTT Client.
lad os downloade og oprette bibliotekerne
naviger til Skitse> Inkluder bibliotek> Administrer biblioteker på Arduino IDE
og søg efter EspMQTTClient og klik på Installer
NB: Installer alle afhængige biblioteker, det er vigtigt
Søg igen efter MD_MAX72xx og klik på Installer
Trin 3: Skriv noget kode nu
Indsæt nu nedenstående kode
#omfatte
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // your 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 // ændring i henhold til din displaytype 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; // standardintensitet 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 char *p; statisk uint16_t curLen, showLen; statisk uint8_t cBuf [8]; uint8_t colData = 0; switch (tilstand) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } tilstand = S_NEXT_CHAR; pause; sag S_NEXT_CHAR: hvis (*p == '\ 0') tilstand = S_IDLE; ellers {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; tilstand = S_SHOW_CHAR; } pause; case S_SHOW_CHAR: colData = cBuf [curLen ++]; hvis (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // rul med - tilbagekaldet indlæser alle data prevTime = millis (); // startpunkt for næste gang}} ugyldig opsætning () {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 -abonnementsemne til displaytekst client.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// MQTT -abonnementsemne til styring af skærmintensitet
client.subscribe ("leddisplay/intensitet", (const String & nyttelast) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // MQTT -abonnementsemne til displayrullehastighedsstyring client.subscribe ("leddisplay/scroll", (const String & nyttelast) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
For detaljerede oplysninger henvises til dette lager
github.com/souravj96/max7219-mqtt-esp8266
Trin 4: Kredsløbsdiagram
tilslut MAX7219 skærm med NODE MCU
Trin 5: Upload kode til Esp8266
vælg nu din korrekte korttype og serielle port, og tryk derefter på upload.
Trin 6: Test alt
hvis alt går korrekt, vil din esp8266 blive forbundet til din MQTT -server.
nu, hvis der vil blive offentliggjort noget om leddisplay/tekstemne, der vil blive vist.
{
emne: "leddisplay/tekst", nyttelast: "din besked her"}
hvis du vil indstille skærmens intensitet
{
emne: "leddisplay/intensitet", nyttelast: "2" // maks. er 15 og min 0}
hvis du vil indstille displayets rullehastighed
{
emne: "leddisplay/scroll", nyttelast: "100" // max er 255 og min 0}
Glad kodning
Anbefalede:
IoT Smart Clock Dot Matrix Brug Wemos ESP8266 - ESP Matrix: 12 trin (med billeder)
IoT Smart Clock Dot Matrix Brug Wemos ESP8266-ESP Matrix: Lav dit eget IoT Smart Clock, der kan: Display ur med et smukt animationsikon Display Påmindelse-1 til Påmindelse-5 Vis kalender Vis muslimsk bønnetid Vis vejrinformation Vis Nyheder Vis råd Vis Bitcoin rate Display
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C - Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: 5 trin
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C | Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: Hej fyre i denne instruktion vil vi lære at bruge neopixel ws2812 LED'er eller led strip eller led matrix eller led ring med m5stack m5stick-C udviklingstavle med Arduino IDE, og vi vil lave et regnbuemønster med det
Raspberry Pi Taler til ESP8266 Brug af MQTT: 8 trin
Raspberry Pi Taler til ESP8266 Brug af MQTT: I dette projekt vil jeg forklare, hvad MQTT -protokollen er, og hvordan den bruges til at kommunikere mellem enheder. Så som en praktisk demonstration vil jeg demonstrere, hvordan man konfigurerer et klient- og brokersystem, hvor et ESP8266 -modul samt RPi tal
Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (temperatur): 6 trin
Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (temperatur): I denne lejlighed vil vi udføre en hurtig test til en matrix led med den integrerede MAX7219 med modul ESP8266, og så det ikke er meget enkelt, vil vi aflæse temperaturen på en sensor DS18B20.I fremtidige selvstudier vil vi integrere det til andre platforme