- Điều Khiển Motor 2 chiều
#include <ESP8266WiFi.h> // * ver_3.1.2 * Arduino IDE 1.8.19#include <WiFiClient.h>#include <ESP8266WebServer.h>#include <ESP8266mDNS.h>#include <ESP8266HTTPUpdateServer.h> #include <Hash.h>#include <ESPAsyncTCP.h> #define WEBSERVER_H #include "ESPAsyncWebServer.h"
AsyncWebServer server(80);
const int k_01 = 4; const int k_02 = 5;
const char index_html[] PROGMEM = R"rawliteral(<!DOCTYPE HTML><html> <head> <title> ESP Control Motor </title><meta charset = "UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA/4QAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhEQABEREgACERAAERESAAIREAARERIAAhEQABEREgACERAAERESAAIREAARERIAAhEREREREgAAIREREREgABECEREREgEQARAhEREgEQAAEQIREgEQAAABECEgEQAAAAARAgEQAQAAAAEQEQARAAAAABEQABEAAAAAAQAAIgCHAwAAhwMAAIcDAACHAwAAhwMAAIcDAACAAwAAwAcAACAJAACQEwAAyCcAAORPAADymwAA+TMAAPxzAAD+8wAA" rel="icon" type="image/x-icon"> <style> body { font-family: Arial; text-align: center; margin:0px auto; padding-top: 30px;} .button { padding: 10px 20px; font-size: 24px; text-align: center; outline: none; color: #fff; background-color: #2f4468; border: none; border-radius: 50%; box-shadow: 0 8px #999; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-tap-highlight-color: rgba(0,0,0,0); } .button:hover {background-color: #1f2e45 } .button:active { background-color: #fc0905; box-shadow: 0 4px #666; transform: translateY(2px); } </style> </head> <body> <h1> ESP C0NTR0L M0T0R </h1> <button class="button" onmousedown="toggleCheckbox('on');" ontouchstart="toggleCheckbox('on');" onmouseup="toggleCheckbox('off');" ontouchend="toggleCheckbox('off');">OUT</button> <br><br> <button class="button" onmousedown="toggleCheckbox('top');" ontouchstart="toggleCheckbox('top');" onmouseup="toggleCheckbox('');" ontouchend="toggleCheckbox('');">0TA</button> <br><br> <button class="button" onmousedown="toggleCheckbox('oN');" ontouchstart="toggleCheckbox('oN');" onmouseup="toggleCheckbox('ofF');" ontouchend="toggleCheckbox('ofF');">I N</button> <script> function toggleCheckbox(x) { var xhr = new XMLHttpRequest(); xhr.open("GET", "/" + x, true); xhr.send(); } function toggleCheckbox(z) { var xhr = new XMLHttpRequest(); xhr.open("GET", "/" + z, true); xhr.send(); } function toggleCheckbox(y) { var xhr = new XMLHttpRequest(); xhr.open("GET", "/" + y, true); xhr.send(); } </script> </body></html>)rawliteral";
void notFound(AsyncWebServerRequest *request){ request->send(404, "text/plain", "Not found"); }
void setup(){ Serial.begin(115200); Serial.println(); pinMode(k_01, OUTPUT); digitalWrite(k_01, LOW); pinMode(k_02, OUTPUT); digitalWrite(k_02, LOW); WiFi.mode(WIFI_STA); WiFi.begin( "wifi nha ban" , "mat khau" ); while( WiFi.waitForConnectResult() != WL_CONNECTED) { IPAddress ip (192, 168, 1, 2), subn (255, 255, 255, 0); WiFi.softAPConfig (ip, ip, subn); WiFi.mode (WIFI_AP); WiFi.softAP ( "motor_H" , "123456789" ); break; } server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html); });//============================================================================================ .ON server.on("/on", HTTP_GET, [] (AsyncWebServerRequest *request) { digitalWrite(k_01, HIGH); digitalWrite(k_02, LOW); request->send(200, "text/plain", "ok"); }); server.on("/oN", HTTP_GET, [] (AsyncWebServerRequest *request) { digitalWrite(k_02, HIGH); digitalWrite(k_01, LOW); request->send(200, "text/plain", "ok"); }); //============================================================================================ .OFF server.on("/off", HTTP_GET, [] (AsyncWebServerRequest *request) { digitalWrite(k_01, LOW); request->send(200, "text/plain", "ok"); }); server.on("/ofF", HTTP_GET, [] (AsyncWebServerRequest *request) { digitalWrite(k_02, LOW); request->send(200, "text/plain", "ok"); }); server.onNotFound(notFound); server.begin();}
void loop() { }