Переключатель "Авомат - Ручное"
- Войдите на сайт для отправки комментариев
Пнд, 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 функции для этих двух сценариев. Создать переменную-флаг и с ее помощью в лупе давать управление нужной функции. Флаг логично устанавливать через веб в вашем случае. И никаких кнопок не нужно