Inhoudsopgave:
- Benodigdheden
- Stap 1: Setup Arduino IDE voor Esp8266 Development
- Stap 2: Externe bibliotheken downloaden
- Stap 3: Schrijf nu wat code
- Stap 4: Schakelschema
- Stap 5: Upload code naar Esp8266
- Stap 6: Test alles
Video: MAX7219 LED Matrix MQTT met behulp van Esp8266 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Ik probeerde mijn MAX7219 LED-display te verbinden met een MQTT-server en ontving een tekst van het MQTT-abonnement om weer te geven.
maar ik vond geen geschikte code op internet, dus begon ik mijn eigen code te bouwen …
en het resultaat mag er zijn…
- u kunt elke tekst op een led-display weergeven;
- u kunt de intensiteit van het display aanpassen
- u kunt de scrollsnelheid instellen
Benodigdheden
- Een esp8266 ontwikkelbord. (mijn geval is het NODE MCU v1.0)
- MAX7219 LED-matrixdisplay.
Benodigde software:
- Arduino-IDE.
- Een MQTT-server. (mijn geval Mosquito)
Bibliotheek vereist:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Stap 1: Setup Arduino IDE voor Esp8266 Development
open de voorkeuren van Arduino en plak de onderstaande URL in Aditional Boards Manager-URL's:
arduino.esp8266.com/stable/package_esp8266com_index.json
dan Tools > Boards > Boards Manager en zoek naar esp8266 en installeer het.
nu is je Arduino ide klaar voor esp8266-ontwikkeling.
Stap 2: Externe bibliotheken downloaden
nu hebben we enkele bibliotheken nodig voor MAX7219 en MQTT Client.
laten we de bibliotheken downloaden en instellen
navigeer naar Sketch > Bibliotheek opnemen > Bibliotheken beheren op Arduino IDE
en zoek naar EspMQTTClient en klik op Installeren
NB: Installeer alle afhankelijke bibliotheken, het is belangrijk
Zoek opnieuw naar MD_MAX72xx en klik op Installeren
Stap 3: Schrijf nu wat code
Plak nu de onderstaande code
#erbij betrekken
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // uw aantal apparaten #define CLK_PIN D5 // of SCK #define DATA_PIN D7 // of MOSI #define CS_PIN D4 // of SS // u kunt het instellen naar elke pin #define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW // wijzigen volgens uw weergavetype 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; // standaard scrollvertraging uint8_t INTENSITEIT = 5; // standaard intensiteit char curMessage [MESG_SIZE]; char nieuw bericht [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_IDSHLE statisch teken *p; statisch uint16_t curLen, showLen; statisch uint8_t cBuf[8]; uint8_t colData = 0; switch (status) { case S_IDLE: p = curMessage; if (newMessageAvailable) { strcpy(curMessage, newMessage); newMessageAvailable = false; } staat = S_NEXT_CHAR; pauze; geval S_NEXT_CHAR: als (*p == '\0') staat = S_IDLE; else { showLen = mx.getChar(*p++, sizeof(cBuf) / sizeof(cBuf[0]), cBuf); krulLen = 0; staat = S_SHOW_CHAR; } pauze; geval S_SHOW_CHAR: colData = cBuf[curLen++]; if (curLen = SCROLL_DELAY) { mx.transform (MD_MAX72XX::TSL); // scroll mee - de callback laadt alle gegevens prevTime = millis(); // startpunt voor de volgende keer}} void setup() {Serial.begin(115200); mx.begin(); mx.control(MD_MAX72XX::INTENSITEIT, INTENSITEIT); mx.setShiftDataInCallback(scrollDataSource); mx.setShiftDataOutCallback(scrollDataSink); curMessage[0] = newMessage[0] = '\0'; sprintf(curMessage, "Smart Display"); } void onConnectionEstablished () { // MQTT-abonnementsonderwerp voor display-tekst client.subscribe ("leddisplay/text", (const String & payload) { sprintf (curMessage, payload.c_str ()); });
// MQTT-abonnementsonderwerp voor weergave-intensiteitsregeling
client.subscribe("leddisplay/intensity", (const String & payload) { mx.control(MD_MAX72XX::INTENSITY, payload.toInt());}); // MQTT abonnement onderwerp voor display scroll speed controll client.subscribe("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt(); }); } void loop() { client.loop(); scrollText(); }
Raadpleeg deze repository voor gedetailleerde informatie:
github.com/souravj96/max7219-mqtt-esp8266
Stap 4: Schakelschema
verbind MAX7219-display met NODE MCU
Stap 5: Upload code naar Esp8266
kies nu het juiste bordtype en seriële poort en klik vervolgens op uploaden.
Stap 6: Test alles
als alles goed gaat, wordt je esp8266 verbonden met je MQTT-server.
nu, als er iets zal worden gepubliceerd op leddisplay/tekst zal het onderwerp worden weergegeven.
{
topic: "leddisplay/text", payload: "uw bericht hier" }
als u de intensiteit van de weergave wilt instellen:
{
topic: "leddisplay/intensity", payload: "2" // max is 15 en min 0 }
als u de scrollsnelheid van de weergave wilt instellen:
{
topic: "leddisplay/scroll", payload: "100" // max is 255 en min 0 }
Gelukkig coderen
Aanbevolen:
Upgrade de achtergrondverlichting van een VU-meter naar blauwe led met behulp van oude CFL-lamponderdelen: 3 stappen
Upgrade een VU-meterachtergrondverlichting naar blauwe led met behulp van oude CFL-lamponderdelen.: Tijdens het repareren van een oude Sony TC630 reel-to-reel bandrecorder, merkte ik dat een van de glazen bollen voor de achtergrondverlichting van de VU-meter kapot was. Geen hoeveelheid geleidende verf werkte omdat het lood onder het glasoppervlak was afgebroken. De enige vervanger die ik
Internet/cloudgestuurde huisautomatisering met behulp van Esp8266 (aREST, MQTT, IoT): 7 stappen (met afbeeldingen)
Internet/cloudgestuurde huisautomatisering met behulp van Esp8266 (aREST, MQTT, IoT): ALLE credits naar http://arest.io/ voor de cloudservice!!IoT het meest besproken onderwerp ter wereld op dit moment!! Cloudservers en -services die dit mogelijk maken, is het aantrekkingspunt van de wereld van vandaag… DE AFSTANDSBARRIRE UITSLUITEN was en is de
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
De helderheid van LED regelen met behulp van Arduino en Bluetooth-module (HC-05): 4 stappen
De helderheid van LED regelen met behulp van Arduino en Bluetooth-module (HC-05): Inleiding In deze tutorial gaan we de helderheid van LED regelen met behulp van Arduino UNO, Bluetooth-module (HC-05) en Android-applicatie voor Bluetooth (Bluetooth Terminal)
Hoe u gebruikersniveaus van NUMA toevoegt aan uw exemplaar van N met behulp van NumADD Firefox AddOn: 4 stappen
Gebruikersniveaus van NUMA toevoegen aan uw exemplaar van N NumADD Firefox-add-on gebruiken: Elke gebruiker van Metanet's N-database op gebruikersniveau NUMA weet hoe onhandig de interface is voor het kopiëren van door gebruikers gemaakte niveaus naar uw exemplaar van het spel. NumADD, elimineert de noodzaak van kopiëren en plakken en maakt het overzetten van niveaus het werk van één muisklik