#include <WiFi.h>
#include <ArduinoJson.h>
#include <ESP32Servo.h>
#include <Ds1302.h>
const char *web="<!doctype html><html><head><title>IOT Switch</title><meta name=viewport content=\"width=device-width,initial-scale=0.75,user-scalable=no\"><svg xmlns=http://www.w3.org/2000/svg viewBox=\"0 0 448 512\" style=display:none><path id=check transform=\"scale(0.0625,0.0625) translate(50,50)\" fill=#fff d=\"M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"/></svg><style>:focus{outline:0}::-webkit-calendar-picker-indicator{display:none}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:#0d6efd;border-radius:5px}body,html{height:calc(100% - 8px)}body{background-color:#2b3035;display:grid;grid-template:4em auto 4em 4em/auto;color:#fff;font-family:Verdana;overflow:hidden;margin:0;padding:8px;box-sizing:content-box}body::before{content:'';position:fixed;left:0;top:0;width:100%;height:100%;background-color:#2b3035;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAADcCAMAAAAshD+zAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAIFQTFRFAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Xd8iUwAAACt0Uk5TAAsIFBAfGSccDygJKRgdAwobEgQMFw0RGiITJAEHHg4GFQUjIBYCACUhJl7xIbcAAIEvSURBVHicJJyLmqymFoSXgLa2oIiIivfraL//A6bYyZeTnMzu6VZYq+ovwCaKGCMuYkoo+qTZN5eqkKWmylBdETFlG9d2DfW+ULUaSmH4SHxgampEy/WXyj4iqWa7FETrVu8pHX3hoiTbaaWzc8m+FifFnqq8zOhaRnFdd+ydTLt7TU65E1EvycomT+9WnrEk2dc2sqnM29pFZ7zUchWllE1qqGxdbZsqv2cpCyrnMabZTW3TkVkivumJ/qLLED01/a3Eqk5vPSW5fil31d6sG02xaJM760l+85VEnNKdyOe1JtIdpV3hNkckY8qbv0ged5wO5JrojykaoxXXynz/aX6bqfGy/cEPfHuX0XU56dMRQ/SHH2/tVpk2La6BEjldutmIhtdNVCqWe7rFnmzrScS1LLw/onxvJowWDTOxXBEtM4l1nXUtqB/5Iq9tqnMSppLxOePqTllKItcRjWnjc7rEJdWUNOqq1nzLMBE5yZmREpRwz2ntrdokRnzy38FJqXUfmV3R5R25tUpF2fLoUlEtJVUyT4dwbUtnFZ1SemqqVKd51mZSLBh1Eph5VtY0HZmaPOaLbHzIt+7GUXY/6af70jyRQmIiiin7FlljyLAz28qxIdvQtBaWtpoEpYkbt0XHV8o0t1x2mRtVW5M33SXF/v0W6S0vTfJWkeGFbEhO307JtLdM91LTVUqzJkSTkfJDN6OJxr4wHYnx910tT6nlxGav53Ws7JLQYelj9BbJ6zJRGWECcU0O96CtJqrw/hGmIsEccJ7M1+9P0izrwSUbcVUPpL6kpLAUxZOWZX2mRbvKzzHlD5V346nr9o5avVMStcR5EVEh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');background-attachment:fixed;opacity:.25;box-shadow:0 0 25px 0 #0b0d0e inset;z-index:-1}h1{text-align:center;grid-area:1/1;line-height:2em;margin:0}#schedule{grid-area:2/1;display:flex;flex-direction:column;border-top:2px solid #49505755;padding-top:8px;margin-bottom:8px;overflow:hidden auto}#schedule div{display:grid;height:3em;grid-template:3em 3em/3em auto auto auto auto calc(3em + 8px);margin-bottom:8px}#schedule div:not(:first-child){padding-top:8px;border-top:2px solid #49505755}#schedule div:not(.on){opacity:.5}#schedule text{line-height:3em;text-align:center}#schedule input{border:0;background:0 0;color:#fff;border:2px solid #495057;border-radius:10px}#schedule select{border:0;background:0 0;color:#fff;margin-right:1em}.remove{flex-shrink:0;border-radius:50%;background:#fff;margin:4px;margin-left:12px;color:#2b3035;border:0;font-size:2em}.switch{background:0 0;color:#fff;line-height:1.5em;width:3em;height:3em;border:2px solid #fff;padding:0;margin-top:.4em}.switch svg{width:3em;height:3em}#schedule div:not(.on) .switch svg{display:none}#add{grid-area:3/1;border:0;height:1.5em;background-color:#495057;border-radius:.5em;font-size:2em;color:#fff}#switch{grid-area:4/1;background:#0d6efd;border:0;border-radius:1em;display:flex;justify-content:center;user-select:none}#switch svg{height:3em;border-right:2px solid #fff5;padding-right:2em;margin-right:2em;margin-top:1em}#switch text{display:inline-block;font-size:2em;padding-bottom:2em;color:#fff;line-height:2.5em}#switch:not(.on){opacity:.5}#switch:not(.on) text:not(.on){display:none}#switch.on text.on{display:none}#switch.load *{opacity:0}</style></head><body><h1>Schedule</h1><div id=schedule></div><button id=add>+</button><button id=switch class=on><svg xmlns=http://www.w3.org/2000/svg viewBox=\"0 0 512 512\"><path fill=#fff d=\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"/></svg><text>Deactivate</text><text class=on> Activate</text></button><script>var update,Q=e=>document.querySelectorAll(e),I=e=>document.getElementById(e),X={},render=(e=!0)=>{if(document.activeElement.parentElement.parentElement==I(\"schedule\")&&\"BUTTON\"!=document.activeElement.tagName&&\"SELECT\"!=document.activeElement.tagName)return clearTimeout(update),I(\"switch\").classList.remove(\"load\"),void(update=setTimeout(render,5e3,!1));fetch(\"/update\",{method:\"GET\",headers:e?{\"Schedule-JSON\":JSON.stringify(X)}:{}}).then((e=>{if(e.ok)return e.json();throw new Error(\"Failed to connect to server\")})).then((e=>{(X=e).state?I(\"switch\").classList.add(\"on\"):I(\"switch\").classList.remove(\"on\"),I(\"schedule\").innerHTML=\"\",X.period.forEach(((e,t)=>{var n=document.createElement(\"div\");n.innerHTML=`\n <button class=\"switch\" onclick=\"X.period[${t}][0]=!X.period[${t}][0];render()\"><svg><use href=\"#check\" /></svg></button>\n <select onchange=\"X.period[${t}][1]=this.value=='ON';render()\"><option${e[1]?\" selected\":\"\"}>ON</option><option${e[1]?\"\":\" selected\"}>OFF</option></select>\n <input type=\"time\" value=\"${e[2]}\" onblur=\"X.period[${t}][2]=this.value;render()\"/>\n <text>to</text>\n <input type=\"time\" value=\"${e[3]}\" onblur=\"X.period[${t}][3]=this.value;render()\"/>\n <button class=\"remove\" onclick=\"X.period.splice(${t},1);render()\">×</button>\n `,e[0]&&n.classList.add(\"on\"),I(\"schedule\").append(n)})),clearTimeout(update),I(\"switch\").classList.remove(\"load\"),update=setTimeout(render,2e3,!1)})).catch((e=>I(\"schedule\").innerHTML=\"<h3>\"+e+\"</h3>\"))};I(\"switch\").onclick=e=>{I(\"switch\").classList.add(\"load\"),X.state=!I(\"switch\").classList.contains(\"on\"),render()},I(\"add\").onclick=e=>render(!0,X.period.push([!0,!0,\"\",\"\"])),render(!1)</script></body></html>";
//#include <vector>
//using namespace std;
// Server
WiFiServer server(80);
Servo motor;
Ds1302 rtc(4,15,2);
Ds1302::DateTime now;
int offset[3] = {1, -5, 37};
int wait = 1000;
// Data
StaticJsonDocument<200> schedule;
char *time(){
char *out = new char[6];
rtc.getDateTime(&now);
snprintf(out, 6, "%02d:%02d", (now.hour+offset[0]+(now.minute+offset[1])/60+(now.second+offset[2])/3600)%24, (now.minute+offset[1]+(now.second+offset[2])/60)%60);
return out;
}
// Setup
bool state = false;
void setup() {
WiFi.softAP("IOT Switch", "12345678"); // Create Network
//WiFi.begin("Home Wifi", "Your password"); // Join Network
rtc.init();
if (rtc.isHalted()) {
Ds1302::DateTime dt = {
.year = 24,
.month = Ds1302::MONTH_JUL,
.day = 12,
.hour = 19,
.minute = 22,
.second = 0,
.dow = Ds1302::DOW_FRI
};
rtc.setDateTime(&dt);
}
char jsoninit[70];
snprintf(jsoninit, sizeof(jsoninit), "{\"at\": \"%1$s\", \"time\": \"%1$s\", \"state\": false, \"period\":[]}", time());
motor.setPeriodHertz(50);
motor.attach(21, 500, 2400);
motor.write(0);
pinMode(22, INPUT_PULLUP);
DeserializationError error = deserializeJson(schedule, jsoninit);
server.begin();
}
// Loop
int loopn = 0;
char setted[6];
bool press = false;
void loop() {
WiFiClient client = server.available();
if (client) {
String line = "";
String head = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
head += c;
if (c == '\n') {
if(line.length() == 0) {
if (head.indexOf("GET /update") >= 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/plain");
client.println("Connection: close");
client.println();
schedule["at"] = time();
char out[128];
serializeJson(schedule, out);
client.println(out);
strcpy(setted, time());
} else {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
client.println(web);
}
break;
} else {
if (line.indexOf("Schedule-JSON:") >= 0) DeserializationError error = deserializeJson(schedule, line.substring(15));
line = "";
}
} else if (c != '\r') line += c;
}
}
head = "";
client.stop();
}
if (digitalRead(22) == LOW) {
if (!press) schedule["state"] = !schedule["state"];
press = true;
} else press = false;
//if(!digitalRead(22)) press = false;
/*if (schedule["state"] != state) {
motor.write(schedule["state"] ? 180 : 0);
state = schedule["state"];
}*/
if (loopn++ > wait) {
motor.write(schedule["state"] ? 180 : 0);
char *out = time();
if (strcmp(out, setted)) {
strcpy(setted, "");
for (int i = 0; i < schedule["period"].size(); i++) {
if (!schedule["period"][i][0] || (strcmp(out, schedule["period"][i][2]) && strcmp(out, schedule["period"][i][3]))) continue;
schedule["state"] = schedule["period"][i][1];
if (strcmp(out, schedule["period"][i][2])) schedule["state"] = !schedule["state"];
strcpy(setted, schedule["period"][i][2]);
break;
}
}
loopn = 0;
}
}