Съдържание:
- Консумативи
- Стъпка 1: Инсталирайте Arduino IDE за разработка на Esp8266
- Стъпка 2: Изтеглете външни библиотеки
- Стъпка 3: Напишете малко код сега
- Стъпка 4: Електрическа схема
- Стъпка 5: Качете кода в Esp8266
- Стъпка 6: Тествайте всичко
Видео: MAX7219 LED Matrix MQTT Използване на Esp8266: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Опитвах се да свържа моя MAX7219 LED дисплей към MQTT сървър и да получа текст от абонамента за MQTT за показване.
но не получих подходящ код в интернет, затова започнах да изграждам свой собствен …
и резултатът идва доста добре …
- можете да показвате всеки текст на светодиоден дисплей
- можете да регулирате интензивността на дисплея
- можете да зададете скоростта на превъртане
Консумативи
- Платка за разработка esp8266. (в моя случай това е NODE MCU v1.0)
- MAX7219 LED матричен дисплей.
Необходим софтуер:
- Arduino IDE.
- MQTT сървър. (моят случай Mosquitto)
Изисква се библиотека:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Стъпка 1: Инсталирайте Arduino IDE за разработка на Esp8266
отворете предпочитанията на Arduino, след което поставете URL адреса по -долу в URL адресите на Ad Manager Boards:
arduino.esp8266.com/stable/package_esp8266com_index.json
след това Инструменти> Табла> Boards Manager и потърсете esp8266 и го инсталирайте.
сега вашият Arduino ide е готов за разработка на esp8266.
Стъпка 2: Изтеглете външни библиотеки
сега имаме нужда от някои библиотеки за MAX7219 и MQTT клиент.
нека изтеглим и настроим библиотеките
отворете Sketch> Include Library> Manage Libraries на Arduino IDE
и потърсете EspMQTTClient и щракнете върху Инсталиране
NB: Инсталирайте всички зависими библиотеки, това е важно
Отново потърсете MD_MAX72xx и щракнете върху Инсталиране
Стъпка 3: Напишете малко код сега
Сега поставете кода по -долу
#включва
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // броя на вашето устройство #define CLK_PIN D5 // или SCK #define DATA_PIN D7 // или MOSI #define 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 = false; 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_IDLES статичен char *p; статичен uint16_t curLen, showLen; статичен uint8_t cBuf [8]; uint8_t colData = 0; ключ (състояние) {случай S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } състояние = S_NEXT_CHAR; прекъсване; случай S_NEXT_CHAR: if (*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.begin (); mx.control (MD_MAX72XX:: ИНТЕНЗИВНОСТ, ИНТЕНСИВНОСТ); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "Интелигентен дисплей"); } void onConnectionEstablished () {// MQTT абонаментна тема за показване на текст client.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// MQTT абонаментна тема за контрол на интензитета на дисплея
client.subscribe ("leddisplay/интензивност", (const String & полезен товар) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // тема за абонамент за MQTT за контрол на скоростта на превъртане на дисплея client.subscribe ("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/текст", полезен товар: "вашето съобщение тук"}
ако искате да зададете интензитета на дисплея
{
тема: "leddisplay/интензивност", полезен товар: "2" // макс е 15 и мин 0}
ако искате да зададете скоростта на превъртане на дисплея
{
тема: "leddisplay/scroll", полезен товар: "100" // макс е 255 и мин 0}
Честито кодиране
Препоръчано:
4X4 LED MATRIX Използване на 74hc595 IC: 7 стъпки
4X4 LED MATRIX Използване на 74hc595 IC: Описание В този блог ще се съсредоточим върху това как да направим и кодираме 4x4 LED матрица, използвайки регистър за смяна (SN7HC595N)
Neopixel Ws2812 Rainbow LED Glow с M5stick-C - Стартиране на Rainbow на Neopixel Ws2812 Използване на M5stack M5stick C Използване на Arduino IDE: 5 стъпки
Neopixel Ws2812 Rainbow LED Glow с M5stick-C | Изпълнение на Rainbow на Neopixel Ws2812 Използване на M5stack M5stick C Използване на Arduino IDE: Здравейте момчета в тази инструкция ще се научим как да използваме неопиксели ws2812 светодиоди или LED лента или LED матрица или LED пръстен с m5stack m5stick-C платка за разработка с Arduino IDE и ние ще направим модел на дъга с него
Направи си сам „Измервателен уред за използване на компютър ROG Base“Използване на Arduino и Python: 5 стъпки (със снимки)
Направи си сам „Измерител за използване на компютър ROG Base“Използване на Arduino и Python: ************************************* +На първо място, тези инструкции са написани от неносещ англоговорящ … не е професор по английски, така че, моля, информирайте за някаква граматическа грешка, преди да ми се подигравате.: P +и моля, не имитирайте
Raspberry Pi Говори с ESP8266 Използване на MQTT: 8 стъпки
Raspberry Pi разговаря с ESP8266 с помощта на MQTT: В този проект ще обясня какво представлява протоколът MQTT и как се използва за комуникация между устройства. модул ESP8266, както и RPi tal
Използване на Dot Matrix LED с Arduino и Shift регистър: 5 стъпки
Използване на Dot Matrix LED с Arduino и Shift регистър: Siemens DLO7135 Dot matrix LED е едно невероятно парче оптоелектроника. Той се таксува като 5x7 матричен интелигентен дисплей (r) с памет/декодер/драйвер. Заедно с тази памет, той има 96-знаков дисплей ASCII с горна и долна