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

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

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

Один из примеров в 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);
}

 

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 пишет:

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


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