1 2 3 4 5 6 7 8 9 10 9.5/10 9,74оценок: 35

Автоматизация инженерных систем в доме или как я обучал Дом уму-разуму

Тема в разделе "Умный дом", создана пользователем Smith2007, 09.01.15.

  1. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Самая хорошая система автоматизации в доме - это та о которой не вспоминаешь. Она исправно делает свою работу избавляя от разных мелочей.
    Подходит к завершению обустройство фасадного забора. Задумал сделать небольшое освещение вдоль забора. Благо кабельные трассы и саму проводку подготовил. Прикрутил светильники на столбы, обвязал их. И теперь задумался как их лучше включать?
    В качестве источников света приобрел светодиодные лампы в цоколе Е27 5Вт. Решил не городить с датчиками освещения, движения и пр. Использую свободный дискретный выход контроллера (через контактор с автоматом). Управлять думаю просто по времени с учетом восхода-заката.
    IMG_20150609_212108.jpg
    Под козырьком ворот соединения пропаял и обжал термоусадкой. Надеюсь 1,5мм2 не скоро сгниют и контакт не пропадет.
    IMG_20150605_081339.jpg IMG_20150607_144450.jpg
     
  2. Sura2
    Регистрация:
    29.11.12
    Сообщения:
    119
    Благодарности:
    165

    Sura2

    Живу здесь

    Sura2

    Живу здесь

    Регистрация:
    29.11.12
    Сообщения:
    119
    Благодарности:
    165
    Адрес:
    Санкт-Петербург
    Управление светом на улице, на мой взгляд, эффективнее организовать по сигналам датчика освещенности. Стоит копейки, нужен всего один. Каждый день солнце всходит/садится в разное время+тучи, не угадаете.
     
  3. usergey
    Регистрация:
    20.09.11
    Сообщения:
    1.585
    Благодарности:
    1.000

    usergey

    Живу здесь

    usergey

    Живу здесь

    Регистрация:
    20.09.11
    Сообщения:
    1.585
    Благодарности:
    1.000
    Адрес:
    Улан-Удэ
    Если есть контроллер, который может управлять освещением, то можно включать по времени. В противном случае можно и по датчику освещенности.

    Мне оказалось гораздо проще включать уличное освещение по времени заката/восхода солнца.
    В PHP есть функции, которые позволяют точно определить время восхода и заката в данной географической координате (широта+долгота). Координаты взял для своего дома из гугла. Включаю через 20 минут после заката, выключаю за 20 минут до восхода.

    Бонус управления освещения по времени с учетом координаты - разное освещение у меня включается и отключается по-разному. Над гаражом прожектор горит всю ночь, освещение двора включается после заката и выключается в 11 с чем-то, либо по команде вручную. Остальное освещение управляется по программе тоже по своему.
    Все руки не доходят датчики движения еще поставить, чтобы свет во дворе включался по датчикам.
    Это точно. Вчера при мне включился прожектор, и я вспомнил как раньше руками все это дело включал и отключал. И осознал что последние полгода вообще не задумывался об освещении, так как оно работает так как надо само по себе.

    А на днях зашел в старую квартиру, в прихожей почему-то темно. Пару секунд соображал почему так и только потом дошло что в квартире нет датчиков движения. :)
     
  4. usergey
    Регистрация:
    20.09.11
    Сообщения:
    1.585
    Благодарности:
    1.000

    usergey

    Живу здесь

    usergey

    Живу здесь

    Регистрация:
    20.09.11
    Сообщения:
    1.585
    Благодарности:
    1.000
    Адрес:
    Улан-Удэ
    @Smith2007, А что за pencil torch на фото? Как пользоваться?
     
  5. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Как ни странно но у меня за два года вышли из строя 3 датчика движения и освещения. В одном месте уже второй раз меняю. Возможно брак но мне не легче. Приходится вновь и вновь возвращаться к теме уличного освещения. А вот контроллер ... Как раз забыл про него. Вот и подумал, что один раз скоммутировать выход и забыть. В прочем я сделал проводку в том числе и для датчика движения с освещением и переключить на него - перекоммутировать на кроссе пару перемычек.
    @usergey, это газовая горелка. Прогревал термоусадку зажигалкой и обжегся. Решил вопрос принципиально - газовая горелка. Очень удобно. Даже насадка есть для пайки если электричество далеко.
     
  6. KorbenDalas
    Регистрация:
    04.12.14
    Сообщения:
    3.525
    Благодарности:
    2.842

    KorbenDalas

    Живу здесь

    KorbenDalas

    Живу здесь

    Регистрация:
    04.12.14
    Сообщения:
    3.525
    Благодарности:
    2.842
    Адрес:
    Клин
    Поделитесь кодом PHP для вычисления времени восхода по GPS координатам плз
     
  7. yushkin
    Регистрация:
    18.05.09
    Сообщения:
    3.758
    Благодарности:
    1.785

    yushkin

    Живу здесь

    yushkin

    Живу здесь

    Регистрация:
    18.05.09
    Сообщения:
    3.758
    Благодарности:
    1.785
    Адрес:
    Москва
    Есть специализированные контроллеры для включения освещения в соответствии с закатом-восходом солнца (т.е. ему надо ввести широту-долготу и смещение времени включения).
    Но вообще я-бы посмотрел в сторону универсальных контроллеров.
     
  8. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    @yushkin, не сомневаюсь. Сейчас можно купить практически все. Но в моём случае контроллер уже имеется и 10 свободных дискретных выходов не использовано. Ну а алгоритм может быть самым простейшим. Массив из 12 строк на два поля. Время ВКЛ и время выкл. Строка - месяц. Не думаю, что нужна точность до секунды и сотни строк кода, если все может быть решено банально просто. И вычислительный ресурс контроллера сохранен.
     
  9. yushkin
    Регистрация:
    18.05.09
    Сообщения:
    3.758
    Благодарности:
    1.785

    yushkin

    Живу здесь

    yushkin

    Живу здесь

    Регистрация:
    18.05.09
    Сообщения:
    3.758
    Благодарности:
    1.785
    Адрес:
    Москва
    Да, как-то основную мысль в обсуждении потерял.
    Codesys сложен в изучении? Я вот WirenBoard приобрел - там linux.
     
  10. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    @yushkin, мне codesys показался очень простым. Сложнее оказалось перестроить мысли на особенности программирования ПЛК. Привычный стиль написания алгоритмов с циклами и пр. языковыми конструкциями надо менять.
    Если в обычной программе мы пишем обработку массива путём создания простого цикла, то тут надо учесть, что сама программа будет вызываться циклически. И от входа до выхода - это одна итерация. И стремиться к сокращению времени которое требуется на выполнение одной программы.
    Т. е. тут нет в явном виде многозадачности. Но зато нет и издержек на организацию многозадачности.

    Зы. В Codesys 3. x не знаю. Там в качестве ОС линукс используется. Возможно там иначе.
     
  11. usergey
    Регистрация:
    20.09.11
    Сообщения:
    1.585
    Благодарности:
    1.000

    usergey

    Живу здесь

    usergey

    Живу здесь

    Регистрация:
    20.09.11
    Сообщения:
    1.585
    Благодарности:
    1.000
    Адрес:
    Улан-Удэ
    PHP:
    echo date("D M d Y"). ', время восхода солнца : ' .date_sunrise(time(), SUNFUNCS_RET_STRING51.12345107.12345908);
    echo 
    "<BR>";
    echo 
    date("D M d Y"). ', время захода солнца : ' .date_sunset(time(), SUNFUNCS_RET_STRING51.12345107.12345908);
    PHP:
    $SunRiseTime date_sunrise(time(), SUNFUNCS_RET_TIMESTAMP51.12345107.12345908)-60*30;
    $SunSetTime date_sunset(time(), SUNFUNCS_RET_TIMESTAMP51.12345107.12345908)+60*20;
    $CurrentTime time();
     
  12. KorbenDalas
    Регистрация:
    04.12.14
    Сообщения:
    3.525
    Благодарности:
    2.842

    KorbenDalas

    Живу здесь

    KorbenDalas

    Живу здесь

    Регистрация:
    04.12.14
    Сообщения:
    3.525
    Благодарности:
    2.842
    Адрес:
    Клин
    51.12345, 107.12345 - координаты N и E ?
     
  13. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Я поступил банально просто. Время включения и отключения указал на середину месяца и скорректировал включение немного позже, отключение немного раньше. Занес в массив.
    Код получился простым и быстрым.

    Код:
    TYPE tLigtMode :
    STRUCT
        H_ON:    INT;
        M_ON:    INT;
        H_OFF:    INT;
        M_OFF:    INT;
    END_STRUCT
    END_TYPE
    
    PROGRAM lighting
    VAR
        NightMode  : ARRAY[1..12] OF tLigtMode :=
            (H_OFF := 9, M_OFF := 30, H_ON := 17, M_ON := 30),    (* Январь *)
            (H_OFF := 8, M_OFF := 40, H_ON := 18, M_ON := 30),    (* Февраль *)
            (H_OFF := 7, M_OFF := 30, H_ON := 19, M_ON := 30),    (* Март *)
            (H_OFF := 6, M_OFF := 10, H_ON := 20, M_ON := 30),    (* Апрель *)
            (H_OFF := 5, M_OFF := 00, H_ON := 21, M_ON := 30),    (* Май *)
            (H_OFF := 4, M_OFF := 30, H_ON := 22, M_ON := 00),    (* Июнь *)
            (H_OFF := 5, M_OFF := 00, H_ON := 22, M_ON := 00),    (* Июль *)
            (H_OFF := 5, M_OFF := 40, H_ON := 21, M_ON := 00),    (* Август *)
            (H_OFF := 6, M_OFF := 30, H_ON := 20, M_ON := 00),    (* Сентябрь *)
            (H_OFF := 7, M_OFF := 30, H_ON := 18, M_ON := 30),    (* Октябрь *)
            (H_OFF := 8, M_OFF := 30, H_ON := 17, M_ON := 30),    (* Ноябрь *)
            (H_OFF := 9, M_OFF := 30, H_ON := 17, M_ON := 30);    (* Декабрь *)
        GetTime: CurTimeEx;
        Sys_DateTime, Z: SystemTimeDate;
        Sys_Time: SysTime64;
    END_VAR
    
    
    Sys_DateTime := Z;
    GetTime (SystemTime:=Sys_Time , TimeDate:= Sys_DateTime);
    
    (*************************************************)
    IF Sys_DateTime.Hour >=  NightMode[Sys_DateTime.Month].H_OFF  AND
        Sys_DateTime.Minute  >= NightMode[Sys_DateTime.Month].M_OFF  AND
        Sys_DateTime.Hour  <= NightMode[Sys_DateTime.Month].H_ON AND
        Sys_DateTime.Minute  <= NightMode[Sys_DateTime.Month].M_ON
        THEN
            lamp0 := FALSE;
        ELSE
            lamp0 := TRUE;
    END_IF;
    
    
    lamp0 - дискретный выход ПЛК.
     
  14. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Вот, что значит по ночам алгоритмы писать :)
    Ошибку допустил.
    Нужно привести время текущее и время установок к минутам с начала суток.
    И полученные значения сравнивать.
     
  15. usergey
    Регистрация:
    20.09.11
    Сообщения:
    1.585
    Благодарности:
    1.000

    usergey

    Живу здесь

    usergey

    Живу здесь

    Регистрация:
    20.09.11
    Сообщения:
    1.585
    Благодарности:
    1.000
    Адрес:
    Улан-Удэ
    Да. Описание функций PHP можно в инете посмотреть.
    Да, вариант, если в контроллере нет функций расчета восхода и заката по координатам.

    Я тоже опытным путем пришел к тому что свет имеет смысл включать через некоторое время после заката, так как после заката еще какое-то время достаточно светло. Аналогично с рассветом.