| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #include "WiFiConfigurator.h"
- #include "NtcThermistor.h"
- #include "RelayController.h"
- #include <WiFi.h>
- // 引脚定义
- 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);
- }
- }
-
|