Სარჩევი:
- მარაგები
- ნაბიჯი 1: დააინსტალირეთ Arduino IDE Esp8266 განვითარებისათვის
- ნაბიჯი 2: ჩამოტვირთეთ გარე ბიბლიოთეკები
- ნაბიჯი 3: დაწერე ახლავე კოდი
- ნაბიჯი 4: სქემის დიაგრამა
- ნაბიჯი 5: ატვირთეთ კოდი Esp8266– ში
- ნაბიჯი 6: შეამოწმეთ ყველაფერი
ვიდეო: MAX7219 LED მატრიცა MQTT Esp8266 გამოყენებით: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
მე ვცდილობდი ჩემი MAX7219 LED ეკრანის დაკავშირება MQTT სერვერთან და საჩვენებლად MQTT გამოწერის ტექსტის მიღება.
მაგრამ მე ვერ მივიღე შესაბამისი კოდი ინტერნეტში, ამიტომ დავიწყე საკუთარი თავის შექმნა …
და შედეგი საკმაოდ კარგია …
- თქვენ შეგიძლიათ აჩვენოთ ნებისმიერი ტექსტი led ეკრანზე
- თქვენ შეგიძლიათ შეცვალოთ ეკრანის ინტენსივობა
- შეგიძლიათ დააყენოთ გადახვევის სიჩქარე
მარაგები
- Esp8266 განვითარების დაფა. (ჩემს შემთხვევაში ეს არის NODE MCU v1.0)
- MAX7219 LED მატრიქსის ჩვენება.
საჭირო პროგრამული უზრუნველყოფა:
- Arduino IDE.
- MQTT სერვერი. (ჩემი საქმე კოღო)
ბიბლიოთეკა საჭიროა:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
ნაბიჯი 1: დააინსტალირეთ Arduino IDE Esp8266 განვითარებისათვის
გახსენით Arduino– ს პარამეტრები, შემდეგ ჩასვით ქვემოთ მოყვანილი URL დამატებითი დაფების მენეჯერის URL– ში:
arduino.esp8266.com/stable/package_esp8266com_index.json
შემდეგ ინსტრუმენტები> დაფები> დაფების მენეჯერი და მოძებნეთ esp8266 და დააინსტალირეთ.
ახლა თქვენი Arduino ide მზად არის esp8266 განვითარებისათვის.
ნაბიჯი 2: ჩამოტვირთეთ გარე ბიბლიოთეკები
ახლა ჩვენ გვჭირდება ბიბლიოთეკები MAX7219 და MQTT კლიენტებისთვის.
გადმოვიტვირთოთ და შევქმნათ ბიბლიოთეკები
ნავიგაცია ჩანახატზე> ბიბლიოთეკის ჩართვა> ბიბლიოთეკების მართვა Arduino IDE– ში
და მოძებნეთ EspMQTTClient და დააწკაპუნეთ ინსტალაციაზე
NB: დააინსტალირეთ ყველა დამოკიდებული ბიბლიოთეკა, ეს მნიშვნელოვანია
კვლავ მოძებნეთ 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 = ყალბი; void scrollDataSink (uint8_t dev, MD_MAX72XX:: transformType_t t, uint8_t col) {} uint8_t scrollDataSource (uint8_t dev, MD_MAX72XX:: transformType_t t) {სტატიკური enum {S_IDLE, S_NEXT_CHAR =, S_SPEHE_CHAR =,; სტატიკური char *p; სტატიკური uint16_t curLen, showLen; სტატიკური uint8_t cBuf [8]; uint8_t colData = 0; გადართვა (მდგომარეობა) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = ყალბი; } მდგომარეობა = S_NEXT_CHAR; შესვენება; საქმე S_NEXT_CHAR: თუ (*p == '\ 0') მდგომარეობა = 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. დაწყება (); mx.control (MD_MAX72XX:: ინტენსივობა, ინტენსივობა); 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/intensity", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // MQTT გამოწერის თემა ჩვენების გადახვევის სიჩქარის კონტროლის კლიენტისთვის. გამოწერა ("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– ში
ახლა შეარჩიეთ დაფის სწორი ტიპი და სერიული პორტი, შემდეგ დააჭირეთ ატვირთვას.
ნაბიჯი 6: შეამოწმეთ ყველაფერი
თუ ყველაფერი სწორად მიდის, მაშინ თქვენი esp8266 იქნება დაკავშირებული თქვენს MQTT სერვერთან.
ახლა, თუ რამე გამოქვეყნდება leddisplay/ტექსტურ თემაზე, რომელიც გამოჩნდება.
{
თემა: "leddisplay/text", payload: "your message here"}
თუ გსურთ ეკრანის ინტენსივობის დაყენება
{
თემა: "leddisplay/intensity", დატვირთვა: "2" // max არის 15 და min 0}
თუ გსურთ ეკრანის გადაადგილების სიჩქარის დაყენება
{
თემა: "leddisplay/scroll", დატვირთვა: "100" // max არის 255 და min 0}
ბედნიერი კოდირება
გირჩევთ:
RGB LED მატრიცა ნეოპიქსელის გამოყენებით: 8 ნაბიჯი (სურათებით)
RGB LED მატრიცა ნეოპიქსელის გამოყენებით: ამ გაკვეთილში მე ვაპირებ გაჩვენოთ როგორ ავაშენოთ 5*5 RGB LEDMATRIX NEOPIXEL– ის გამოყენებით. ამ მატრიქსით ჩვენ შეგვიძლია აჩვენოთ მომხიბლავი ანიმაციები, ემოციები და ასოები, რომლებიც ძალიან მიმზიდველია. დავიწყოთ
როგორ ავაშენოთ 8x8 დიდი LED მატრიცა (MAX7219 LED 10 მმ): 9 ნაბიჯი (სურათებით)
როგორ ავაშენოთ 8x8 დიდი LED მატრიცა (MAX7219 LED 10 მმ): მუშაობდით მზა 8x8 LED მატრიცაზე, როგორც დისპლეი? ისინი სხვადასხვა ზომისაა და საკმაოდ საინტერესოა მუშაობა. დიდი ადვილად ხელმისაწვდომი ზომაა დაახლოებით 60 მმ x 60 მმ. თუმცა, თუ თქვენ ეძებთ ბევრად უფრო დიდ მზა LED მატრიცას
როგორ დავაკავშიროთ MAX7219 მართვადი LED მატრიცა 8x8 ATtiny85 მიკროკონტროლერთან ერთად: 7 ნაბიჯი
როგორ დავაკავშიროთ MAX7219 მართული LED მატრიცა 8x8 ATtiny85 მიკროკონტროლით: MAX7219 კონტროლერი დამზადებულია Maxim ინტეგრირებული არის კომპაქტური, სერიული შეყვანის/გამომავალი საერთო კათოდური დისპლეის დრაივერი, რომელსაც შეუძლია მიკროკონტროლერების 64 ინდივიდუალური LED- ების, 7-სეგმენტიანი ციფრული LED ეკრანის დაყენება. 8 ციფრამდე, ბარი-გრაფიკის ჩვენება
5x4 LED ჩვენების მატრიცა ძირითადი ბეჭდის გამოყენებით 2 (bs2) და ჩარლიპლექსი: 7 ნაბიჯი
5x4 LED ჩვენების მატრიცა ძირითადი ბეჭდის 2 (bs2) და Charlieplexing გამოყენებით: გაქვთ ძირითადი ბეჭედი 2 და დამატებითი LED- ები? რატომ არ ვითამაშოთ charlieplexing– ის კონცეფციით და შევქმნათ გამომავალი მხოლოდ 5 ქინძისთავის გამოყენებით. ამ ინსტრუქციისთვის მე ვიყენებ BS2e– ს, მაგრამ BS2 ოჯახის ნებისმიერი წევრი უნდა მუშაობდეს
LED მატრიცა Shift რეგისტრატორების გამოყენებით: 7 ნაბიჯი (სურათებით)
LED მატრიცა Shift რეგისტრების გამოყენებით: ეს ინსტრუქცია უნდა იყოს უფრო სრულყოფილი ახსნა, ვიდრე სხვა ხელმისაწვდომია ინტერნეტში. აღსანიშნავია, რომ ეს უზრუნველყოფს უფრო მეტ აპარატურულ ახსნას, ვიდრე ეს შესაძლებელია LED მარკეტში მითითებული led555– ით. მიზნები ეს ინსტრუქცია წარმოგიდგენთ ცნებებს