Мазмұны:
- Жабдықтар
- 1 -қадам: Esp8266 Development үшін Arduino IDE орнатыңыз
- 2 -қадам: Сыртқы кітапханаларды жүктеу
- 3 -қадам: Қазір кодты жазыңыз
- 4 -қадам: схема
- 5 -қадам: Esp8266 кодын жүктеңіз
- 6 -қадам: Барлығын тексеріңіз
Бейне: MAX7219 LED Matrix MQTT Esp8266 көмегімен: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Мен MAX7219 жарықдиодты дисплейімді MQTT серверіне қосуға тырыстым және MQTT жазылымынан мәтінді алуға тырыстым.
бірақ мен интернетте сәйкес код ала алмадым, сондықтан мен өзімнің кодты құра бастадым …
және нәтиже өте жақсы болады …
- кез келген мәтінді дисплейде көрсетуге болады
- дисплейдің қарқындылығын реттеуге болады
- айналдыру жылдамдығын орнатуға болады
Жабдықтар
- Esp8266 даму тақтасы. (менің жағдайда бұл NODE MCU v1.0)
- MAX7219 жарықдиодты матрицалық дисплей.
Қажетті бағдарламалық қамтамасыз ету:
- Arduino IDE.
- MQTT сервері. (менің жағдайым маска)
Кітапхана қажет:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
1 -қадам: Esp8266 Development үшін Arduino IDE орнатыңыз
Arduino теңшелімдерін ашыңыз, содан кейін төмендегі URL -ді қосымша тақталар менеджерінің URL -мекенжайларына қойыңыз:
arduino.esp8266.com/stable/package_esp8266com_index.json
содан кейін Құралдар> Тақталар> Тақталар менеджері және esp8266 іздеп, оны орнатыңыз.
енді сіздің Arduino ide esp8266 әзірлеуге дайын.
2 -қадам: Сыртқы кітапханаларды жүктеу
енді бізге MAX7219 және MQTT Client үшін кейбір кітапханалар қажет.
кітапханаларды жүктеп, орнатайық
нобай> Кітапхананы қосу> Arduino IDE кітапханаларын басқару тармағына өтіңіз
және EspMQTTClient іздеп, Орнату түймесін басыңыз
Ескерту: Барлық тәуелді кітапханаларды орнатыңыз, бұл маңызды
Тағы MD_MAX72xx іздеп, Орнату түймесін басыңыз
3 -қадам: Қазір кодты жазыңыз
Енді төмендегі кодты қойыңыз
#қосу
#include #include #include «EspMQTTClient.h» #MAX_DEVICES 4 анықтаңыз // сіздің құрылғыңыздың санын анықтаңыз #CLK_PIN D5 анықтаңыз // немесе SCK #DATA_PIN D7 анықтаңыз // немесе MOSI #анықтаңыз CS_PIN D4 // немесе SS // сіз оны орната аласыз. кез келген түйреуге #анықтаңыз HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // дисплей түріне сәйкес өзгертіңіз 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; // әдепкі айналдыру кешігуі uint8_t INTENSITY = 5; // әдепкі қарқындылық char curMessage [MESG_SIZE]; char newMessage [MESG_SIZE]; bool newMessageAvailable = жалған; жарамсыз scrollDataSink (uint8_t dev, MD_MAX72XX:: transformType_t t, uint8_t col) {} uint8_t scrollDataSource (uint8_t dev, MD_MAX72XX:: transformType_t t) {статикалық тізім {S_IDLE, S_NEXOW_CHAR_, S_NEX_CHOW_, S_NEX_CHOW_ статикалық char *p; статикалық uint16_t curLen, showLen; статикалық uint8_t cBuf [8]; uint8_t colData = 0; қосқыш (күй) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = жалған; } күй = S_NEXT_CHAR; үзіліс; жағдай S_NEXT_CHAR: егер (*p == '\ 0') күй = S_IDLE; else {showLen = mx.getChar (*p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; күй = S_SHOW_CHAR; } үзіліс; жағдай S_SHOW_CHAR: colData = cBuf [curLen ++]; егер (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // жылжытыңыз - кері байланыс барлық деректерді жүктейді prevTime = millis (); // келесі жолы басталу нүктесі}} 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, «Ақылды дисплей»); } void onConnectionEstablished () {// MQTT жазылымының мәтіні клиентке жазылу тақырыбы.subscribe («leddisplay/text», (const String & payload) {sprintf (curMessage, payload.c_str ());});
// MQTT жазылым тақырыбы дисплей қарқындылығын бақылауға арналған
client.subscribe («leddisplay/intensity», (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // MQTT жазылымының тақырыбы айналдыру жылдамдығын бақылау клиенті.subscribe («leddisplay/scroll», (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Толық ақпарат алу үшін осы репозиторийді қараңыз
github.com/souravj96/max7219-mqtt-esp8266
4 -қадам: схема
MAX7219 дисплейін NODE MCU көмегімен қосыңыз
5 -қадам: Esp8266 кодын жүктеңіз
енді дұрыс тақта түрін және сериялық портты таңдаңыз, содан кейін жүктеуді басыңыз.
6 -қадам: Барлығын тексеріңіз
егер бәрі дұрыс болса, онда сіздің esp8266 сіздің MQTT серверіңізге қосылады.
енді, егер бірдеңе дисплейде/мәтін тақырыбында жарияланатын болса, ол көрсетіледі.
{
тақырып: «leddisplay/text», пайдалы жүктеме: «сіздің хабарламаңыз осында»}
егер дисплей қарқындылығын орнатқыңыз келсе
{
тақырып: «leddisplay/intensity», пайдалы жүктеме: «2» // максимум 15 және мин 0}
егер дисплейдің айналдыру жылдамдығын орнатқыңыз келсе
{
тақырып: «leddisplay/scroll», пайдалы жүктеме: «100» // максимум - 255 және мин 0}
Бақытты кодтау
Ұсынылған:
Uno бар ESP8266 WeMos D1 R1 Wifi процессорының көмегімен ESP32-Cam көмегімен суретке түсіру және жіберу: 7 қадам
ESP32 камерамен суреттерді түсіру және жіберу ESP8266 WeMos D1 R1 Wifi процессоры Uno көмегімен: ESP8266 WeMos D1 R1 WiFI процессоры көмегімен ESP32-Cam (OV2640) көмегімен суретке түсіру және оны электрондық поштаға жіберу, Google Drive-қа сақтау және оны жіберу Twilio арқылы Whatsapp. Талаптар: Uno бар ESP8266 WeMos D1 R1 WiFI процессоры (https: // протосуплистер
Интернет сағаты: NTP протоколы бар ESP8266 NodeMCU көмегімен OLED көмегімен күн мен уақытты көрсету: 6 қадам
Интернет сағаты: NTP протоколы бар ESP8266 NodeMCU көмегімен OLED көмегімен күн мен уақытты көрсету: Сәлеметсіз бе, балалар, біз интернеттен уақыт алатын интернет сағатын құрамыз, сондықтан бұл жобаны іске қосу үшін RTC қажет емес, оған тек қажет. жұмыс істейтін интернет байланысы Бұл жоба үшін сізге esp8266 қажет, ол
ESP8266 көмегімен Интернеттен уақыт алу - ESP8266 Nodemcu көмегімен NTP сағаты жобасы: 5 қадам
ESP8266 көмегімен Интернеттен уақыт алу | ESP8266 Nodemcu көмегімен NTP сағаттары жобасы: Бұл оқулықта біз Arduino IDE көмегімен ESP8266/nodemcu көмегімен уақытты қалай алуға болатынын көреміз. Уақытты алу, әсіресе, оқылымдардың уақыт белгісін қою үшін деректерді тіркеуде пайдалы. Егер сіздің ESP8266 жобаңызда Интернетке кіру мүмкіндігі болса, сіз Network T арқылы уақыт ала аласыз
HC-12 көмегімен Arduino мен ESP8266 арасындағы MPU6050 көмегімен сервисті басқару: 6 қадам
HU-12 көмегімен Arduino мен ESP8266 арасындағы MPU6050 көмегімен сервопросторды басқару: Бұл жобада біз Arduino UNO мен ESP8266 NodeMCU арасындағы байланыс үшін mpu6050 және HC-12 көмегімен серво қозғалтқышының орнын басқарамыз
Matrix Led X4 MAX7219 + ESP8266 12E + DS18b20 сенсоры (температура): 6 қадам
Matrix Led X4 MAX7219 + ESP8266 12E + DS18b20 сенсоры (Температура): Бұл жағдайда біз ESP8266 модулі бар MAX7219 интеграцияланған матрицасына жылдам тест жүргіземіз, сондықтан біз сенсордың температурасын оқимыз. DS18B20. Болашақ оқулықтарда біз оны басқа платформаларға біріктіреміз