Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: I-setup ang Arduino IDE para sa Esp8266 Development
- Hakbang 2: Mag-download ng Mga Panlabas na Aklatan
- Hakbang 3: Sumulat ng Ilang Code Ngayon
- Hakbang 4: Diagram ng Circuit
- Hakbang 5: Mag-upload ng Code sa Esp8266
- Hakbang 6: Subukan ang Lahat
Video: MAX7219 LED Matrix MQTT Gamit ang Esp8266: 6 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Sinusubukan kong ikonekta ang aking MAX7219 LED display sa isang MQTT server at makatanggap ng isang teksto mula sa MQTT subscription upang ipakita.
ngunit wala akong nakuhang anumang naaangkop na code sa internet, kaya nagsimula akong bumuo ng sarili kong…
at ang resulta ay dumating nang maayos…
- maaari mong ipakita ang anumang teksto sa led display
- maaari mong ayusin ang tindi ng display
- maaari mong itakda ang bilis ng pag-scroll
Mga gamit
- Isang esp8266 development board. (ang kaso ko ay NODE MCU v1.0)
- MAX7219 LED Matrix Display.
Kailangan ng software:
- Arduino IDE.
- Isang MQTT server. (ang aking kaso Mosquitto)
Kinakailangan sa library:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Hakbang 1: I-setup ang Arduino IDE para sa Esp8266 Development
buksan ang mga kagustuhan ng Arduino pagkatapos i-paste ang nasa ibaba URL sa mga Aditional Boards Manager URL:
arduino.esp8266.com/stable/package_esp8266com_index.json
pagkatapos Mga Tool> Mga Lupon> Mga Board Manager at maghanap para sa esp8266 at i-install ito.
Ngayon ang iyong Arduino ide ay handa na para sa pagpapaunlad ng esp8266.
Hakbang 2: Mag-download ng Mga Panlabas na Aklatan
ngayon kailangan namin ng ilang mga aklatan para sa MAX7219 at MQTT Client.
i-download at i-set up natin ang mga aklatan
mag-navigate sa Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan sa Arduino IDE
at maghanap para sa EspMQTTClient at i-click ang I-install
NB: I-install ang lahat ng mga umaasang aklatan, mahalaga ito
Muling hanapin ang MD_MAX72xx at i-click ang I-install
Hakbang 3: Sumulat ng Ilang Code Ngayon
I-paste ngayon ang code sa ibaba
# isama
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // count your device #define CLK_PIN D5 // or SCK #define DATA_PIN D7 // or MOSI #define CS_PIN D4 // or SS // you can set it sa anumang pin #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // baguhin alinsunod sa iyong uri ng display na 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; // default scroll delay uint8_t INTENSITY = 5; // default intensity 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_CHAR,} static char * p; static uint16_t curLen, showLen; static uint8_t cBuf [8]; uint8_t colData = 0; lumipat (estado) {case S_IDLE: p = curMessage; kung (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } estado = S_NEXT_CHAR; pahinga; kaso S_NEXT_CHAR: kung (* p == '\ 0') estado = S_IDLE; iba pa {showLen = mx.getChar (* p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; estado = S_SHOW_CHAR; } pahinga; kaso S_SHOW_CHAR: colData = cBuf [curLen ++]; kung (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // scroll along - mai-load ng callback ang lahat ng data prevTime = millis (); // panimulang punto para sa susunod na oras}} 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"); } walang bisa saConnectionEstablished () {// MQTT paksa ng subscription para sa display text client.subscribe ("leddisplay / text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// Paksa ng subscription ng MQTT para sa kontrol ng intensity ng display
client.subscribe ("leddisplay / intensity", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // Paksa ng subscription ng MQTT para sa bilis ng pag-scroll ng display na kontrolado ang client.subscribe ("leddisplay / scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Para sa impormasyon ng detalye, mag-refer sa repository na ito
github.com/souravj96/max7219-mqtt-esp8266
Hakbang 4: Diagram ng Circuit
ikonekta ang MAX7219 display sa NODE MCU
Hakbang 5: Mag-upload ng Code sa Esp8266
piliin ang iyong tamang uri ng board at serial port pagkatapos ay pindutin ang upload.
Hakbang 6: Subukan ang Lahat
kung ang lahat ay tama pagkatapos ang iyong esp8266 ay konektado sa iyong MQTT server.
ngayon, kung may mai-publish sa leddisplay / paksa ng teksto na ipapakita.
{
paksa: "leddisplay / text", payload: "iyong mensahe dito"}
kung nais mong itakda ang tindi ng display
{
paksa: "leddisplay / intensity", payload: "2" // max ay 15 at min 0}
kung nais mong itakda ang bilis ng pag-scroll ng display
{
paksa: "leddisplay / scroll", payload: "100" // max ay 255 at min 0}
Maligayang pag-coding
Inirerekumendang:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Kontrolin ang LED Board sa pamamagitan ng Telepono Gamit ang NodeMCU, ESP8266 at MAX7219: 8 Mga Hakbang
Kontrolin ang LED Board sa pamamagitan ng Telepono Gamit ang NodeMCU, ESP8266 at MAX7219: Gusto kong gumamit ng telepono upang makontrol ang LED board bilang isang turn signal. Kaya, ang ESP8266 ay kikilos bilang isang Access Point, microcontroller at isang server din. Ang web server ay magkakaroon ng isang simpleng webpage na may 3 mga pindutan: Lumiko sa Kaliwa, Lumiko KANAN, at Lumiko sa SOS. Ang tex
Paano Gumawa ng isang Device ng IoT upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: 5 Mga Hakbang
Paano Gumawa ng isang IoT Device upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: Ang Internet ng mga bagay (IoT) ay ang inter-networking ng mga pisikal na aparato (tinukoy din bilang " mga konektadong aparato " at " mga smart device "), mga gusali, at iba pang mga item - naka-embed sa electronics, software, sensor, actuators, at
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c