#include <WiFi.h>
WiFiServer server(80);
String header;
unsigned long currentTime = millis();
unsigned long previousTime = 0;
const long timeoutTime = 2000;
byte firstState = HIGH;
int num = 1;
String valueString = String(5);
int pos1 = 0;
int pos2 = 0;
#define redPin 32
#define greenPin 33
#define bluePin 25
#define button 26
void setup() {
Serial.begin(9600);
WiFi.begin("Moja WIFI", "Bohtamiluje");
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
}
Serial.println("WiFi úspešne pripojené!");
Serial.print("IP adresa: ");
Serial.println(WiFi.localIP());
server.begin();
pinMode(redPin, OUTPUT); // Nastavte LED pin ako výstup
pinMode(greenPin, OUTPUT); // Nastavte LED pin ako výstup
pinMode(bluePin, OUTPUT); // Nastavte LED pin ako výstup
pinMode(button, INPUT_PULLUP);
}
void loop() {
WiFiClient client = server.available(); // aktualizovanie prijatých dát
byte state = digitalRead(button);
if (firstState == HIGH && state == LOW) {
num++;
if (num > 4) {
num = 1;
}
}
firstState = state;
if (client) // ak sa pripojil klient
{
currentTime = millis();
previousTime = currentTime;
Serial.println("Nový klient");
String currentLine = ""; // premená pre prijaté dáta
while (client.connected() && currentTime - previousTime <= timeoutTime) {
currentTime = millis();
if (client.available()) // test, či sú prijaté dáke dáta
{
char c = client.read(); // načítanie bajtu z buffera
Serial.write(c);
header += c;
if (c == '\n') // po ENTER je request
{
if (currentLine.length() == 0) // ak sa načítal prázdny riadok, odošli potvrdenie o pripojení
{
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println("");
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
client.println("<link rel=\"icon\" href=\"data:,\">");
// CSS to style the on/off buttons
// Feel free to change the background-color and font-size attributes to fit your preferences
client.println("<style>body { text-align: center; font-family: \"Trebuchet MS\", Arial; margin-left:auto; margin-right:auto;}");
client.println(".slider { width: 300px; }</style>");
client.println("<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js\"></script>");
// Web Page
client.println("</head><body><h1>ESP32 with Servo</h1>");
client.println("<p>Ziarivost: <span id=\"ledP\"></span></p>");
client.println("<input type=\"range\" min=\"0\" max=\"255\" class=\"slider\" id=\"led\" onchange=\"led(this.value)\" value=\""+valueString+"\"/>");
client.println("<script>var slider = document.getElementById(\"led\");");
client.println("var ledP = document.getElementById(\"ledP\"); ledP.innerHTML = slider.value;");
client.println("slider.oninput = function() { slider.value = this.value; ledP.innerHTML = this.value; }");
client.println("$.ajaxSetup({timeout:1000}); function led(pos) { ");
client.println("$.get(\"/?value=\" + pos + \"&\"); {Connection: close};}</script>");
client.println("</body></html>");
if (header.indexOf("GET /?value=") >= 0) {
pos1 = header.indexOf('=');
pos2 = header.indexOf('&');
valueString = header.substring(pos1+1, pos2);
Serial.println(valueString.toInt());
analogWrite(redPin, valueString.toInt());
}
client.println("");
break;
} else {
currentLine = "";
}
} else if (c != '\r') {
currentLine += c; // add it to the end of the currentLine
}
}
}
header = "";
client.stop();
Serial.println("Klient je odpojený.");
Serial.println("");
}
}