управление реле
- Войдите на сайт для отправки комментариев
Пнд, 15/03/2021 - 17:24
Добрый день. Прошу помощи. Не могу до конца склеить в работоспособном состоянии два скетча.
Один из примеров в ide называется OTAWebUpdater для платы esp32 (у меня devkitv1)
и любой скотч для управления реле (достаточно одним).
Идея такова. Заливать прошивку через web.
#include <WiFi.h> #include <WiFiClient.h> #include <WebServer.h> #include <ESPmDNS.h> #include <Update.h> const char* host = "esp32"; const char* ssid = "xxx"; const char* password = "xxxx"; WebServer server(80); /* * Login page */ const char* loginIndex = "<form name='loginForm'>" "<table width='20%' bgcolor='A09F9F' align='center'>" "<tr>" "<td colspan=2>" "<center><font size=4><b>ESP32 Login Page</b></font></center>" "<br>" "</td>" "<br>" "<br>" "</tr>" "<tr>" "<td>Username:</td>" "<td><input type='text' size=25 name='userid'><br></td>" "</tr>" "<br>" "<br>" "<tr>" "<td>Password:</td>" "<td><input type='Password' size=25 name='pwd'><br></td>" "<br>" "<br>" "</tr>" "<tr>" "<td><input type='submit' onclick='check(this.form)' value='Login'></td>" "</tr>" "</table>" "</form>" "<script>" "function check(form)" "{" "if(form.userid.value=='admin' && form.pwd.value=='admin')" "{" "window.open('/serverIndex')" "}" "else" "{" " alert('Error Password or Username')/*displays error message*/" "}" "}" "</script>"; /* * Server Index Page */ const char* serverIndex = "<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script>" "<form method='POST' action='#' enctype='multipart/form-data' id='upload_form'>" "<input type='file' name='update'>" "<input type='submit' value='Update'>" "</form>" "<div id='prg'>progress: 0%</div>" "<script>" "$('form').submit(function(e){" "e.preventDefault();" "var form = $('#upload_form')[0];" "var data = new FormData(form);" " $.ajax({" "url: '/update'," "type: 'POST'," "data: data," "contentType: false," "processData:false," "xhr: function() {" "var xhr = new window.XMLHttpRequest();" "xhr.upload.addEventListener('progress', function(evt) {" "if (evt.lengthComputable) {" "var per = evt.loaded / evt.total;" "$('#prg').html('progress: ' + Math.round(per*100) + '%');" "}" "}, false);" "return xhr;" "}," "success:function(d, s) {" "console.log('success!')" "}," "error: function (a, b, c) {" "}" "});" "});" "</script>"; /* * setup function */ void setup(void) { Serial.begin(115200); // Connect to WiFi network WiFi.begin(ssid, password); Serial.println(""); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); /*use mdns for host name resolution*/ if (!MDNS.begin(host)) { //http://esp32.local Serial.println("Error setting up MDNS responder!"); while (1) { delay(1000); } } Serial.println("mDNS responder started"); /*return index page which is stored in serverIndex */ server.on("/", HTTP_GET, []() { server.sendHeader("Connection", "close"); server.send(200, "text/html", loginIndex); }); server.on("/serverIndex", HTTP_GET, []() { server.sendHeader("Connection", "close"); server.send(200, "text/html", serverIndex); }); /*handling uploading firmware file */ server.on("/update", HTTP_POST, []() { server.sendHeader("Connection", "close"); server.send(200, "text/plain", (Update.hasError()) ? "FAIL" : "OK"); ESP.restart(); }, []() { HTTPUpload& upload = server.upload(); if (upload.status == UPLOAD_FILE_START) { Serial.printf("Update: %s\n", upload.filename.c_str()); if (!Update.begin(UPDATE_SIZE_UNKNOWN)) { //start with max available size Update.printError(Serial); } } else if (upload.status == UPLOAD_FILE_WRITE) { /* flashing firmware to ESP*/ if (Update.write(upload.buf, upload.currentSize) != upload.currentSize) { Update.printError(Serial); } } else if (upload.status == UPLOAD_FILE_END) { if (Update.end(true)) { //true to set the size to the current progress Serial.printf("Update Success: %u\nRebooting...\n", upload.totalSize); } else { Update.printError(Serial); } } }); server.begin(); } void loop(void) { server.handleClient(); delay(1); }
и любой скотч для управления реле (достаточно одним).
Идея такова. Заливать прошивку через web.
... и одновременно вклюючать свет в туалете?
Любой скотч тут не подойдет. Нужен прозрачный, 3М.
Только синяя изолента, никаких скотчей
Спасибо за юмор. Оценил.
Но хотелось бы по существу.
А может с таким кто склеит -Te Bheag Blended Scotch 0.7 л.? Это же платный раздел.
Но хотелось бы по существу.
Ответов по существу на вопрос "не могу склеить два скетча" быть не может. Тем более что выложили только один. А второй надо самому придумать?
И не написали. сколько готовы платить за это.
и любой скотч для управления реле (достаточно одним).
В этом слове ошибка или нет ?
Любой скотч тут не подойдет. Нужен прозрачный, 3М.
Прозрачный не очень для управления реле годится. Может ёбом токнуть. Тут у автора явный аппаратный просчет. Изолента в самый раз, если я ТЗ правильно прочитал
Ну побольше намотать, не ?
Ну побольше намотать, не ?
Как вариант. А если намотать на палец, то можно несколькими реле управлять. И не только реле. Нагрев конденсаторов проверять, например
я сам люблю пошутить, но тут похоже уже перебор. с каждой новой темой ветка форума "ищу исполнителя" превращается в дом мумий-троллей(не ошибка, именно мумий).
Вот это было обидно. Тут, понимаешь, стараешься, тратишь драгоценное время чтобы совершенно бесплатно оказать ТСу (обычно, заметьте, платную) услугу, так еще и вместо благодарности одни оскорбления в ответ
я сам люблю пошутить, но тут похоже уже перебор. с каждой новой темой ветка форума "ищу исполнителя" превращается в дом мумий-троллей(не ошибка, именно мумий).
Любишь - шути. Это не заказчик и не заказ. Почему не повеселиться? Или ты хотел заработать на "склеивании скетчей"?
Не скетчей, а скотчей... вроде...
Кстати, че за намек на мумий, мне еще до пенсии 15 лет топтаться, так что молокососы обязаны фильтровать выражения !
я сам люблю пошутить, но тут похоже уже перебор. с каждой новой темой ветка форума "ищу исполнителя" превращается в дом мумий-троллей(не ошибка, именно мумий).
да мы уже сами устали, живот болит от смеха... Но что поделаешь, если уже который день сюда заходят сплошные клоуны?