Ардуино - управление освещением, жалюзи, климатом.
Задумал сделать из Ардуинки систему типа "Умный дом". Первоначально хочу реализовать управление освещением по принципу: две кнопки - вкл/выкл, длительное нажатие на кнопку влк прибавляет яркость лампы, длительное нажатие кнопки выкл убавляет яркость. Кратковременные нажатия включают/выключают лампу на уровень яркости, который был задан ранее.
Также жалюзи, длительное нажатие - жалюзи движутся вверх/вниз пока кнопка удерживается, кратковременное нажатие - жалюзи поднимаются/опускаются до конца(установлены датчики конечных положений для обратной связи).
Касаемо тампературы - тут гораздо сложнее. Соединение с кондиционером можно осуществить через инфракрасную связь, путём генерирования кода сигнала самой Ардуиной, либо тупо подпояв проводки к кнопке квл/выкл в пульте от кондёра.(Если кондиционер с пультом) Алгоритмов управления множество, от простого включения по таймеру, до прогнозирования изменения температуры в зависимости от времени суток, температуры на улице, или даже в зависимости от того что в комнате включено(Бывают люстры с галогеновыми лампами, которые не хило могут нагреть комнату). Нагревание комнаты в расчёт не беру, так как с этим проблем никогда не возникало, комунальные службы в этом плане работают нормально.
Всю проводку предусмотрел во время ремонта квартиры - подвод силовых проводов к люстре и жалюзи. А кнопку выполнил на радио управлении. Купил за 600р. две детских миниатюрных радиоуправляемых машинки(по 4 канала - вперёд, назад, влево, вправо). Приёмник - плата из машинки подключен к входам Ардуино, а передатчик с батарейками встроен в обычный двух клавишный выключатель света.
01.06.2011, 22:39
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Собственно пока начал делать управление освещением. У меня оно на светодиодах. Регулирование яркости сделал, но как сделать включение в зависимости от длительности нажатия кнопки? Поможет кто с кодом?
P.S. Если есть какие идеи по теме, рад буду увидеть.
01.06.2011, 22:49
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Ну вот мой простейший скетч по регулированию яркости:
PHP код:
int jarkost; //Значение яркости света
int knopkaDOWN = 0; //Кнопка "Уменьшить яркость"
int knopkaUP = 1; //Кнопка "Увеличить яркость"
int svet = 10; //Выходной сигнал на 10 пине
if (analogRead(knopkaDOWN) == HIGH && jarkost>1)
{
delay(15);
jarkost--;
}
analogWrite(svet, jarkost);
}
Хочется добавить действие в зависимости от длительности нажатия кнопки.
01.06.2011, 23:08
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Длинное и короткое нажатие можно различать по времени,
Выключатель повесить на вход с прерыванием , после срабатывания прерывания в обработке посчитать длительность нажатия можно функцией pulseIn()
Еще посмотри здесь http://cyber-place.ru/forumdisplay.php?f=24
02.06.2011, 00:49
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Как пользоваться функцией pulseIn() ? Не нашёл ни одного примера, кроме стандартного, который ничего не объясняет.
02.06.2011, 01:12
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Так поймешь?
PHP код:
int inputPin=3; //номер пина на котором будет кнопка
unsigned long Botton;
{
Botton = pulseIn(inputPin, LOW); //Функция может измерять сигналы длиной от 10 микросекунд до 3 минут
if(Botton>>3000000) digitalWrite(13, HIGH);//если нажатие более трех сек
delay(500);
digitalWrite(13, LOW);
}
02.06.2011, 01:41
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Возвращает всегда 156488 или 156487.
Не зависимо от уровня сигнала, хоть закорочен вход с GND, хоть на плюсе висит. Что это значит?
02.06.2011, 01:46
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
подправил, только есть проблема с дребезгом
02.06.2011, 02:18
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Что то функция как то криво работает, не вижу я заявленных 3 минут
02.06.2011, 02:27
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Я бы сказал то работает - то не работает... Как-то произвольно.
02.06.2011, 02:52
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Сначала устанавливаем кнопку на чтение (вход), а потом устанавливаем на неё высокий уровень, как? это же вход?
05.06.2011, 18:22
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Я проверял, у меня все работало. нужно вход 4 замыкать на GND
короткое нажатие включает светодиод, длинное нажатие более 1сек. выключает его
05.06.2011, 18:27
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
А. Я на плюс замыкал. Код работает. Но всё равно, не понятно как.
Плохо разбираюсь в программировании, где-то слышал, что при использовании функции millis через какое-то время происходит переполнение счётчика. Здесь также?
05.06.2011, 18:37
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Сначала устанавливаем кнопку на чтение (вход), а потом устанавливаем на неё высокий уровень, как? это же вход?
Подключаем к входу внутренний подтягивающий резистор на +5в
Цитата:
Что-то не понял этого кода. Что выход под 13 пином, ясно. А вход (кнопка) это какой пин? Если 4 то не работает код.
Что значит
Код:
#define ButtonB 4
Это значит что везде где встретится слово ButtonB оно будет заменено на 4
05.06.2011, 18:40
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Цитата:
Сообщение от Siroc-co
Плохо разбираюсь в программировании, где-то слышал, что при использовании функции millis через какое-то время происходит переполнение счётчика. Здесь также?
Здесь это ни как не скажется .
Цитата:
А. Я на плюс замыкал. Код работает. Но всё равно, не понятно как.
Код сырой его нужно отлаживать , я его тебе написал для примера что бы ты сам разобрался и понял в каком направлении копать
29.06.2011, 18:20
WaveLW
Re: Ардуино - управление освещением, жалюзи, климатом.
как реалиовать привод жалюзи? начал искать... ни к чему не пришел хорошему :) если покупать систему то дорговоато от 11 тыщ есть ADM80 дешевле но все равно считаю не выход. на счет управления климатом, так все же функции заложены в кондее?
автор может уже думал над приводом жалюзей, может оделится инфорацией
29.06.2011, 19:59
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Я сделал у себя дома еще год назад управление жалюзи на кардуине, слишком не оправдано высокая цена у легранда оказалась
29.06.2011, 23:45
WaveLW
Re: Ардуино - управление освещением, жалюзи, климатом.
вот дорого(
но возможны какие либо другие варианты...
я живу на первом этаже застеклил балкон там 3 сплошных секции и 2 поворотно откидных. хочу поставить жалюзи первый этаж все таки но бегать и регулировать вломы)))если автоматизировать то дорого выходит... используя те привода что нашел...
вот задумался над использованием мотор редуктора стеклоподъемника в качестве привода?что скажите
03.07.2011, 22:42
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Чтоб регулировать угол наклона пластин жалюзи - использовал маленькую серву, она поместилась в верхней рамке, мощности вполне хватает. Правда пришлось очень по мудрить, чтоб всё заработало. А поднятие/опускание сделал движком с редуктором, типа такого http://kiborgov.net/hardware/engines..._6V_60RPM.html , но у меня не 60 об мин, а 180, и мой чуть по крупнее. Он просто матает на вал две нитки, которые и поднимают/опускают жалюзи. Правда медленно очень, нужно хотяб на 300 оборотов и не слабее. А вот с скетчем так и не догнал как сделать так, чтоб работало как я описал в первом сообщении.
04.07.2011, 11:21
WaveLW
Re: Ардуино - управление освещением, жалюзи, климатом.
а зачем сервоприводы? нельзя сделать все на одном моторчике?
можно поподробнее выложить инфу как делали :))) а то не разберусь... какие сервоприводы как сделали и т.д. в общем похвастайтесь :)
04.07.2011, 22:28
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Если ставить моторчик, то опять же нужно с редуктором. А серва - тот же моторчик с редуктором, только поворачивать на определённый угол можно, что является плюсом, так как и серва и пластины жалюзи вертятся на 180 град. Не нужно концевиков, не думать о том что мотор свернёт жалюзи(сломает). Минус один - без ардуинки не запустишь. А если выкинуть переменный резистор из сервы, и подключиться к мотору напрямую минуя внутренние мозги - то получится обычный двигатель с редуктором.
Я использовал серву IS9, купил за 200р рядом с Нагатинским рынком, в магазине с разными радиоуправляемыми моделями.
Видео сниму и выложу в субботу, после рабочих дней лень лезть и снимать все приблуды. А может и раньше, но выложу обязательно.
P.S. Сам работаю с системами "Умный дом" по технологии KNX. Видел много автоматических жалюзи разных производителей, и скажу вам, что в домашних условиях можно сделать лучше. Только жалюзи с встроенным приводом стоят от 400$,Не говоря о системе управления. Я за жалюзи отдал 500р, плюс серва 200р, плюс мотор с редуктором 600р(в нэте есть и дешевле). Ну и ещё ардуинка, но её я не считаю. Что мне не понравилось в заводских жалюзи - ОЧЕНЬ шумные!!! И угол наклона очень сложно регулировать, постоянно проскакивает в крайние положения. А у меня чётко, с шагом как я задам, и на порядок тише.
04.07.2011, 22:45
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Re: Ардуино - управление освещением, жалюзи, климатом.
Цитата:
Сообщение от Siroc-co
Я использовал серву IS9
это вот эта штука можно выложить чертежи схему и прочее :))) я в этом не шарю вообще :))) (в детстве что то мастерил получалось, по инструкции думаю соберу и разберусь :)) ну или почти, если чем нить заняться то определенно сделаю :) вот только нужен вектор и желание :)))
если серва привод тот же самый электро двигатель то почему нельзя реализовать на нем подъем жалюжи?
ЗЫ
Уж извиняй если придется побыть нянькой и все рассказать подробно даже очевидные факты
05.07.2011, 22:33
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
если серва привод тот же самый электро двигатель то почему нельзя реализовать на нем подъем жалюжи?
Можно и на нём, но серва не может вращаться более чем на 360гр.(не постоянно вокруг оси, а 360 в одну сторону, и 360 в другую, точнее будет сказать 359 град.), а большинство из них 180гр. Но если разобрать серву и выкинуть лишнее, то это получится просто мотор с редуктором(сможет вращаться постоянно в любую сторону), которым вполне можно поднимать/опускать жалюзи. Но серва вращается медленно, моя делает 180 град под нагрузкой за 0,7 сек, полный оборот соответственно 1,4 сек - а это всего 43 оборота в минуту, что очень мало для меня, так как я верёвки отвечающие за поднятие/опуск матаю сразу на вал.(не трудно представить как долго будет наматываться полтора метра верёвки на вал диаметром 3мм со скоростью вращения вала 43 об/мин) Можно увеличить скорость наматывания увеличив диаметр вала. Но тогда нагрузка на серву возрастёт, она может не справится, а главное - это всё станет громоздким и не истетичным. Для моей сервы, как заявляет производитель, подъёмная сила составляет 1,6Кг на рычаге 1 см. Соответственно если применить к валу то его диаметр составит 2 см, а подъёмная сила 1,6 кг. Может этого и хватит, но я бы для этого выбрал серву мощнее.
А вобще, когда я баловался с этой сервой, и гонял её без нагрузки - она прилично нагрелась, так что я не думаю что она подойдёт для длительныз нагрузок, максимум на минуту непрерывной работы, а то и пол года не прослужит.
05.07.2011, 22:50
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Можно использовать ШД
05.07.2011, 22:54
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Цитата:
Сообщение от Chip
Можно использовать ШД
Шаговый двигатель управляется куда замороченнее, но это ладно. Он же тоже должен быть с понижающим редуктором, и они крупнее обычных.
07.07.2011, 13:52
WaveLW
Re: Ардуино - управление освещением, жалюзи, климатом.
Начал искать серву. зашел на китайский сайт, говорят вполне неплохо работают, вот кое что нашел там: 1 серва 2 серва написано - Stall torque: 10.5kg/cm (4.8V), 13kg/cm (6V) вроде как мощная по сравнению с другими 3 серва написано 2,1 кг/см у вас момент на волу 1,6 4 серва ничего не нашел интересного но шестерни вроде метал 5 серва 2 сервы за 10 баксов 1,6 кг/см.
ну вот интересно что можно взять из этого :)
07.07.2011, 13:54
WaveLW
Re: Ардуино - управление освещением, жалюзи, климатом.
решил начинать потихоньку собирать :))) маленькими шагами к успеху :) меня интересует скорее всего просто управлением угла наклона жалюзями с пульта, полное открытие их пока не буду использовать ибо они всегда в закрытом положении
09.07.2011, 15:29
Siroc-co
Ардуино - управление освещением, жалюзи, климатом.
Мне по размеру подошла эта серва: Impact IS9. Если интересно с металлическими шестернями и подшипником, то есть такой вариант:Impact IS9HMG, и она уже цифровая, и написано что усилие больше. Я её разбирал, двигатель там такой же как и в обычной, разница только в микросхеме. Правда последняя с ардуино не корректно работает, на некоторых положениях начинает самопроизвольно крутиться, и так пока питание не снимешь. В ней действительно большая часть шестерней из метала и металлический подшипник. Я живу в Москве, рядом с этим магазином, там все сервы и покупаю, выбор большой, цены средние. А вот с моторредуктором сложнее, приходится выискивать и заказывать.
P.S. Как и обещал, сегодня-завтра выложу видео своих творений.
29.07.2011, 23:02
WaveLW
Re: Ардуино - управление освещением, жалюзи, климатом.
есть задача автоматизировать 2 жалюзи,3 выключателя света, сделать управление с пульта, возможно потом голосом)))жалюзи пока сделать просто регуоировку наклона
приступаем)
для начала нужна смета
1. два сервопривода для жалюзи писали выше
2. что использовать для автоматизации выключателей серво не подходят?
3.
31.07.2011, 04:12
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Появилось время выложить описание.
Вот как я сделал регулировку угла открытия жалюзи:
-------------
Всё это делается за час-полтора. На описание времени больше ушло..
Этот пост защищен авторскими правами, полное или частичное копирование возможно только с разрешения автора.
31.07.2011, 04:42
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Жужжит громко при максимальной скорости сервы, если по медленней сделать, то оч тихо будет. Если соединитель (сделанный из термоусадки) недостаточно прочен и при вращении проминается или закручивается, то можно по верх одной термоусадки еще парочку для прочности посадить. Такая система работает достаточно долго, никаких проблем небыло.
P.S. Самое важное забыл написать:
Так как есть нагрузка на валу сервы, есть определённая "пружинистость" (упругость) нашего соединительного вала из термоусадки, и учитывая свойства сервы, она всегда пытается сохранить своё положение, то постоянно слышен треск из сервы. Я решил эту проблему снятием питания с сервы. Тоесть в момент регулирования подаю напряжение и сигнал на серву, после отпускания кнопки все провода отключаются через релюху. Так и безопаснее, не хочется самоделки постоянно держать под напряжением, мало ли чего...
Во скетч для ардуинки:
PHP код:
#include <Servo.h>
Servo servoJAL1; // Жалюзи №1
Servo servoJAL2; // Жалюзи №2
int pos1; //Позиция жалюзи1 (Угол)
int pos2; //Позиция жалюзи2 (Угол)
int jalousieMin1 = 22; //Жалюзи1 уменьшаем угол Вход 22Pin
int jalousieMax1 = 23; //Жалюзи1 увеличиваем угол Вход 23Pin
int jalousieMin2 = 24; //Жалюзи2 уменьшаем угол Вход 24Pin
int jalousieMax2 = 25; //Жалюзи2 увеличиваем угол Вход 25Pin
int power = 13; //Питание релюшки
void loop()
{
//======================== Управление Сервой №1 ============================
//------------------ Уменьшаем угол открытия Сервы №1 ----------------------
if (digitalRead(jalousieMin1) == HIGH && pos1>0)
{
delay(10);
pos1--;
}
//----------------------------------------------------------------------------
//----------------- Увеличиваем угол открытия Сервы №1 ----------------------
if (digitalRead(jalousieMax1) == HIGH && pos1<180)
{
delay(10);
pos1++;
}
//--------------------------------------------------------------------------
//==========================================================================
//======================== Управление Сервой №2 ============================
//------------------ Уменьшаем угол открытия Сервы №2 ----------------------
if (digitalRead(jalousieMin2) == HIGH && pos2>0)
{
delay(10);
pos2--;
}
//----------------------------------------------------------------------------
//----------------- Увеличиваем угол открытия Сервы №2 ----------------------
if (digitalRead(jalousieMax2) == HIGH && pos2<180)
{
delay(10);
pos2++;
}
//---------------------------------------------------------------------------
//===========================================================================
//==================== Питание на серву ========================================
//Подаём только когда нужно управлять сервой.
if (digitalRead(jalousieMax1) == HIGH || digitalRead(jalousieMin1) == HIGH || digitalRead(jalousieMax2) == HIGH || digitalRead(jalousieMin2) == HIGH)
{
digitalWrite(power, HIGH);
}
else
{
digitalWrite(power, LOW);
}
//==============================================================================
servoJAL1.write(pos1);
servoJAL2.write(pos2);
}
Ну и соответственно питание на сервы подаём через реле, например, управление которого идёт с пина 13, которое включится только тогда когда мы будем управлять какой либо сервой.
Необходимо помнить что напрямую реле подключать к выходам ардуино нельзя, так как ток потребления обмотки реле наверняка превышает возможности выходов ардуино.
31.07.2011, 04:50
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
А ещё чё скажу: кабель соединяющий ардуино и жалюзи у меня, как видели, витая пара. И при длинне кабеля в 10 метров серва была неуправляема, поворачивалась как хотела. Видимо из-за длинны искажался или затухал сигнал управления. При 5 метрах - нормально.
01.08.2011, 12:25
WaveLW
Re: Ардуино - управление освещением, жалюзи, климатом.
короече подводим итог
1. 2 серво типа Impact IS9
2. 2 реле отключающие серву в пункте 1 - вопрос какие ?
3. 3 реле отключающие/включающие свет - вопрос какие ?
4. Arduino
PS
с реализацией управления штор понятно :) но надо разобраться во всем
конечно, сначала попробую управлятьс пульта а потом только голосом, если первый вариант получится :)
01.08.2011, 12:56
Chip
Вложений: 1
Re: Ардуино - управление освещением, жалюзи, климатом.
2-реле не нужно, серва подключается напрямую к выводам Arduino
3-лучше использовать симистор схема прилагается Вложение 12749
02.08.2011, 00:40
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Цитата:
Сообщение от Chip
2-реле не нужно, серва подключается напрямую к выводам
Не подключается серва напрямую. Только управляющий сигнал идёт напрямую, но никак не питание. Если не ясно зачем нужно отключать питание или управляющий сигнал - перечитайте мой пост. Два реле не нужно, достаточно одного. Реле любое, какое попадётся, я использую на 12 вольт, релюшку включаю через транзистор IRFZ 44N. Почему именно такие компоненты? Да просто только это было под рукой.
Вот примет использования транзистора:
02.08.2011, 00:55
Siroc-co
Re: Ардуино - управление освещением, жалюзи, климатом.
Цитата:
Сообщение от Siroc-co
Не подключается серва напрямую. Только управляющий сигнал идёт напрямую, но никак не питание. Если не ясно зачем нужно отключать питание или управляющий сигнал - перечитайте мой пост. Два реле не нужно, достаточно одного. Реле любое, какое попадётся, я использую на 12 вольт, релюшку включаю через транзистор IRFZ 44N. Почему именно такие компоненты? Да просто только это было под рукой.
Вот пример использования транзистора:
Кстати об освещении, у меня на 220 только одна центральная лампа в люстре, а всё остальное - мощные светодиоды и светодиодные ленты. Питание организовано от 10-12 вольт и управляется через IRFZ 44N. Как говорил, вся проводка предусмотрена во время ремонта. Почему 12 вольт? Просто удобно управлять, к тому же в кладовке постоянно подключен старый автомобильный аккумулятор, это как резерв при пропадании электричества.
А ещё экономия в энергопотреблении. Хочу димировать свет. Но димировать можно только лампы накаливания. Я не беру в счёт специальные люминисцентные лампы и дорогущие ЭПРА к ним, и не беру в счёт светодиодные лампы на 220В, которые очень не ленейно меняют свою яркость в зависимости от питающего напряжения. Выходит только светодиоды, в качестве драйвера IRFZ 44N.
02.08.2011, 01:20
Chip
Re: Ардуино - управление освещением, жалюзи, климатом.
Цитата:
Сообщение от Siroc-co
Не подключается серва напрямую. Только управляющий сигнал идёт напрямую, но никак не питание. Если не ясно зачем нужно отключать питание или управляющий сигнал - перечитайте мой пост. Два реле не нужно, достаточно одного. Реле любое, какое попадётся, я использую на 12 вольт, релюшку включаю через транзистор IRFZ 44N. Почему именно такие компоненты? Да просто только это было под рукой.
Вот примет использования транзистора:
Я про питание не говорил , имел ввиду управляющий пин