Arduino Kodu
#include <Arduino.h> #include <ESP8266WiFi.h> #include <ESPAsyncTCP.h> #include <ESPAsyncWebServer.h> #include <AsyncElegantOTA.h> #include <FS.h> //this needs to be first, or it all crashes and burns... const int led1Pin = D1; //2 const int led2Pin = D2; //2 const int max_duty = 255; //1023 int dly = 10; bool anim = false; int id = 1; String cid; float gonderimsikligi; int isik; int power; const char* ssid = "WIFI SSID"; const char* password = "WIFI PAROLA"; //flag for saving data bool shouldSaveConfig = false; String sliderValue1 = "125"; String sliderValue2 = "125"; const char* PARAM_INPUT = "value"; const char* PARAM_ID = "id"; // Create AsyncWebServer object on port 80 AsyncWebServer server(80); WiFiClient espClient; const char index_html[] PROGMEM = R"rawliteral( <!DOCTYPE HTML><html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>hOLOlu LED</title> <style> html {font-family: Arial; display: inline-block; text-align: center;} .topnav {overflow: hidden; background-color: #0A1128; } h1 {font-size: 1.8rem;color: white;} h2 {font-size: 2.3rem;} p {font-size: 1.9rem;} body {margin:0px;} .slider { -webkit-appearance: none; margin: 14px; width: 360px; height: 25px; background: #FFD65C; outline: none; -webkit-transition: .5s; transition: opacity .2s;} .slider::-webkit-slider-thumb {-webkit-appearance: none; appearance: none; width: 40px; height: 40px; border-radius: 50%; background: #003249; cursor: pointer;} .slider::-moz-range-thumb { width: 35px; height: 35px; background: #003249; cursor: pointer; } .button:{ margin: 5px; text-align: center; border: 1px; float: left; } </style> </head> <body> <div class="topnav"><h1>hOLOlu LED Kontrol</h1></div> <p><span id="textSliderValue1">%SLIDERVALUE1%</span></p> <p><input type="range" onchange="updateSliderPWM(this)" id="pwmSlider1" min="0" max="255" value="%SLIDERVALUE1%" step="1" class="slider"></p> <p><span id="textSliderValue2">%SLIDERVALUE2%</span></p> <p><input type="range" onchange="updateSliderPWM(this)" id="pwmSlider2" min="0" max="255" value="%SLIDERVALUE2%" step="1" class="slider"></p> <p><input type="button" onClick="updateAnim(this)" id="A1" value="☀ Anim 1"> <input type="button" onClick="updateAnim(this)" id="A2" value="☀ Anim 2"> <input type="button" onClick="updateAnim(this)" id="A3" value="☀ Anim 3"> <input type="button" onClick="updateAnim(this)" id="A4" value="☀ Anim 4"> <input type="button" onClick="updateAnim(this)" id="A5" value="☀ Anim 5"></p> <p><input type="button" onClick="updateAnim(this)" id="A0" value="Animasyonu Durdur"></p> <script> function updateSliderPWM(element) { var sliderValue1 = document.getElementById("pwmSlider1").value; var sliderValue2 = document.getElementById("pwmSlider2").value; if (element.id == "pwmSlider1") { var id = "1"; document.getElementById("textSliderValue1").innerHTML = sliderValue1; sliderValue = sliderValue1; } else { var id = "2"; document.getElementById("textSliderValue2").innerHTML = sliderValue2; sliderValue = sliderValue2;} console.log(element.id); console.log(sliderValue1); console.log(sliderValue2); var xhr = new XMLHttpRequest(); xhr.open("GET", "/slider?value="+sliderValue+"&id="+id, true); xhr.send(); } function updateAnim(element) { var xhr = new XMLHttpRequest(); xhr.open("GET", "/animasyon?value="+element.id, true); xhr.send(); } </script> </body> </html> )rawliteral"; // Replaces placeholder with button section in your web page String processor(const String& var){ //Serial.println(var); if (var == "SLIDERVALUE1"){ return sliderValue1; } if (var == "SLIDERVALUE2"){ return sliderValue2; } return String(); } //callback notifying us of the need to save config void saveConfigCallback () { Serial.println("Should save config"); shouldSaveConfig = true; } void setup() { Serial.begin(115200); // WiFiManager wifiManager; // wifiManager.autoConnect("hLEDAP"); analogWrite(led1Pin, sliderValue1.toInt()); analogWrite(led2Pin, sliderValue2.toInt()); //write_to_file("ayarlar.json", "data to save" ); // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi.."); } // Print ESP Local IP Address Serial.println(WiFi.localIP()); // Route for root / web page server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); }); // Send a GET request to <ESP_IP>/slider?value=<inputMessage> server.on("/slider", HTTP_GET, [] (AsyncWebServerRequest *request) { String inputMessage; int gid; //String sensorNumber = request->pathArg(0); //if (request->pathArg(0)) { inputMessage = request->getParam("id")->value(); // request->pathArg(1); gid = inputMessage.toInt(); inputMessage = request->getParam("value")->value(); //request->pathArg(0); if (gid == 1) { sliderValue1 = inputMessage; analogWrite(led1Pin, sliderValue1.toInt()); } else { sliderValue2 = inputMessage; analogWrite(led2Pin, sliderValue2.toInt());} // } // else { // inputMessage = "No message sent"; // } Serial.println(inputMessage); request->send(200, "text/plain", "OK"); }); // Route for root / web page server.on("/animasyon", HTTP_GET, [](AsyncWebServerRequest *request){ String inputMessage; // GET input1 value on <ESP_IP>/slider?value=<inputMessage> if (request->hasParam(PARAM_INPUT)) { inputMessage = request->getParam(PARAM_INPUT)->value(); if (inputMessage =="A1") { anim=true; id=1;} if (inputMessage =="A2") { anim=true; id=2;} if (inputMessage =="A3") { anim=true; id=3;} if (inputMessage =="A4") { anim=true; id=4;} if (inputMessage =="A5") { anim=true; id=5;} if (inputMessage =="A0") { anim=false; id=0;} } else { inputMessage = "No message sent"; } Serial.println(inputMessage); request->send(200, "text/plain", "OK"); }); AsyncElegantOTA.begin(&server,"hololu","!q2w3e4r"); // Start AsyncElegantOTA // Start server server.begin(); cid = "hLED-"; cid += String(ESP.getChipId(),HEX); //client.setServer("mqtt.mustafaozkaya.com.tr", 8883); //client.setCallback(callback); anim=true; id=1; } void loop() { /* if (!client.connected()) { reconnect(); } client.loop(); */ if (anim) { if (id==1){ for(int dutyCycle = 0; dutyCycle < max_duty; dutyCycle++){ analogWrite(led1Pin, dutyCycle); analogWrite(led2Pin, dutyCycle); delay(dly); } for(int dutyCycle = max_duty; dutyCycle > 0; dutyCycle--){ analogWrite(led1Pin, dutyCycle); analogWrite(led2Pin, dutyCycle); delay(dly); } } if (id==2){ int d = max_duty; for(int dutyCycle = 0; dutyCycle < max_duty; dutyCycle++){ d = d - 1; analogWrite(led1Pin, dutyCycle); analogWrite(led2Pin,d); delay(dly); } d = 0; for(int dutyCycle = max_duty; dutyCycle > 0; dutyCycle--){ d = d + 1; analogWrite(led1Pin, dutyCycle); analogWrite(led2Pin, d); delay(dly); } } if (id==3){ analogWrite(led1Pin, 0); analogWrite(led2Pin, 0); delay(1000); analogWrite(led1Pin, max_duty); analogWrite(led2Pin, max_duty); delay(1000); } if (id==4){ analogWrite(led1Pin, 0); analogWrite(led2Pin, max_duty); delay(1000); analogWrite(led1Pin, max_duty); analogWrite(led2Pin, 0); delay(1000); } if (id==5){ analogWrite(led1Pin, 0); analogWrite(led2Pin, max_duty); delay(30); analogWrite(led1Pin, max_duty); analogWrite(led2Pin, 0); delay(30); analogWrite(led1Pin, 0); analogWrite(led2Pin, max_duty); delay(30); analogWrite(led1Pin, max_duty); analogWrite(led2Pin, 0); delay(30); analogWrite(led1Pin, 0); analogWrite(led2Pin, max_duty); delay(30); analogWrite(led1Pin, max_duty); analogWrite(led2Pin, 0); delay(30); analogWrite(led1Pin, max_duty); analogWrite(led2Pin, max_duty); delay(2000); for(int dutyCycle = max_duty; dutyCycle > 0; dutyCycle--){ analogWrite(led1Pin, dutyCycle); analogWrite(led2Pin, dutyCycle); delay(dly); } } } }
İlk Yorumu Siz Yapın