Агуулгын хүснэгт:

MAX7219 LED Matrix MQTT нь Esp8266: 6 алхамыг ашигладаг
MAX7219 LED Matrix MQTT нь Esp8266: 6 алхамыг ашигладаг

Видео: MAX7219 LED Matrix MQTT нь Esp8266: 6 алхамыг ашигладаг

Видео: MAX7219 LED Matrix MQTT нь Esp8266: 6 алхамыг ашигладаг
Видео: ESP8266 LED Matrix Bar Weather Station V1 - gClock/Weather/Message Scrolling Web Server (1) 2024, Арваннэгдүгээр
Anonim
Esp8266 ашиглан MAX7219 LED матриц MQTT
Esp8266 ашиглан MAX7219 LED матриц MQTT

Би MAX7219 LED дэлгэцээ MQTT серверт холбож, MQTT захиалгаас текстийг хүлээн авахыг оролдож байна.

гэхдээ би интернетэд тохирох код аваагүй тул би өөрөө бүтээж эхлэв …

мөн үр дүн нь маш сайн ирдэг …

  • Та ямар ч текстийг LED дэлгэц дээр харуулах боломжтой
  • Та дэлгэцийн эрчмийг тохируулж болно
  • та гүйлгэх хурдыг тохируулж болно

Хангамж

  1. Esp8266 хөгжлийн самбар. (миний хувьд энэ бол NODE MCU v1.0)
  2. MAX7219 LED матрицын дэлгэц.

Шаардлагатай програм хангамж:

  1. Arduino IDE.
  2. MQTT сервер. (миний шумуул)

Номын сан шаардлагатай:

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

Алхам 1: Esp8266 хөгжүүлэлтэд зориулж Arduino IDE -ийг тохируулна уу

Esp8266 Хөгжүүлэлтэд зориулж Arduino IDE -ийг тохируулна уу
Esp8266 Хөгжүүлэлтэд зориулж Arduino IDE -ийг тохируулна уу

Arduino -ийн тохиргоог нээгээд доорх URL -г Aditional Board Board Manager URL -д оруулна уу.

arduino.esp8266.com/stable/package_esp8266com_index.json

дараа нь Хэрэгслүүд> Самбарууд> Самбарын менежерийг хайж esp8266 -ийг хайж олоод суулгаарай.

одоо таны Arduino ide esp8266 боловсруулахад бэлэн боллоо.

Алхам 2: Гадаад номын санг татаж авах

одоо бидэнд MAX7219 болон MQTT Client -ийн зарим номын сан хэрэгтэй байна.

номын санг татаж аваад тохируулцгаая

Sketch> Номын санг оруулах> Arduino IDE дээрх номын санг удирдах хэсэгт очно уу

EspMQTTClient -ийг хайж олоод Install дээр дарна уу

Тэмдэглэл: Бүх хамааралтай номын санг суулгах нь чухал юм

MD_MAX72xx -ийг дахин хайгаад Install дээр дарна уу

Алхам 3: Одоо хэдэн код бичээрэй

Одоо доорх кодыг оруулна уу

#оруулах

#include #include #include "EspMQTTClient.h" #MAX_DEVICES 4 -ийг тодорхойлно // таны төхөөрөмжийн тоог #CLK_PIN D5 / эсвэл SCK #define DATA_PIN D7 // эсвэл MOSI -ийг тодорхойлно уу #CS_PIN D4 // эсвэл SS // үүнийг тохируулж болно. дурын зүү рүү #тодорхойлох HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // дэлгэцийн төрлөөс хамааран өөрчлөх 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; // анхдагч гүйлгэх саатал uint8_t INTENSITY = 5; // анхдагч эрчим char charMessage [MESG_SIZE]; char newMessage [MESG_SIZE]; bool newMessageAvailable = худал; 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_NEX_CHOW_, S_NEXT_CHAR_, S_NEX_CHOW_, S_NEX_CHOW_ статик char *p; статик uint16_t curLen, showLen; статик uint8_t cBuf [8]; uint8_t colData = 0; switch (state) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = худал; } төлөв = S_NEXT_CHAR; завсарлага; тохиолдолд S_NEXT_CHAR: хэрэв (*p == '\ 0') төлөв = S_IDLE; өөр {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; төлөв = S_SHOW_CHAR; } завсарлага; тохиолдол S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // хажуу тийш гүйлгэх - буцааж залгах нь бүх өгөгдлийг ачаалах болно prevTime = millis (); // дараагийн удаа эхлэх цэг}} 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, "Ухаалаг дэлгэц"); } void onConnectionEstablished () {// MQTT захиалгын сэдэв харуулах текст клиент.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});

// Дэлгэцийн эрч хүчийг хянах MQTT захиалгын сэдэв

client.subscribe ("leddisplay/эрчим", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // MQTT захиалгын сэдэв дэлгэцийн гүйлгэх хурдыг хянах клиент.subscribe ("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }

Дэлгэрэнгүй мэдээллийг энэ репозитороос авна уу

github.com/souravj96/max7219-mqtt-esp8266

Алхам 4: Хэлхээ диаграм

Хэлхээ диаграм
Хэлхээ диаграм

MAX7219 дэлгэцийг NODE MCU -тай холбоно уу

Алхам 5: Кодыг Esp8266 руу байршуулна уу

Esp8266 руу код оруулах
Esp8266 руу код оруулах

одоо зөв самбарын төрөл ба цуваа портыг сонгоод байршуулах дээр дарна уу.

Алхам 6: Бүгдийг туршиж үзээрэй

Хэрэв бүх зүйл зөв хийгдсэн бол таны esp8266 таны MQTT сервертэй холбогдох болно.

одоо, хэрэв LEDdisplay/текст сэдвээр ямар нэгэн зүйл нийтлэх юм бол харуулах болно.

{

сэдэв: "leddisplay/текст", ачаалал: "энд таны зурвас"}

Хэрэв та дэлгэцийн эрчмийг тохируулахыг хүсч байвал

{

сэдэв: "leddisplay/эрчим", ачаалал: "2" // дээд тал нь 15 ба мин 0}

Хэрэв та дэлгэцийн гүйлгэх хурдыг тохируулахыг хүсч байвал

{

сэдэв: "leddisplay/гүйлгэх", ачаалал: "100" // хамгийн их нь 255 ба мин 0}

Аз жаргалтай кодчилол

Зөвлөмж болгож буй: