Переключатель "Авомат - Ручное"
- Войдите на сайт для отправки комментариев
Пнд, 29/03/2021 - 09:43
Доброго времени суток!
Делаю проект "Умная темплица". Вывод показаний и управление реле, осуществляется с вэб сервера. Теперь необходимо сделать переключатель (кнопку) режимов управления включения реле "Авто-Ручное".
В положении "Авто", должен исполнятся этот кусок кода:
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>"); }
}
Как это реализовать?
читать про оператор if
Как это реализовать?
Существует огромное количество вариантов. Один из самых простых - написать 2 функции для этих двух сценариев. Создать переменную-флаг и с ее помощью в лупе давать управление нужной функции. Флаг логично устанавливать через веб в вашем случае. И никаких кнопок не нужно