управление реле

Gagarin74
Offline
Зарегистрирован: 24.08.2013

Добрый день. Прошу помощи. Не могу до конца склеить в работоспособном состоянии два скетча.

Один из примеров в ide называется OTAWebUpdater    для платы esp32 (у меня devkitv1)

и любой скотч для управления реле (достаточно одним).

Идея такова. Заливать прошивку через web.

001#include <WiFi.h>
002#include <WiFiClient.h>
003#include <WebServer.h>
004#include <ESPmDNS.h>
005#include <Update.h>
006 
007const char* host = "esp32";
008const char* ssid = "xxx";
009const char* password = "xxxx";
010 
011WebServer server(80);
012 
013/*
014 * Login page
015 */
016 
017const char* loginIndex =
018 "<form name='loginForm'>"
019    "<table width='20%' bgcolor='A09F9F' align='center'>"
020        "<tr>"
021            "<td colspan=2>"
022                "<center><font size=4><b>ESP32 Login Page</b></font></center>"
023                "<br>"
024            "</td>"
025            "<br>"
026            "<br>"
027        "</tr>"
028        "<tr>"
029             "<td>Username:</td>"
030             "<td><input type='text' size=25 name='userid'><br></td>"
031        "</tr>"
032        "<br>"
033        "<br>"
034        "<tr>"
035            "<td>Password:</td>"
036            "<td><input type='Password' size=25 name='pwd'><br></td>"
037            "<br>"
038            "<br>"
039        "</tr>"
040        "<tr>"
041            "<td><input type='submit' onclick='check(this.form)' value='Login'></td>"
042        "</tr>"
043    "</table>"
044"</form>"
045"<script>"
046    "function check(form)"
047    "{"
048    "if(form.userid.value=='admin' && form.pwd.value=='admin')"
049    "{"
050    "window.open('/serverIndex')"
051    "}"
052    "else"
053    "{"
054    " alert('Error Password or Username')/*displays error message*/"
055    "}"
056    "}"
057"</script>";
058 
059/*
060 * Server Index Page
061 */
062 
063const char* serverIndex =
064"<script src='<a href="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" rel="nofollow">https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js</a>'></script>"
065"<form method='POST' action='#' enctype='multipart/form-data' id='upload_form'>"
066   "<input type='file' name='update'>"
067        "<input type='submit' value='Update'>"
068    "</form>"
069 "<div id='prg'>progress: 0%</div>"
070 "<script>"
071  "$('form').submit(function(e){"
072  "e.preventDefault();"
073  "var form = $('#upload_form')[0];"
074  "var data = new FormData(form);"
075  " $.ajax({"
076  "url: '/update',"
077  "type: 'POST',"
078  "data: data,"
079  "contentType: false,"
080  "processData:false,"
081  "xhr: function() {"
082  "var xhr = new window.XMLHttpRequest();"
083  "xhr.upload.addEventListener('progress', function(evt) {"
084  "if (evt.lengthComputable) {"
085  "var per = evt.loaded / evt.total;"
086  "$('#prg').html('progress: ' + Math.round(per*100) + '%');"
087  "}"
088  "}, false);"
089  "return xhr;"
090  "},"
091  "success:function(d, s) {"
092  "console.log('success!')"
093 "},"
094 "error: function (a, b, c) {"
095 "}"
096 "});"
097 "});"
098 "</script>";
099 
100/*
101 * setup function
102 */
103void setup(void) {
104  Serial.begin(115200);
105 
106  // Connect to WiFi network
107  WiFi.begin(ssid, password);
108  Serial.println("");
109 
110  // Wait for connection
111  while (WiFi.status() != WL_CONNECTED) {
112    delay(500);
113    Serial.print(".");
114  }
115  Serial.println("");
116  Serial.print("Connected to ");
117  Serial.println(ssid);
118  Serial.print("IP address: ");
119  Serial.println(WiFi.localIP());
120 
121  /*use mdns for host name resolution*/
122  if (!MDNS.begin(host)) { //<a href="http://esp32.local" rel="nofollow">http://esp32.local</a>
123    Serial.println("Error setting up MDNS responder!");
124    while (1) {
125      delay(1000);
126    }
127  }
128  Serial.println("mDNS responder started");
129  /*return index page which is stored in serverIndex */
130  server.on("/", HTTP_GET, []() {
131    server.sendHeader("Connection", "close");
132    server.send(200, "text/html", loginIndex);
133  });
134  server.on("/serverIndex", HTTP_GET, []() {
135    server.sendHeader("Connection", "close");
136    server.send(200, "text/html", serverIndex);
137  });
138  /*handling uploading firmware file */
139  server.on("/update", HTTP_POST, []() {
140    server.sendHeader("Connection", "close");
141    server.send(200, "text/plain", (Update.hasError()) ? "FAIL" : "OK");
142    ESP.restart();
143  }, []() {
144    HTTPUpload& upload = server.upload();
145    if (upload.status == UPLOAD_FILE_START) {
146      Serial.printf("Update: %s\n", upload.filename.c_str());
147      if (!Update.begin(UPDATE_SIZE_UNKNOWN)) { //start with max available size
148        Update.printError(Serial);
149      }
150    } else if (upload.status == UPLOAD_FILE_WRITE) {
151      /* flashing firmware to ESP*/
152      if (Update.write(upload.buf, upload.currentSize) != upload.currentSize) {
153        Update.printError(Serial);
154      }
155    } else if (upload.status == UPLOAD_FILE_END) {
156      if (Update.end(true)) { //true to set the size to the current progress
157        Serial.printf("Update Success: %u\nRebooting...\n", upload.totalSize);
158      } else {
159        Update.printError(Serial);
160      }
161    }
162  });
163  server.begin();
164}
165 
166void loop(void) {
167  server.handleClient();
168  delay(1);
169}

 

rst
Offline
Зарегистрирован: 25.06.2018

Gagarin74 пишет:
Не могу до конца склеить в работоспособном состоянии...

и любой скотч для управления реле (достаточно одним).

На, попробуй этим склеить:

b707
Offline
Зарегистрирован: 26.05.2017

Gagarin74 пишет:

Идея такова. Заливать прошивку через web.

... и одновременно вклюючать свет в туалете?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Любой скотч тут не подойдет. Нужен прозрачный, 3М.

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Только синяя изолента, никаких скотчей

Gagarin74
Offline
Зарегистрирован: 24.08.2013

Спасибо за юмор. Оценил.

Но хотелось бы по существу.

AndreyD
AndreyD аватар
Offline
Зарегистрирован: 07.10.2018

А может с таким кто склеит -Te Bheag Blended Scotch 0.7 л.? Это же платный раздел.

b707
Offline
Зарегистрирован: 26.05.2017

Gagarin74 пишет:

Но хотелось бы по существу.

Ответов по существу на вопрос "не могу склеить два скетча" быть не может. Тем более что выложили только один. А второй надо самому придумать?

И не написали. сколько готовы платить за это.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Gagarin74 пишет:

и любой скотч для управления реле (достаточно одним).

В этом слове ошибка или нет ?

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

brokly пишет:

Любой скотч тут не подойдет. Нужен прозрачный, 3М.

Прозрачный не очень для управления реле годится. Может ёбом токнуть. Тут у автора явный аппаратный просчет. Изолента в самый раз, если я ТЗ правильно прочитал

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ну побольше намотать, не ?

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

brokly пишет:

Ну побольше намотать, не ?

Как вариант. А если намотать на палец, то можно несколькими реле управлять. И не только реле. Нагрев конденсаторов проверять, например

man9913
Offline
Зарегистрирован: 19.03.2016

я сам люблю пошутить, но тут похоже уже перебор. с каждой новой темой ветка форума "ищу исполнителя" превращается в дом мумий-троллей(не ошибка, именно мумий).

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

Вот это было обидно. Тут, понимаешь, стараешься, тратишь драгоценное время чтобы совершенно бесплатно оказать ТСу (обычно, заметьте, платную) услугу, так еще и вместо благодарности одни оскорбления в ответ

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

man9913 пишет:

я сам люблю пошутить, но тут похоже уже перебор. с каждой новой темой ветка форума "ищу исполнителя" превращается в дом мумий-троллей(не ошибка, именно мумий).

Любишь - шути. Это не заказчик и не заказ. Почему не повеселиться? Или ты хотел заработать на "склеивании скетчей"?

rst
Offline
Зарегистрирован: 25.06.2018

man9913 пишет:
я сам люблю пошутить, но тут похоже уже перебор. с каждой новой темой ветка форума "ищу исполнителя" превращается в дом мумий-троллей(не ошибка, именно мумий).
Каков поп, таков и приход.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Не скетчей, а скотчей... вроде...

Кстати, че за намек на мумий, мне еще до пенсии 15 лет топтаться, так что молокососы обязаны фильтровать выражения !

b707
Offline
Зарегистрирован: 26.05.2017

man9913 пишет:

я сам люблю пошутить, но тут похоже уже перебор. с каждой новой темой ветка форума "ищу исполнителя" превращается в дом мумий-троллей(не ошибка, именно мумий).


да мы уже сами устали, живот болит от смеха... Но что поделаешь, если уже который день сюда заходят сплошные клоуны?