Переключатель "Авомат - Ручное"

Adolf_Balalaykin
Offline
Зарегистрирован: 01.02.2021

Доброго времени суток!

Делаю проект "Умная темплица". Вывод показаний и управление реле, осуществляется с вэб сервера. Теперь необходимо сделать переключатель (кнопку) режимов управления включения реле "Авто-Ручное".

В положении "Авто", должен исполнятся этот кусок кода:

void setup() {
pinMode(14, OUTPUT);       // Объявляем выходной пин BH1750 (освещение)
}
 void loop(){
//Датчик BH1750
float IN1 = lightMeter.readLightLevel();            // Считывание данных и создание переменной с именем IN3
Client.print(IN1);                                  // Вывод показаний на вэб страничку
if (IN3>=500) digitalWrite(14, HIGH);               // При достижении освещенности 500 люкс и выше, подать 1 на 14 пин.
else digitalWrite(14, LOW);                         // Сброс реле в исходное состояние
delay(1000);
}

А в ручном режиме должен исполнятся этот кусок кода (это кнопка принудительного включения и отключения реле):

// для хранения текущего состояния выходных контактов:
String output14State = "off";

void setup() {
pinMode(14, OUTPUT);       // Объявляем выходной пин BH1750 (освещение)
digitalWrite(14, LOW);        // присваиваем 'этому пину значение «LOW»
}


 void loop(){
// с помощью этого кода включаем и выключаем GPIO-контакты:
if (header.indexOf("GET /14/on") >= 0) {
   Serial.println("GPIO 14 включен");       // "GPIO14 включен"
   output14State = "on";
   digitalWrite(14, HIGH);
} else if (header.indexOf("GET /14/off") >= 0) {
Serial.println("GPIO 14 выключен");        // "GPIO14 выключен"
output14State = "off";
digitalWrite(14, LOW);
}

client.println("class=txt-top style='top:475px; right:-170px;'>");
client.println("<p>Кнопка " + output14State + "</p>");
if (output14State=="off") {
client.println("<p><a href=\"/14/on\"><button class=\"button\">ОТКРЫТЬ</button></a></p>");
} else {
client.println("<p><a href=\"/14/off\"><button class=\"button button2\">ЗАКРЫТЬ</button></a></p>"); }
 }

Как это реализовать?

 

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

читать про оператор if

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

Adolf_Balalaykin пишет:

Как это реализовать?

Существует огромное количество вариантов. Один из самых простых - написать 2 функции для этих двух сценариев. Создать переменную-флаг и с ее помощью в лупе давать управление нужной функции. Флаг логично устанавливать через веб в вашем случае. И никаких кнопок не нужно

 

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019
Странно, мой текст в предыдущем сообщении заквотировался. Тэги, вроде, правильно все стоят... Хм..