Расскажите за обновление библиотек.
- Войдите на сайт для отправки комментариев
Чт, 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 файлы. (