Sadržaj:
- Pribor
- Korak 1: Postavite Arduino IDE za razvoj Esp8266
- Korak 2: Preuzmite vanjske knjižnice
- Korak 3: Odmah napišite neki kod
- Korak 4: Dijagram kruga
- 5. korak: prenesite kôd na Esp8266
- Korak 6: Sve isprobajte
Video: MAX7219 LED matrica MQTT pomoću Esp8266: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Pokušavao sam spojiti svoj MAX7219 LED zaslon na MQTT poslužitelj i primiti tekst od MQTT pretplate za prikaz.
ali nisam dobio odgovarajući kod na internetu, pa sam počeo graditi vlastiti …
a rezultat je sasvim dobar …
- možete prikazati bilo koji tekst na LED zaslonu
- možete podesiti intenzitet prikaza
- možete postaviti brzinu pomicanja
Pribor
- Razvojna ploča esp8266. (u mom slučaju to je NODE MCU v1.0)
- MAX7219 LED matrični zaslon.
Potreban softver:
- Arduino IDE.
- MQTT poslužitelj. (moj slučaj Mosquitto)
Potrebna biblioteka:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Korak 1: Postavite Arduino IDE za razvoj Esp8266
otvorite postavke Arduina, a zatim zalijepite donji URL u URL -ove upravitelja dopunskih ploča:
arduino.esp8266.com/stable/package_esp8266com_index.json
zatim Alati> Ploče> Upravitelj ploča i potražite esp8266 te ga instalirajte.
sada je vaš Arduino ide spreman za razvoj esp8266.
Korak 2: Preuzmite vanjske knjižnice
sada nam trebaju neke knjižnice za MAX7219 i MQTT Client.
preuzmimo i postavimo knjižnice
idite na Sketch> Include Library> Manage Libraries na Arduino IDE
i potražite EspMQTTClient i kliknite Instaliraj
Napomena: Instalirajte sve ovisne knjižnice, važno je
Ponovno potražite MD_MAX72xx i kliknite Instaliraj
Korak 3: Odmah napišite neki kod
Sada zalijepite donji kod
#uključi
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // broj vašeg uređaja #define CLK_PIN D5 // ili SCK #define DATA_PIN D7 // ili MOSI #define CS_PIN D4 // ili SS // možete ga postaviti na bilo koji pin #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // promijenite prema vrsti prikaza 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; // zadano kašnjenje pomicanja uint8_t INTENSITY = 5; // zadani intenzitet 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) {statičko nabrajanje {S_IDLE statički char *p; statički uint16_t curLen, showLen; statički uint8_t cBuf [8]; uint8_t colData = 0; switch (stanje) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } stanje = S_NEXT_CHAR; pauza; slučaj S_NEXT_CHAR: if (*p == '\ 0') stanje = S_IDLE; else {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; stanje = S_SHOW_CHAR; } pauza; slučaj S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // pomičite se dalje - povratni poziv učitat će sve podatke prevTime = millis (); // početna točka za sljedeći put}} void setup () {Serial.begin (115200); mx.begin (); mx.control (MD_MAX72XX:: INTENZITET, INTENZITET); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback (scrollDataSink); curMessage [0] = newMessage [0] = '\ 0'; sprintf (curMessage, "Pametni zaslon"); } void onConnectionEstablished () {// Tema pretplate na MQTT za prikaz teksta client.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// Tema pretplate na MQTT za kontrolu intenziteta prikaza
client.subscribe ("leddisplay/intenzitet", (const niz i korisni teret) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // Tema pretplate na MQTT za kontrolu brzine pomicanja zaslona client.subscribe ("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Za detaljne informacije pogledajte ovo spremište
github.com/souravj96/max7219-mqtt-esp8266
Korak 4: Dijagram kruga
spojite zaslon MAX7219 s NODE MCU
5. korak: prenesite kôd na Esp8266
sada odaberite ispravnu vrstu ploče i serijski port, a zatim pritisnite upload.
Korak 6: Sve isprobajte
ako sve ide kako treba, vaš esp8266 bit će spojen na vaš MQTT poslužitelj.
sada, ako će bilo što biti objavljeno na leddisplay/tekstualnoj temi koja će biti prikazana.
{
tema: "leddisplay/text", korisni teret: "vaša poruka ovdje"}
ako želite postaviti intenzitet prikaza
{
tema: "leddisplay/intenzitet", korisni teret: "2" // max je 15 i min 0}
ako želite postaviti brzinu pomicanja zaslona
{
tema: "leddisplay/scroll", korisni teret: "100" // max je 255 i min 0}
Sretno kodiranje
Preporučeni:
SMART LED MATRICA DIY INTERNET -om KONTROLIRANA (ADAFRUIT + ESP8266 + WS2812): 8 koraka (sa slikama)
DIY INTERNET KONTROLIRANA SMART LED MATRIX (ADAFRUIT + ESP8266 + WS2812): Ovo je moj drugi napredak u projektu koji vam s velikim zadovoljstvom mogu pokazati. Riječ je o DIY Smart LED matrici koja će vam omogućiti da na njoj prikažete podatke, poput YouTube statistike, statistike vaše pametne kuće, kao što su temperatura, vlažnost, mogu biti jednostavan sat ili samo prikazati
RGB matrica pomoću NovaStara: 5 koraka
RGB matrica pomoću NovaStara: Za Noć vještica ove godine odlučili smo napraviti igru konjskih utrka. Želio sam ogroman zaslon i oduvijek sam bio zainteresiran za igru s kineskim RGB Matrix panelima. U prošlosti sam se igrao sa programabilnim LED diodama, ali teško je postići mnogo odlučnosti
Snimite i pošaljite slike pomoću ESP32-Cam pomoću ESP8266 WeMos D1 R1 Wifi procesora s Uno: 7 koraka
Snimite i pošaljite slike pomoću ESP32-Cam pomoću ESP8266 WeMos D1 R1 Wifi procesora s Uno: Snimite sliku pomoću ESP32-Cam (OV2640) pomoću ESP8266 WeMos D1 R1 WiFI procesora s Uno-om i pošaljite ga na e-poštu, spremite na Google disk i pošaljite na Whatsapp koristi Twilio.Zahtjevi: ESP8266 WeMos D1 R1 WiFI procesor s Uno (https: // protosupplies
Matrica LED zaslona 5x4 pomoću osnovnog žiga 2 (bs2) i Charlieplexinga: 7 koraka
Matrica 5x4 LED zaslona pomoću osnovnog žiga 2 (bs2) i Charlieplexinga: Imate li osnovni pečat 2 i neke dodatne LED diode u blizini? Zašto se ne poigrate s konceptom charlieplexinga i stvorite izlaz pomoću samo 5 pinova. Za ove upute koristit ću BS2e, ali svaki član obitelji BS2 bi trebao raditi
LED matrica pomoću registara pomaka: 7 koraka (sa slikama)
LED matrica pomoću registara pomaka: Ova instrukcija zamišljena je kao potpunije objašnjenje od ostalih dostupnih na mreži. Značajno, ovo će pružiti više hardverskog objašnjenja nego što je dostupno u LED Marquee -u za instrukcije led555.CiljeviOva instrukcija predstavlja koncepte