ФОРУМ КУПИТЬ

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

ВСЕ СТАТЬИ

Елочная гирлянда с управлением по 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)
Классное решение.