สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ตั้งค่า Arduino IDE สำหรับการพัฒนา Esp8266
- ขั้นตอนที่ 2: ดาวน์โหลด External Libraries
- ขั้นตอนที่ 3: เขียนโค้ดตอนนี้
- ขั้นตอนที่ 4: แผนภาพวงจร
- ขั้นตอนที่ 5: อัปโหลดรหัสไปที่ Esp8266
- ขั้นตอนที่ 6: ทดสอบทุกอย่าง
วีดีโอ: MAX7219 LED Matrix MQTT โดยใช้ Esp8266: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ฉันกำลังพยายามเชื่อมต่อจอแสดงผล LED MAX7219 ของฉันกับเซิร์ฟเวอร์ MQTT และรับข้อความจากการสมัครสมาชิก MQTT เพื่อแสดง
แต่ฉันไม่ได้รับรหัสที่เหมาะสมบนอินเทอร์เน็ต ดังนั้นฉันจึงเริ่มสร้าง…
และผลก็ออกมาค่อนข้างดี…
- คุณสามารถแสดงข้อความใด ๆ บนจอแสดงผล led
- คุณสามารถปรับความเข้มของจอแสดงผลได้
- คุณสามารถตั้งค่าความเร็วในการเลื่อน
เสบียง
- บอร์ดพัฒนา esp8266 (กรณีของฉันคือ NODE MCU v1.0)
- MAX7219 จอแสดงผล LED เมทริกซ์
ซอฟต์แวร์ที่จำเป็น:
- Arduino IDE
- เซิร์ฟเวอร์ MQTT (กรณีของฉัน ยุงลาย)
ห้องสมุดที่ต้องการ:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
ขั้นตอนที่ 1: ตั้งค่า Arduino IDE สำหรับการพัฒนา Esp8266
เปิดการตั้งค่าของ Arduino จากนั้นวาง URL ด้านล่างใน URL ตัวจัดการบอร์ดเพิ่มเติม:
arduino.esp8266.com/stable/package_esp8266com_index.json
จากนั้น เครื่องมือ > บอร์ด > ตัวจัดการบอร์ด และค้นหา esp8266 และติดตั้ง
ตอนนี้ Arduino ide ของคุณพร้อมสำหรับการพัฒนา esp8266 แล้ว
ขั้นตอนที่ 2: ดาวน์โหลด External Libraries
ตอนนี้เราต้องการไลบรารี่สำหรับ MAX7219 และ MQTT Client
มาดาวน์โหลดและตั้งค่าไลบรารีกันเถอะ
นำทางไปยัง Sketch > รวมไลบรารี > จัดการไลบรารีบน Arduino IDE
และค้นหา EspMQTTClient แล้วคลิกติดตั้ง
หมายเหตุ: ติดตั้งไลบรารีที่ขึ้นต่อกันทั้งหมดเป็นสิ่งสำคัญ
ค้นหา MD_MAX72xx อีกครั้งแล้วคลิกติดตั้ง
ขั้นตอนที่ 3: เขียนโค้ดตอนนี้
ตอนนี้วางโค้ดด้านล่าง
#รวม
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // จำนวนอุปกรณ์ของคุณ #define CLK_PIN D5 // หรือ SCK #define DATA_PIN D7 // หรือ MOSI #define CS_PIN D4 // หรือ SS // คุณสามารถตั้งค่าได้ ไปยังพินใด ๆ #define 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; // ถ่านความเข้มเริ่มต้น curMessage [MESG_SIZE]; ถ่านข้อความใหม่[MESG_SIZE]; bool newMessageAvailable = false; ถือเป็นโมฆะ scrollDataSink (uint8_t dev, MD_MAX72XX::transformType_t t, uint8_t col) {} uint8_t scrollDataSource (uint8_t dev, MD_MAX72XX::transformType_t t) { enum แบบคงที่ { S_IDLE, S_NEXT_SHOR, S_NEXT_SHOW; ถ่านคงที่ *p; คงที่ uint16_t curLen, showLen; คงที่ uint8_t cBuf[8]; uint8_t colData = 0; สวิตช์ (สถานะ) { กรณี S_IDLE: p = curMessage; ถ้า (newMessageAvailable) { strcpy (curMessage, newMessage); newMessageAvailable = false; } รัฐ = S_NEXT_CHAR; หยุดพัก; กรณี S_NEXT_CHAR: ถ้า (*p == '\0') สถานะ = S_IDLE; อื่น { 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(); // จุดเริ่มต้นสำหรับครั้งต่อไป } } การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); mx.begin(); mx.control(MD_MAX72XX::INTENSITY, INTENSITY); mx.setShiftDataInCallback (scrollDataSource); mx.setShiftDataOutCallback(scrollDataSink); curMessage[0] = newMessage[0] = '\0'; sprintf(curMessage, "สมาร์ทดิสเพลย์"); } เป็นโมฆะ onConnectionEstablished () { // หัวข้อการสมัครสมาชิก MQTT สำหรับข้อความที่แสดง
// หัวข้อการสมัครสมาชิก 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(); }); } วงเป็นโมฆะ () { client.loop (); เลื่อนข้อความ(); }
สำหรับข้อมูลรายละเอียด โปรดดูที่ที่เก็บนี้
github.com/souravj96/max7219-mqtt-esp8266
ขั้นตอนที่ 4: แผนภาพวงจร
เชื่อมต่อจอแสดงผล MAX7219 กับ NODE MCU
ขั้นตอนที่ 5: อัปโหลดรหัสไปที่ Esp8266
ตอนนี้เลือกประเภทบอร์ดและพอร์ตอนุกรมที่ถูกต้อง จากนั้นกดอัปโหลด
ขั้นตอนที่ 6: ทดสอบทุกอย่าง
หากทุกอย่างถูกต้อง esp8266 ของคุณจะเชื่อมต่อกับเซิร์ฟเวอร์ MQTT ของคุณ
ตอนนี้หากมีสิ่งใดที่จะเผยแพร่ในหัวข้อ leddisplay / text ที่จะแสดง
{
หัวข้อ: "leddisplay/text", payload: "your message here" }
หากคุณต้องการตั้งค่าความเข้มของการแสดงผล
{
หัวข้อ: "leddisplay/intensity", payload: "2" // สูงสุดคือ 15 และต่ำสุด 0 }
หากคุณต้องการตั้งค่าความเร็วการเลื่อนของ display
{
หัวข้อ: "leddisplay/scroll", payload: "100" // max คือ 255 และ min 0 }
มีความสุขในการเข้ารหัส
แนะนำ:
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C - เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C โดยใช้ Arduino IDE: 5 ขั้นตอน
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C | เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C การใช้ Arduino IDE: สวัสดีทุกคนในคำแนะนำนี้ เราจะเรียนรู้วิธีใช้ neopixel ws2812 LED หรือแถบนำหรือเมทริกซ์นำหรือวงแหวน LED พร้อมบอร์ดพัฒนา m5stack m5stick-C พร้อม Arduino IDE และเราจะทำ ลายรุ้งกับมัน
การควบคุมวิทยุ RF 433MHZ โดยใช้ HT12D HT12E - การสร้างรีโมทคอนโทรล Rf โดยใช้ HT12E & HT12D ด้วย 433mhz: 5 ขั้นตอน
การควบคุมวิทยุ RF 433MHZ โดยใช้ HT12D HT12E | การสร้างการควบคุมระยะไกล Rf โดยใช้ HT12E & HT12D ด้วย 433mhz: ในคำแนะนำนี้ฉันจะแสดงวิธีสร้างรีโมทคอนโทรล RADIO โดยใช้โมดูลตัวรับส่งสัญญาณ 433mhz พร้อมการเข้ารหัส HT12E & IC ถอดรหัส HT12D ในคำแนะนำนี้ คุณจะสามารถส่งและรับข้อมูลโดยใช้ส่วนประกอบราคาถูกมาก เช่น HT
การตรวจจับผู้บุกรุก HiFive1 Arduino พร้อมการแจ้งเตือน MQTT โดยใช้ ESP32 หรือ ESP8266: 6 ขั้นตอน
การตรวจจับผู้บุกรุก HiFive1 Arduino พร้อมการแจ้งเตือน MQTT โดยใช้ ESP32 หรือ ESP8266: HiFive1 เป็นบอร์ดที่ใช้ RISC-V ที่เข้ากันได้กับ Arduino ตัวแรกที่สร้างขึ้นด้วย FE310 CPU จาก SiFive บอร์ดนี้เร็วกว่า Arduino UNO ประมาณ 20 เท่า แต่เหมือนกับบอร์ด UNO ที่ไม่มีการเชื่อมต่อไร้สาย โชคดีที่มีราคาไม่แพงหลาย
Raspberry Pi คุยกับ ESP8266 โดยใช้ MQTT: 8 ขั้นตอน
Raspberry Pi พูดคุยกับ ESP8266 โดยใช้ MQTT: ในโครงการนี้ ฉันจะอธิบายว่าโปรโตคอล MQTT คืออะไรและใช้อย่างไรในการสื่อสารระหว่างอุปกรณ์ต่างๆ จากนั้นในการสาธิตเชิงปฏิบัติ ฉันจะสาธิตวิธีการตั้งค่าไคลเอนต์และระบบโบรคเกอร์โดยที่ โมดูล ESP8266 และ RPi tal
Matrix Led X4 MAX7219 + ESP8266 12E + เซนเซอร์ DS18b20 (อุณหภูมิ): 6 ขั้นตอน
Matrix Led X4 MAX7219 + ESP8266 12E + เซ็นเซอร์ DS18b20 (อุณหภูมิ): ในโอกาสนี้เราจะทำการทดสอบอย่างรวดเร็วกับเมทริกซ์ที่นำด้วย MAX7219 ที่รวมเข้ากับโมดูล ESP8266 และเพื่อไม่ให้ง่ายนักเราจะอ่านอุณหภูมิของเซ็นเซอร์ DS18B20 ในบทช่วยสอนในอนาคต เราจะรวมเข้ากับแพลตอื่น