Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Asenna Arduino IDE Esp8266 -kehitykseen
- Vaihe 2: Lataa ulkoiset kirjastot
- Vaihe 3: Kirjoita koodi nyt
- Vaihe 4: Piirikaavio
- Vaihe 5: Lähetä koodi Esp8266 -tiedostoon
- Vaihe 6: Testaa kaikki
Video: MAX7219 LED -matriisi MQTT Esp8266: 6 askeleen avulla
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Yritin yhdistää MAX7219 LED -näyttöni MQTT -palvelimeen ja vastaanottaa näytettävää tekstiä MQTT -tilauksesta.
mutta en löytänyt sopivaa koodia Internetistä, joten aloin rakentaa omaa…
ja lopputulos on hyvä …
- voit näyttää minkä tahansa tekstin led -näytöllä
- voit säätää näytön voimakkuutta
- voit asettaa vieritysnopeuden
Tarvikkeet
- Esp8266 -kehityskortti. (oma tapaukseni on NODE MCU v1.0)
- MAX7219 LED -matriisinäyttö.
Tarvittavat ohjelmistot:
- Arduino IDE.
- MQTT -palvelin. (minun tapaukseni Mosquitto)
Kirjasto vaaditaan:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Vaihe 1: Asenna Arduino IDE Esp8266 -kehitykseen
avaa Arduinon asetukset ja liitä alla oleva URL -osoite Aditional Boards Managerin URL -osoitteisiin:
arduino.esp8266.com/stable/package_esp8266com_index.json
valitse sitten Työkalut> Taulut> Taulujen hallinta ja etsi esp8266 ja asenna se.
nyt Arduino ideasi on valmis esp8266 -kehitykseen.
Vaihe 2: Lataa ulkoiset kirjastot
nyt tarvitsemme joitakin kirjastoja MAX7219- ja MQTT -asiakkaille.
ladataan ja asennetaan kirjastot
siirry kohtaan Luonnos> Sisällytä kirjasto> Hallinnoi kirjastoja Arduino IDE: ssä
ja etsi EspMQTTClient ja napsauta Asenna
HUOM: Asenna kaikki riippuvaiset kirjastot, se on tärkeää
Etsi uudelleen MD_MAX72xx ja napsauta Asenna
Vaihe 3: Kirjoita koodi nyt
Liitä nyt alla oleva koodi
#sisältää
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // laitteesi määrä #define CLK_PIN D5 // tai SCK #define DATA_PIN D7 // tai MOSI #define CS_PIN D4 // tai SS // voit määrittää sen mihin tahansa nastaan #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // vaihda näyttötyypin mukaan 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; // oletus vieritysviive uint8_t INTENSITY = 5; // oletusintensiteetti char curMessage [MESG_SIZE]; char newMessage [MESG_SIZE]; bool newMessageAvailable = epätosi; void scrollDataSink (uint8_t dev, MD_MAX72XX:: transformType_t t, uint8_t col) {} uint8_t scrollDataSource (uint8_t dev, MD_MAX72XX:: transformType_t t) {staattinen enum {S_IDLE, S_NEXSCH_ SAR_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_SCH_FI staattinen char *p; staattinen uint16_t curLen, showLen; staattinen uint8_t cBuf [8]; uint8_t colData = 0; kytkin (tila) {tapaus S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = epätosi; } tila = S_NEXT_CHAR; tauko; tapaus S_NEXT_CHAR: jos (*p == '\ 0') tila = S_IDLE; else {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; tila = S_SHOW_CHAR; } tauko; tapaus S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // vieritä eteenpäin - takaisinsoitto lataa kaikki tiedot prevTime = millis (); // seuraavan kerran lähtökohta}} 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 () {// MQTT -tilausteema näyttötekstille client.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// MQTT -tilauksen aihe näytön voimakkuuden hallintaan
client.subscribe ("leddisplay/intensiteetti", (const String & hyötykuorma) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // MQTT -tilauksen aihe näytön vieritysnopeuden hallinnan asiakasohjelmalle.subscribe ("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Katso lisätietoja tästä arkistosta
github.com/souravj96/max7219-mqtt-esp8266
Vaihe 4: Piirikaavio
liitä MAX7219 -näyttö NODE MCU -laitteeseen
Vaihe 5: Lähetä koodi Esp8266 -tiedostoon
valitse nyt oikea levyn tyyppi ja sarjaportti ja paina sitten lataa.
Vaihe 6: Testaa kaikki
jos kaikki menee oikein, esp8266 yhdistetään MQTT -palvelimeen.
jos nyt julkaistaan jotain LED -näyttö/teksti -aiheessa, joka näytetään.
{
topic: "leddisplay/text", hyötykuorma: "viestisi täällä"}
jos haluat asettaa näytön voimakkuuden
{
topic: "led -näyttö/intensiteetti", hyötykuorma: "2" // max on 15 ja min 0}
jos haluat asettaa näytön vieritysnopeuden
{
topic: "leddisplay/scroll", hyötykuorma: "100" // max on 255 ja min 0}
Hyvää koodausta
Suositeltava:
Yksinkertainen, kannettava jatkuva EKG-/EKG -näyttö ATMega328: n (Arduino Uno Chip) + AD8232: 3 askeleen avulla
Yksinkertainen, kannettava jatkuva EKG-/EKG-näyttö ATMega328: n (Arduino Uno Chip) + AD8232 avulla: Tämä ohjeiden sivu näyttää, kuinka voit tehdä yksinkertaisen kannettavan 3-kytkentäisen EKG/EKG-näytön. Monitori mittaa EKG -signaalin ja tallentaa sen microSD -kortille myöhempää analysointia varten AD8232 -kortin avulla
Hallitse kodinkoneita Alexan kautta ESP8266: n tai ESP32: 8 askeleen avulla
Hallitse kodinkoneita Alexan avulla ESP8266: n tai ESP32: n avulla: Hei, mitä kuuluu, kaverit! Akarsh täällä CETechiltä. Tämä projektini auttaa elämääsi helpottumaan ja sinusta tuntuu kuninkaalta, kun olet hallinnut kodin laitteita antamalla vain käskyn Alexalle. Tärkeintä tämän p
Rakenna Apple HomeKit -lämpötila -anturi ESP8266: n ja BME280: 10 askeleen avulla
Rakenna Apple HomeKit -lämpötila-anturi ESP8266: n ja BME280: n avulla: Tämän päivän ohjeiden mukaan teemme edulliset lämpötila-, kosteus- ja kosteusanturit, jotka perustuvat joko AOSONG AM2302/DHT22- tai BME280-lämpötila-/kosteusanturiin, YL-69-kosteusanturiin ja ESP8266/Nodemcu -alusta. Ja esittelyyn
Nice Effect LED Chaser -piiri BC547: 11 askeleen avulla
Nice Effect LED Chaser Circuit BC547: Hei ystävä, tänään aion tehdä LED -jahtajapiirin, jonka vaikutus on hämmästyttävä
Jopa 68 pisteen hallinta Arduino Megan ja ESP8266: 14 askeleen avulla
Jopa 68 pisteen hallinta Arduino Megan ja ESP8266: n avulla: Sähköisen kaavion avulla, jonka tein saataville PDF -muodossa, tämän päivän projektissa Arduino Mega on kytketty ESP8266: een WiFi -toiminnon luomiseksi. Pääasiassa asuntoautomaatiota varten piiri toimii myös Bluetoothin kanssa ja on c