-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.ino
36 lines (30 loc) · 944 Bytes
/
main.ino
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
#include "PillManager.h"
#include "NetworkManager.h"
#include "HardwareControl.h"
void setup() {
Serial.begin(115200);
// 初始化 WiFi 和 MQTT
if (!connectWifi() || !connectMqtt()) {
logMessage("网络或MQTT初始化失败,进入离线模式");
}
if (!rtc.begin()) {
logMessage("RTC初始化失败!程序终止");
while (true);
}
initPillList();
// 设置传感器引脚为外部中断源
pinMode(PILL_SENSOR_PIN, INPUT_PULLUP); // 设置引脚为输入,并启用上拉电阻
attachInterrupt(digitalPinToInterrupt(PILL_SENSOR_PIN), pillTaken, FALLING); // 当引脚信号为LOW时触发中断
logMessage("系统初始化完成。");
}
void loop() {
handleSerialInput();
if (!WiFi.isConnected()) {
connectWifi();
}
if (!client.connected()) {
connectMqtt();
}
client.loop(); // 处理MQTT消息
checkPills();
}