Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Контроль влажности в гараже и погребе. WEMOS MINI PRO

Тема в разделе "Раздел для начинающих", создана пользователем zip1961, 26 апр 2019.

  1. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
    Если на "улице сыро", то и в помещении влажность сильно не уменьшится ))[/QUOTE]
    Да, я в самом начале писал, что все эти действия в скетче (в котором Вы мне очень помогли) будут исполняться при условии, если влажность на улице меньше, чем в гараже включается вентилятор в гараже, если влажность в гараже меньше, чем в погребе, включается вентилятор в погребе. Над этим теперь предстоит моя задача. Пока не считаю точку росы, ее формулу перевода в абсолютную, пока попробую без этого, потом, если додумаюсь, сделаю.
     
  2. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
    Да, я в самом начале писал, что все эти действия в скетче (в котором Вы мне очень помогли) будут исполняться при условии, если влажность на улице меньше, чем в гараже включается вентилятор в гараже, если влажность в гараже меньше, чем в погребе, включается вентилятор в погребе. Над этим теперь предстоит моя задача. Пока не считаю точку росы, ее формулу перевода в абсолютную, пока попробую без этого, потом, если додумаюсь, сделаю.[/QUOTE]
    Да и подумываю поставить над вытяжкой из погреба не большой нагреватель в будущем, чтоб поток был быстрее.
     
  3. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
     
  4. svs2007m

    svs2007m Читатель

    Сообщения:
    76
    Симпатии:
    9
    Ну поскольку код будет многократно модернизирован для быстрой прошивки без "дерганья" железа дополните его обновлением по "воздуху" через ОТА например.
     
  5. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
    Можно по воздуху, хотя меня по USB не очень напрягает.
     
  6. svs2007m

    svs2007m Читатель

    Сообщения:
    76
    Симпатии:
    9
    А подробнее что ? У Blynk на "бесплатно" только 1000 ед. Если есть локальный сервер тогда полная свобода действий.
    В рамках лимиты можно так
    Demo_Blynk.jpg
    Просто текст заголовка виджета и текст надписей на кнопке можно менять с интервалом не менее 1 сек(лучше 5 сек сервер у них бывает отваливается) см.документацию на виджет в зависимости от тек.состояния. (Таймеры времени интересно получаются...)На Blynke прописать виртуальный PIN, а все остальное через скетч
     
  7. svs2007m

    svs2007m Читатель

    Сообщения:
    76
    Симпатии:
    9
    Или "расширенный вариант"
    Demo_2.jpg

    правда это для кухни когда-то писал
     
  8. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
    2000 бесплатно, я оплатил еще на 5000. у меня 12 виджетов и есть еще ресурсы 3800ед..
     
  9. svs2007m

    svs2007m Читатель

    Сообщения:
    76
    Симпатии:
    9
    Ну тогда стилистические кнопки вставляйте там настроек на "любой фломастер". А если подключить Яндекс. клавиатуру на телефоне то там и заначки к тексту добавить можно типа Demo_3.jpg
     
  10. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
     
  11. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
    Графики заблокировали, я хотел установить, но увы!
     
  12. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
    Если только перейти на старую версию.
     
  13. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    464
    Симпатии:
    49
  14. svs2007m

    svs2007m Читатель

    Сообщения:
    76
    Симпатии:
    9
    Где заблокировали ? виджет SuperChart =900 ed. Все работает .Правда у меня локальный сервер с Blynk
     
  15. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
    Да. со временем поменяю обязательно. мне сейчас доделать скетч. точку доступа все вместе. Отдельно пробовал точку доступа и веб сервер, получилось с первого раза, теперь нужно связать это все в одном скетче. Займусь в выходные.
    У меня такой вопросик к Вам. Можно ли виртуальную кнопку V11 (в вашем примере Demo-1 использована по ошибке 2 раза кнопкой V1
    BLYNK_WRITE(V1) // запрос данных с датчика и Blynk.virtualWrite(V1, t1);
    BLYNK_WRITE(V1) я заменил на BLYNK_WRITE(V11) ) использовать, как отмену всех действий вентиляторов. Т.Е. отключить или включить этой кнопкой все вентиляторы, но не показание датчиков.( пока не определился с точкой росы).
     
  16. svs2007m

    svs2007m Читатель

    Сообщения:
    76
    Симпатии:
    9
    У меня не остался тот скетч. Исправлял Ваш на вскидку. Когда вопрос решился стер.
    А по общей кнопке может так:
    Demo_5.txt
     
  17. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
    Код (C):
    1. #include "DHT.h"
    2. #define fan1 D1 //вентилятор D1 Гараж
    3. #define fan2 D5 //вентилятор D5 Подвал
    4. #define fan3 D6 //вентилятор D6 Смотровая яма
    5.  
    6. #define DHT1PIN D0//датчик на улице
    7. #define DHT2PIN D4//датчик в гараже
    8. #define DHT3PIN D3//датчик в подвале
    9. #define DHT4PIN D2//датчик в смотровой яме
    10.  
    11. #define DHT1TYPE DHT22
    12. #define DHT2TYPE DHT22
    13. #define DHT3TYPE DHT11
    14. #define DHT4TYPE DHT11
    15.  
    16. DHT dht1(DHT1PIN, DHT1TYPE);
    17. DHT dht2(DHT2PIN, DHT2TYPE);
    18. DHT dht3(DHT3PIN, DHT3TYPE);
    19. DHT dht4(DHT4PIN, DHT4TYPE);
    20.  
    21. #define BLYNK_PRINT Serial
    22. #include <ESP8266WiFi.h>
    23. #include <BlynkSimpleEsp8266.h>
    24.  
    25. BlynkTimer timer;
    26.  
    27. WidgetLED fan_1(V8);  // Светодиод на смарте
    28. WidgetLED fan_2(V9);  // Светодиод на смарте
    29. WidgetLED fan_3(V10); // Светодиод на смарте
    30.  
    31. int stat = 0;
    32. int maxHum = 60;
    33. char auth[] = "abcc955ef726453a89b97232338d0a57";
    34.  
    35. void setup()
    36. {
    37.   Serial.begin(115200);
    38.   Blynk.begin(auth, "ASUS", "ZipandSergey");
    39.  
    40.   dht1.begin();
    41.   dht2.begin();
    42.   dht3.begin();
    43.   dht4.begin();
    44.  
    45.   pinMode(fan1, OUTPUT);
    46.   pinMode(fan2, OUTPUT);
    47.   pinMode(fan3, OUTPUT);
    48.   timer.setInterval(1000, Send);                 // опрос датчиков с интервалом 1с.
    49.   timer.setInterval(30000L, reconnectBlynk);     // проверяем каждые 30 секунд, если подключение к серверу
    50. }
    51.  
    52. BLYNK_WRITE(V11){ // запрос данных с датчика
    53. if (param.asInt()) { // кнопка в режиме SWITCH
    54.  
    55. digitalWrite(fan1, HIGH);
    56.  
    57. digitalWrite(fan2, HIGH);
    58.  
    59. digitalWrite(fan3, HIGH);
    60. }
    61. else {
    62.  
    63. digitalWrite(fan1, LOW);
    64.  
    65. digitalWrite(fan2, LOW);
    66.  
    67. digitalWrite(fan3, LOW);
    68. }
    69. {
    70.   stat = param.asInt();
    71. }
    72. }
    73. void loop() {
    74.   if (Blynk.connected()) Blynk.run();    // Запуск Blynk
    75.   timer.run();
    76. }
    77. //---------------------------------------------------
    78.  
    79. void Send() {
    80.  
    81.   // опрос датчиков
    82.   //---------- dht1
    83.   float h1 = dht1.readHumidity();
    84.   float t1 = dht1.readTemperature();
    85.   if (isnan(h1) || isnan(t1)) Serial.println("Failed to read from DHT1 sensor!");
    86.   else {
    87.     Serial.print("Humidity1: ");
    88.     Serial.print(h1);
    89.     Serial.print(" %\t ");
    90.     Serial.print("Temperature1: ");
    91.     Serial.print(t1);
    92.     Serial.println(" *C ");
    93.   }
    94.   //---------- dht2
    95.   float h2 = dht2.readHumidity();
    96.   float t2 = dht2.readTemperature();
    97.   if (isnan(h2) || isnan(t2)) Serial.println("Failed to read from DHT2 sensor!");
    98.   else {
    99.     Serial.print("Humidity2: ");
    100.     Serial.print(h2);
    101.     Serial.print(" %\t ");
    102.     Serial.print("Temperature2: ");
    103.     Serial.print(t2);
    104.     Serial.println(" *C ");
    105.   }
    106.   //--------- dht3
    107.   float h3 = dht3.readHumidity();
    108.   float t3 = dht3.readTemperature();
    109.   if (isnan(h3) || isnan(t3))Serial.println("Failed to read from DHT3 sensor!");
    110.   else {
    111.     Serial.print("Humidity3: ");
    112.     Serial.print(h3);
    113.     Serial.print(" %\t ");
    114.     Serial.print("Temperature3: ");
    115.     Serial.print(t3);
    116.     Serial.println(" *C ");
    117.   }
    118.   //--------- dht3
    119.   float h4 = dht4.readHumidity();
    120.   float t4 = dht4.readTemperature();
    121.   if (isnan(h4) || isnan(t4)) Serial.println("Failed to read from DHT4 sensor!");
    122.   else {
    123.     Serial.print("Humidity4: ");
    124.     Serial.print(h4);
    125.     Serial.print(" %\t ");
    126.     Serial.print("Temperature4: ");
    127.     Serial.print(t4);
    128.     Serial.println(" *C ");
    129.   }
    130.   Serial.println();
    131.  
    132.   // логистика работы вентиляторов
    133.   //-------- h2
    134.   if(h2>h1) // если влажность в гараже больше, чем на улице, включается вентилятор fan1
    135.   {
    136.   digitalWrite(fan1, HIGH);
    137.   fan_1.on();//вкл вирт.светодиод
    138.   }
    139.   else if (h2<h1)// если влажность в гараже меньше, чем на улице, выключается вентилятор fan1
    140.   {
    141.     digitalWrite(fan1, LOW);
    142.     fan_1.off(); //выкл вирт.светодиод
    143.   }
    144.   if (h2 > maxHum)
    145.   {
    146.     digitalWrite(fan1, HIGH);
    147.     fan_1.on();             //вкл вирт.светодиод
    148.   }
    149.   else if (h2 < (maxHum - 5) ) // Числа нижнего порога можете поменять по желанию. { digitalWrite(fan, LOW);
    150.   {
    151.     digitalWrite(fan1, LOW);
    152.     fan_1.off(); //выкл вирт.светодиод
    153.   }
    154.   //-------- h3
    155.   if (h3 > maxHum)
    156.   {
    157.     digitalWrite(fan2, HIGH);
    158.     fan_2.on();             //вкл вирт.светодиод
    159.   }
    160.   else if (h2 < (maxHum - 5) ) // Числа нижнего порога можете поменять по желанию. { digitalWrite(fan, LOW);
    161.   {
    162.     digitalWrite(fan2, LOW);
    163.     fan_2.off(); //выкл вирт.светодиод
    164.   }
    165.   //--------- h4
    166.   if (h4 > maxHum)
    167.   {
    168.     digitalWrite(fan3, HIGH);
    169.     fan_3.on(); //вкл вирт.светодиод
    170.   }
    171.   else if (h3 < (maxHum - 5) ) // Числа нижнего порога можете поменять по желанию. { digitalWrite(fan, LOW);
    172.   {
    173.     digitalWrite(fan3, LOW);
    174.     fan_3.off(); //выкл вирт.светодиод
    175.   }
    176.  
    177.   //------------ на Blynk
    178.   if (stat == 1) {
    179.     Blynk.virtualWrite(V0, h1);
    180.     Blynk.virtualWrite(V1, t1);
    181.     Blynk.virtualWrite(V2, h2);
    182.     Blynk.virtualWrite(V3, t2);
    183.     Blynk.virtualWrite(V4, h3);
    184.     Blynk.virtualWrite(V5, t3);
    185.     Blynk.virtualWrite(V6, h4);
    186.     Blynk.virtualWrite(V7, t4);
    187.   }
    188. }
    189. //---------------------------------
    190. void reconnectBlynk() {                    // функция проверяет соединение с сервером Блинк
    191.   if (!Blynk.connected()) {                // если соединения нет то
    192.     if (Blynk.connect())                   // конектимся
    193.       BLYNK_LOG("Reconnected");            // выводим в лог
    194.     else
    195.       BLYNK_LOG("Not reconnected");        // выводим в лог
    196.   }
    197. }
    Кнопки управления вентиляцией на Blynke у меня нет, есть кнопка опроса датчиков или включения в режиме SWITCH.
    Добавил я Ваш скетч Demo_5.txt ,виртуальная кнопка V11 работает как кнопка, а не как переключатель, даже в режиме SWITCH. Кроме того когда выключена виртуальная кнопка V11 показания датчика не передается, т.е. выключено. Может поможете. я добавил, если влажность в гараже меньше, чем на улице. то включается вентиоятор и наоборот. Вот скетч
     
  18. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
     
  19. zip1961

    zip1961 Новичок

    Сообщения:
    28
    Симпатии:
    0
    если влажность в гараже больше, чем на улице. то включается вентиоятор и наоборот.
     
  20. svs2007m

    svs2007m Читатель

    Сообщения:
    76
    Симпатии:
    9
    Вот немного поправил
    demo_2.ino
     

Поделиться этой страницей