需求
前几天弄完esp32监控zabbix后一直看的是板载led灯,一个是小,一个是不太美观,要是能把esp32隐藏起来,然后走线到led灯就好看多了
选灯
发光二极管应该是最简单的,但是实在是太难看了,经过查看和比较最后选了一个8x8的max7219矩阵灯
思路
跟上篇获取方式一样,就是呈现方式从板载led变到了max7219的8x8矩阵灯,上面滚动显示不知道为什么无法滚动效果,目前是只显示一个Z,还是挺明显的,达到了想要的效果。
程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| #include <WiFi.h> #include <HTTPClient.h> #include <ArduinoJson.h> #include <MD_Parola.h> #include <MD_MAX72xx.h> #include <SPI.h>
const char* ssid = "ssid"; const char* password = "password"; const char* url = "http://server/index.html";
const int LED = 2; #define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 1 #define CS_PIN 5
MD_Parola Display = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
void setup() { Serial.begin(115200); delay(1000); Display.begin(); Display.setIntensity(0); Display.displayClear();
WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); pinMode(LED, OUTPUT); digitalWrite(LED, LOW); } void get_zabbix(){ HTTPClient http; http.begin(url); int httpResponseCode = http.GET();
if (httpResponseCode == HTTP_CODE_OK) { String response = http.getString(); const size_t bufferSize = JSON_OBJECT_SIZE(1000); DynamicJsonDocument jsonDoc(bufferSize); DeserializationError error = deserializeJson(jsonDoc, response);
if (error) { Serial.println("no json: LED OFF "); Display.displayReset(); Display.displayClear(); return; } else { Serial.println("json: LED ON "); jsonDoc.clear(); Display.setTextAlignment(PA_CENTER); Display.print("Z");
}
http.end(); } } void loop() { get_zabbix(); delay(10000); }
|
后续
后续也许会研究研究pcb,3d打印外壳,自己封装成一个成品。