#include "WiFiConfigurator.h" #include "NtcThermistor.h" #include "RelayController.h" #include // 引脚定义 const int slowLedPin = 19; // 慢闪LED const int fastLedPin = 20; // 快闪LED const int configButtonPin = 21; // 配置按钮 // NTC温度传感器引脚 const int ntcPin1 = 2; // GPIO2 const int ntcPin2 = 3; // GPIO3 const int ntcPin3 = 6; // GPIO6 // 继电器引脚 const int relayPin22 = 22; //继电器使用GPIO22 const int relayPin23 = 23; //继电器使用GPIO23 const int relayPin4 = 4; // 定时继电器使用GPIO4 // 热点配置 const char* ap_ssid = "ESP32-C6-配置"; const char* ap_password = "12345678"; // 创建实例 WiFiConfigurator wifiConfig(slowLedPin, fastLedPin, configButtonPin, ap_ssid, ap_password); NtcThermistor ntcSensor(ntcPin1, ntcPin2, ntcPin3); RelayController relays(relayPin22, relayPin23, relayPin4); // 更新间隔 unsigned long lastUpdate = 0; const unsigned long updateInterval = 1000; // 1秒更新一次 void setup() { Serial.begin(115200); Serial.println("系统启动中..."); // 初始化组件 wifiConfig.begin(); relays.begin(); // 初始化继电器为高阻态,记录开机时间 Serial.println("系统启动完成(支持无WiFi运行)"); } void loop() { // 处理WiFi配置(即使WiFi未连接也继续运行) wifiConfig.loop(); // 定期更新 unsigned long currentMillis = millis(); if (currentMillis - lastUpdate >= updateInterval) { lastUpdate = currentMillis; // 尝试同步时间(仅在WiFi可用时有效,失败不影响其他功能) relays.updateNtpTime(); // 更新温度 ntcSensor.updateTemperatures(); // 打印状态信息 Serial.print("运行时间: "); Serial.print((currentMillis - relays.getPowerOnTime())/1000); Serial.print("秒, 当前小时: "); Serial.print(relays.getCurrentHour()); Serial.print(", 温度 - GPIO2: "); Serial.print(ntcSensor.getTemperature1String()); Serial.print(", GPIO3: "); Serial.print(ntcSensor.getTemperature2String()); Serial.print(", GPIO6: "); Serial.println(ntcSensor.getTemperature3String()); // 获取温度值并控制继电器 float tempGpio2 = ntcSensor.getTemperature1(); float tempGpio3 = ntcSensor.getTemperature2(); float tempGpio6 = ntcSensor.getTemperature3(); relays.controlByTempConditions(tempGpio2, tempGpio3, tempGpio6); relays.handleTimedTasks(tempGpio6); } }