Cuprins:
- Provizii
- Pasul 1: Configurați Arduino IDE pentru dezvoltarea Esp8266
- Pasul 2: Descărcați biblioteci externe
- Pasul 3: scrieți câteva coduri acum
- Pasul 4: Diagrama circuitului
- Pasul 5: Încărcați codul în Esp8266
- Pasul 6: Testează totul
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Încercam să îmi conectez afișajul cu LED MAX7219 la un server MQTT și să primesc un text de la abonamentul MQTT pentru afișare.
dar nu am primit niciun cod potrivit pe internet, așa că am început să-mi construiesc propriul meu …
iar rezultatul vine destul de bine …
- puteți afișa orice text pe ecranul led
- puteți regla intensitatea afișajului
- puteți seta viteza de derulare
Provizii
- O placă de dezvoltare esp8266. (cazul meu este NODE MCU v1.0)
- Afișaj cu matrice LED MAX7219.
Software necesar:
- IDE Arduino.
- Un server MQTT. (cazul meu Mosquitto)
Biblioteca necesară:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Pasul 1: Configurați Arduino IDE pentru dezvoltarea Esp8266
deschideți preferințele Arduino, apoi lipiți URL-ul de mai jos în adresele URL Aditional Boards Manager:
arduino.esp8266.com/stable/package_esp8266com_index.json
apoi Instrumente> Panouri> Manager panouri și căutați esp8266 și instalați-l.
acum ideea dvs. Arduino este pregătită pentru dezvoltarea esp8266.
Pasul 2: Descărcați biblioteci externe
acum avem nevoie de câteva biblioteci pentru MAX7219 și MQTT Client.
să descărcăm și să configurăm bibliotecile
navigați la Sketch> Include Library> Gestionați bibliotecile pe Arduino IDE
și căutați EspMQTTClient și faceți clic pe Instalare
NB: Instalați toate bibliotecile dependente, este important
Căutați din nou MD_MAX72xx și faceți clic pe Instalare
Pasul 3: scrieți câteva coduri acum
Acum lipiți codul de mai jos
#include
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // numărul dispozitivului dvs. #define CLK_PIN D5 // sau SCK #define DATA_PIN D7 // sau MOSI #define CS_PIN D4 // sau SS // îl puteți seta la orice pin #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // modificați în funcție de tipul de afișare 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; // întârziere defilare implicită uint8_t INTENSITATE = 5; // intensitate implicită 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) {static enum {S_IDLE, S_NEXT_CHAR, S_SHOW_, S_SHOW_, S_SHOW_ caracter static * p; static uint16_t curLen, showLen; static uint8_t cBuf [8]; uint8_t colData = 0; switch (state) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } state = S_NEXT_CHAR; pauză; cazul S_NEXT_CHAR: if (* p == '\ 0') state = S_IDLE; else {showLen = mx.getChar (* p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; state = S_SHOW_CHAR; } pauză; caz S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // derulați de-a lungul - apelarea va încărca toate datele prevTime = millis (); // punctul de plecare pentru data viitoare}} 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, „Smart Display”); } void onConnectionEstablished () {// Subiect de abonament MQTT pentru text afișat client.subscribe ("leddisplay / text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// Subiect de abonament MQTT pentru controlul intensității afișajului
client.subscribe ("leddisplay / intensitate", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // Subiect de abonament MQTT pentru afișarea controlului vitezei de derulare client.subscribe ("leddisplay / scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Pentru informații detaliate, consultați acest depozit
github.com/souravj96/max7219-mqtt-esp8266
Pasul 4: Diagrama circuitului
conectați afișajul MAX7219 cu NODE MCU
Pasul 5: Încărcați codul în Esp8266
acum alegeți tipul corect de placă și portul serial, apoi apăsați încărcare.
Pasul 6: Testează totul
dacă totul merge corect, atunci esp8266 va fi conectat la serverul dvs. MQTT.
acum, dacă se va publica ceva pe leddisplay / subiect text care va fi afișat.
{
topic: "leddisplay / text", payload: "mesajul tău aici"}
dacă doriți să setați intensitatea afișajului
{
subiect: „leddisplay / intensitate”, sarcină utilă: „2” // max este 15 și min 0}
dacă doriți să setați viteza de derulare a afișajului
{
topic: "leddisplay / scroll", sarcină utilă: "100" // max este 255 și min 0}
Codificare fericită
Recomandat:
Automatizare casnică controlată prin internet / cloud folosind Esp8266 (aREST, MQTT, IoT): 7 pași (cu imagini)
Internet / cloud controlat de automatizarea casei utilizând Esp8266 (aREST, MQTT, IoT): TOATE creditele către http://arest.io/ pentru serviciul cloud !! IoT cel mai discutat subiect din lume chiar acum !! Servere și servicii cloud care fac acest lucru posibil este punctul de atracție al lumii de astăzi … EXCLUDEREA BARIEREI LA DISTANȚĂ a fost și este
Home Automation folosind MQTT și ESP8266: 6 pași
Home Automation folosind MQTT și ESP8266: În zilele noastre, Home Automation este o tendință și o eră emergentă a IoT (Internet of Things). Toată lumea încearcă să automatizeze acasă într-un fel, care poate fi controlat de la distanță sau manual. Și ceea ce le face viața mai ușoară. Există tehnici de control al omului
Led de control peste tot în lume folosind Internet folosind Arduino: 4 pași
Led de control peste tot în lume folosind internetul folosind Arduino: Bună, eu sunt Rithik. Vom face un led controlat de internet folosind telefonul dvs. Vom folosi software cum ar fi Arduino IDE și Blynk. Este simplu și dacă ați reușit puteți controla cât mai multe componente electronice doriți Lucruri de care avem nevoie: Hardware:
HiFive1 Detectare intruși Arduino cu alerte MQTT folosind ESP32 sau ESP8266: 6 pași
HiFive1 Detectare intruși Arduino cu alerte MQTT folosind ESP32 sau ESP8266: HiFive1 este prima placă bazată pe RISC-V compatibilă Arduino construită cu CPU FE310 de la SiFive. Placa este de aproximativ 20 de ori mai rapidă decât Arduino UNO, dar la fel ca placa UNO, nu are nici o conectivitate wireless. Din fericire, există mai multe
Matrix Led X4 MAX7219 + ESP8266 12E + Senzor DS18b20 (temperatură): 6 pași
Senzor Matrix Led X4 MAX7219 + ESP8266 12E + DS18b20 (Temperatură): În această oportunitate vom efectua un test rapid la o matrice condusă cu MAX7219 integrat cu modul ESP8266 și astfel încât să nu fie foarte simplu vom citi temperatura unui senzor DS18B20.În viitoarele tutoriale îl vom integra pe alte platforme