From 57d0aaa6f437e5a46f09f3899a680ae7bf89d297 Mon Sep 17 00:00:00 2001 From: Tyrel Souza Date: Fri, 28 Oct 2022 01:48:02 -0400 Subject: [PATCH] frank water tank --- data/favicon.ico | Bin 0 -> 166457 bytes data/index.html | 102 +++++++++++++++++++++++++++++++++++++++++++++++ frank_tank.ino | 90 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 192 insertions(+) create mode 100644 data/favicon.ico create mode 100644 data/index.html create mode 100644 frank_tank.ino diff --git a/data/favicon.ico b/data/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1997085ad1e72c4a2846b5b0975296b0d169f8b5 GIT binary patch literal 166457 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 + + + + + + ESP8266 Servo Control + + + + +

+

Water Heater Control

+
+ +

Number of Seconds: 5

+ + +
+
+
+ + + +
+
+
+

Current Action: STOPPED

+
+ + + + + diff --git a/frank_tank.ino b/frank_tank.ino new file mode 100644 index 0000000..7883cf2 --- /dev/null +++ b/frank_tank.ino @@ -0,0 +1,90 @@ +/* + Project made and maintained by Kumar Aditya + + ESP8266 Servo Controller + + Create a ESP8266 Webserver for controlling the real-time position of the servo motor attached to ESP8266. + + Change these lines as per yours: + const char *ssid = "REPLACE_WITH_YOUR_SSID"; // replace with your SSID + const char *password = "REPLACE_WITH_YOUR_PASSWORD"; // replace with your Password + const uint8_t servoPin = D4; // replace with servo pin + + Parts list: + + NodeMCU : + https://amzn.to/397GzNe + + Servo Motor : + https://amzn.to/2SmyFtJ + + The source code can be found at: + https://git.io/JfOQv + + Download ESPAsyncWebServer library : + https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip + + Download ESPAsyncTCP library : + https://github.com/me-no-dev/ESPAsyncTCP/archive/master.zip + + Download ESP8266 Filesystem Uploader : + https://github.com/esp8266/arduino-esp8266fs-plugin/releases/download/0.5.0/ESP8266FS-0.5.0.zip + +*/ + +// Import libraries +#include +#include +#include +#include + + +const char *ssid = "TARDIS"; // replace with your SSID +const char *password = "EvangelionUnit-01"; // replace with your Password +const uint8_t servoPin = D1; // replace with servo pin +/* Create Servo Object */ +Servo servo; +// Create Server instance +AsyncWebServer server(80); +void setup() +{ + // Attach Servo, start SPIFFS and Connect to WiFi + Serial.begin(115200); + servo.attach(servoPin); + servo.write(160); + if (!SPIFFS.begin()) + { + Serial.println("An Error has occurred while mounting SPIFFS"); + return; + } + WiFi.begin(ssid, password); + Serial.print("Connecting to WiFi.."); + while (WiFi.status() != WL_CONNECTED) + { + delay(1000); + Serial.print("."); + } + Serial.print("\nConnected to the WiFi network: "); + Serial.print(WiFi.SSID()); + Serial.print("IP address:"); + Serial.print(WiFi.localIP()); + // Send home page from SPIFFS + server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) { + Serial.println("Send index.html."); + request->send(SPIFFS, "/index.html", "text/html"); + }); + // Receive Angle from client and process it + server.on("/angle", HTTP_POST, [](AsyncWebServerRequest *request) { + String angle = request->arg("angle"); + Serial.println("Current Position: " + angle + "°"); + servo.write(angle.toInt()); + request->send(200); + }); + // Send Favicon + server.serveStatic("/favicon.ico", SPIFFS, "/favicon.ico"); + // Begin Server + server.begin(); +} +void loop() +{ +}