Уведомления о повышении/снижении температуры

Тема в разделе "ESP8266, ESP32", создана пользователем Elman, 27 ноя 2019.

  1. Elman

    Elman Нерд

    Здравствуйте, подскажите как с этим кодом сделать двойное значение, если ставить 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"));
    }

    }
     
    Последнее редактирование: 27 ноя 2019
  2. NikitOS

    NikitOS Король шутов Администратор

  3. Elman

    Elman Нерд

    что?
     
  4. KindMan

    KindMan Гуру

    А вам обязательно раз в три секунды отсылать письмо, пока температура выше 30°?
    Код, к сожалению, нужно почти весь менять, и прочтите, как нужно правильно отмерять интервалы при помощи millis.
     
    NikitOS нравится это.
  5. Elman

    Elman Нерд

    Код (C++):
     
    нет, совсем не обязательно, мне сейчас нужно уведомлять о снижении и повышении, а код я еще не редактировал под себя
     
  6. Daniil

    Daniil Гуру

    Если температура не равна 30, то уведомлять
     
  7. ostrov

    ostrov Гуру

    То есть должна бомбить мессагами при малейшем отклонении от 30? Или таки небольшой гистерезис предусмотрите?
     
    Daniil нравится это.
  8. Elman

    Elman Нерд

    если отклонение на 2-3 градуса
     
  9. Daniil

    Daniil Гуру

    Если температура меньше 30 минус 2-3 градуса ИЛИ больше 30 плюс 2-3 градуса, то уведомлять.
     
  10. Elman

    Elman Нерд

    да
     
  11. KindMan

    KindMan Гуру

    Мне кажется, @Daniil сделал вам предложение по реализации, а не задал вопрос.
    Вы можете самостоятельно перевести его слова в условные операторы?
     
    Daniil нравится это.