ФОРУМ КУПИТЬ

Последние статьи

ВСЕ СТАТЬИ

Как я делал уличный датчик освещенности

11/11/2013 00:21:09

В статье "Подключение к MegaD-328 датчика освещенности" я исследовал возможность использования в общей системе Умного Дома недорогого датчика освещенности от DFRobot. Результаты показали, что этот датчик, будучи подключенным к устройству MegaD-328, вполне пригоден для использования в быту. Преимущество данного решения заключается в том, что не требуется никакой специальной доработки датчика или контроллера. Оно работает, как говорится, из коробки. Достаточно лишь подключить датчик к одному из двух дополнительных АЦП портов, которые доступны в стандартном интерфейсном модуле MegaD-328 и вперед с песнями. Однако оставалась одна загвоздка. В голом, незащищенном виде плату датчика на улицу не повесишь - зальет дождем, засыплет снегом, склюют снегири. Датчику требовался надежный корпус. Собственно, эта статья повествует о том, как я делал из сенсора уличный датчик освещенности и подключал его в рабочую систему.

Задача вроде бы предельно простая - обеспечить устройству герметичность. Но абы что на фасады своего дома, выполненного в классическом стиле, я повесить не мог. Если уж какому-то устройство и необходимо нарушить стройную геометрию кирпичной кладки, оно должно подобающим образом выглядеть. С этими мыслями я полез на чердак, где у меня скопилось большое количество всякого хлама. Вот некоторые члены семьи называют меня Плюшкиным, но они не понимают, что рано или поздно любая вещь может пригодиться. Так я извлек из груды всякого барахла электромонтажную коробку ни то российского, ни то турецкого производства с классом пылевлагозащищенности IP55.

Корпус для уличного датчика освещенности

Две пятерки в классификации IP - вполне достаточно для защиты от осадков и прочих пернатых. Коробка довольно просторна, чтобы разместить датчик и упрятать все соединения, но при этом не слишком велика. К сожалению, в таком виде я использовать ее не мог. Деревянные окна, окрашенные в светлый орех с золотистыми шпросами, водостоки под медь, пилястры и тут какая-то белая хрень... Следовало коробчонку окрасить. В магазине стройматериалов я долго выбирал между коричневым и медным цветом, но все-таки выбрал баллончик с надписью Cuprum (ибо звучит благородно) от какого-то отечественного производителя с поэтическим названием типа леспромбытхимплюс стоимостью 80 руб. Но сначала следовало слегка доработать корпус напильником.

Понятное дело, требовалось, чтобы в корпус проникал свет, поэтому герметичную коробку я просверлил. А что, знатная вышла дырка... И даже почти по центру. Сделать отверстие в размер сенсора не представлялось возможным, так как размещению платы вплотную к крышке мешал разъем. Кроме того, я хотел сделать датчик съемным, поэтому отверстие вырезал диаметром несколько больше, чем диаметр светочувствительного элемента. Вот теперь можно красить.

Краска легла хорошо, ровно. Красил за два раза. Известное дело, такое покрытие на пластике, а тем более на резиновых заглушках, нельзя считать надежным. Но вот и посмотрим, сколько оно продержится на улице.

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

После сборки и монтажа на стену выглядеть стало так. Какие все-таки страшные кирпичи вышли на фотографии, а издалека не скажешь. Хотел было навести глянец в фотошопе, но потом решил, что на таком фактурном фоне, изделие смотрится даже наряднее. Ах да. Совсем забыл! Стеклышко. Это же самый важный и интересный элемент всей этой нехитрой конструкции. Из коробок на чердаке я вытащил много всяких прозрачных предметов, которые были претендентами на роль своеобразного объектива. Но либо не подходили по размеру, либо оказывали заметное влияние на работу сенсора. Но так как, повторюсь, я не привык выбрасывать полезные вещи, нашелся у меня настоящий объектив от неисправной миниатюрной видеокамеры. Из него я взял переднюю линзу. Линза, во-первых, по всей видимости, имеет слой просветления, а во-вторых, эффективно собирает весь падающий на не свет и передает на сенсор. Оказалось, что датчик показывал практически одинаковые значения как в корпусе, так и без него. Ни с каким другим стеклом я такого добиться не смог. Кроме того, линза просто идеально подходила по размеру. Приклеил я ее на самый обыкновенный суперклей.
Провода. Готовый прибор я смонтировал на трубе вентканалов. До MegaD-328, установленного в подвале, 15 метров, учитывая всяческие изгибы. Плюс метров 10 запас по проводу. К сожалению в ближайшем ларьке с электротоварами не оказалось какого-нибудь неприметного серого провода типа ПВС 3х0,75, а ВВГ 3х1,5 я посчитал перебором, поэтому прикупил там же (вот ведь какое дело, оказывается FTP уже и в электротоварах продается) моток какого-то ноунейм кабеля UTP. Кабель оказался на редкость приличным (AWG 24, нормальная изоляция). На разъеме MegaD-328 - 3,3В. Сечение провода при столь низком напряжении имеет достаточно большую роль, поэтому для его увеличения я соединил пары, сделав из 8 проводов 4. Напомню, для работы датчика требуется три провода: земля, питание, выход. В такой конфигурации падение напряжение было минимальным и подключение датчика в общую систему посредством Ethernet-контроллера MegaD-328 не вызвало никаких сложностей.

Программный код опроса датчика и записи данных в БД я сразу же совместил с управлением уличным освещением. Упрощенный код с использованием ab-cms получился достаточно лаконичным.

<?
require_once("ab-cms/class/main_class.php");
$ab = new cms_lib();
include("key.php");

// Порог датчика (для DFRobot Ambient Light Sensor DFR0026 V2)
$act_level_on = 60;
$act_level_off = 45;

$light_id = $ab->get_id("light1");
$last_val = $ab->mod_read($light_id, "#dev_value#", "tmpID DESC", 1);
$cur_val = file_get_contents('http://192.168.0.120/sec/?pt=A6&cmd=get');
$ext_light = $ab->mod_read($ab->get_id("keys"), "#key_pio#", "", 1, "key_label='ext_light'");
// Записываем значение в БД
$ab->mod_write($light_id, "SYSDATE(), $cur_val");

if ( $ext_light == 0 && $last_val < $act_level_on && $cur_val < $act_level_on )
key_sw("ext_light", 1);
elseif ( $ext_light == 1 && $last_val > $act_level_off && $cur_val > $act_level_off )
key_sw("ext_light", 0);
?>

Полный работающий код можно найти в архиве демо-интерфейса. Каковы же результаты? Пока говорить рано. Нужно, чтобы изделие пережило российскую зиму. Но кое-какие наблюдения можно сделать уже сейчас. Во-первых, подобный сенсор не в состоянии различить пасмурную и ясную погоду. Сразу после восхода солнца значения, получаемые от датчика становятся близки к максимальным и снижаются только с наступлением сумерек. Во-вторых, датчик недостаточно чувствителен в условиях низкой освещенности. То есть в поздних сумерках, когда человек еще довольно хорошо различает предметы, и глубокой ночью, когда ни зги не видать, мы получаем примерно одинаковые значения, то есть нулевые. Нельзя сказать, что в разрезе поставленной задачи (управление уличным освещением) эта особенность имеет большое значение. Свет включается и выключается ровно тогда, когда это необходимо, но все же не следует ждать от подобного решения научной точности. Для своей же задачи это вполне адекватное, простое и недорогое решение.

ЗЫ: Все это хозяйство я собирал на датчике DFRobot первой версии (изображен на фотографиях). Сейчас доступна вторая версия V2. Поскольку крепление позволяет менять датчик, я установил плату второй версии (ее геометрические размеры несколько меньше). И хотя производитель заявляет, что во второй версии используется более чувствительный сенсор, какой-либо значительной разницы я не заметил.

Существует только два главных различия.
1. Распиновка разъема отличается от первой версии (см. документацию производителя)
2. Более высокие значения (при использовании с контроллером MegaD-328) соответствуют более высокой освещенности (в первой версии наоборот).

 

Опыт эксплуатации

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

И не смотря на это, датчик работал (практически под открытым небом), лишь изредка выдавая чуть завышенные значения! Кстати, вопреки опасениям, краска на пластиковом корпусе не облезла, и коробочка выглядела как новая. Я, конечно, заменил датчик, но новое стекло приклеил на термостойкий автомобильный герметик. Думаю, такое крепление будет надежнее суперклея.

UPDATE. В 2017 году был заменен на датчик MAX44009 с интерфейсом I2C и подключением к MegaD-2561. Корпус, к слову в отличном состоянии, только потускнел слегка.
 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:

(необязательно, не отображается на сайте)


Сортировка комментариев: Последние сверху | Первые сверху

2013-12-27 18:57:15 | Stanislav
1. Мьсе в курсе, что готовое фотореле на нагрузку 2.2кВт в магазине стоит $4 ? :)
2. Термоклей, как показала практика, в неотапливаемом помещении начинает отваливаться через 1-2г. На улице - думаю, чуть побыстрее.


2013-12-27 19:30:11 | Andrey_B
Stanislav, "мьсе", конечно, в курсе насчет фотореле, только к чему вы это?
Например, в случае, если нас нет дома, я включаю освещение позже на час (или вообще не включаю, если мы в отъезде). Как это реализовать с помощью фотореле? А если фотореле использовать как датчик и подключать его на вход какого-нибудь устройства, то а) мы не имеем возможности отслеживать уровень сигнала и программно регулировать порог срабатывания б) устройство, к которому будет подключаться фотореле тоже не бесплатное.
Сэр, мы тут занимаемся "Умным" домом, вы разве не заметили?


2014-01-04 09:13:04 | Stanislav
Я заметил. Только Вы свои трудозатраты учитываете ? ИМХО, регулировка уровня срабатывания - баловство. Но если она Вам таки нужна - Вы же получали уровень освещенности от камеры, чем это было плохо ?
Преимущество реле - автономность. Не включать освещение когда никого нет - просто питание от шины, которая обесточена в отсутствие людей.

В упор не понимаю Вашего желания снизить надежность :) Представьте себе, что Вы попали в ДТП и лежите в реанимации, а в управляющем компе подох кулер процессора. Так Вашей жене наружное освещение не включить без вызова компьютерщика ! А Вы же ее потом убьете, если она к Вашему серверу подпустит постороннего, верно ? :) Ну и все - жизнь остановилась :)


2014-01-04 14:07:21 | Andrey_B
Stanislav, если вы читали сайт, то наверное обратили внимание на обстоятельство, которое я неоднократно подчеркивал: все, что я делаю - это, прежде всего, хобби. И в этом плане я бы хотел сам распоряжаться своим временем. Мне интересно что-то делать своими руками, конструировать, проектировать, программировать, делать то, что нельзя купить готовым. Или прикажете мне вместо этого смотреть сериалы по телевизору?
Регулировка уровня срабатывания - не баловство. Точнее, я бы сказал иначе. Если рассуждать как вы, то весь Умный Дом - баловство. Это ваше право так считать, и не собираюсь с вами спорить. Но, вероятно, вы просто ошиблись сайтом.
Порог срабатывания - это очень важно. Во-первых, лампы соседей, которые подключены к датчикам за $4 включаются значительно раньше моей. Я же настроил порог таким образом, чтобы он соответствовал моим требованиям. Во-вторых, отключение лампы происходит раньше включения. Субъективно на рассвете свет хочется выключить немного раньше, чем включить на закате, хотя с точки зрения датчика порог один. Это мелочь, но она позволяет мне экономить до 73кВт*ч в год.
Еще один аспект. При резких колебаниях освещенности (по природным причинам) датчик за $4 может включать или выключать лампу не вовремя. В то время как мой алгоритм устроен таким образом, что это явление практически исключено.
Получать информацию об освещенности с камеры наблюдения плохо. И об этом, кстати, написано в той статье. Во-первых, современные камеры очень чувствительны, а во-вторых, камера направлена на ту область, которая освещается уличной лампой. Я могу включить ее, используя анализ изображения, но я не могу выключить ее таким образом. Датчик же расположен таким образом, что свет от уличного освещения не попадает на него ни при каких обстоятельствах.
А вы не думали, что уличное освещение может выполнять несколько функций? Одна из них - безопасность. Так вот в отсутствие людей я могу включать не все освещение, а только часть, экономя электроэнергию. О каком питании по шине вы говорите? Информацию с датчика освещенности могут получать и другие системы. По датчику освещенности могут автоматически закрываться шторы, ролл-ставни, включаться автополив и так далее. Весь смысл Умного Дома заключается в возможности обмена информацией между системами. Это исключительно важно.
Stanislav, вы не находите нелепым сравнивать надежность уличного освещения с надежностью оборудования реанимации? Что произойдет, если не включится лампа? Да ничего. Ровным счетом НИЧЕГО! Вероятность перегорания лампы уличного освещения чрезвычайно высока, сравнима или выше вероятности выхода из строя датчика освещенности. И никто по этому поводу не устраивает истерики. Кстати, а что может случиться с датчиком? Там нечему ломаться. Даже если термоклей отвалится, он продолжит работу, только значения будут несколько иными. И, с вашего позволения, можно я не буду представлять себе ДТП. У меня другие аналогии и я к счастью умею трезво и рационально оценить требования к надежности той или иной системы. Даже если отключить все и вся в доме, никакой трагедии не будет. А вы что думали, жизнь на этом закончится?


2014-01-14 01:44:36 | Мария
Не, я реально ЗА "Умный дом". Людей, которые противопоставляют "простоту" со "сложностью" не понимаю. Это две разные вещи. В "Умном Доме" есть центрелизация и настраиваемость от сервера. УД без сервера, - это все равно, что человек без мыслительного аппарата. Я сам веду пару блогов по "Умному Дому", и людей, пытающихся что-то доказать, не сделав ничего реально руками, т.е. не получив того "кайфа", который имеешь, когда чувствуешь, как система работает, - прошу проходить мимо. Умный дом, - это не реле, это не рычаги - Умный дом - это вся нервная система.

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


2014-01-14 01:49:21 | Александр
Правильно, Маш. А если б мы были в каменном веке, то были бы те, кто говорил, я и камнем могу костер развести, зачем мне ваши спички.


2014-01-15 04:53:36 | Stanislav
Ню-ню... :)
Дамы и господа, просто я пользуюсь еще одним критерием "качества": та автоматика, которую сделал я, должна быть работоспособна БЕЗ меня, как элемента этой автоматики :)
Т.е., управлять ею способны люди. не прошедшие специальных курсов обучения, такие как женщины и дети :), а техобслуживание способен произвести случайно взятый (средне)соображающий специалист.
Т.е., если Андрей, придя ко мне в дом, сможет за полдня без подсказок разобраться как оно устроено и починить при необходимости - тогда оно чего-нибудь стОит как продукт творчества. Если не сможет, если без меня моя система мертва - тогда это просто личная игрушка, просто очень большая и дорогая, но все равно ИГРУШКА.
ИМХО, разумеется :)


2014-01-15 17:34:05 | Andrey_B
Stanislav, современный автомобиль, включающий в себя последнее поколение автоматических коробок передач и турбокомпрессорный двигатель с непосредственным впрыском - достаточно сложный механизм. Ни то, что владелец, но даже квалифицированный специалист, всю жизнь ремонтирующий, скажем, карбюраторные автомобили без специального программного обеспечения, без специальной документации, без специального инструмента, навыков, без специальных инструкций по сборке-разборке никакой серьезной неисправности не устранит. Однако никто по этому поводу не впадает в панику. Простота конструкции, позволяющая людям "от Сахи" или любому встречному что-то отремонтировать, и "качество" автоматизации как таковой - вещи все же принципиально разные. И до сих пор достаточно людей, считающих, что карбюратор, кардан и прочая "классика" лучше. А что? В поле перевязал шнурком и дальше поехал, а когда без VAG-COM'а и ноутбука ничего не сделать (например, КПП "ушла" в аварийный режим) - куда это годится? Эта точка зрения мне совершенно понятна. Но я не намерен убеждать этих людей в чем-либо.
Во-первых, вся автоматизация должна быть задокументирована. У меня документация хранится в 3 местах: на сервере в общедоступной папке, в шкафу и непосредственно рядом с приборами. Причем это касается не только автоматизации, но и отопления, водоснабжения. Есть инструкции по поводу того, что делать в случае, скажем, возникновения протечки.
Во-вторых, централизованная автоматизация предполагает, что вся коммутация происходит в одном месте или в нескольких центрах. То есть провода от выключателей, освещения, розеток, приборов сходятся в одно место. Если все сделано "по уму", то любой дядя-Ваня электрик сможет в крайнем случае, выкинув автоматику, скоммутировать все традиционным способом. Гораздо сложнее искать замурованные в стены монтажные коробки при традиционном подходе.
В-третьих, любая "серверная" автоматизация предполагает участие грамотного специалиста. С одной стороны - это явный минус. С другой стороны этот минус можно минимизировать. Основное - все та же документация, включая пароли. Использование при автоматизации Open Source-продуктов, по которым есть масса всяческой информации в сети. Применение максимально стандартных подходов, настроек и т.д. Собственно все то, о чем повествуется на страницах этого сайта. Простой пример. Поставил человек в доме какую-нибудь дорогую коммерческую систему автоматизации. Через некоторое время начались сбои. Коммерческая система закрыта, фирма, которая устанавливала систему, не существует, производитель либо работает с новыми линейками, либо разорился. Я же применяю открытые протоколы, стандарты, подходы. И мой сайт - это тоже своего рода документация. И знаете, что забавнее всего? А то, что фактически разбираются в моей системе сотни и тысячи людей. Уже сейчас. А в вашей?
Этот сайт создан не для того, чтобы кого-то в чем-то убеждать. Вы можете делать так, как считаете нужным. Здесь я выражаю свою точку зрения, по мере возможности отвечаю на вопросы, пытаюсь обосновать те или иные шаги, даю возможность описать свои разработки и свой опыт другим людям. А по поводу целесообразности все этого, надежности, рисков и прочих критериев - пусть каждый решает сам.


2014-11-27 09:09:57 | Стнислав
А Вы не встречали уже готовые может датчики в сборе? И еще - хватит одного датчика для управления всеми устройствами освещения в доме, работающими независимо друг от друга


2014-11-27 10:46:23 | Andrey_B
Станислав, именно такого готового датчика не встречал. Но, думаю, можно использовать другие готовые датчики освещенности из магазина электротоваров, предварительно "выпилив" оттуда все лишнее.
Если использовать рекомендованный мной подход с использованием сервера как основного интеллектуального элемента умного дома, то сигнал датчика освещенности - это лишь один из параметров, оцениваемых сервером для управления независимыми группами освещения. То есть одна группа может включаться при определенном сигнале датчика освещенности. Другая же - не только в случае наступления темноты, но и когда сработает датчик движения. Все это будет заложено в алгоритмы на сервере.