Sisukord:

MAX7219 LED -maatriks MQTT Esp8266 abil: 6 sammu
MAX7219 LED -maatriks MQTT Esp8266 abil: 6 sammu

Video: MAX7219 LED -maatriks MQTT Esp8266 abil: 6 sammu

Video: MAX7219 LED -maatriks MQTT Esp8266 abil: 6 sammu
Video: MQTT Wi-Fi часы на esp8266 | MQTT informer 2024, November
Anonim
MAX7219 LED -maatriks MQTT, kasutades Esp8266
MAX7219 LED -maatriks MQTT, kasutades Esp8266

Üritasin ühendada oma MAX7219 LED -ekraani MQTT -serveriga ja saada kuvamiseks MQTT -i tellimusest teksti.

kuid ma ei saanud Internetist sobivat koodi, nii et hakkasin omaenda ehitama …

ja tulemus tuleb päris hea …

  • saate LED -ekraanil kuvada mis tahes teksti
  • saate reguleerida ekraani intensiivsust
  • saate reguleerida kerimiskiirust

Tarvikud

  1. Esp8266 arendusplaat. (minu puhul on see NODE MCU v1.0)
  2. MAX7219 LED -maatriksekraan.

Vajalik tarkvara:

  1. Arduino IDE.
  2. MQTT server. (minu juhtum Mosquitto)

Vajalik raamatukogu:

  1. ESP8266WiFi.h
  2. MD_MAX72xx.h
  3. EspMQTTClient.h

Samm: seadistage Arduino IDE Esp8266 arendamiseks

Seadistage Arduino IDE Esp8266 arenduseks
Seadistage Arduino IDE Esp8266 arenduseks

avage Arduino eelistused ja kleepige allolev URL täiendavate tahvlite halduri URL -idesse:

arduino.esp8266.com/stable/package_esp8266com_index.json

seejärel Tööriistad> Tahvlid> Tahvlite haldur ja otsige esp8266 ning installige see.

nüüd on teie Arduino ide esp8266 arendamiseks valmis.

Samm: laadige alla välised raamatukogud

nüüd vajame MAX7219 ja MQTT kliendi jaoks mõnda teeki.

laadime alla ja seadistame raamatukogud

navigeerige Arduino IDE -sse Sketch> Include Library> Manage Libraries

ja otsige üles EspMQTTClient ja klõpsake Install

NB: Installige kõik sõltuvad teegid, see on oluline

Otsige uuesti otsingut MD_MAX72xx ja klõpsake nuppu Installi

Samm: kirjutage kohe kood

Nüüd kleepige allolev kood

#kaasake

#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // teie seadmete arv #define CLK_PIN D5 // või SCK #define DATA_PIN D7 // või MOSI #define CS_PIN D4 // või SS // saate selle määrata suvalisele tihvtile #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // muuta vastavalt teie kuvatüübile 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; // vaikimisi kerimise viivitus uint8_t INTENSITEET = 5; // vaikimisi intensiivsus char curMessage [MESG_SIZE]; char newMessage [MESG_SIZE]; bool newMessageAvailable = vale; void scrollDataSink (uint8_t dev, MD_MAX72XX:: transformType_t t, uint8_t col) {} uint8_t scrollDataSource (uint8_t dev, MD_MAX72XX:: transformType_t t) {staatiline enum {S_IDLE, S_NEXSCH_SARCH, S_NEXT_CHAR_ staatiline süsi *p; staatiline uint16_t curLen, showLen; staatiline uint8_t cBuf [8]; uint8_t colData = 0; lüliti (olek) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = vale; } olek = S_NEXT_CHAR; murda; juhtum S_NEXT_CHAR: kui (*p == '\ 0') olek = S_IDLE; else {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; olek = S_SHOW_CHAR; } murda; juhtum S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // keri mööda - tagasihelistamine laadib kõik andmed prevTime = millis (); // järgmise aja alguspunkt}} void setup () {Serial.begin (115200); mx.begin (); mx.kontroll (MD_MAX72XX:: INTENSITEET, INTENSITEET); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "Nutikas ekraan"); } void onConnectionEstablished () {// MQTT tellimusteema kuvatava teksti jaoks client.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});

// MQTT tellimusteema kuva intensiivsuse juhtimiseks

client.subscribe ("leddisplay/intensity", (const String & kasulik koormus) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // MQTT tellimusteema kuvari kerimiskiiruse juhtimise kliendile.subscribe ("leddisplay/scroll", (const String & kasulik koormus) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }

Üksikasjalikku teavet leiate sellest hoidlast

github.com/souravj96/max7219-mqtt-esp8266

4. samm: vooluahela skeem

Lülitusskeem
Lülitusskeem

ühendage MAX7219 ekraan NODE MCU -ga

Samm: laadige kood esp8266 -sse üles

Laadige kood üles aadressile Esp8266
Laadige kood üles aadressile Esp8266

valige nüüd õige plaadi tüüp ja jadaport, seejärel klõpsake üleslaadimist.

6. samm: testige kõike

kui kõik läheb õigesti, ühendatakse teie esp8266 teie MQTT -serveriga.

nüüd, kui LEDdisplay/tekstiteemal midagi avaldatakse, mida kuvatakse.

{

teema: "leddisplay/text", kasulik koormus: "teie sõnum siin"}

kui soovite ekraani intensiivsust määrata

{

teema: "LED -ekraan/intensiivsus", kasulik koormus: "2" // max on 15 ja min 0}

kui soovite seadistada ekraani kerimiskiirust

{

teema: "leddisplay/scroll", kasulik koormus: "100" // max on 255 ja min 0}

Head kodeerimist

Soovitan: