Índice:
- Suprimentos
- Etapa 1: configurar o IDE do Arduino para o desenvolvimento Esp8266
- Etapa 2: Baixar bibliotecas externas
- Etapa 3: escreva algum código agora
- Etapa 4: Diagrama de Circuito
- Etapa 5: Envie o código para Esp8266
- Etapa 6: teste tudo
Vídeo: MAX7219 Matriz de LED MQTT usando Esp8266: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Eu estava tentando conectar minha tela de LED MAX7219 a um servidor MQTT e receber um texto da assinatura MQTT para exibir.
mas não obtive nenhum código adequado na internet, então comecei a construir o meu próprio …
e o resultado vem muito bem …
- você pode exibir qualquer texto no display de led
- você pode ajustar a intensidade da tela
- você pode definir a velocidade de rolagem
Suprimentos
- Uma placa de desenvolvimento esp8266. (meu caso é NODE MCU v1.0)
- MAX7219 Display de matriz de LED.
Software necessário:
- Arduino IDE.
- Um servidor MQTT. (meu caso Mosquitto)
Biblioteca necessária:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Etapa 1: configurar o IDE do Arduino para o desenvolvimento Esp8266
abra as preferências do Arduino e cole a URL abaixo nas URLs do Gerenciador de placas adicionais:
arduino.esp8266.com/stable/package_esp8266com_index.json
em seguida, Ferramentas> Placas> Gerenciador de placas, pesquise esp8266 e instale-o.
agora seu ide Arduino está pronto para o desenvolvimento esp8266.
Etapa 2: Baixar bibliotecas externas
agora precisamos de algumas bibliotecas para MAX7219 e MQTT Client.
vamos baixar e configurar as bibliotecas
navegue até Sketch> Incluir Biblioteca> Gerenciar Bibliotecas no Arduino IDE
e pesquise EspMQTTClient e clique em Instalar
NB: Instale todas as bibliotecas dependentes, é importante
Pesquise novamente por MD_MAX72xx e clique em Instalar
Etapa 3: escreva algum código agora
Agora cole o código abaixo
#incluir
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // sua contagem de dispositivos #define CLK_PIN D5 // ou SCK #define DATA_PIN D7 // ou MOSI #define CS_PIN D4 // ou SS // você pode defini-lo para qualquer pino #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // mude de acordo com seu tipo de exibição 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; // atraso de rolagem padrão uint8_t INTENSITY = 5; // intensidade padrão 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) {enum estático {S_IDLE, S_NEXT_CHAR, S_SHOW_CHAR, S_SHOW_CHAR, S_NEXLET_CHAR, S_SHOW_CHAR, estado S_SHOW_ static char * p; static uint16_t curLen, showLen; estático uint8_t cBuf [8]; uint8_t colData = 0; switch (estado) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } estado = S_NEXT_CHAR; pausa; case S_NEXT_CHAR: if (* p == '\ 0') estado = S_IDLE; else {showLen = mx.getChar (* p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; estado = S_SHOW_CHAR; } pausa; case S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // rolar - o callback carregará todos os dados prevTime = millis (); // ponto de partida para a próxima vez}} void setup () {Serial.begin (115200); mx.begin (); mx.control (MD_MAX72XX:: INTENSIDADE, INTENSIDADE); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "Smart Display"); } void onConnectionEstablished () {// Tópico de assinatura MQTT para texto de exibição client.subscribe ("leddisplay / text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// Tópico de assinatura MQTT para controle de intensidade de exibição
client.subscribe ("leddisplay / intensidade", (const String e carga útil) {mx.control (MD_MAX72XX:: INTENSITY, carga útil.toInt ());}); // Tópico de assinatura MQTT para controle de velocidade de rolagem de exibição client.subscribe ("leddisplay / scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Para obter informações detalhadas, consulte este repositório
github.com/souravj96/max7219-mqtt-esp8266
Etapa 4: Diagrama de Circuito
conecte o display MAX7219 com NODE MCU
Etapa 5: Envie o código para Esp8266
agora escolha o tipo de placa e a porta serial corretos e clique em upload.
Etapa 6: teste tudo
se tudo correr bem, o esp8266 será conectado ao servidor MQTT.
agora, se alguma coisa será publicada no leddisplay / tópico de texto que será exibido.
{
tópico: "leddisplay / text", carga útil: "sua mensagem aqui"}
se você deseja definir a intensidade da exibição
{
tópico: "leddisplay / intensidade", carga útil: "2" // max é 15 e min 0}
se você deseja definir a velocidade de rolagem da tela
{
tópico: "leddisplay / scroll", carga útil: "100" // max é 255 e min 0}
Boa codificação
Recomendado:
MATRIZ LED DE CONTROLE MAX7219 COM ARDUINO: 9 etapas
CONTROL LED MATRIX MAX7219 COM ARDUINO: Neste tutorial, aprenderemos como controlar a matriz MAX7219 Led com Arduino exibindo um texto simples. Assistir a um vídeo de demonstração
Como construir a matriz 8x8 BIG LED (MAX7219 LED 10mm): 9 etapas (com imagens)
Como construir uma matriz LED 8x8 BIG (MAX7219 LED 10mm): Você trabalhou com uma matriz LED 8x8 pronta como monitores? Eles vêm em vários tamanhos e são bastante interessantes para trabalhar. Um grande tamanho prontamente disponível é cerca de 60 mm x 60 mm. No entanto, se você estiver procurando por uma matriz de LED pré-fabricada muito maior
4 em 1 MAX7219 Tutorial do módulo de exibição de matriz de pontos usando o Arduino UNO: 5 etapas
4 em 1 MAX7219 Tutorial do módulo de exibição de matriz de pontos usando o Arduino UNO: Descrição: Procurando uma matriz de LED fácil de controlar? Este módulo 4 em 1 Dot Matrix Display deve ser adequado para você. O módulo completo vem em quatro matrizes de cátodo comum 8x8 RED equipadas com MAX7219 IC cada. Ótimo para exibir texto corrido a
Como fazer a interface de uma matriz 8x8 de LED acionada por MAX7219 com o microcontrolador ATtiny85: 7 etapas
Como fazer a interface de uma matriz de LED 8x8 acionada por MAX7219 com o microcontrolador ATtiny85: O controlador MAX7219 é fabricado pela Maxim Integrated é um driver de exibição de cátodo comum de entrada / saída serial compacto que pode conectar microcontroladores a 64 LEDs individuais, displays de LED numéricos de 7 segmentos de até até 8 dígitos, exibição de gráfico de barras
MAX7219 Montagem e teste de matriz de pontos de LED: 6 etapas (com imagens)
MAX7219 LED Dot Matrix Assembly and Testing: Um Dot-Matrix Display é um dispositivo de exibição que contém diodos emissores de luz alinhados na forma de matriz. Estes visores de matriz de pontos são usados em aplicações onde símbolos, gráficos, caracteres, alfabetos, números são necessários ser exibidos juntos