İçindekiler:
- Gereçler
- Adım 1: Esp8266 Geliştirme için Arduino IDE'yi Kurun
- 2. Adım: Harici Kitaplıkları İndirin
- Adım 3: Şimdi Bazı Kodlar Yazın
- Adım 4: Devre Şeması
- Adım 5: Kodu Esp8266'ya Yükleyin
- 6. Adım: Her Şeyi Test Edin
Video: Esp8266 Kullanan MAX7219 LED Matrix MQTT: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
MAX7219 LED ekranımı bir MQTT sunucusuna bağlamaya ve MQTT aboneliğinden görüntülenecek bir metin almaya çalışıyordum.
ama internette uygun bir kod bulamadım, bu yüzden kendi kodumu oluşturmaya başladım…
ve sonuç oldukça iyi geliyor…
- led ekranda herhangi bir metni görüntüleyebilirsiniz
- ekranın yoğunluğunu ayarlayabilirsiniz
- kaydırma hızını ayarlayabilirsiniz
Gereçler
- Bir esp8266 geliştirme kartı. (benim durumum NODE MCU v1.0)
- MAX7219 LED Matris Ekranı.
Gerekli yazılım:
- Arduino IDE'si.
- Bir MQTT sunucusu. (benim durumum Sivrisinek)
Gerekli kitaplık:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Adım 1: Esp8266 Geliştirme için Arduino IDE'yi Kurun
Arduino'nun tercihlerini açın, ardından aşağıdaki URL'yi Ek Pano Yöneticisi URL'lerine yapıştırın:
arduino.esp8266.com/stable/package_esp8266com_index.json
ardından Araçlar > Panolar > Pano Yöneticisi ve esp8266'yı aratın ve yükleyin.
Artık Arduino ide'niz esp8266 geliştirmeye hazır.
2. Adım: Harici Kitaplıkları İndirin
şimdi MAX7219 ve MQTT Client için bazı kitaplıklara ihtiyacımız var.
kütüphaneleri indirip ayarlayalım
Sketch > Kitaplığı Dahil Et > Arduino IDE'deki Kitaplıkları Yönet'e gidin
ve EspMQTTClient'i arayın ve Yükle'ye tıklayın
Not: Tüm bağımlı kitaplıkları kurun, bu önemlidir
Tekrar MD_MAX72xx'i arayın ve Yükle'ye tıklayın.
Adım 3: Şimdi Bazı Kodlar Yazın
Şimdi aşağıdaki kodu yapıştırın
#Dahil etmek
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // cihaz sayınız #define CLK_PIN D5 // veya SCK #define DATA_PIN D7 // veya MOSI #define CS_PIN D4 // veya SS // ayarlayabilirsiniz herhangi bir pin için #define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW // ekran tipinize göre değiştirin 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; // varsayılan kaydırma gecikmesi uint8_t YOĞUNLUK = 5; // varsayılan yoğunluk char curMessage[MESG_SIZE]; char yeniMesaj[MESG_SIZE]; bool newMessageAvailable = false; void scrollDataSink(uint8_t dev, MD_MAX72XX::transformType_t t, uint8_t sütun) {} uint8_t scrollDataSource(uint8_t dev, MD_MAX72XX::transformType_t t) { statik numaralandırma { S_IDOWLE, S_NEXT_CHAR, SACE_SP_SHAR; statik karakter *p; statik uint16_t curLen, showLen; statik uint8_t cBuf[8]; uint8_t colData = 0; switch (durum) { case S_IDLE: p = curMessage; if (newMessageAvailable) { strcpy(curMessage, newMessage); newMessageAvailable = yanlış; } durum = S_NEXT_CHAR; kırmak; durum S_NEXT_CHAR: if (*p == '\0') durum = S_IDLE; else { showLen = mx.getChar(*p++, sizeof(cBuf) / sizeof(cBuf[0]), cBuf); curLen = 0; durum = S_SHOW_CHAR; } kırmak; durum S_SHOW_CHAR: colData = cBuf[curLen++]; if (curLen = SCROLL_DELAY) { mx.transform(MD_MAX72XX::TSL); // ilerleyin - geri arama tüm verileri yükleyecektir prevTime = millis(); // bir sonraki sefer için başlangıç noktası } } void setup() { Serial.begin(115200); mx.begin(); mx.control(MD_MAX72XX::YOĞUNLUK, YOĞUNLUK); mx.setShiftDataInCallback(scrollDataSource); mx.setShiftDataOutCallback(scrollDataSink); curMessage[0] = newMessage[0] = '\0'; sprintf(curMessage, "Akıllı Ekran"); } void onConnectionEstablished() { // Görüntüleme metni için MQTT abonelik konusu client.subscribe("leddisplay/text", (const String & payload) { sprintf(curMessage, payload.c_str()); });
// Ekran yoğunluğu kontrolü için MQTT abonelik konusu
client.subscribe("leddisplay/yoğunluk", (const String & payload) { mx.control(MD_MAX72XX::INTENSITY, payload.toInt()); }); // Ekran kaydırma hızı kontrolü için MQTT abonelik konusu client.subscribe("leddisplay/scroll", (const String & payload) { SCROLL_DELAY = payload.toInt(); }); } geçersiz döngü() { client.loop(); scrollText(); }
Ayrıntılı bilgi için bu depoya bakın
github.com/souravj96/max7219-mqtt-esp8266
Adım 4: Devre Şeması
MAX7219 ekranını NODE MCU ile bağlayın
Adım 5: Kodu Esp8266'ya Yükleyin
şimdi doğru pano tipinizi ve seri bağlantı noktanızı seçin ve ardından yüklemeye basın.
6. Adım: Her Şeyi Test Edin
her şey yolunda giderse, esp8266'nız MQTT sunucunuza bağlanacaktır.
şimdi, leddisplay/text üzerinde herhangi bir şey yayınlanacaksa görüntülenecek konu.
{
konu: "leddisplay/metin", yük: "mesajınız burada" }
ekran yoğunluğunu ayarlamak istiyorsanız
{
konu: "led ekran/yoğunluk", yük: "2" // maksimum 15 ve minimum 0 }
ekranın kaydırma hızını ayarlamak istiyorsanız
{
konu: "leddisplay/scroll", yük: "100" // max 255 ve min 0 }
mutlu kodlama
Önerilen:
ARDUINO İLE KONTROL LED MATRIX MAX7219: 9 Adım
ARDUINO İLE KONTROL LED MATRIX MAX7219: Bu derste, basit bir metin görüntüleyerek MAX7219 Led matrix'in Arduino ile nasıl kontrol edileceğini öğreneceğiz.Bir tanıtım videosu izleyin
74hc595 IC Kullanan 4X4 LED MATRIX: 7 Adım
74hc595 IC Kullanan 4X4 LED MATRIX: Açıklama Bu blogda, kaydırma yazmacı (SN7HC595N) kullanarak 4x4 LED matrisinin nasıl oluşturulacağına ve kodlanacağına odaklanacağız
ESP8266 NODEMCU BLYNK IOT Eğitimi - Esp8266 Blunk ve Arduino IDE Kullanan IOT - LED'leri İnternet Üzerinden Kontrol Etme: 6 Adım
ESP8266 NODEMCU BLYNK IOT Eğitimi | Esp8266 Blunk ve Arduino IDE Kullanan IOT | LED'leri İnternet Üzerinden Kontrol Etme: Merhaba arkadaşlar, bu talimatta IOT'yi ESP8266 veya Nodemcu ile nasıl kullanacağımızı öğreneceğiz. Bunun için blynk uygulamasını kullanacağız.Yani LED'leri internet üzerinden kontrol etmek için esp8266/nodemcu'muzu kullanacağız.Böylece Blynk uygulaması esp8266 veya Nodemcu'muza bağlanacak
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda - Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı - Rc Helikopter - Arduino Kullanan Rc Uçak: 5 Adım (Resimlerle)
Arduino İle 2.4Ghz NRF24L01 Modülünü Kullanan Kablosuz Uzaktan Kumanda | Nrf24l01 Quadcopter için 4 Kanal / 6 Kanal Verici Alıcı | Rc Helikopter | Arduino Kullanan Rc Uçak: Bir Rc araba çalıştırmak için | Quadcopter | dron | RC uçak | RC tekne, her zaman bir alıcı ve vericiye ihtiyacımız var, RC QUADCOPTER için 6 kanallı bir verici ve alıcıya ihtiyacımız olduğunu ve bu tür TX ve RX'in çok maliyetli olduğunu varsayalım, bu yüzden bir tane yapacağız
Matrix Led X4 MAX7219 + ESP8266 12E + Sensör DS18b20 (Sıcaklık): 6 Adım
Matrix Led X4 MAX7219 + ESP8266 12E + Sensör DS18b20 (Sıcaklık): Bu fırsatta ESP8266 modüllü entegre MAX7219 ile bir matrix led'e hızlı bir test yapacağız ve çok basit olmaması için bir sensörün sıcaklığını okuyacağız DS18B20.Gelecekteki derslerde onu diğer platformlara entegre edeceğiz