Obsah:
- Zásoby
- Krok 1: Nastavte Arduino IDE pre vývoj Esp8266
- Krok 2: Stiahnite si externé knižnice
- Krok 3: Napíšte kód teraz
- Krok 4: Schéma zapojenia
- Krok 5: Nahrajte kód do Esp8266
- Krok 6: Všetko vyskúšajte
Video: MAX7219 LED Matrix MQTT pomocou Esp8266: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Pokúšal som sa pripojiť svoj LED displej MAX7219 k serveru MQTT a dostať text z predplatného MQTT na zobrazenie.
ale na internete som nedostal žiadny vhodný kód, a tak som si začal budovať vlastný…
a výsledok sa dostaví celkom dobre …
- na LED displeji môžete zobraziť ľubovoľný text
- môžete nastaviť intenzitu zobrazenia
- môžete nastaviť rýchlosť posúvania
Zásoby
- Vývojová doska esp8266. (v mojom prípade je to NODE MCU v1.0)
- Maticový displej MAX7219 LED.
Potrebný softvér:
- Arduino IDE.
- Server MQTT. (môj prípad Mosquitto)
Potrebná knižnica:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Krok 1: Nastavte Arduino IDE pre vývoj Esp8266
otvorte predvoľby Arduina a potom prilepte nižšie uvedenú adresu URL do adries URL dodatočného správcu dosiek:
arduino.esp8266.com/stable/package_esp8266com_index.json
potom Nástroje> Dosky> Správca dosiek a vyhľadajte esp8266 a nainštalujte ho.
teraz je váš Arduino ide pripravený na vývoj esp8266.
Krok 2: Stiahnite si externé knižnice
teraz potrebujeme nejaké knižnice pre klienta MAX7219 a MQTT.
stiahneme a nastavíme knižnice
prejdite na Sketch> Include Library> Manage Libraries on Arduino IDE
a vyhľadajte EspMQTTClient a kliknite na Inštalovať
Poznámka: Nainštalujte všetky závislé knižnice, je to dôležité
Znova vyhľadajte MD_MAX72xx a kliknite na Inštalovať
Krok 3: Napíšte kód teraz
Teraz prilepte nižšie uvedený kód
#zahrnúť
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // počet vašich zariadení #define CLK_PIN D5 // alebo SCK #define DATA_PIN D7 // alebo MOSI #define CS_PIN D4 // alebo SS // môžete ho nastaviť na ľubovoľný pin #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // zmena podľa typu zobrazenia 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; // predvolené oneskorenie posúvania uint8_t INTENSITY = 5; // predvolená intenzita 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_; S_SHOW_ statický znak *p; statický uint16_t curLen, showLen; statický uint8_t cBuf [8]; uint8_t colData = 0; switch (state) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } stav = S_NEXT_CHAR; prestávka; prípad S_NEXT_CHAR: if (*p == '\ 0') state = S_IDLE; else {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; stav = S_SHOW_CHAR; } prestávka; prípad S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // posúvajte sa - pri spätnom volaní sa načítajú všetky údaje prevTime = millis (); // východiskový bod nabudúce}} void setup () {Serial.begin (115200); mx.begin (); mx.control (MD_MAX72XX:: INTENSITY, INTENSITY); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, „inteligentný displej“); } void onConnectionEstablished () {// Téma predplatného MQTT pre textový text client.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// Téma predplatného MQTT pre ovládač intenzity zobrazenia
client.subscribe ("leddisplay/intenzita", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // Téma predplatného MQTT pre ovládanie rýchlosti posuvu displeja client.subscribe ("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Podrobné informácie nájdete v tomto úložisku
github.com/souravj96/max7219-mqtt-esp8266
Krok 4: Schéma zapojenia
prepojte displej MAX7219 s NODE MCU
Krok 5: Nahrajte kód do Esp8266
teraz vyberte správny typ dosky a sériový port a potom kliknite na tlačidlo Nahrať.
Krok 6: Všetko vyskúšajte
ak je všetko v poriadku, váš esp8266 bude pripojený k vášmu serveru MQTT.
teraz, ak bude niečo publikované na LED displeji/textovej téme, ktorá sa zobrazí.
{
téma: "leddisplay/text", užitočné zaťaženie: "vaša správa tu"}
ak chcete nastaviť intenzitu zobrazenia
{
téma: "leddisplej/intenzita", užitočné zaťaženie: "2" // max je 15 a min 0}
ak chcete nastaviť rýchlosť posúvania displeja
{
téma: "leddisplay/scroll", užitočné zaťaženie: "100" // max je 255 a min 0}
Veselé kódovanie
Odporúča:
Zachytávajte a odosielajte obrázky pomocou kamery ESP32-Cam pomocou Wi-Fi procesora ESP8266 WeMos D1 R1 s Uno: 7 krokov
Zachytávajte a odosielajte obrázky pomocou kamery ESP32-Cam pomocou ESP8266 WeMos D1 R1 Wifi procesora s Uno: Zachyťte obrázok pomocou ESP32-Cam (OV2640) pomocou procesora ESP8266 WeMos D1 R1 WiFI s Uno a pošlite ju na e-mail, uložte na Disk Google a pošlite na Whatsapp pomocou Twilio. Požiadavky: ESP8266 WeMos D1 R1 WiFI procesor s Uno (https: // protosupplies
Internetové hodiny: Zobrazenie dátumu a času pomocou OLED pomocou ESP8266 NodeMCU s protokolom NTP: 6 krokov
Internetové hodiny: Zobrazenie dátumu a času pomocou OLED pomocou ESP8266 NodeMCU s protokolom NTP: Ahoj chlapci, v tomto návode postavíme internetové hodiny, ktoré získajú čas z internetu, takže tento projekt nebude potrebovať na spustenie žiadne RTC, ale bude potrebovať iba fungujúce internetové pripojenie A na tento projekt potrebujete esp8266, ktorý bude mať
Ovládanie serva pomocou MPU6050 medzi Arduino a ESP8266 pomocou HC-12: 6 krokov
Ovládanie serva pomocou MPU6050 medzi Arduino a ESP8266 pomocou HC-12: V tomto projekte riadime polohu servomotora pomocou mpu6050 a HC-12 na komunikáciu medzi Arduino UNO a ESP8266 NodeMCU
Ovládajte dosku LED pomocou telefónu s NodeMCU, ESP8266 a MAX7219: 8 krokov
Ovládanie dosky LED pomocou telefónu S NodeMCU, ESP8266 a MAX7219: Chcem používať telefón na ovládanie dosky LED ako smerový signál. ESP8266 bude teda fungovať ako prístupový bod, mikrokontrolér a tiež server. Webový server bude mať jednoduchú webovú stránku s 3 tlačidlami: Otočte VĽAVO, Otočte VPRAVO a Otočte SOS. Tex
Matrix Led X4 MAX7219 + ESP8266 12E + senzor DS18b20 (teplota): 6 krokov
Matrix Led X4 MAX7219 + ESP8266 12E + senzor DS18b20 (teplota): Pri tejto príležitosti vykonáme rýchly test na maticovú diódu s integrovaným MAX7219 s modulom ESP8266 a aby to nebolo veľmi jednoduché, prečítame teplotu senzora DS18B20. V budúcich tutoriáloch ho integrujeme do iných platforiem