ФОРУМ КУПИТЬ

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

ВСЕ СТАТЬИ

Подключение к MegaD-328 датчика освещенности

22/05/2012 11:53:37

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

В своей системе я применял в качестве датчика освещенности изображение с камеры видеонаблюдения, а также рассчитывал восход и заход солца, но эти подходы имели свои недостатки, поэтому я при случае приобрел готовый датчик от DFRobot, который по сути представляет собой обычный фоторезистор, и подключил его к своему Ethernet-контроллеру MegaD-328.


Ambient Light Sensor. Датчик освещенности по Ethernet

Подключение датчика к Ethernet-контроллеру не представляет никаких сложностей.

Контакты:

1 - Сигнал
2 - Земля
3 - Питание (ОТ +3 до +5В)

В моем устройстве используется напряжение 3,3В, поэтому никаких изменений вносить не пришлось. Достаточно было сконфигурировать нужный порт как ADC (АЦП), чтобы сразу же получить значение освещенности. Аналогичным образом этот аналоговый сенсор подключается и к платформе Arduino.


Конфигурирование порта как АЦП и считывание значение датчика

Поскольку значение 1023 соответствует минимальной освещенности, PHP-код для опроса и записи в БД значения с сенсора выглядит так

<?
$light = file_get_contents('http://192.168.0.14/sec/?pt=11&cmd=get');
$light = round(1024 / $light);
// Далее пишем в БД
?>

Опрос сенсора производился каждые 5 минут.

Теперь осталось в Web-интерфейсе вывести график освещенности и в нужных скриптах использовать значения, полученные с датчика. Для отображения графиков я пока по-прежнему пользуюсь библиотекой JpGraph.


График освещенности. Ясный с небольшой дымкой после 15 часов день. 21 мая. Средняя полоса России

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

Отдельно хочется выделить преимущество системного подхода к реализации Умного Дома. На интеграцию сенсора в общую систему ушло не более 5 минут. MegaD-328 позволяет производить подключение любых аналоговых датчиков к портам с АЦП, конфигурируемым через встроенный Web-интерфейс устройства. Используемый в MegaD-328 HTTP-протокол позволяет считывать значение по сети Ethernet одной командой. Готовый программный модуль для построения графиков позволяет визуализировать данные в Web-интерфейсе Умного Дома

У читателя сразу может возникнуть вопрос о длине кабеля до датчика. Я провел испытания с кабелем FTP (экранированная витая пара, 24AWG) длиною 21 метр. Использовались 3 несвитых провода. Во время испытаний включал рядом с кабелем другие электроприборы мощностью 1200Вт. Каких-либо сбоев в работе не заметил.

 

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



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

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


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

2012-07-03 12:31:14 | andvas
Тоже прикупил похожий датчик и подключил его . Но у меня в отличии от вас Andrey_B 1023 соответствует не "значение 1023 соответствует минимальной освещенности,", а наоборот максимальному значению, т.е. в темноте у меня 0.
Теперь намного удобнее стало включение света в комнатах окна которых выходят на север, а то с определением восхода/захода солнца были не комфортные моменты, когда вроде свет и нужен, а время то еще и не пришло))


2012-09-07 17:43:05 | Антон
Добрый день!
"MegaD-328 позволяет производить подключение любых аналоговых датчиков к портам с АЦП"
Подскажите, как возможно подключение к МегаД аналоговых датчиков, подобных этому? У Вас собрано исполнительное устройство, отличное от MegaD-7I7O или всё же возможно подключать датчики к "готовой сборке" из МД+7I7O?


2012-09-09 17:30:32 | Александр
Подскажите а данные уст-ва можно подключить к модулю? И как:

1) /www.ebay.com/itm/150888050076?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
2) /www.ebay.com/itm/DFRobot-Analog-Grayscale-Sensor-/160695136986?pt=LH_DefaultDomain_0&hash=item256a2d32da
3) /www.ebay.com/itm/DFRobot-18B20-Temerature-Sensor-FREE-Cable-/160626221815?pt=LH_DefaultDomain_0&hash=item256611a2f7
4) /www.ebay.com/itm/DFRobot-Piezo-Disk-Vibration-Sensor-/150713909250?pt=LH_DefaultDomain_0&hash=item23173fc002


2012-09-09 22:57:19 | Andrey_B
Антон, исполнительный модуль MegaD-7I7O обеспечивает работу 7 входов и 7 выходов. Для того, чтобы подключить аналоговый датчик к готовому комплекту нужно пожертвовать каким-то из портов (имеющим возможность работать как АЦП), вычленить из шлейфа (ленточного кабеля, соединяющего интерфейсный и исполнительный модули) пару АЦП-земля и подключать к ней датчик. Но соответственно в готовом исполнительном модуле будет уже не 14, а 13 портов.


2012-09-09 23:10:05 | Andrey_B
Александр, любые аналоговые датчики можно подключать к портам АЦП.
Цифровые же датчики подключать можно, но работать они не будут, так как нужна поддержка протокола, преобразования значений со стороны прошивки. Каждый тип цифрового датчика по своему уникален, поэтому универсальную поддержку реализовать не получится. Но для некоторых цифровых датчиков теоретически можно сделать исключение. В частности интересен упомянутый вами DHT11. Он у меня давно уже лежит, да все не доходят руки реализовать поддержку.


2012-09-10 18:40:57 | Александр
Аналоговые да.. Но я так понял для микроконтроллеров на базе Arduino, для этого датчика,
/www.ab-log.ru/smart-house/garden_automation/moisture-megad

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

Я у Вас приобрел уже один MegaD-328. Меня он устраивает. Пожалуйста рассмотрите вопрос поддержки DFRobot. И чем больше ассортимент - тем лучше.


2012-09-10 18:44:33 | Александр
Да, Андрей.. Было бы неплохо на рисунке изобразить, как подключать эти самые датчики к MegaD-328..


2012-09-12 17:28:55 | Andrey_B
Александр, как я уже сказал, любые аналоговые датчики можно подключать к MegaD без какого-либо вмешательства в прошивку. Датчик влажности почвы или датчик освещенности является аналоговым и не требует специального сопряжения. А вот что касается DS18B20. Ну хотя бы почитайте специальную ветку на эту тему на нашем форуме. С цифровыми датчиками все гораздо сложнее по определению. Я не говорю о том, что нельзя подключить к MegaD тот или иной цифровой датчик. Подключить можно, но нужно дополнительно для конкретного датчика делать обработчик в прошивке.
DFRobot выпускает как аналоговые датчики, так и цифровые. Аналоговые датчики от DFRobot (если они подходят по электрическим характеристикам) использовать можно. А вот с цифровыми сложнее. Как я написал в предыдущем ответе, есть интерес к некоторым, в частности к DHT11, поддержка которого, возможно, появится в MegaD.


2012-09-27 13:34:28 | Александр
Спасибо за ответ. Это будет хорошо если появиться поддержка DHT11.. Только дайте знать о выходе новой прошивке. Что же касается других устройств для Arduino.. Было бы также неплохо задействовать поддержку некоторых из них.. Тем более они все работают по одной и той же технологии.. и будет легче адаптировать их поддержку для MegaD.

DS18B20 я привел просто в пример, как возможность в MegaD поддерживать технологию 1-Wire, если это возможно.. Хотя хорошо известно, что дешевле и удобнее способа снимать температуру нет, чем через 1-wire..


2012-09-27 14:35:20 | Александр
Кстати говоря о сенсорах света. Вот еще один хороший экземпляр:
/www.ebay.com/itm/Sensitivity-Control-Potentiometer-2-Channel-Photo-Diode-Sensor-Module-/310431226010?pt=LH_DefaultDomain_0&hash=item484724989a
Дешевый, и по-моему, он аналоговый.


2012-10-03 13:44:19 | Андрей
Хоть убейте, не понимаю, как вы его подключили на 11-порт?! Там же всего один разьем..


2012-10-04 16:11:31 | Andrey_B
Андрей, о каком разъеме вы говорите? Датчик подключается к порту, питанию и земле. Или вы о готовом исполнительном модуле MegaD? Комплект MegaD состоит из двух модулей: интерфейсного и исполнительного. Исполнительный модуль в ЖЕЛЕЗЕ обеспечивает электронную обвязку настроек интерфейсного модуля. То есть если у вас исполнительный модуль MegaD-7I7O, то есть ТОЛЬКО 7 входов типа сухой контакт и ТОЛЬКО 7 выходов 220В. Вы не можете их поменять местами, так как исполнительный модуль - не терминатор-2, электроника не умеет трансформироваться. То есть к исполнительному модулю MegaD-7I7O (насколько я понимаю о нем же идет речь) нельзя подключить никакие аналоговые датчики!
Для подключения аналоговых датчиков нужно либо использовать другой исполнительный модуль, либо выделять из шлейфа нужны пары (Питание-Порт-Земля) и подключать датчики, не требующие какой-то обвязки к ним.
Для статьи я именно так и подключал датчик. Использовался только собственно интерфейсный модуль и все датчики подключались непосредственно к нему. В будущем планируется наладить выпуск специальных исполнительных модулей с определенным количеством разъемов для подключения аналоговых датчиков и защитной электронной обвязкой.


2014-06-23 11:11:05 | Павел
Хотелось бы узнать о подключении датчика к чипу ds2450s 4 канальному ацп


2014-10-02 10:38:33 | Дмитрий
Андрей, день добрый!

Что-то я торможу. Да и не специалист пока :) В общем, вопрос такой. Есть датчик от DFRobot. Например, тот, что указан в статье. У него на выходе три провода. Я так понимаю, его можно подключить к контроллеру мегадевайса к одному из двух дополнительных АЦП-портов. А можно к одному из входов на исполнительном модуле. Но у исполнительного модуля на каждый порт всего по два "провода". Какие провода тогда куда подключать? Вы уж простите за глупые вопросы..


2014-10-02 11:02:32 | Andrey_B
Дмитрий, если мы говорим об аналоговых датчиках DFRobot и измерении конкретного значения, то подключать их можно к доп. АЦП портам на модуле контроллера или напрямую к шлейфу (это уже если вы разбираетесь в теме). К готовому исполнительному модулю MegaD-7I7O аналоговые датчики подключать нельзя. Этот модуль, а конкретно его выходы, "заточены" под работу с датчиками типа "сухой контакт", с теми элементами, которые имеют два состояния - замкнуто и разомкнуто.


2014-11-25 20:25:46 | Станислав
Как выглядит внешний кожух у вашего датчика и куда правильно его смонтировать на улице? Заранее спасибо


2014-11-25 23:32:12 | Andrey_B
Станислав, на сайте есть статья "Как я делал уличный датчик освещенности". Там все очень подробно описано. С картинками.


2014-12-16 13:10:00 | Сергей
По поводу куда запихать датчик: У меня он отлично поместился в прозрачном пластиковом футляре от большого сверла.


2015-07-12 15:47:38 | Alexiy2
Andrey_B я немного недопонимаю: порты ADC5 и ADC6 на управляющем модуле установлены, в них же я могу установить датчики типа освещенности (/ru.aliexpress.com/item/LM393-Optical-Sensitive-Resistance-Sensor-Module-Photosensitive-Sensor-for-Arduino-3-pin-SG060-SZ/32322563847.html) и движения (/ru.aliexpress.com/item/2014-Portable-PIR-Motion-Sensor-Detector-Module-for-Arduino-Infrared-Adjust-IR-Pyroelectric-HC-SR501-For/2040674685.html)


2015-07-13 10:41:16 | Andrey_B
Alexiy2, датчик освещенности должен работать. Датчику движения необходимо напряжение от 5В до 20В. На разъеме доп. АЦП 3.3В. Может быть, будет работать и с таким напряжением. Если нет, можно взять 12В с того же источника, который питает контроллер.