Talaan ng mga Nilalaman:

MAX7219 LED Matrix MQTT Gamit ang Esp8266: 6 Mga Hakbang
MAX7219 LED Matrix MQTT Gamit ang Esp8266: 6 Mga Hakbang

Video: MAX7219 LED Matrix MQTT Gamit ang Esp8266: 6 Mga Hakbang

Video: MAX7219 LED Matrix MQTT Gamit ang Esp8266: 6 Mga Hakbang
Video: DIY 32*8 Dot Matrix Spectrum Clock / RGB Full Color Voice Activated / Cascading Dimmable 2024, Nobyembre
Anonim
MAX7219 LED Matrix MQTT Gamit ang Esp8266
MAX7219 LED Matrix MQTT Gamit ang Esp8266

Sinusubukan kong ikonekta ang aking MAX7219 LED display sa isang MQTT server at makatanggap ng isang teksto mula sa MQTT subscription upang ipakita.

ngunit wala akong nakuhang anumang naaangkop na code sa internet, kaya nagsimula akong bumuo ng sarili kong…

at ang resulta ay dumating nang maayos…

  • maaari mong ipakita ang anumang teksto sa led display
  • maaari mong ayusin ang tindi ng display
  • maaari mong itakda ang bilis ng pag-scroll

Mga gamit

  1. Isang esp8266 development board. (ang kaso ko ay NODE MCU v1.0)
  2. MAX7219 LED Matrix Display.

Kailangan ng software:

  1. Arduino IDE.
  2. Isang MQTT server. (ang aking kaso Mosquitto)

Kinakailangan sa library:

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

Hakbang 1: I-setup ang Arduino IDE para sa Esp8266 Development

I-setup ang Arduino IDE para sa Esp8266 Development
I-setup ang Arduino IDE para sa Esp8266 Development

buksan ang mga kagustuhan ng Arduino pagkatapos i-paste ang nasa ibaba URL sa mga Aditional Boards Manager URL:

arduino.esp8266.com/stable/package_esp8266com_index.json

pagkatapos Mga Tool> Mga Lupon> Mga Board Manager at maghanap para sa esp8266 at i-install ito.

Ngayon ang iyong Arduino ide ay handa na para sa pagpapaunlad ng esp8266.

Hakbang 2: Mag-download ng Mga Panlabas na Aklatan

ngayon kailangan namin ng ilang mga aklatan para sa MAX7219 at MQTT Client.

i-download at i-set up natin ang mga aklatan

mag-navigate sa Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan sa Arduino IDE

at maghanap para sa EspMQTTClient at i-click ang I-install

NB: I-install ang lahat ng mga umaasang aklatan, mahalaga ito

Muling hanapin ang MD_MAX72xx at i-click ang I-install

Hakbang 3: Sumulat ng Ilang Code Ngayon

I-paste ngayon ang code sa ibaba

# isama

#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // count your device #define CLK_PIN D5 // or SCK #define DATA_PIN D7 // or MOSI #define CS_PIN D4 // or SS // you can set it sa anumang pin #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // baguhin alinsunod sa iyong uri ng display na 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; // default scroll delay uint8_t INTENSITY = 5; // default intensity 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_CHAR,} static char * p; static uint16_t curLen, showLen; static uint8_t cBuf [8]; uint8_t colData = 0; lumipat (estado) {case S_IDLE: p = curMessage; kung (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } estado = S_NEXT_CHAR; pahinga; kaso S_NEXT_CHAR: kung (* p == '\ 0') estado = S_IDLE; iba pa {showLen = mx.getChar (* p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; estado = S_SHOW_CHAR; } pahinga; kaso S_SHOW_CHAR: colData = cBuf [curLen ++]; kung (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // scroll along - mai-load ng callback ang lahat ng data prevTime = millis (); // panimulang punto para sa susunod na oras}} 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, "Smart Display"); } walang bisa saConnectionEstablished () {// MQTT paksa ng subscription para sa display text client.subscribe ("leddisplay / text", (const String & payload) {sprintf (curMessage, payload.c_str ());});

// Paksa ng subscription ng MQTT para sa kontrol ng intensity ng display

client.subscribe ("leddisplay / intensity", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // Paksa ng subscription ng MQTT para sa bilis ng pag-scroll ng display na kontrolado ang client.subscribe ("leddisplay / scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }

Para sa impormasyon ng detalye, mag-refer sa repository na ito

github.com/souravj96/max7219-mqtt-esp8266

Hakbang 4: Diagram ng Circuit

Diagram ng Circuit
Diagram ng Circuit

ikonekta ang MAX7219 display sa NODE MCU

Hakbang 5: Mag-upload ng Code sa Esp8266

Mag-upload ng Code sa Esp8266
Mag-upload ng Code sa Esp8266

piliin ang iyong tamang uri ng board at serial port pagkatapos ay pindutin ang upload.

Hakbang 6: Subukan ang Lahat

kung ang lahat ay tama pagkatapos ang iyong esp8266 ay konektado sa iyong MQTT server.

ngayon, kung may mai-publish sa leddisplay / paksa ng teksto na ipapakita.

{

paksa: "leddisplay / text", payload: "iyong mensahe dito"}

kung nais mong itakda ang tindi ng display

{

paksa: "leddisplay / intensity", payload: "2" // max ay 15 at min 0}

kung nais mong itakda ang bilis ng pag-scroll ng display

{

paksa: "leddisplay / scroll", payload: "100" // max ay 255 at min 0}

Maligayang pag-coding

Inirerekumendang: