Здравствуйте, подскажите как с этим кодом сделать двойное значение, если ставить 30> уведомляет если выше 30, если <30 что ниже 30 градусов, мне бы хотелось чтобы уведомляло в обеих значениях если выше 30 и ниже 30 градусов, как правильно прописать код? Код (C++): #define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include <OneWire.h> #include <DallasTemperature.h> OneWire oneWire(D4); // digital D2 pin DallasTemperature sensors(&oneWire); BlynkTimer timer; // You should get Auth Token in the Blynk App. char auth[] = "000000000"; // Your WiFi credentials. char ssid[] = "Sovetskaya"; char pass[] = ""; float temp = 0; float SonMesaj = 0; float SonEMail = 0; void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass); sensors.begin(); // Setup a function to be called every second timer.setInterval(1000L, sendTemps); } void sendTemps() { sensors.requestTemperatures(); temp = sensors.getTempCByIndex(0); Serial.println(String("Sıcaklik=")+temp+ String(" C")); Blynk.virtualWrite(V11, temp); } void loop() { Blynk.run(); timer.run(); if ( (temp > 30 ) && (millis() > SonMesaj+3000 ) ) { SonMesaj = millis(); Blynk.notify(String("Uyari ")+temp + String("C")); } if ( (temp > 30 ) && (millis() > SonEMail+3000 ) ) { SonEMail = millis(); Blynk.email("gungoryalcin68@Gmail.com","Blynk Deneme",String("Uyari ")+temp + String("C")); } }
А вам обязательно раз в три секунды отсылать письмо, пока температура выше 30°? Код, к сожалению, нужно почти весь менять, и прочтите, как нужно правильно отмерять интервалы при помощи millis.
Код (C++): нет, совсем не обязательно, мне сейчас нужно уведомлять о снижении и повышении, а код я еще не редактировал под себя
То есть должна бомбить мессагами при малейшем отклонении от 30? Или таки небольшой гистерезис предусмотрите?
Мне кажется, @Daniil сделал вам предложение по реализации, а не задал вопрос. Вы можете самостоятельно перевести его слова в условные операторы?