esp32-给zabbix监控加个灯

需求

前几天弄完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"; // 更改为您要检查的页面URL

const int LED = 2;
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW

#define MAX_DEVICES 1
#define CS_PIN 5
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
MD_Parola Display = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// Defining size, and output pins

void setup() {
Serial.begin(115200);
delay(1000);
Display.begin();
Display.setIntensity(0);
Display.displayClear();
//Display.displayReset();
//Display.displayClear();

// 连接到WiFi网络
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);
// 执行HTTP GET请求
}
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); // 根据你的 JSON 数据结构设置
DynamicJsonDocument jsonDoc(bufferSize);
DeserializationError error = deserializeJson(jsonDoc, response);

// 检查解析是否成功
if (error) {
Serial.println("no json: LED OFF ");
//digitalWrite(LED, LOW); // 关闭LED
Display.displayReset();
Display.displayClear();
return;
}
else {
//digitalWrite(LED, HIGH); // 开启LED
Serial.println("json: LED ON ");
jsonDoc.clear();
//Display.displayScroll("ZABBIX", PA_RIGHT, PA_SCROLL_LEFT, 150); //这条不知道为什么不生效
Display.setTextAlignment(PA_CENTER);
Display.print("Z");

}

http.end();
// jsonDoc.clear();
}
}
void loop() {
get_zabbix();
delay(10000);
}

后续

后续也许会研究研究pcb,3d打印外壳,自己封装成一个成品。


esp32-给zabbix监控加个灯
http://example.com/2023/09/18/esp32-给zabbix监控加个灯/
作者
WangQiang
发布于
2023年9月18日
许可协议