![MAX7219 Matryca LED MQTT przy użyciu Esp8266: 6 kroków MAX7219 Matryca LED MQTT przy użyciu Esp8266: 6 kroków](https://i.howwhatproduce.com/images/006/image-16894-j.webp)
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02
![MAX7219 Matryca LED MQTT przy użyciu Esp8266 MAX7219 Matryca LED MQTT przy użyciu Esp8266](https://i.howwhatproduce.com/images/006/image-16894-1-j.webp)
Próbowałem podłączyć mój wyświetlacz LED MAX7219 do serwera MQTT i otrzymać tekst z subskrypcji MQTT na wyświetlacz.
ale nie dostałem odpowiedniego kodu w Internecie, więc zacząłem budować własny…
i wynik jest całkiem niezły…
- możesz wyświetlić dowolny tekst na wyświetlaczu led
- możesz dostosować intensywność wyświetlacza
- możesz ustawić prędkość przewijania
Kieszonkowe dzieci
- Płytka rozwojowa esp8266. (mój przypadek to NODE MCU v1.0)
- Wyświetlacz matrycowy LED MAX7219.
Potrzebne oprogramowanie:
- IDE Arduino.
- Serwer MQTT. (moja sprawa Mosquitto)
Wymagana biblioteka:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Krok 1: Skonfiguruj Arduino IDE dla rozwoju Esp8266
![Konfiguracja Arduino IDE do programowania Esp8266 Konfiguracja Arduino IDE do programowania Esp8266](https://i.howwhatproduce.com/images/006/image-16894-2-j.webp)
otwórz preferencje Arduino, a następnie wklej poniższy adres URL w adresach URL Aditional Boards Manager:
arduino.esp8266.com/stable/package_esp8266com_index.json
następnie Tools > Boards > Boards Manager i wyszukaj esp8266 i zainstaluj go.
teraz twój ide Arduino jest gotowy do rozwoju esp8266.
Krok 2: Pobierz biblioteki zewnętrzne
teraz potrzebujemy kilku bibliotek dla MAX7219 i MQTT Client.
pobierzmy i skonfigurujmy biblioteki
przejdź do Szkic> Dołącz bibliotekę> Zarządzaj bibliotekami w Arduino IDE
i wyszukaj EspMQTTClient i kliknij Zainstaluj
NB: Zainstaluj wszystkie zależne biblioteki, to ważne
Ponownie wyszukaj MD_MAX72xx i kliknij Zainstaluj
Krok 3: Napisz teraz trochę kodu
Teraz wklej poniższy kod
#włączać
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // liczba twoich urządzeń #define CLK_PIN D5 // lub SCK #define DATA_PIN D7 // lub MOSI #define CS_PIN D4 // lub SS // możesz to ustawić na dowolny pin #define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW // zmień zgodnie z typem wyświetlacza 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; // domyślne opóźnienie przewijania uint8_t INTENSITY = 5; // domyślna intensywność char curMessage[MESG_SIZE]; char nowa wiadomość[MESG_SIZE]; bool nowaWiadomośćDostępna = 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_NEXOW_SH_SP_, S_SH_ znak statyczny *p; statyczny uint16_t curLen, showLen; statyczny uint8_t cBuf[8]; uint8_t colData = 0; switch (stan) { case S_IDLE: p = curMessage; if (nowaWiadomośćDostępna) { strcpy(aktualnaWiadomość, nowaWiadomość); nowaWiadomośćDostępna = fałsz; } stan = S_NEXT_CHAR; przerwa; case S_NEXT_CHAR: if (*p == '\0') stan = S_IDLE; else { showLen = mx.getChar(*p++, sizeof(cBuf) / sizeof(cBuf[0]), cBuf); curLen = 0; stan = S_SHOW_CHAR; } przerwa; przypadek S_SHOW_CHAR: colData = cBuf[curLen++]; if (curLen = SCROLL_DELAY) { mx.transform(MD_MAX72XX::TSL); // przewiń - callback załaduje wszystkie dane prevTime = millis(); // punkt początkowy dla następnego razu } } void setup() { Serial.begin(115200); mx.początek(); mx.control(MD_MAX72XX::INTENSITY, INTENSYWNOŚĆ); mx.setShiftDataInCallback(scrollDataSource); mx.setShiftDataOutCallback(scrollDataSink); curMessage[0] = nowaWiadomość[0] = '\0'; sprintf(curMessage, "Inteligentny wyświetlacz"); } void onConnectionEstablished() { // Temat subskrypcji MQTT dla wyświetlanego tekstu client.subscribe("leddisplay/text", (const String & payload) { sprintf(curMessage, payload.c_str()); });
// Temat subskrypcji MQTT dotyczący kontroli intensywności wyświetlania
client.subscribe("leddisplay/intensity", (const String & payload) { mx.control(MD_MAX72XX::INTENSITY, payload.toInt()); }); // Temat subskrypcji MQTT dla kontroli prędkości przewijania ekranu client.subscribe("leddisplay/scroll", (const String & payload) { SCROLL_DELAY = payload.toInt(); }); } void loop() { klient.loop(); scrollText(); }
Aby uzyskać szczegółowe informacje, zapoznaj się z tym repozytorium
github.com/souravj96/max7219-mqtt-esp8266
Krok 4: Schemat obwodu
![Schemat obwodu Schemat obwodu](https://i.howwhatproduce.com/images/006/image-16894-3-j.webp)
podłącz wyświetlacz MAX7219 z NODE MCU
Krok 5: Prześlij kod do Esp8266
![Prześlij kod do Esp8266 Prześlij kod do Esp8266](https://i.howwhatproduce.com/images/006/image-16894-4-j.webp)
teraz wybierz właściwy typ płyty i port szeregowy, a następnie naciśnij przycisk przesyłania.
Krok 6: Przetestuj wszystko
jeśli wszystko pójdzie dobrze, twój esp8266 zostanie połączony z serwerem MQTT.
teraz, jeśli cokolwiek zostanie opublikowane w temacie leddisplay/tekst, który będzie wyświetlany.
{
topic: "leddisplay/text", payload: "twoja wiadomość tutaj" }
jeśli chcesz ustawić intensywność wyświetlania
{
topic: "leddisplay/intensity", payload: "2" // max to 15 a min 0 }
jeśli chcesz ustawić prędkość przewijania wyświetlacza
{
topic: "leddisplay/scroll", payload: "100" // max to 255 a min 0 }
Szczęśliwego kodowania
Zalecana:
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
![Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków](https://i.howwhatproduce.com/images/001/image-2825-28-j.webp)
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim
ESP8266 NODEMCU BLYNK IOT samouczek - Esp8266 IOT przy użyciu Blunk i Arduino IDE - Sterowanie diodami LED przez Internet: 6 kroków
![ESP8266 NODEMCU BLYNK IOT samouczek - Esp8266 IOT przy użyciu Blunk i Arduino IDE - Sterowanie diodami LED przez Internet: 6 kroków ESP8266 NODEMCU BLYNK IOT samouczek - Esp8266 IOT przy użyciu Blunk i Arduino IDE - Sterowanie diodami LED przez Internet: 6 kroków](https://i.howwhatproduce.com/images/002/image-3085-27-j.webp)
ESP8266 NODEMCU BLYNK IOT samouczek | Esp8266 IOT przy użyciu Blunk i Arduino IDE | Sterowanie diodami LED przez Internet: Cześć, w tej instrukcji dowiemy się, jak korzystać z IOT z naszym ESP8266 lub Nodemcu. Użyjemy do tego aplikacji blynk. Więc użyjemy naszego esp8266 / nodemcu do sterowania diodami LED przez Internet. Więc aplikacja Blynk zostanie połączona z naszym esp8266 lub Nodemcu
Wykrywanie intruzów Arduino HiFive1 z alertami MQTT przy użyciu ESP32 lub ESP8266: 6 kroków
![Wykrywanie intruzów Arduino HiFive1 z alertami MQTT przy użyciu ESP32 lub ESP8266: 6 kroków Wykrywanie intruzów Arduino HiFive1 z alertami MQTT przy użyciu ESP32 lub ESP8266: 6 kroków](https://i.howwhatproduce.com/images/006/image-16258-14-j.webp)
HiFive1 Wykrywanie intruzów Arduino z alertami MQTT przy użyciu ESP32 lub ESP8266: HiFive1 to pierwsza kompatybilna z Arduino płytka RISC-V zbudowana z procesorem FE310 firmy SiFive. Płyta jest około 20 razy szybsza niż Arduino UNO, ale podobnie jak płyta UNO, nie ma łączności bezprzewodowej. Na szczęście istnieje kilka tań
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami)
![DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami) DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami)](https://i.howwhatproduce.com/images/003/image-6629-65-j.webp)
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: to moja pierwsza publikacja eva artykułu o majsterkowaniu w Internecie. Więc przepraszam za literówki, protokoły itp. Poniższe instrukcje pokazują, jak zrobić PRACOWĄ lutownicę na gorące powietrze odpowiednią do WSZYSTKICH zastosowań wymagających lutowania. To lutowanie gorącym powietrzem
Matryca wyświetlacza LED 5x4 przy użyciu stempla podstawowego 2 (bs2) i Charlieplexing: 7 kroków
![Matryca wyświetlacza LED 5x4 przy użyciu stempla podstawowego 2 (bs2) i Charlieplexing: 7 kroków Matryca wyświetlacza LED 5x4 przy użyciu stempla podstawowego 2 (bs2) i Charlieplexing: 7 kroków](https://i.howwhatproduce.com/images/003/image-8805-35-j.webp)
Matryca wyświetlacza LED 5x4 Korzystanie z Basic Stamp 2 (bs2) i Charlieplexing: Czy masz Basic Stamp 2 i kilka dodatkowych diod LED? Dlaczego nie pobawić się koncepcją charlieplexingu i stworzyć wyjście za pomocą zaledwie 5 pinów. W tym celu będę używał BS2e, ale każdy członek rodziny BS2 powinien działać