Расскажите за обновление библиотек.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

Сотворил свою первую реальную прогу. Через Blynk на смартфоне видеть микроклимат и им управять в автомате и ручном. Подробно. Сам во всё вникал. Можете глянуть ... если кому.  Хотя ... быдлокод, конечно.

Это было вчера.

А сегодня мелькнуло внизу "Есть обновление Ваших библиотек". Повёлся. Обновил. Наивный.

Библиотека BlynkSimpleEsp8266.h

Компилятор ста писать, что к мей плате скетч не подходит. Откатил библиотеку до предыдущей версии.

Всё заработало.

Вопрос ... в чём подвох? Почему это? За что? И как?

И можно ли обновленную библиотеку втереть в скетч?

 

 

[code]
       /*Программa My home.
        * Обеспечивает двустороннюю связь с мобильным телефоном посредством WiFi
        * Назначение виртуальных портов в приложении Blynk:
        * А0 - визуализация аналогового фотосопротивления;
        * V0 - задатчик автоматического порога освещённости;
        * V1 - светодиод включения реле включения освещения;
        * V2 - светодиод принудительного включения освещения;
        * V3 - кнопка включения/выключения освещения;
        * ******************************
        * V4 - кнопка принудительного включения полива;
        * V5 - визуализация датчика влажности;
        * V6 - визуализация датчика температуры;
        * V7 - кнопка принудительного включения обогревателя;
        * V8 - задатчик порога влажности;
        * V9 - задатчик порога температуры;
        * V10 - светодиод принудительного включения обогрева;
        * V11 - светодиод автоматического включения обогрева;
        * V12 - светодиод автоматического включения полива;
        * V13 - светодиод принудительного включения полива.
        */
          #define DHTPIN D2// Выход от датчика DHT22
        #define LED D3 //   светодиод подключен к пину Реле освещения автоматичю
        #define LED2 D4 // светодиод подключен к пину Реле освещения ручное
        #define PHOTO A0 // фоторезистор подключен к пину A0
        #define LED3 D5 //   светодиод подключен к пину Реле нагрева автоматичю
        #define LED4 D6 // светодиод подключен к пину  Реле нагрева ручное
        #define LED5 D7 //   светодиод подключен к пину  Реле полива автоматичю
        #define LED6 D8 // светодиод подключен к пину  Реле полива ручное
        #include <ESP8266WiFi.h>
        #include <BlynkSimpleEsp8266.h>
        #include "DHT.h"
        #define DHTTYPE DHT22
        int  releF, releT, releH; 
             float   sensorF, sensorH, sensorT, valueF, valueH, valueT;
        char auth[] = "4675441d696a47c384808aeb2b552c41";
        char ssid[] = "ZTE46508";
        char pass[] = "04112008";
        DHT dht(DHTPIN, DHTTYPE);
    void setup(){
     Blynk.begin(auth, ssid, pass);
     pinMode(LED2, OUTPUT); 
     pinMode(LED, OUTPUT);  
     pinMode(LED3, OUTPUT); 
     pinMode(LED4, OUTPUT); 
     pinMode(LED5, OUTPUT); 
     pinMode(LED6, OUTPUT); }
     BLYNK_CONNECTED(){ Blynk.syncAll();}
     BLYNK_WRITE(V0){valueF = param.asInt();}
     BLYNK_WRITE(V8){valueH = param.asInt();}
     BLYNK_WRITE(V9){valueT = param.asInt();}
          BLYNK_WRITE(V3){
       releF = param.asInt(); 
       digitalWrite (LED2, releF); 
       if (releF == 0){ Blynk.virtualWrite(V2, 0);  }
       if (releF != 0){ Blynk.virtualWrite(V2, 1023);  }
        }
          BLYNK_WRITE(V4){
       releH = param.asInt(); 
       digitalWrite (LED6, releH); 
       if (releH == 0){ Blynk.virtualWrite(V13, 0);  }
       if (releH != 0){ Blynk.virtualWrite(V13, 1023);  }
        }
            BLYNK_WRITE(V7){
       releT = param.asInt(); 
       digitalWrite (LED4, releT); 
       if (releT == 0){ Blynk.virtualWrite(V10, 0);  }
       if (releT != 0){ Blynk.virtualWrite(V10, 1023);  }
        }
    void loop() {
         delay(500);
         Blynk.run();
              sensorF = analogRead(PHOTO);
     if (sensorF <= valueF - 1) // если значение с фоторезистора больше переменной + дельта 
        {digitalWrite(LED, HIGH);
           Blynk.virtualWrite(V1, 1023);} // то включаем светодиод (либо лампочку подключенную к реле)
     if (sensorF > valueF + 1) // если значение с фоторезистора меньше переменной - дельта 
      {digitalWrite(LED, LOW);
         Blynk.virtualWrite(V1, 0);} 
              sensorH = dht.readHumidity();
     if (sensorH < valueH - 1) // если значение с фоторезистора больше переменной + дельта 
        {digitalWrite(LED5, HIGH);
           Blynk.virtualWrite(V12, 1023);} // то включаем светодиод (либо лампочку подключенную к реле)
     if (sensorH >= valueH + 1) // если значение с фоторезистора меньше переменной - дельта 
        {digitalWrite(LED5, LOW);
         Blynk.virtualWrite(V12, 0);} 
           Blynk.virtualWrite(V5, sensorH);
                sensorT = dht.readTemperature();
     if (sensorT < valueT - 0.5) // если значение с фоторезистора больше переменной + дельта 
        {digitalWrite(LED3, HIGH);
           Blynk.virtualWrite(V11, 1023);} // то включаем светодиод (либо лампочку подключенную к реле)
     if (sensorT >= valueT + 0.5) // если значение с фоторезистора меньше переменной - дельта 
        {digitalWrite(LED3, LOW);
           Blynk.virtualWrite(V11, 0);}
            Blynk.virtualWrite(V6, sensorT);}
    
[/code]

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Муж_Долговой пишет:

А сегодня мелькнуло внизу "Есть обновление Ваших библиотек". Повёлся. Обновил. Наивный.

Библиотека BlynkSimpleEsp8266.h

Компилятор ста писать, что к мей плате скетч не подходит. Откатил библиотеку до предыдущей версии.

Всё заработало.

Вопрос ... в чём подвох? Почему это? За что? И как?

Все нормально, так и должно быть. В чем проблема-то?

Цитата:

И можно ли обновленную библиотеку втереть в скетч?

В подавляющем большинстве случаев - можно.

Муж_Долговой
Муж_Долговой аватар
Offline
Зарегистрирован: 07.10.2018

Не получается новую.

В чём тогда суть обовлений, если не подходит?

sadman41
Offline
Зарегистрирован: 19.10.2016

Суть обновлений - исправление и улучшение. А отличия описаны в release notes, whatnew и пр., как правило.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Почему-то мне чаще всего встречается "как правило" отличия надо искать самому, сравнивая *.h файлы. (