جدول المحتويات:
- اللوازم
- الخطوة 1: إعداد Arduino IDE لتطوير Esp8266
- الخطوة 2: تنزيل مكتبات خارجية
- الخطوة 3: اكتب بعض التعليمات البرمجية الآن
- الخطوة 4: مخطط الدائرة
- الخطوة 5: قم بتحميل الكود إلى Esp8266
- الخطوة السادسة: اختبر كل شيء
فيديو: MAX7219 LED Matrix MQTT باستخدام Esp8266: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:37
كنت أحاول توصيل شاشة MAX7219 LED الخاصة بي بخادم MQTT وتلقي رسالة نصية من اشتراك MQTT لعرضها.
لكنني لم أحصل على أي رمز مناسب على الإنترنت ، لذلك بدأت في إنشاء رمز خاص بي …
وتأتي النتيجة بشكل جيد …
- يمكنك عرض أي نص على شاشة LED
- يمكنك ضبط شدة العرض
- يمكنك ضبط سرعة التمرير
اللوازم
- مجلس التنمية esp8266. (حالتي هي NODE MCU v1.0)
- شاشة عرض مصفوفة LED MAX7219.
البرامج المطلوبة:
- اردوينو IDE.
- خادم MQTT. (حالتي موسكيتو)
المكتبة المطلوبة:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
الخطوة 1: إعداد 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 بخادم MQTT الخاص بك.
الآن ، إذا كان سيتم نشر أي شيء في موضوع leddisplay / text الذي سيتم عرضه.
{
الموضوع: "leddisplay / text" ، الحمولة: "رسالتك هنا"}
إذا كنت تريد ضبط شدة العرض
{
الموضوع: "عرض الشاشة / الكثافة" ، الحمولة: "2" // الحد الأقصى هو 15 والدقيقة 0}
إذا كنت ترغب في ضبط سرعة التمرير للعرض
{
الموضوع: "leddisplay / scroll" ، الحمولة: "100" // max هي 255 والدقيقة 0}
ترميز سعيد
موصى به:
التقط الصور وأرسلها باستخدام ESP32-Cam باستخدام معالج ESP8266 WeMos D1 R1 Wifi مع Uno: 7 خطوات
التقط الصور وأرسلها باستخدام ESP32-Cam باستخدام معالج ESP8266 WeMos D1 R1 Wifi مع Uno: التقط الصورة باستخدام ESP32-Cam (OV2640) باستخدام معالج ESP8266 WeMos D1 R1 WiFI مع Uno وأرسلها إلى البريد الإلكتروني ، واحفظها في Google Drive وأرسلها إلى Whatsapp باستخدام Twilio. المتطلبات: معالج ESP8266 WeMos D1 R1 WiFI مع Uno (https: // protosupplies
ساعة الإنترنت: عرض التاريخ والوقت باستخدام OLED باستخدام ESP8266 NodeMCU مع بروتوكول NTP: 6 خطوات
ساعة الإنترنت: عرض التاريخ والوقت باستخدام OLED باستخدام ESP8266 NodeMCU مع بروتوكول NTP: مرحبًا يا رفاق في هذه التعليمات ، سنبني ساعة إنترنت ستحصل على وقت من الإنترنت لذلك لن يحتاج هذا المشروع إلى أي RTC لتشغيله ، وسيحتاج فقط إلى العمل اتصال بالإنترنت وفي هذا المشروع تحتاج إلى esp8266 الذي سيكون له
4 في 1 MAX7219 Dot Matrix Display Module التعليمي باستخدام Arduino UNO: 5 خطوات
4 في 1 MAX7219 Dot Matrix Display Module التعليمي باستخدام Arduino UNO: الوصف: هل تبحث عن سهولة التحكم في مصفوفة LED؟ يجب أن تكون وحدة العرض النقطية 4 في 1 مناسبة لك. تأتي الوحدة بأكملها في أربعة مصفوفة نقطية كاثود مشتركة 8x8 RED مزودة بـ MAX7219 IC لكل منها. رائع لعرض النص قيد التشغيل أ
التحكم في المؤازرة باستخدام MPU6050 بين Arduino و ESP8266 باستخدام HC-12: 6 خطوات
التحكم في المؤازرة باستخدام MPU6050 بين Arduino و ESP8266 مع HC-12: في هذا المشروع ، نتحكم في موضع محرك مؤازر باستخدام mpu6050 و HC-12 للاتصال بين Arduino UNO و ESP8266 NodeMCU
Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (درجة الحرارة): 6 خطوات
Matrix Led X4 MAX7219 + ESP8266 12E + Sensor DS18b20 (درجة الحرارة): في هذه الفرصة ، سنجري اختبارًا سريعًا لمصفوفة بقيادة MAX7219 المدمجة مع الوحدة النمطية ESP8266 وحتى لا يكون الأمر بسيطًا للغاية ، سنقرأ درجة حرارة المستشعر DS18B20. في البرامج التعليمية المستقبلية سنقوم بدمجه مع ألواح أخرى