Расскажите за обновление библиотек.
- Войдите на сайт для отправки комментариев
Чт, 03/01/2019 - 21:23
Сотворил свою первую реальную прогу. Через 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]
А сегодня мелькнуло внизу "Есть обновление Ваших библиотек". Повёлся. Обновил. Наивный.
Библиотека BlynkSimpleEsp8266.h
Компилятор ста писать, что к мей плате скетч не подходит. Откатил библиотеку до предыдущей версии.
Всё заработало.
Вопрос ... в чём подвох? Почему это? За что? И как?
И можно ли обновленную библиотеку втереть в скетч?
Не получается новую.
В чём тогда суть обовлений, если не подходит?
Суть обновлений - исправление и улучшение. А отличия описаны в release notes, whatnew и пр., как правило.
Почему-то мне чаще всего встречается "как правило" отличия надо искать самому, сравнивая *.h файлы. (