• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Выполнение действия пока удерживается кнопка в web-интерфейсе

BlackWarrior

New member
Вопрос, собственно, таков: как выполнять какое-либо действие (например: удерживать 1 на output gpio12) пока удерживается кнопка в web-интерфейсе?
Поделитесь, пожалуйста идеями и/или примером скетча.
 

dzanis

New member
Здесь подойдёт опрос событий мыши на нажатия по кнопке.
C++:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

const char* ssid     = "ssid";
const char* password = "pass";

ESP8266WebServer server(80);

const int led = D6;

const String content = "<html>\
<body>\
<button onmousedown='send(1)' onmouseup='send(0)' onmouseout='send(0)' >gpioOn</button>\
<script>\
function send(val) {\
  var xhr = new XMLHttpRequest();\
    xhr.open('POST', '/gpioOn?val='+val, true);\
  xhr.send();\
}\
</script>\
</body>\
</html>\
";

void handleRoot() {
  server.send(200, "text/html", content);
}

void gpioOn() {
   int val = server.arg("val").toInt();
    digitalWrite(led,val );
    server.send(200);
}

void setup(void) {
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  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());

  server.on("/", handleRoot);
  server.on("/gpioOn", gpioOn);
  server.begin();
  Serial.println("HTTP server started");
}

void loop(void) {
  server.handleClient();
}
 

Юрий Ботов

Moderator
Команда форума
События onkeyup и onkeydown на кнопку которые шлют соответствующие команды на сервер?
 
Сверху Снизу