Mündəricat:
- Təchizat
- Addım 1: Esp8266 İnkişafı üçün Arduino IDE qurun
- Addım 2: Xarici Kitabxanaları Yükləyin
- Addım 3: İndi Kod yazın
- Addım 4: Dövrə Şeması
- Addım 5: Kodu Esp8266 -ya yükləyin
- Addım 6: Hər şeyi sınayın
Video: MAX7219 LED Matrix MQTT Esp8266 istifadə edərək: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
MAX7219 LED displeyimi bir MQTT serverinə bağlamağa və göstərmək üçün MQTT abunəliyindən bir mətn almağa çalışırdım.
amma internetdə uyğun bir kod almadım, buna görə öz kodumu yaratmağa başladım …
və nəticə çox yaxşı gəlir …
- led ekranda istənilən mətni göstərə bilərsiniz
- Ekranın intensivliyini tənzimləyə bilərsiniz
- sürüşmə sürətini təyin edə bilərsiniz
Təchizat
- Bir esp8266 inkişaf lövhəsi. (mənim vəziyyətim NODE MCU v1.0)
- MAX7219 LED Matrix Ekranı.
Lazım olan proqram təminatı:
- Arduino IDE.
- Bir MQTT serveri. (mənim vəziyyətim ağcaqanad)
Kitabxana tələb olunur:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Addım 1: Esp8266 İnkişafı üçün Arduino IDE qurun
Arduinonun üstünlüklərini açın, sonra aşağıdakı URL -ni əlavə lövhələr meneceri URL -lərinə yapışdırın:
arduino.esp8266.com/stable/package_esp8266com_index.json
sonra Alətlər> Lövhələr> Kartlar Meneceri və esp8266 -ı axtarın və quraşdırın.
indi Arduino ideyanız esp8266 inkişafına hazırdır.
Addım 2: Xarici Kitabxanaları Yükləyin
indi MAX7219 və MQTT Müştəri üçün bəzi kitabxanalara ehtiyacımız var.
kitabxanaları yükləyib quraq
Sketch> Kitabxanaya daxil et> Arduino IDE -də Kitabxanaları İdarə et -ə gedin
və EspMQTTClient axtarın və Quraşdır düyməsini basın
Qeyd: Bütün asılı kitabxanaları quraşdırın, vacibdir
Yenə MD_MAX72xx axtarın və Quraşdır düyməsini basın
Addım 3: İndi Kod yazın
İndi aşağıdakı kodu yapışdırın
#daxil edin
#include #include #include "EspMQTTClient.h" #MAX_DEVICES 4 təyin edin // cihaz sayınız #define CLK_PIN D5 // və ya SCK #define DATA_PIN D7 // və ya MOSI #define CS_PIN D4 // və ya SS // təyin edə bilərsiniz hər hansı bir pin üçün #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // ekran növünüzə görə dəyişin 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; // standart sürüşmə gecikməsi uint8_t INTENSITY = 5; // default intensivliyi char curMessage [MESG_SIZE]; char newMessage [MESG_SIZE]; bool newMessageAvailable = yalan; void scrollDataSink (uint8_t dev, MD_MAX72XX:: transformType_t t, uint8_t col) {} uint8_t scrollDataSource (uint8_t dev, MD_MAX72XX:: transformType_t t) {static enum {S_IDLE, S_NEX_CHOW_, S_NEXT_CHAR_, S_NEX_CHOW_ statik xarakter *p; statik uint16_t curLen, showLen; statik uint8_t cBuf [8]; uint8_t colData = 0; keçid (vəziyyət) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = yalan; } dövlət = S_NEXT_CHAR; fasilə; halda S_NEXT_CHAR: əgər (*p == '\ 0') vəziyyət = S_IDLE; başqa {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; vəziyyət = S_SHOW_CHAR; } fasilə; hal S_SHOW_CHAR: colData = cBuf [curLen ++]; əgər (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // birlikdə gedin - geri çağırma bütün məlumatları yükləyəcək prevTime = millis (); // növbəti dəfə başlanğıc nöqtəsi}} void setup () {Serial.begin (115200); mx.begin (); mx.control (MD_MAX72XX:: INTENSITY, INTENSITY); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "Ağıllı Ekran"); } void onConnectionEstablished () {// Display text text for client.subscribe üçün MQTT abunə mövzusu ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// Ekran intensivliyinə nəzarət üçün MQTT abunə mövzusu
client.subscribe ("leddisplay/intensivliyi", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // Display scroll speed controll client.subscribe ("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}) üçün MQTT abunə mövzusu; } void loop () {client.loop (); scrollText (); }
Ətraflı məlumat üçün bu depoya baxın
github.com/souravj96/max7219-mqtt-esp8266
Addım 4: Dövrə Şeması
MAX7219 displeyini NODE MCU ilə birləşdirin
Addım 5: Kodu Esp8266 -ya yükləyin
İndi düzgün lövhə növünü və serial portunu seçin, sonra yüklə vurun.
Addım 6: Hər şeyi sınayın
hər şey qaydasındadırsa, esp8266 sizin MQTT serverinizə qoşulacaq.
indi, bir şey göstəriləcək leddisplay/mətn mövzusunda nəşr olunacaqsa.
{
mövzu: "leddisplay/text", faydalı yük: "mesajınız buradadır"}
ekranın intensivliyini təyin etmək istəyirsinizsə
{
mövzu: "leddisplay/intensivliyi", yük: "2" // max 15 və min 0}
ekranın sürüşmə sürətini təyin etmək istəyirsinizsə
{
mövzu: "leddisplay/scroll", yük: "100" // maksimum 255 və min 0}
Xoşbəxt kodlaşdırma
Tövsiyə:
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: 4 addım
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: Salam, mən Rithikəm. Telefonunuzdan istifadə edərək internetə nəzarət edən bir led quracağıq. Arduino IDE və Blynk kimi proqramlardan istifadə edəcəyik. Bu çox sadədir və uğur qazansanız istədiyiniz qədər elektron komponenti idarə edə bilərsiniz
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək sürətlənməni izləyin: 6 addım
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək Sürətləndirməni izləyin: Sürətləndirmə sonsuzdur, düşünürəm ki, Fizikanın bəzi qanunlarına görə. Sahilə çıxan ən sürətli məxluq, bir anda ən yüksək sürətindən istifadə edərək ovunu tutur
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar - Mikrokontrolördən istifadə edərək bir Quadcopter hazırlayın: 8 addım (şəkillərlə)
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar | Mikrokontrolördən istifadə edərək Quadcopter hazırlayın: Giriş Youtube Kanalımı Ziyarət Edin Drone almaq üçün çox bahalı bir gadget (məhsul) təşkil edir. Bu yazıda necə ucuz satacağımı müzakirə edəcəyəm? Ucuz qiymətə öz əlinizlə bunu necə edə bilərsiniz … Yaxşı Hindistanda bütün materiallar (mühərriklər, ESClər
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow - Arduino IDE -dən istifadə edərək M5stack M5stick C -dən istifadə edərək Neopixel Ws2812 -də Göy qurşağının Çalışması: 5 addım
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow | Arduino IDE istifadə edərək M5stack M5stick C istifadə edərək Neopixel Ws2812 üzərində Göy qurşağı çalıştırın: Salam uşaqlar bu təlimatlarda Arduino IDE ilə m5stack m5stick-C inkişaf lövhəsi ilə neopixel ws2812 LED və ya led şerit və ya led matris və ya led üzük istifadə etməyi öyrənəcəyik. onunla bir göy qurşağı nümunəsi
HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə - 433mhz ilə HT12E və HT12D istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: 5 addım
HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə | HT12E və HT12D -dən 433mhz istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: Bu təlimatda sizə HT12E kodlu 433mhz ötürücü qəbuledici modulu istifadə edərək RADIO uzaqdan idarə etməyi göstərəcəyəm. HT12D kod deşifratoru IC. Bu təlimatda çox ucuz komponentləri istifadə edərək məlumat göndərə və ala bilərsiniz: HT