Последние статьи из блога
- MegaD-485-TTL - изолированный конвертер индустриального класса
- MegaD-4VC - подключаем сигналы 0-10В и 4-20мА к контроллеру
- MegaD-4CM - высокоточный 4-х канальный измеритель тока
- MegaD-4US - 4-х канальный датчик напряжения на DIN-рейку
- Как я боролся с собаками с помощью нейросети
- Интеграция ультразвукового датчика скорости и направления ветра
- Установка WiFi-камеры на робота-газонокосилку
- Твердотельный датчик направления и скорости ветра. Эксперимент
- iPhone на стене в качестве панели управления домом
- MegaD-16M-XT - подсветка выключателей и не только
- Переделка выключателей в кнопки и мини-обзор текущего рынка
- RadSens - модульный счетчик Гейгера с интерфейсом I2C
- "U" - значит универсальный. Обзор модуля MegaD-16U-XT
- SCD4x - современная альтернатива для измерения концентрации CO2
- HTU31D - новый датчик температуры и влажности с нагревательным элементом
- Измерение коэффициента пульсации ламп с помощью MegaD-2561
Елочная гирлянда с управлением по 1-wire
26/12/2010 22:13:12
Возможно, данная статья устарела.
В конце 2017 года было реализовано куда более интересное решение гирлянды с использование лент WS2818/WS2811 и контроллера MegaD-2561. Подробнее.
Все новые статьи
Ёоооолооочкааа, зажгиииись!
Помните, как кричали мы заветные слова на новогодней елке в детском саду? И, словно по волшебству, но с непосредственным участием воспитательницы тети Гали, уборщицы тети Любы и электрика дяди Васи, вставляющего с кряхтением и оханьями вилку в розетку, елочка загоралась многочисленными разноцветными огоньками, лампочками и перемигивающимися гирляндами...
И вот, с ностальгией вспоминая о своем прошлом, я решил подключить наряженную по поводу новогодних праздников елку, растущую в саду, к сети 1-wire. Применение технологии 1-wire не ограничивается сугубо утилитарными задачами. Управляемая с помощью компьютерной программы елочная гирлянда открывает поистине колоссальные возможности для проведения детских мероприятий. Мечта дедсадовского электрика дяди Васи.
А меня, прежде всего, двигала лень. Ведь в праздничные дни елку нужно включать с наступлением темноты, а выключать тогда, когда все ложатся спать. Нелегкая задача для ленивых, недисциплинированных и забывчивых людей, вроде меня. Поэтому я взял еще один модуль на базе DS2413 и подключил к нему китайскую гирлянду для наружного применения, состоящую из 120 желтых светодиодов.
Логика работы как всегда проста. Каждую минуту по cron'у запускается маленький скрипт, который из базы данных считывает 3 значения: состояние ключа уличного освещения, состояние сигнализации, состояние собственно самой гирлянды и текущее время. Я решил, что гирлянда будет включаться с наступлением темноты. У меня уже работал скрипт, определяющий по камере видеонаблюдения недостаточную освещенность и включающий уличное освещение. Таким образом гирлянда включается автоматически в том случае, если включено уличное освещение. Далее я решил, что негоже жечь светодиоды, когда нас нет дома и запрограммировал, чтобы лампочки на елки выключались, когда сигнализация переведена в режим ОХРАНА и снова включалась в режиме НАБЛЮДЕНИЕ, если выполняется первое условие, а именно включено уличное освещение. Выключение гирлядны происходит ровно в 2 часа ночи. Единственным исключением я сделал ночь с 31 декабря по 1 января и с 6 по 7 января, когда гирлянда выключается только в 8 утра.
Но преимущества компьютерного управления гирляндой не ограничивается только включением или выключением с запрограммированными условиями. Например, я применил одноцветную гирлянду без режимов мигания. Не очень то и хотелось. Свои режими мигания можно запрограммировать самостоятельно! Вдоволь наигравшись с моргающими лампочками я понял, что это безыдейно и нужна какая-то мысль. И тогда я решил, что моя гирлянда будет показывать время. То есть в начале каждого часа моргать столько раз, сколько пробило часов. А в полночь лампочки вспыхнут 12 раз! С Новым 2011 Годом!
<?
// Функции CMS - аналоги обычных SQL-запросов
$keys_id = get_id_cl("keys", 1);
$alarm_mode = show_list($keys_id, "#key_pio#", "", 1, "key_label='gsm_arm'", 1);
$christ = show_list($keys_id, "#key_pio#", "", 1, "key_label='christ'", 1);
$ext_light = show_list($keys_id, "#key_pio#", "", 1, "key_label='ext_light'", 1);
if ( $alarm_mode == 1 && $christ == 1 )
key_sw("christ", 0);
elseif ( $alarm_mode == 0 && $ext_light == 1 && $christ == 0 && date('H') >= 15 )
key_sw("christ", 1);
elseif ( (date('j') == 31 && date('n' == 12) && date('H') > 8 && $christ == 1) || (date('j') == 1 && date('n' == 1) && date('H') && $christ == 1) )
key_sw("christ", 0);
elseif ( $alarm_mode == 0 && $ext_light == 1 && $christ == 1 && date('H') >= 2 && date('H') <= 15 )
key_sw("christ", 0);
$christ = show_list($keys_id, "#key_pio#", "", 1, "key_label='christ'", 1);
if ( $christ == 1 && round(date('i')) == "0" )
{
$my_time = date('g');
if ( $my_time == 0 )
$my_time = 12;
for ( $i = 0; $i < $my_time; $i++ )
{
$no_log = 1;
key_sw("christ", 0);
usleep(50000);
key_sw("christ", 1);
usleep(500000);
}
}
?>
Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.
Добавить комментарий:
Сортировка комментариев: Последние сверху | Первые сверху
2012-10-08 11:48:09 | Andrey_B
Вячеслав, если говорить о взрослом дереве, то вряд ли гирлянда сможет причинить ему сколь-нибудь серьезный урон. А вот для молодого дерева, возможно, это не очень хорошо. В любом случае я использовал светодиодную гирлянду с общим потреблением около 2-3 Ватт. Два года подряд использовал ее на молодом дереве и какого-то существенного вреда не отметил. В этом году на этой елке подсохла самая верхушка. Но, честно говоря, не думаю, что это связано именно с гирляндой. Со многими деревьями возникают те или иные проблемы, даже если на них ничего не висит.
2012-10-08 01:27:26 | Вячеслав
А не вредна ли для живого дерева гирлянда? Хочу на ели на даче повесить, но переживаю, чтобы деревья не загнулись.
2010-12-27 00:01:24 | Андрей (Sigma)
Классное решение.