فهرست مطالب:

MAX7219 LED Matrix MQTT با استفاده از Esp8266: 6 مرحله
MAX7219 LED Matrix MQTT با استفاده از Esp8266: 6 مرحله

تصویری: MAX7219 LED Matrix MQTT با استفاده از Esp8266: 6 مرحله

تصویری: MAX7219 LED Matrix MQTT با استفاده از Esp8266: 6 مرحله
تصویری: Using HT16K33 4 digit seven segment display with ESP8266 NodeMCU and D1 Mini 2024, نوامبر
Anonim
MAX7219 LED Matrix MQTT با استفاده از Esp8266
MAX7219 LED Matrix MQTT با استفاده از Esp8266

من سعی می کردم صفحه نمایش LED MAX7219 خود را به سرور MQTT متصل کرده و متنی را از اشتراک MQTT برای نمایش دریافت کنم.

اما من هیچ کد مناسبی در اینترنت دریافت نکردم ، بنابراین شروع به ساختن کد خودم کردم …

و نتیجه کاملاً خوب می آید…

  • می توانید هر متنی را روی صفحه نمایش led نشان دهید
  • می توانید شدت صفحه نمایش را تنظیم کنید
  • می توانید سرعت حرکت را تنظیم کنید

تدارکات

  1. یک برد توسعه ای esp8266. (مورد من NODE MCU v1.0 است)
  2. صفحه نمایش ماتریس LED MAX7219

نرم افزار مورد نیاز:

  1. آردوینو IDE
  2. یک سرور MQTT (مورد من پشه)

کتابخانه مورد نیاز:

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

مرحله 1: Arduino IDE را برای توسعه Esp8266 راه اندازی کنید

Arduino IDE را برای توسعه Esp8266 تنظیم کنید
Arduino IDE را برای توسعه Esp8266 تنظیم کنید

تنظیمات برگزیده آردوینو را باز کنید و سپس آدرس اینترنتی زیر را در آدرس های مدیران Adboard Boards paste کنید:

arduino.esp8266.com/stable/package_esp8266com_index.json

سپس Tools> Boards> Boards Manager و esp8266 را جستجو کرده و آن را نصب کنید.

اکنون ایده آردوینو شما برای توسعه esp8266 آماده است.

مرحله 2: بارگیری کتابخانه های خارجی

در حال حاضر ما به چند کتابخانه برای MAX7219 و MQTT Client نیاز داریم.

بیایید کتابخانه ها را بارگیری و راه اندازی کنیم

به Sketch> Include Library> Manage Libraries on Arduino IDE بروید

و EspMQTTClient را جستجو کرده و روی Install کلیک کنید

نکته: همه کتابخانه های وابسته را نصب کنید ، مهم است

دوباره MD_MAX72xx را جستجو کرده و روی نصب کلیک کنید

مرحله 3: اکنون چند کد بنویسید

حالا کد زیر را وارد کنید

#عبارتند از

#شامل #شامل #شامل #EspMQTTClient.h " #تعریف MAX_DEVICES 4 // تعداد دستگاه شما #تعریف CLK_PIN D5 // یا SCK #تعریف 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 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) {شمارش ثابت {S_IDLE، S_NEXT_CHAR =، S_NEXT_CHAR =، char static *p؛ static uint16_t curLen ، showLen؛ static uint8_t cBuf [8]؛ uint8_t colData = 0؛ switch (state) {case S_IDLE: p = curMessage؛ if (newMessageAvailable) {strcpy (curMessage، newMessage)؛ newMessageAvailable = false؛ } state = S_NEXT_CHAR؛ زنگ تفريح؛ مورد S_NEXT_CHAR: if (*p == '\ 0') state = S_IDLE؛ else {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:: شدت ، شدت) ؛ mx.setShiftDataInCallback (scrollDataSource) ؛ mx.setShiftDataOutCallback (scrollDataSink) ؛ curMessage [0] = newMessage [0] = '\ 0'؛ sprintf (curMessage ، "صفحه نمایش هوشمند") ؛ } void onConnectionEstablished () {// موضوع اشتراک MQTT برای نمایش متن متن client.subscribe ("leddisplay/text"، (const String & payload) {sprintf (curMessage، payload.c_str ())؛})؛

// موضوع اشتراک MQTT برای کنترل شدت نمایش

client.subscribe ("leddisplay/intensity"، (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY، payload.toInt ())؛})؛ // مبحث اشتراک MQTT برای صفحه نمایش پیمایش سرعت کنترل client.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/text منتشر شود که نمایش داده می شود.

{

موضوع: "leddisplay/text" ، محموله: "پیام شما اینجاست"}

اگر می خواهید شدت نمایش را تنظیم کنید

{

موضوع: "نمایشگر/شدت" ، بار: "2" // حداکثر 15 و دقیقه 0}

اگر می خواهید سرعت حرکت صفحه نمایش را تنظیم کنید

{

موضوع: "leddisplay/scroll" ، بار: "100" // حداکثر 255 و دقیقه 0}

کد نویسی مبارک

توصیه شده: