Контроллер управления вентилятором 2. Теперь с WiFi

Отображение влажностиПочти два года прошло с изготовления контроллера управления влажностью для ванной комнаты. Все это время контроллер служил верой  правдой без глюков и зависаний, как и положено хорошему контроллеру и даже обзавелся с легкой руки моей супруги гламурным корпусом.

Но технический прогресс неумолимо бежит вперед и новые веяния опять не давали мне покоя. На это раз, концепцию умного дома я решил реализовать на WiFi модулях ESP8266. Давно экспериментирую с этими модулями и решил свой умный дом на них перевезти.

Старый контроллер управления вентилятором

Итак, что мне даст модернизация контроллера вентилятора на ESP8266?

Новые возможности

  • Просмотр всех показателей по WiFi с компьютера/планшета/телефона.
  • Обработка дополнительных параметров — время наработки вентилятора и время горения лампы в ванной комнате.
  • Управление вентилятором по WiFi с компьютера/планшета/телефона.
  • Настройка работы контроллера по WiFi с сохранением значений в энергонезависимую память.
  • Периодическая запись значений всех показателей на сервер в интернете.
  • Ну и, раз все равно есть интернет, отображение времени с синхронизацией по NTP протоколу.

Все эти функции дают возможность анализа работы контроллера и, в дальнейшем,  оптимизации параметров управляющего алгоритма . Ну и данный контроллер войдет в общую систему умного дома с мониторингом параметров среды ванной комнаты.

Схема контроллера

Схема контроллера

 

Основные отличия от предыдущей версии:

Atmega328 заменена на ESP8266, применен готовый модуль дисплея на TN1637, симистор с оптопарой заменены твердотельным реле (то же самое, но в корпусе).  Все главные отличия в программе контроллера.

Железяки

Контроллер собрал из проверенных ранее компонентов

Компоненты контроллера

Итого около $9

Сборка контроллера

Этот контроллер снова прототип, поэтому монтаж сделал снова на макетке. Когда устройства на ESP8266 пойдут в серию, буду все делать на печатных платах.

Компоненты контроллера

В корпусе делаю необходимые отверстия под индикатор, фоторезистор и кнопку

Корпус контроллера

 

Окно под индикатор заклеиваю красным светофильтром. Дешевые и хорошие светофильтры получаются из папок для бумаг, купленных в магазине канцтоваров. Прозрачное окно для фоторезистора — защитная пленочка оставшаяся от какого-то телефона (заказывал когда-то с запасом, теперь валяются)

ESP-шку и индикатор монтирую на съемных панельках из штырьковых разъемов

Процесс сборки

Контроллер вентилятора

Вот что получилось в сравнении со старым контроллером

Сравнение старого и нового контроллера

При отладке обнаружился технологический дефект — фотодиод за окошечком в корпусе получал слишком мало света и без усилителя  не срабатывал при зажигании лампы в ванной комнате, пришлось его вывести наружу в сторону лампы

Переделка фотодиода

И вот контроллер смонтирован. Старый функционал восстановлен. На 4-х разрядном индикаторе отображается влажность с таким хитрым значком процентов

Отображение влажности

 

Температура

Отображение температуры

И, бонусом, текущее время. А в момент включения вентилятора, вместо времени — таймер обратного отсчета.

Отображение времени

Подробно работу нового контроллера с WiFi, алгоритмы работы, особенности и настройки я описал в отдельной статье.

В комментариях и письмах все постоянно передают привет Тимофея.
Спасибо! Вам всем тоже большой привет от него!

Кот Тимофей

 

Вы можете оставить отзыв или трекбек со своего сайта.

23 комментария на «Контроллер управления вентилятором 2. Теперь с WiFi»

  1. Дмитрий:

    Идея со значком процентов понравилась!

  2. Сергей:

    Добрый день, интересные статьи, читаю с удовольствием, спасибо, подскажите а управлять скоростью вращения вентилятора не планировали?

    • Alexey:

      Не благодарное это занятие управлять скоростью двигателя переменного тока без частотного преобразователя.
      Идеально было бы поставить двигатель постоянного тока на 12-24В и им уже управлять

  3. Сергей:

    Да я тоже перечитал несколько статей о попытках управления скоростью, только вот странно, что сами производители этих вентиляторов продают к ним тиристорные регуляторы скорости и они без проблем работают, например VENTS (http://ovk-group.com.ua/p/8192865-tiristornyy-regulyator-skorosti-vents-vents-rs-1-400/) даже думал купить такой и попробовать управлять им ардуиной.

  4. Сергей:

    Подскажите пожалуйста от чего может выскакивать ошибка
    WiFi_SmartHome_cooler1.ino:20:21: fatal error: arduino.h: No such file or directory
    compilation terminated.
    Уж очень хочется собрать данное устройство себе в ванную тем более mysql сервер у меня отвечает за работу входного замка и вот ему еще задача. помогите пожалуйста

    • Alexey:

      Как то среда Arduino IDE стоит криво. Не находит *.h файлы. Или тип контроллера не ESP указан.
      Попробовать ее переставить или ESP8266 Core может быть

      • Сергей:

        Спасибо за ответ . Буду эксперементировать . Но очень было-бы не плохо скачать скетч в паке со всеми библиотеками ну и с пхп для импорта в базу ,не сочтите за наглость очень буду признателен да и не я один мне так кажется.

  5. Сергей:

    Алексей несколько безсонных ночей и возвания к тулху вознаградили меня удачной прошивкой! не могли бы вы скинуть php для работы с базой на s.v.chekalin@gmail.com если не трудно ну или хотябы ссылочку на вашей страничке… бью в шаманский бубен и продолжаю надеятся на удачу.

  6. Сергей:

    я по колдовал и написал пхп код все таки и с вашего разрешения … может правда как и мне надо кому
    <?php

    $dbhost = 'localhost';

    $dbuser = 'root';

    $dbpass = '12345';

    $dbname = 'hood';

    $client_ip = $_SERVER['REMOTE_ADDR'];

    $temp = $_GET["t"];

    $hum = $_GET["h"];

    $avaible = $_GET["a"];

    $up = $_GET["uptime"];

    $time1 = $_GET["tm1"];

    $time2 = $_GET["tm2"];

    $uid = $_GET["id"];

    $connect = mysql_connect($dbhost, $dbuser, $dbpass);

    if(! $connect )
    {
    die('Could not connect: ' . mysql_error());
    }

    mysql_select_db ($dbname, $connect);

    $sql = "INSERT INTO sensor_data SET date_time = NOW(),sensor_uptime = '$up', sensor_tm2 = '$time2',sensor_tm1 = '$time1', sensor_avaible = '$avaible', sensor_temp = '$temp', sensor_id = '$uid',sensor_humidity = '$hum', client_ip = '$client_ip'";

    if(!mysql_query($sql))
    {echo 'Data upload error!‘;}
    else
    {echo ‘OK‘;}

    mysql_close($connect);
    ?>

  7. Андрей:

    Алексей, можно глупый вопрос?
    Как светодиодный драйвер относится к работе без нагрузки? Например питание 220В подано, а нагрузка не подключена. Просто году так в 2000 общался с одним специалистом и услышал, что для импульсных блоков питания такой режим это не очень хорошо.. может я понял что то неправильно, но в голове засело)))
    Собираюсь так же как вы использовать светодиодный драйвер в качестве блока питания. Выходное напряжение драйвера 12В ток 0,9А, но нагрузка с очень низким потреблением — диммер с радиомодулем ( http://mysku.ru/blog/china-stores/21880.html ) который будет управлять твердотельным реле ( https://ru.aliexpress.com/wholesale?spm=2114.03010208.1.5.f28rg9&SearchText=fotek+ssr-25da&initiative_id=RS_20170302020600 ) (собираю из того что есть в наличии). Стоит волноваться или все нормально?

    • Alexey:

      К то муже токовый драйвер стабилизирует ток на выходе и регулирует его напряжением. В вашем случае напряжение 12В может оказаться максимальным. А если нагрузка будет маленькой, драйвер прост отключит выход

      Если же у вас «драйвер для светодиодных лент» = То то обычный БП со стабильным напряжением 12В и максимальным током 0.9А. Им можно и пользоваться как обычным БП

      • Андрей:

        У меня именно драйвер, тот который в защищенном исполнении для COB матрицы 10Вт.
        Попробовал собрать и включить все это оборудование. Напряжение на выходе драйвера 13В. Драйвер не отключается. Правда тестировал не долго, а планируется круглосуточное использование как минимум месяца 3-4.
        То есть худшее что может быть в таком режиме работы это отключение выхода драйвера?
        А вообще что скажете по поводу работы импульсного блока питания без нагрузки?

  8. Евгений:

    Здравствуйте. Очень заинтересовал ваш проект, будучи глубоко начинающим, пытаюсь его повторить)При компиляции скетча:

    WiFi_SmartHome_cooler1:302: error: within this context within this context.

    Ругается на содержимое функции DisplaySpecialChar, закоментировал содержание функции код откомпилировался, залил, теперь не происходит соединения с NTP сервером и время не отображается.

    Connecting to: TP-LINK_/……
    663
    WiFi connect: 192.168.0.100/255.255.255.0/192.168.0.1
    Open http://192.168.1.4 in your browser
    Or by name: http://SmartHome_Cooler1.local
    HTTP server started …
    Starting UDP
    Local port: 2390
    Send NTP server 1.ru.pool.ntp.org 1.0.0.0
    Sending NTP packet…
    NTP server error
    Get NTP time. Error = 1

    Что делаю не правильно? подскажите если возможно. Заранее благодарен.PS. продублировал вопрос.

  9. Магомед:

    Вопрос к автору:
    Как побороть вот это:

    WiFi_SmartHome_cooler1:44: error: ‘DHT11’ was not declared in this scope

    DHT dht(PIN_DHT, DHT11, 15);

    ^

    C:\arduino-1.8.1\WiFi_SmartHome_cooler1 (1)\WiFi_SmartHome_cooler1\WiFi_SmartHome_cooler1.ino: In function ‘void setup()’:

    WiFi_SmartHome_cooler1:107: error: ‘class DHT’ has no member named ‘begin’

    dht.begin();

    ^

    C:\arduino-1.8.1\WiFi_SmartHome_cooler1 (1)\WiFi_SmartHome_cooler1\WiFi_SmartHome_cooler1.ino: In function ‘void loop()’:

    WiFi_SmartHome_cooler1:217: error: ‘class DHT’ has no member named ‘readHumidity’

    int h = (int)dht.readHumidity();

    ^

    WiFi_SmartHome_cooler1:218: error: ‘class DHT’ has no member named ‘readTemperature’

    int t = (int)dht.readTemperature();

    ^

    exit status 1
    ‘DHT11’ was not declared in this scope

  10. Ростислав:

    Периодически (раз в день, раз в два дня) датчик влажности начинает показывать нули.Помогает только перезагрузка.В чем может быть проблема?

    • Alexey:

      Добрый день
      У меня так было как-то. Вылечилось заменой датчика. Хотя я подозреваю, что из-за постоянной высокой влажности теряется контакт в разъеме или что-то еще

  11. Ростислав:

    Нашел такое описание:
    «На ESP8266 есть не только прерывания, которые могут мешать измерению времени, кроме того, есть активный планировщик многозадачности, который может переключаться в любое время на другую задачу, и тогда простое измерение времени не удается. Пока есть только функция считывания с датчика DHT, проблем нет. Но как только WiFi, и / или Bluetooth, и / или другие задачи активны, считывание с датчика DHT в большинстве случаев происходит сбой, потому что чтение прерывается переключателями задач.»
    Возможно проблема в этом?

Ваш отзыв

Вы должны войти, чтобы оставлять комментарии.