Turinys:
- Prekės
- 1 veiksmas: nustatykite „Arduino IDE“, skirtą „Esp8266 Development“
- 2 veiksmas: atsisiųskite išorines bibliotekas
- 3 žingsnis: dabar parašykite kodą
- 4 žingsnis: grandinės schema
- 5 veiksmas: įkelkite kodą į Esp8266
- 6 žingsnis: išbandykite viską
Video: MAX7219 LED matrica MQTT naudojant Esp8266: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Bandžiau prijungti savo MAX7219 LED ekraną prie MQTT serverio ir gauti tekstą iš MQTT prenumeratos.
bet internete negavau jokio tinkamo kodo, todėl pradėjau kurti savo …
o rezultatas visai geras …
- LED ekrane galite rodyti bet kokį tekstą
- galite reguliuoti ekrano intensyvumą
- galite nustatyti slinkties greitį
Prekės
- Esp8266 kūrimo lenta. (mano atveju tai NODE MCU v1.0)
- MAX7219 LED matricinis ekranas.
Reikalinga programinė įranga:
- „Arduino IDE“.
- MQTT serveris. (mano atvejis Mosquitto)
Reikalinga biblioteka:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
1 veiksmas: nustatykite „Arduino IDE“, skirtą „Esp8266 Development“
atidarykite „Arduino“nuostatas, tada įklijuokite žemiau esantį URL į papildomų lentų tvarkyklės URL:
arduino.esp8266.com/stable/package_esp8266com_index.json
tada Įrankiai> Lentos> Lentų tvarkytuvė ir suraskite esp8266 ir įdiekite.
dabar jūsų „Arduino ide“yra paruoštas plėtoti esp8266.
2 veiksmas: atsisiųskite išorines bibliotekas
dabar mums reikia kai kurių MAX7219 ir MQTT kliento bibliotekų.
atsisiųskime ir nustatysime bibliotekas
eikite į „Arduino IDE“eskizas> Įtraukti biblioteką> Tvarkyti bibliotekas
ir ieškokite EspMQTTClient ir spustelėkite Įdiegti
NB: Įdiekite visas priklausomas bibliotekas, tai svarbu
Dar kartą ieškokite MD_MAX72xx ir spustelėkite Įdiegti
3 žingsnis: dabar parašykite kodą
Dabar įklijuokite žemiau esantį kodą
#įtraukti
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // jūsų įrenginių skaičius #define CLK_PIN D5 // arba SCK #define DATA_PIN D7 // arba MOSI #define CS_PIN D4 // arba SS // galite tai nustatyti į bet kokį kaištį #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // pakeisti pagal jūsų ekrano tipą 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; // numatytasis slinkties uždelsimas uint8_t INTENSITY = 5; // numatytasis intensyvumas 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_NEXSCHCH_SCH, S statinė anglis *p; statinis uint16_t curLen, showLen; statinis uint8_t cBuf [8]; uint8_t colData = 0; jungiklis (būsena) {atvejis S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = klaidinga; } būsena = S_NEXT_CHAR; pertrauka; atvejis S_NEXT_CHAR: jei (*p == '\ 0') būsena = S_IDLE; else {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; būsena = S_SHOW_CHAR; } pertrauka; atvejis S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // slinkite išilgai - atgalinis skambutis įkelia visus duomenis prevTime = millis (); // kito karto pradžios taškas}} 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“, „Išmanusis ekranas“); } void onConnectionEstablished () {// MQTT prenumeratos tema vaizdiniam tekstui client.subscribe ("leddisplay/text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// MQTT prenumeratos tema ekrano intensyvumui valdyti
client.subscribe ("leddisplay/intensyvumas", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // MQTT prenumeratos tema ekrano slinkties greičio valdymo klientui.subscribe ("leddisplay/scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Išsamesnės informacijos ieškokite šioje saugykloje
github.com/souravj96/max7219-mqtt-esp8266
4 žingsnis: grandinės schema
prijunkite MAX7219 ekraną su NODE MCU
5 veiksmas: įkelkite kodą į Esp8266
Dabar pasirinkite tinkamą plokštės tipą ir nuoseklųjį prievadą, tada paspauskite „Įkelti“.
6 žingsnis: išbandykite viską
jei viskas vyksta teisingai, jūsų esp8266 bus prijungtas prie jūsų MQTT serverio.
dabar, jei kas nors bus paskelbta LED rodymo/teksto tema, kuri bus rodoma.
{
tema: "leddisplay/text", payload: "tavo žinutė čia"}
jei norite nustatyti ekrano intensyvumą
{
tema: "leddisplay/intensyvumas", naudingoji apkrova: "2" // maks. yra 15 ir min 0}
jei norite nustatyti ekrano slinkties greitį
{
tema: "leddisplay/scroll", naudingoji apkrova: "100" // maks. yra 255 ir min 0}
Laimingas kodavimas
Rekomenduojamas:
Dviejų skaitmenų ekranas naudojant vieną 8x8 LED matricą: 3 žingsniai
Dviejų skaitmenų ekranas naudojant vieną 8x8 LED matricą: čia norėčiau pastatyti savo kambario temperatūros ir drėgmės indikatorių. Dviejų skaitmenų skaičiams rodyti naudojau vieną 8x8 LED matricą ir manau, kad dalis projekto tapo naudingesnė. Aš supakavau finalą, pastatytą naudojant kartoninę dėžę, skausmas
Kaip sukurti 8x8 BIG LED matricą (MAX7219 LED 10mm): 9 žingsniai (su paveikslėliais)
Kaip sukurti 8x8 BIG LED matricą (MAX7219 LED 10mm): ar dirbote su paruošta 8x8 LED matrica kaip ekranai? Jie būna įvairių dydžių ir yra gana įdomūs dirbti. Didelis lengvai prieinamas dydis yra apie 60 mm x 60 mm. Tačiau, jei ieškote daug didesnės paruoštos LED matricos
Kaip sujungti MAX7219 varomą LED matricą 8x8 su ATtiny85 mikrovaldikliu: 7 žingsniai
Kaip prijungti MAX7219 varomą LED matricą 8x8 su ATtiny85 mikrovaldikliu: MAX7219 valdiklį gamina „Maxim Integrated“yra kompaktiška, nuoseklaus įvesties/išvesties bendrojo katodo ekrano tvarkyklė, galinti prijungti mikrovaldiklius prie 64 atskirų šviesos diodų, 7 segmentų skaitmeniniai LED ekranai iki 8 skaitmenų, juostos diagrama
5x4 LED ekrano matrica naudojant pagrindinį antspaudą 2 (bs2) ir „Charlieplexing“: 7 žingsniai
5x4 LED ekrano matrica naudojant pagrindinį antspaudą 2 (bs2) ir „Charlieplexing“: ar sėdi „Basic Stamp 2“ir keletas papildomų šviesos diodų? Kodėl gi ne pažaisti su charlieplexing koncepcija ir sukurti išvestį naudojant tik 5 kaiščius. Norėdami tai padaryti, aš naudosiu BS2e, bet bet kuris BS2 šeimos narys turėtų dirbti
LED matrica naudojant poslinkių registrus: 7 žingsniai (su paveikslėliais)
Šviesos diodų matrica naudojant poslinkių registrus: ši instrukcija yra išsamesnis paaiškinimas nei kiti, prieinami internete. Pažymėtina, kad tai suteiks daugiau aparatinės įrangos paaiškinimų, nei yra LED lemputėje, kurią nurodo „led555“. Tikslai