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://www.zgcwkj.com/archives/164.html
轉載聲明:請注明本文章的標題及內容的出處和聲明,謝謝
評論已關閉