সুচিপত্র:

MAX7219 LED ম্যাট্রিক্স MQTT ব্যবহার করে Esp8266: 6 ধাপ
MAX7219 LED ম্যাট্রিক্স MQTT ব্যবহার করে Esp8266: 6 ধাপ

ভিডিও: MAX7219 LED ম্যাট্রিক্স MQTT ব্যবহার করে Esp8266: 6 ধাপ

ভিডিও: MAX7219 LED ম্যাট্রিক্স MQTT ব্যবহার করে Esp8266: 6 ধাপ
ভিডিও: Wifi Display using MAX7219 Dot Matrix Display Panel 2024, নভেম্বর
Anonim
MAX7219 Esp8266 ব্যবহার করে LED ম্যাট্রিক্স MQTT
MAX7219 Esp8266 ব্যবহার করে LED ম্যাট্রিক্স MQTT

আমি আমার MAX7219 LED ডিসপ্লেকে MQTT সার্ভারে সংযুক্ত করার চেষ্টা করছিলাম এবং MQTT সাবস্ক্রিপশন থেকে একটি টেক্সট ডিসপ্লে করার জন্য পেয়েছিলাম।

কিন্তু আমি ইন্টারনেটে কোন উপযুক্ত কোড পাইনি, তাই আমি আমার নিজের তৈরি করা শুরু করেছি …

এবং ফলাফল বেশ ভাল আসে …

  • আপনি LED ডিসপ্লেতে যেকোন লেখা প্রদর্শন করতে পারেন
  • আপনি প্রদর্শন তীব্রতা সামঞ্জস্য করতে পারেন
  • আপনি স্ক্রলের গতি সেট করতে পারেন

সরবরাহ

  1. একটি esp8266 উন্নয়ন বোর্ড। (আমার ক্ষেত্রে এটি নোড এমসিইউ 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 Boards Manager URL- এ পেস্ট করুন:

arduino.esp8266.com/stable/package_esp8266com_index.json

তারপর সরঞ্জাম> বোর্ড> বোর্ড ম্যানেজার এবং esp8266 অনুসন্ধান করুন এবং এটি ইনস্টল করুন।

এখন আপনার Arduino আদর্শ esp8266 উন্নয়নের জন্য প্রস্তুত।

ধাপ 2: বাহ্যিক লাইব্রেরি ডাউনলোড করুন

এখন আমাদের MAX7219 এবং MQTT ক্লায়েন্টের জন্য কিছু লাইব্রেরি দরকার।

লাইব্রেরিগুলি ডাউনলোড এবং সেট আপ করা যাক

স্কেচ> লাইব্রেরি অন্তর্ভুক্ত করুন> Arduino IDE তে লাইব্রেরি পরিচালনা করুন

এবং EspMQTTClient অনুসন্ধান করুন এবং ইনস্টল ক্লিক করুন

NB: সমস্ত নির্ভরশীল লাইব্রেরি ইনস্টল করুন, এটি গুরুত্বপূর্ণ

আবার MD_MAX72xx অনুসন্ধান করুন এবং ইনস্টল ক্লিক করুন

ধাপ 3: এখন কিছু কোড লিখুন

এখন নিচের কোডটি পেস্ট করুন

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত করুন #অন্তর্ভুক্ত করুন #অন্তর্ভুক্ত করুন "EspMQTTClient.h" #সর্বোচ্চ MAX_DEVICES 4 // আপনার ডিভাইসের সংখ্যা #ডিফাইন CLK_PIN D5 // অথবা SCK #ডিফাইন ডেটা_পিন D7 // অথবা MOSI #ডিএসফাইন CS_PIN D4 // অথবা SS // আপনি সেট করতে পারেন যেকোনো পিনে #DarfarE_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; // ডিফল্ট তীব্রতা চার curMessage [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) {স্ট্যাটিক এনাম {S_IDLE, S_SHE_SHE_SHE, SOWS_SHE_SHE, SOWS_SHE_SHE, SOWS_SHES স্ট্যাটিক চর *পি; স্ট্যাটিক uint16_t curLen, showLen; স্ট্যাটিক uint8_t cBuf [8]; uint8_t colData = 0; সুইচ (অবস্থা) {কেস S_IDLE: p = curMessage; যদি (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); কার্লেন = 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:: INTENSITY, INTENSITY); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "স্মার্ট ডিসপ্লে"); } void onConnectionEstablished () {// MQTT সাবস্ক্রিপশন টপিক ডিসপ্লে টেক্সট ক্লায়েন্টের জন্য। সাবস্ক্রাইব করুন ("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 সাবস্ক্রিপশন টপিক। } অকার্যকর লুপ () {client.loop (); scrollText (); }

বিস্তারিত তথ্যের জন্য, এই সংগ্রহস্থল পড়ুন

github.com/souravj96/max7219-mqtt-esp8266

ধাপ 4: সার্কিট ডায়াগ্রাম

বর্তনী চিত্র
বর্তনী চিত্র

MAX7219 ডিসপ্লেকে NODE MCU এর সাথে সংযুক্ত করুন

ধাপ 5: Esp8266 এ কোড আপলোড করুন

Esp8266 এ কোড আপলোড করুন
Esp8266 এ কোড আপলোড করুন

এখন আপনার সঠিক বোর্ড টাইপ এবং সিরিয়াল পোর্ট নির্বাচন করুন তারপর আপলোড করুন।

ধাপ 6: সবকিছু পরীক্ষা করুন

যদি সবকিছু ঠিক হয়ে যায় তাহলে আপনার esp8266 আপনার MQTT সার্ভারের সাথে সংযুক্ত হবে।

এখন, যদি কিছু প্রদর্শিত হবে LEDdisplay/পাঠ্য বিষয় প্রকাশ করা হবে।

{

বিষয়: "নেতৃত্ব প্রদর্শন/পাঠ্য", পেলোড: "আপনার বার্তা এখানে"}

আপনি যদি প্রদর্শনের তীব্রতা সেট করতে চান

{

বিষয়: "নেতৃত্ব প্রদর্শন/তীব্রতা", পেলোড: "2" // সর্বোচ্চ 15 এবং মিনিট 0}

আপনি যদি স্ক্রলের গতি প্রদর্শন করতে চান

{

বিষয়: "LEDdisplay/scroll", পেলোড: "100" // সর্বোচ্চ 255 এবং মিনিট 0}

শুভ কোডিং

প্রস্তাবিত: