Mục lục:
- Quân nhu
- Bước 1: Thiết lập Arduino IDE để phát triển Esp8266
- Bước 2: Tải xuống thư viện bên ngoài
- Bước 3: Viết một số mã ngay bây giờ
- Bước 4: Sơ đồ mạch
- Bước 5: Tải mã lên Esp8266
- Bước 6: Kiểm tra mọi thứ
Video: MAX7219 LED Matrix MQTT Sử dụng Esp8266: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Tôi đang cố gắng kết nối màn hình LED MAX7219 của mình với máy chủ MQTT và nhận được một văn bản từ đăng ký MQTT để hiển thị.
nhưng tôi không nhận được bất kỳ mã phù hợp nào trên internet, vì vậy tôi bắt đầu xây dựng…
và kết quả khá tốt…
- bạn có thể hiển thị bất kỳ văn bản nào trên màn hình led
- bạn có thể điều chỉnh cường độ của màn hình
- bạn có thể đặt tốc độ cuộn
Quân nhu
- Một hội đồng phát triển esp8266. (trường hợp của tôi đó là NODE MCU v1.0)
- Màn hình ma trận LED MAX7219.
Phần mềm cần thiết:
- Arduino IDE.
- Máy chủ MQTT. (trường hợp của tôi Mosquitto)
Thư viện yêu cầu:
- ESP8266WiFi.h
- MD_MAX72xx.h
- EspMQTTClient.h
Bước 1: Thiết lập Arduino IDE để phát triển Esp8266
mở tùy chọn của Arduino sau đó dán URL bên dưới vào URL trình quản lý bảng bổ sung:
arduino.esp8266.com/stable/package_esp8266com_index.json
sau đó nhấp vào Tools> Boards> Boards Manager và tìm kiếm esp8266 và cài đặt nó.
bây giờ lý tưởng Arduino của bạn đã sẵn sàng để phát triển esp8266.
Bước 2: Tải xuống thư viện bên ngoài
bây giờ chúng tôi cần một số thư viện cho MAX7219 và MQTT Client.
hãy tải xuống và thiết lập các thư viện
điều hướng đến Phác thảo> Bao gồm Thư viện> Quản lý Thư viện trên Arduino IDE
và tìm kiếm EspMQTTClient và nhấp vào Cài đặt
NB: Cài đặt tất cả các thư viện phụ thuộc, điều quan trọng là
Một lần nữa tìm kiếm MD_MAX72xx và nhấp vào Cài đặt
Bước 3: Viết một số mã ngay bây giờ
Bây giờ hãy dán đoạn mã dưới đây
#bao gồm
#include #include #include "EspMQTTClient.h" #define MAX_DEVICES 4 // số lượng thiết bị của bạn #define CLK_PIN D5 // hoặc SCK #define DATA_PIN D7 // hoặc MOSI #define CS_PIN D4 // hoặc SS // bạn có thể thiết lập thành bất kỳ chân nào #define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW // thay đổi theo kiểu hiển thị của bạn 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; // độ trễ cuộn mặc định uint8_t INTENSITY = 5; // cường độ mặc định 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:: variableType_t t) {static enum {S_IDLE, S_NEXT_CHAR, S_SHOW_SHOW_CHAR, S_SHOW_CHAR, S_SHOW_CHAR, S_SHOW_CHAR, S_SHOW_CHAR, S_SHOW_CHAR char tĩnh * p; static uint16_t curLen, showLen; static uint8_t cBuf [8]; uint8_t colData = 0; switch (trạng thái) {case S_IDLE: p = curMessage; if (newMessageAvailable) {strcpy (curMessage, newMessage); newMessageAvailable = false; } state = S_NEXT_CHAR; nghỉ; case S_NEXT_CHAR: if (* p == '\ 0') state = S_IDLE; else {showLen = mx.getChar (* p ++, sizeof (cBuf) / sizeof (cBuf [0]), cBuf); curLen = 0; trạng thái = S_SHOW_CHAR; } nghỉ; case S_SHOW_CHAR: colData = cBuf [curLen ++]; if (curLen = SCROLL_DELAY) {mx.transform (MD_MAX72XX:: TSL); // di chuyển dọc theo - lệnh gọi lại sẽ tải tất cả dữ liệu presTime = millis (); // điểm bắt đầu cho lần sau}} 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, "Màn hình thông minh"); } void onConnectionEstablished () {// Chủ đề đăng ký MQTT cho display text client.subscribe ("leddisplay / text", (const String & payload) {sprintf (curMessage, payload.c_str ());});
// Chủ đề đăng ký MQTT cho bộ điều khiển cường độ hiển thị
client.subscribe ("leddisplay / Cường độ", (const String & payload) {mx.control (MD_MAX72XX:: INTENSITY, payload.toInt ());}); // Chủ đề đăng ký MQTT để kiểm soát tốc độ cuộn hiển thị client.subscribe ("leddisplay / scroll", (const String & payload) {SCROLL_DELAY = payload.toInt ();}); } void loop () {client.loop (); scrollText (); }
Để biết thông tin chi tiết, hãy tham khảo kho này
github.com/souravj96/max7219-mqtt-esp8266
Bước 4: Sơ đồ mạch
kết nối màn hình MAX7219 với NODE MCU
Bước 5: Tải mã lên Esp8266
bây giờ hãy chọn đúng loại bảng và cổng nối tiếp của bạn, sau đó nhấn tải lên.
Bước 6: Kiểm tra mọi thứ
nếu mọi thứ diễn ra chính xác thì esp8266 của bạn sẽ được kết nối với máy chủ MQTT của bạn.
bây giờ, nếu bất cứ điều gì sẽ được xuất bản trên leddisplay / chủ đề văn bản sẽ được hiển thị.
{
topic: "leddisplay / text", payload: "your message here"}
nếu bạn muốn đặt cường độ hiển thị
{
chủ đề: "leddisplay / Cường độ", tải trọng: "2" // tối đa là 15 và tối thiểu là 0}
nếu bạn muốn đặt tốc độ cuộn của màn hình
{
topic: "leddisplay / scroll", payload: "100" // max là 255 và min 0}
Chúc bạn viết mã vui vẻ
Đề xuất:
Đồng hồ kỹ thuật số LED Dot Matrix - Ứng dụng Android ESP Matrix: 14 bước
Digital Clock LED Dot Matrix - Ứng dụng Android ESP Matrix: Bài viết này được tài trợ bởi PCBWAY.PCBWAY tự hào tạo ra PCB tạo mẫu chất lượng cao cho mọi người trên toàn thế giới. Hãy thử nó cho chính bạn và nhận được 10 PCB chỉ với $ 5 tại PCBWAY với chất lượng rất tốt, Cảm ơn PCBWAY. Bảng ma trận ESP mà tôi yêu thích
IOT Smart Clock Dot Matrix Sử dụng Wemos ESP8266 - ESP Matrix: 12 bước (có hình ảnh)
Đồng hồ thông minh IoT Ma trận chấm Sử dụng Wemos ESP8266 - Ma trận ESP: Tạo Đồng hồ thông minh IoT của riêng bạn có thể: Hiển thị Đồng hồ với biểu tượng hoạt hình đẹp mắt Hiển thị Lời nhắc-1 đến Lời nhắc-5 Hiển thị Lịch Hiển thị Thời gian cầu nguyện của người Hồi giáo Hiển thị Thông tin thời tiết Hiển thị Tin tức Hiển thị Hiển thị Lời khuyên Hiển thị tỷ giá bitcoin
Arduino: Chỉ báo Potentio Sử dụng Ma trận Led MAX7219: 4 bước
Arduino: Potentio Indicator Sử dụng Led Matrix MAX7219: Trong hướng dẫn trước, tôi đã tạo một chỉ báo chiết áp bằng cách sử dụng đèn led neo pixel vòng RGB. bạn có thể xem nó trong bài viết này " Chỉ báo Potentio Sử dụng Neopixel RGB " Và hôm nay tôi sẽ hiển thị chỉ báo chiết áp sử dụng đèn LED MAX7219 đáp ứng
Cách xây dựng ma trận LED 8x8 BIG (MAX7219 LED 10mm): 9 bước (có hình ảnh)
Cách xây dựng ma trận LED 8x8 BIG (MAX7219 LED 10mm): Bạn đã làm việc với ma trận LED 8x8 làm sẵn làm màn hình chưa? Chúng có nhiều kích cỡ khác nhau và khá thú vị khi làm việc. Kích thước lớn có sẵn là khoảng 60mm x 60mm. Tuy nhiên, nếu bạn đang tìm kiếm một ma trận LED làm sẵn lớn hơn nhiều,
Hướng dẫn sử dụng mô-đun hiển thị ma trận điểm 4 trong 1 MAX7219 bằng cách sử dụng Arduino UNO: 5 bước
Hướng dẫn sử dụng mô-đun hiển thị ma trận điểm 4 trong 1 MAX7219 bằng cách sử dụng Arduino UNO: Mô tả: Bạn đang tìm kiếm ma trận LED dễ điều khiển? Mô-đun Hiển thị Ma trận Chấm 4 trong 1 này sẽ phù hợp với bạn. Toàn bộ mô-đun có bốn ma trận điểm cathode chung 8x8 RED được trang bị IC MAX7219 mỗi ma trận. Tuyệt vời để hiển thị văn bản đang chạy một