Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.41 KB | None | 0 0
  1. #include <WiFi.h>
  2. #include <WebServer.h>
  3. #include <WiFiClient.h>
  4. #include <ESPmDNS.h>
  5.  
  6. // GPIO-контакт, к которому подключен сервопривод:
  7. const int ledPin = 27;
  8.  
  9. // вставьте здесь учетные данные своей сети:
  10. const char* ssid = "Redmi";
  11. const char* password = "12345678";
  12.  
  13. // создаем веб-сервер на порте «80»:
  14. WebServer server(80);
  15.  
  16. // переменная для хранения HTTP-запроса:
  17. String header;
  18.  
  19. const int freq = 1000;
  20. const int ledChannel = 0;
  21. const int resolution = 16;
  22.  
  23. char htmlResponse[3000];
  24.  
  25. void handleRoot() {
  26.  
  27. snprintf ( htmlResponse, 3000,
  28. "<!DOCTYPE html>\
  29. <html lang=\"en\">\
  30. <head>\
  31. <meta charset=\"utf-8\">\
  32. <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\
  33. </head>\
  34. <body>\
  35. <center><h1>Input Voltage</h1>\
  36. <input type='text' name='Voltage' id='Voltage' size=10 autofocus> Input Voltage \
  37. <div>\
  38. <br><button id=\"save_button\">Send Value</button>\
  39. </div></center>\
  40. <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js\"></script>\
  41. <script>\
  42. var vlt;\
  43. $('#save_button').click(function(e){\
  44. e.preventDefault();\
  45. vlt = $('#Voltage').val();\
  46. $.get('/save?vlt=' + vlt, function(data){\
  47. console.log(data);\
  48. });\
  49. });\
  50. </script>\
  51. </body>\
  52. </html>");
  53.  
  54. server.send(200, "text/html", htmlResponse);
  55.  
  56. }
  57.  
  58.  
  59. void handleSave() {
  60. if (server.arg("vlt")!= ""){
  61. double vlt = server.arg("vlt").toDouble();
  62. double pwm = 0;
  63. if (vlt < 2.35) {
  64. Serial.println("Вы лох, батенька");
  65. vlt = 2.35;
  66. }
  67. if (vlt > 20) {
  68. Serial.println("Вы лох, батенька");
  69. vlt = 20;
  70. }
  71. if (vlt >= 2.053 && vlt<=2.429) {
  72. pwm = 1120000*vlt - 599091.53*pow(vlt, 2) + 97270.91*pow(vlt, 3) - 555056.01;
  73. }
  74. if (vlt > 2.429 && vlt<=2.9044) {
  75. pwm = - 1946000*vlt - 663917.686*pow(vlt, 2) - 76052.71*pow(vlt, 3) + 1929000;
  76. }
  77. if (vlt > 2.9044 && vlt<=3.023) {
  78. pwm = 698771.83*vlt - 247841.85*pow(vlt, 2) + 28588.47*pow(vlt, 3) - 624255.9;
  79. }
  80. if (vlt >3.023 && vlt<=3.6476) {
  81. pwm = - 164469.48*vlt + 37815.88*pow(vlt, 2) - 2909.79*pow(vlt, 3) + 244994.92;
  82. }
  83. if (vlt > 3.6476 && vlt<=4.391) {
  84. pwm = -150582.39*vlt + 33363.15*pow(vlt, 2) - 2502.88*pow(vlt, 3) + 233835.97;
  85. }
  86. if (vlt > 4.391 && vlt<=5.01) {
  87. pwm = 8570.55*vlt - 2937.04*pow(vlt, 2) + 252.77*pow(vlt, 3) + 1595.3;
  88. }
  89. if (vlt > 5.01 && vlt<=6.573) {
  90. pwm = - 22131.13*vlt + 3196.08*pow(vlt, 2) - 155.29*pow(vlt, 3) + 52782.94;
  91. }
  92. if (vlt > 6.573 && vlt<=7.85) {
  93. pwm = - 4881.61*vlt + 528.11*pow(vlt, 2) - 19.99*pow(vlt, 3) + 16246.81;
  94. }
  95. if (vlt > 7.85 && vlt<=8.47) {
  96. pwm = - 4009.6*vlt + 418.84*pow(vlt, 2) - 15.35*pow(vlt, 3) + 13890.95;
  97. }
  98. if (vlt > 8.47 && vlt<=9) {
  99. pwm = - 259.69*vlt - 22.28*pow(vlt, 2) + 2.01*pow(vlt, 3) + 3226.53;
  100. }
  101. if (vlt > 9 && vlt<=9.86) {
  102. pwm = - 1293.81*vlt + 92.74*pow(vlt, 2) - 2.25*pow(vlt, 3) + 6322.44;
  103. }
  104. if (vlt > 9.86 && vlt<=10.82) {
  105. pwm = - 1814.92*vlt + 145.12*pow(vlt, 2) - 4.02*pow(vlt, 3) + 8065.16;
  106. }
  107. if (vlt > 10.82 && vlt<=11.83) {
  108. pwm = - 957.15*vlt + 65.6*pow(vlt, 2) - 1.57*pow(vlt, 3) + 4995.5;
  109. }
  110. if (vlt > 11.83 && vlt<=12.53) {
  111. pwm = - 1237.45*vlt + 89.39*pow(vlt, 2) - 2.24*pow(vlt, 3) + 6087.75;
  112. }
  113. if (vlt > 12.53 && vlt<=13.8) {
  114. pwm = 219.25*vlt - 26.77*pow(vlt, 2) + 0.85*pow(vlt, 3) - 6.47;
  115. }
  116. if (vlt > 13.8 && vlt<=15.32) {
  117. pwm = - 2148.01*vlt + 144.64*pow(vlt, 2) - 3.29*pow(vlt, 3) + 10898.28;
  118. }
  119. if (vlt > 15.32 && vlt<=17.42) {
  120. pwm = 3802.48*vlt - 245.08*pow(vlt, 2) + 5.22*pow(vlt, 3) - 19393.05;
  121. }
  122. if (vlt > 17.42 && vlt<=19.7) {
  123. pwm = - 16726.31*vlt + 933.37*pow(vlt, 2) - 17.33*pow(vlt, 3) + 99815.81;
  124. }
  125. if (vlt > 19.7 && vlt<=20) {
  126. pwm = 120936.25*vlt - 6054.6*pow(vlt, 2) + 100.91*pow(vlt, 3) - 804165;
  127. }
  128. if (pwm < 0) {
  129. pwm = pwm*(-1);
  130. }
  131. if (pwm > 65355) {
  132. pwm = 65355;
  133. }
  134. ledcWrite(ledChannel, round(pwm));
  135. Serial.print("PWM: ");
  136. Serial.println(pwm);
  137. }
  138.  
  139. }
  140.  
  141. void setup() {
  142. Serial.begin(115200);
  143.  
  144. ledcSetup(ledChannel, freq, resolution);
  145.  
  146. // привязываем канал к GPIO-контакту, которым будем управлять:
  147. ledcAttachPin(ledPin, ledChannel);
  148.  
  149. // подключаемся к WiFi при помощи заданных выше SSID и пароля:
  150. Serial.print("Connecting to "); // "Подключаемся к "
  151. Serial.println(ssid);
  152. WiFi.begin(ssid, password);
  153. while (WiFi.status() != WL_CONNECTED) {
  154. delay(500);
  155. Serial.print(".");
  156. }
  157. // печатаем локальный IP-адрес и запускаем веб-сервер:
  158. Serial.println("");
  159. Serial.println("WiFi connected."); // "WiFi подключен."
  160. Serial.println("IP address: "); // "IP-адрес: "
  161. Serial.println(WiFi.localIP());
  162.  
  163. server.on ( "/", handleRoot );
  164. server.on ("/save", handleSave);
  165.  
  166. server.begin();
  167. Serial.println ( "HTTP server started" );
  168. }
  169.  
  170. void loop(){
  171. server.handleClient();
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement