Хочу сделать управление воротами. Для этого необходимо с WEB страницы нажать на кнопку открыть
кратковременно включится реле, которое своими контактами замкнет кнопку (ОТКРЫТЬ) на пускателе.
И соответственно три таких реле с управлением с WEB (ОТКРЫТЬ), (СТОП), (ЗАКРЫТЬ)
Вот приблизительный скетч только там все включения фиксируемые, подскажите что переделать
чтоб реле включалось на секунду а потом само отключалось.
кратковременно включится реле, которое своими контактами замкнет кнопку (ОТКРЫТЬ) на пускателе.
И соответственно три таких реле с управлением с WEB (ОТКРЫТЬ), (СТОП), (ЗАКРЫТЬ)
Вот приблизительный скетч только там все включения фиксируемые, подскажите что переделать
чтоб реле включалось на секунду а потом само отключалось.
Код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
// GPIO, куда подключено реле
int rele1 = 12;
int rele2 = 15;
bool PowerRele1 = false;
bool PowerRele2 = false;
ESP8266WebServer server(80);
long int chipId;
const char *ssid = "Test";
//void webPage() {
//char webPage[700];
// snprintf(webPage,700,"<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/><title>Test</title></head><body><center><h1><br/>ESP8266 ID: %d<br/><br/></center></body></html>",chipId);
// server.send(200,"text/html",webPage);
//}
void setup (void) {
delay(1000);
Serial.begin(115200);
chipId = ESP.getChipId();
Serial.println();
Serial.print("ChipId: ");
Serial.println(chipId);
pinMode(rele1 , OUTPUT);
digitalWrite(rele1 , PowerRele1);
pinMode(rele2 , OUTPUT);
digitalWrite(rele2 , PowerRele2);
// сервер-клиент:
IPAddress apIP(192,168,4,1);
WiFi.mode(WIFI_AP_STA); // WiFi.mode(WIFI_AP);
WiFi.softAPConfig(apIP,apIP,IPAddress(255,255,255,0));
WiFi.softAP(ssid);
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(apIP);
server.on("/", HTTP_handleRoot);
server.begin();
Serial.println("HTTP server started");
Serial.println();
}
void loop (void) {
server.handleClient();
delay(1); // не обязательно, Но желательно
}
void HTTP_handleRoot(void) {
bool statrele1 = false;
bool statrele2 = false;
// Реле 1
if( server.hasArg("statrele1") ){
if( strncmp(server.arg("statrele1").c_str(),"1",1) == 0 )
statrele1 = true;
}
else {
statrele1 = PowerRele1;
}
// Реле 2
if( server.hasArg("statrele2") ){
if( strncmp(server.arg("statrele2").c_str(),"1",1) == 0 )
statrele2 = true;
}
else {
statrele2 = PowerRele2;
}
// Формируем ШТМЛ страницу
String out = "";
out =
"<html>\
<head>\
<meta charset=\"utf-8\" />\
<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1.0 user-scalable=no'/>\
<title>Управление Реле</title>\
<style>\
body {background-color:#cccccc; color:#fbfd00; text-shadow: 0px 2px 6px rgba(0,0,0,0.4); font-family: Sans-Serif, Arial, Helvetica; }\
</style>\
</head>\
<body>\
<center>\
<br>\
<h1>ВЫ НАХОДИТЕСЬ НА ТЕРРИТОРИИ </h1>\
";
// Для реле 1
if( statrele1 ){
out+="\
<p><button>Кнопка</button></p>\
</h1> <hr border-radius=10px width=200 size=50 align=centre color=red><h2><a href=\"/?statrele1=0\">Открыть</a></h2>\
";
}
else {
out+="\
</h1> <hr width=100 size=30 align=left color=green><h2><a href=\"/?statrele1=1\">ON</a></h2>\
";
}
// Для реле 2
if( statrele2 ){
out+="\
<hr width=100 size=30 align=left color=red><h2><a href=\"/?statrele2=0\">OFF</a></h2>\
";
}
else {
out+="\
<hr width=100 size=30 align=left color=green><h2><a href=\"/?statrele2=1\">ON</a></h2>\
";
}
// Общее
out+= "\
</body>\
</html>";
server.send ( 200, "text/html", out );
// Для реле 1
if( statrele1 != PowerRele1 ){
PowerRele1 = statrele1;
digitalWrite(rele1 , PowerRele1);
}
// Для реле 2
if( statrele2 != PowerRele2 ){
PowerRele2 = statrele2;
digitalWrite(rele2 , PowerRele2);
}
// Скобку оставить!
}
Вложения
-
3.4 KB Просмотры: 3