جدول المحتويات:

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 Clock, Weather, News, Bitcion 2024, شهر نوفمبر
Anonim
MAX7219 LED مصفوفة MQTT باستخدام Esp8266
MAX7219 LED مصفوفة MQTT باستخدام Esp8266

كنت أحاول توصيل شاشة MAX7219 LED الخاصة بي بخادم 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

افتح تفضيلات Arduino ثم الصق عنوان URL أدناه في عناوين URL لـ Aditional Boards Manager:

arduino.esp8266.com/stable/package_esp8266com_index.json

ثم Tools> Boards> Boards Manager وابحث عن esp8266 وقم بتثبيته.

الآن ID الخاص بك Arduino جاهز لتطوير esp8266.

الخطوة 2: تنزيل مكتبات خارجية

نحتاج الآن إلى بعض المكتبات لـ MAX7219 و MQTT Client.

لنقم بتنزيل المكتبات وإعدادها

انتقل إلى Sketch> Include Library> Manage Libraries على Arduino IDE

وابحث عن EspMQTTClient وانقر فوق تثبيت

ملحوظة: قم بتثبيت جميع المكتبات التابعة ، من المهم

ابحث مرة أخرى عن MD_MAX72xx وانقر فوق تثبيت

الخطوة 3: اكتب بعض التعليمات البرمجية الآن

الآن قم بلصق الكود أدناه

#يشمل

#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // your device count #define CLK_PIN D5 // أو SCK #define DATA_PIN D7 // أو MOSI #define CS_PIN D4 // أو SS // يمكنك تعيينه إلى أي دبوس #define 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 كثافة = 5 ؛ // الكثافة الافتراضية char curMessage [MESG_SIZE] ؛ char newMessage [MESG_SIZE] ؛ bool newMessageAvailable = false ؛ باطل 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_SHOW_CHAR، S_SHOW_SPAR؛ شار ثابت * ع ؛ ثابت uint16_t curLen ، showLen ؛ ثابت uint8_t cBuf [8] ؛ uint8_t colData = 0 ؛ التبديل (حالة) {حالة S_IDLE: p = curMessage ؛ if (newMessageAvailable) {strcpy (curMessage، newMessage) ؛ newMessageAvailable = خطأ ؛ } الدولة = 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 ++] ؛ إذا (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL) ؛ // التمرير على طول - سيؤدي رد الاتصال إلى تحميل جميع البيانات prevTime = millis () ؛ // نقطة البداية في المرة القادمة}} إعداد باطل () {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 Subscribe theme for display text client.subscribe ("leddisplay / text"، (const String & payload) {sprintf (curMessage، payload.c_str ())؛})؛

// موضوع اشتراك MQTT للتحكم في كثافة العرض

client.subscribe ("leddisplay /ensity"، (سلسلة const & الحمولة) {mx.control (MD_MAX72XX:: INTENSITY، payload.toInt ())؛})؛ // موضوع اشتراك MQTT لعميل التحكم في سرعة التمرير للعرض. } حلقة باطلة () {client.loop () ؛ scrollText () ، }

للحصول على معلومات تفصيلية ، راجع هذا المستودع

github.com/souravj96/max7219-mqtt-esp8266

الخطوة 4: مخطط الدائرة

مخطط الرسم البياني
مخطط الرسم البياني

قم بتوصيل شاشة MAX7219 مع NODE MCU

الخطوة 5: قم بتحميل الكود إلى Esp8266

قم بتحميل الكود إلى Esp8266
قم بتحميل الكود إلى Esp8266

اختر الآن نوع اللوحة والمنفذ التسلسلي الصحيحين ثم اضغط على "تحميل".

الخطوة السادسة: اختبر كل شيء

إذا سارت الأمور بشكل صحيح ، فسيتم توصيل esp8266 بخادم MQTT الخاص بك.

الآن ، إذا كان سيتم نشر أي شيء في موضوع leddisplay / text الذي سيتم عرضه.

{

الموضوع: "leddisplay / text" ، الحمولة: "رسالتك هنا"}

إذا كنت تريد ضبط شدة العرض

{

الموضوع: "عرض الشاشة / الكثافة" ، الحمولة: "2" // الحد الأقصى هو 15 والدقيقة 0}

إذا كنت ترغب في ضبط سرعة التمرير للعرض

{

الموضوع: "leddisplay / scroll" ، الحمولة: "100" // max هي 255 والدقيقة 0}

ترميز سعيد

موصى به: