ESP8266 简简单单的实现一个定时开关功能(支持多个时间段)
使用到的模块:
1、NTPClient 库
2、WiFiManager 库
核心代码:
#include <ESP8266WiFi.h>
#include <FS.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266HTTPUpdateServer.h>
#include <WiFiManager.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <Ticker.h>
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "ntp1.aliyun.com", 60 * 60 * 8, 30 * 60 * 1000);
bool SwitchStatus = false;//开关状态
String StartTimeData = "00:00:00";//开始时间
String EndTimeData = "00:00:05";//结束时间
void setup() {
Serial.begin(115200);//配置串口的波特率
Serial.println("\r\n _ \r\n");//隔开乱码
pinMode(D4, OUTPUT);//设置输出脚
delay(500);
digitalWrite(D4, HIGH);
timeClient.begin();
}
void loop() {
timeClient.update();
String dateStr = timeClient.getFormattedTime();
if (SwitchStatus) {
if ( EndTimeData.indexOf(dateStr) != -1) {
ControlSwitch();
}
} else {
if ( StartTimeData.indexOf(dateStr) != -1) {
ControlSwitch();
}
}
}
//控制开关
void ControlSwitch (bool switchStatus) {
SwitchStatus = switchStatus;
ControlSwitch ();
}
//控制开关
void ControlSwitch () {
if (SwitchStatus ) {
digitalWrite(D4, HIGH);//高电平
} else {
digitalWrite(D4, LOW);//底电平
}
SwitchStatus = !SwitchStatus;
}
源码下载:
内容已隐藏,需要评论并且审核通过后,才能阅读隐藏内容
版权属于:zgcwkj
本文链接:https://zgcwkj.com/archives/164.html
转载声明:请注明本文章的标题及内容的出处和声明,谢谢
评论已关闭