Управление освещением ардуино


Устройство предназначено для управления светом. Рассмотрим два варианта управления светом либо включение или выключение осветительного прибора, либо изменение свечения светодиодной ленты.

Вариант 1:

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

Описание работы:

Для начала работы подключите питание к Arduino. Подключите к реле источник света. Теперь потенциометром отрегулируйте уровень при котором будет включаться реле, а значит и наш источник света.

Нам понадобится:
  • Arduino Uno х 1шт.
  • Trema Set Shield х 1шт.
  • Trema-модуль реле х 1шт.
  • Trema-модуль потенциометр х 1шт.
  • Trema-модуль датчик освещённости х 1шт.
  • Проводков для пайки. (в ассортименте: 5 см, 10 см, 20 см)

Схема сборки:
  • Устанавливаем Trema Set Shield в Arduino Uno.
  • Устанавливаем Trema-модуль потенциометр во 2 посадочную площадку.Управление освещением ардуино
  • Устанавливаем Trema-модуль реле в 4 посадочную площадку.Управление освещением ардуино
  • Устанавливаем Trema-модуль датчик освещённости в 6 посадочную площадку.Управление освещением ардуино
  • Подключаем лампочку через реле, как показано на рисунке.
  • Управление освещением ардуино

Код программы:
const uint8_t pinDatL = A3; // Объявляем пин для работы с датчиком звука. const uint8_t pinPot = A0; // Объявляем пин для работы с потенциометром. const uint8_t pinRele = 3; // Объявляем пин для работы с реле.  // int potValue; // Переменная для считывания показания потенциометра. int datValue; // Переменная для считывания показании датчика освещенности.  // void setup() // { //  pinMode(pinRele, OUTPUT); // Переводим вывод pinRele в режим выхода. } //  // void loop() // { //  potValue = analogRead(pinPot); // Считываем показания потенциометра  datValue = analogRead(pinDatL); // Считываем показания датчика освещенности.  //  if(potValue + 5 < datValue){digitalWrite(pinRele, HIGH);} // Если показания потенциометра + 5 меньше показаний датчика освещенности, то включаем реле.  if(potValue - 5 > datValue){digitalWrite(pinRele, LOW);} // Если показания потенциометра - 5 больше показаний датчика освещенности, то выключаем реле. } // 
Алгоритм работы:

В начале скетча (до кода setup) выполняются следующие действия:


  • Объявляем пины для работы с Trema-модуль реле, Trema-модуль потенциометром, Trema-модуль датчиком освещённости.
  • Объявляем переменные задействованные в скетче.

В коде setup выполняются следующие действия:

  • Переводим выводы pinRele для реле в режим выхода.

В коде loop выполняются следующие действия:

  • Считываем показания потенциометра.
  • Считываем показания датчика освещенности.
  • Если показания потенциометра + 5 меньше показаний датчика освещенности, то включаем реле.
  • Если показания потенциометра — 5 больше показаний датчика освещенности, то выключаем реле.

Вариант 2:

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

Описание работы:

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

Нам понадобится:

  • Arduino Uno х 1шт.
  • Trema Set Shield х 1шт.
  • Trema-модуль cиловой ключ х 1шт.
  • Trema-модуль потенциометр х 1шт.
  • Trema-модуль датчик освещённости х 1шт.
  • Источник питания на 12В. 1А. для Arduino х 1шт.
  • Коннектор power jack Мама с клемником для Arduino х 1шт.
  • Проводков для пайки. (в ассортименте: 5 см, 10 см, 20 см)
Схема сборки:
  • Устанавливаем Trema Set Shield в Arduino Uno.
  • Устанавливаем Trema-модуль потенциометр во 2 посадочную площадку.Управление освещением ардуино
  • Устанавливаем Trema-модуль cиловой ключ в 4 посадочную площадку.Управление освещением ардуино
  • Устанавливаем Trema-модуль датчик освещённости в 6 посадочную площадку.Управление освещением ардуино
  • Подключить светодиодную ленту к Источник питания на 12В, через Коннектор с помощью Проводков, как показано на рисунке ниже.
  • Управление освещением ардуино
Код программы:
const uint8_t pinDatL = A3; // Объявляем пин для работы с датчиком освещенности. const uint8_t pinPowerKey = 3; // Объявляем пин для работы с силовым ключом.  

/ const int minL = 50; // const int maxL = 920; // // void setup() // { // pinMode(pinPowerKey, OUTPUT); // Переводим вывод pinPowerKey в режим выхода. } // // void loop() // { // if (analogRead(pinDatL) > maxL) {analogWrite(pinPowerKey, 0);} // Если показания с датчика больше макисмальной границы, выключаем силовой ключ. else // Если показания датчика в диапазоне от минимального значения до максимальго значения. {analogWrite(pinPowerKey, map(analogRead(pinDatL), minL, maxL, 255, 0));} // Считываем показания датчика освещенности и присваиваем его значения силовому ключу в диапазоне от 255 до 0. if (analogRead(pinDatL) < minL) {analogWrite(pinPowerKey, 255);} // Если показания с датчика меньше минимальной границы, подаем 100% напряжения на силовой ключ. } //
Алгоритм работы:

В начале скетча (до кода setup) выполняются следующие действия:

  • Объявляем пины для работы с Trema-модулем датчик освещённости, Trema-модулем cиловой ключ.

В коде setup выполняются следующие действия:

  • Переводим выводы pinPowerKey для силового ключа в режим выхода.

В коде loop выполняются следующие действия:

  • Проверяем показания с датчика освещенности, если показания больше максимального значения, то подаем ноль на силовой ключ.
  • Считываем показания датчика освещенности и присваиваем его значения силовому ключу в диапазоне от 255 до 0.
  • Проверяем показания с датчика освещенности, если показания меньше минимального значения, то подаем 100% напряжения на силовой ключ.

Особенности:

В скетче присутствуют переменные «minL» — минимальная граница и «maxL» — максимальная граница. Это переменные между которыми датчик освещенности плавно переходит из яркого состояния в темное. И так как датчик освещенности в зависимости от помещения не может достигнуть своего максимального или минимального значения, вводятся константы, для того чтобы, при значениях датчика освещенности которые вышли за пределы диапазона от «minL» до «maxL», источнику света принудительно подается максимальное либо минимальное напряжение. Эти константы регулируются в скетче в начале программы.

Источник: lesson.iarduino.ru

> Почему многодиодная лента лучше?

Потому что для основного света ее будет нужно меньше по длине (люменметр выше)
Потому что они обычно более высокого качества

> Рассеиватель типа такого (не обязательно для однодиодной ленты, просто тип) подойдет

Зависит о типа ленты, яркости диодов. Устанавливается практически. Например, для широкой СДЛ, которая 40Втм, я использовал вот такой профиль там, где монтаж наружный (здесь и далее все ссылки просто на то, что нашел в гугле, брал не у них, но ассортимент у всех примерно одинаков):
http://exposvet.ru/wp-content/uploads/2015/07/UJKlJ3q2yqIty_Ovg2ZNJ3JRDz8GL49z96QUz7BIqfwlbKsZmucCNaLkklHCXaCCS2f3Bww1246-h775.jpg
— можно взять не такой высокий, в этом сверху есть место, куда можно засунуть блок питания, если есть потребность


И такой, где нужен врезной:
http://led116.ru/image/cache/data/vs8832_940_1-500×500.jpg

На кухне для посветки столешницы использовал угловой для ленты послабее, там меньшего расстояния от диодов до рассеивателя достаточно:
http://led-mark.ru/assets/images/catalogue/tying/aluminium-profile-econom/nugl3030_r_big.jpg

В основном в магазинах Дефолт-сити нормальные профили представлены под брендом мода-лайт, цены на них конские, качество довольно хорошее. Альтернатив не нашел, но они наверняка есть.
Всеми доволен.

А вот такой профиль
http://exposvet.ru/wp-content/uploads/2015/11/014896.jpg
гарантированно не сможет «размазать» точки даже декоративной подсветки даже на средней яркости, что уж говорить о полной.

> Можно пример ленты, которая «слишком теплая»? Что бы лучше понимать комфортные границы

Здесь стоит ориентироваться только на личные предпочтения. Лучше всего посмотреть глазами на образец.
Лично мне не нравится ни слишком теплый, ни слишком холодный, но у всех свои вкусы.

> Какое расстояние оптимально от ленты до рассеивателя? На картинке выше — явно меньше сантиметра, наверное будут слишком видны отдельные точки?


Зависит от яркости и количества диодов на метр, а также от прозрачности рассеивателя. Меньше сантиметра — да, будут видны с высокой вероятностью. У меня самое маленькое расстояние — 2 см, стандартную RGB ленту 5060 с 60 ledm размазывает отлично, при меньшем расстоянии будет уже хуже.

> Обычное молочное стекло подойдет, или есть более специализированные изделия?

Прощу всего использовать готовые профили с штатным рассеивателем, который вщелкивается в пазы профиля. Они бывают двух типов, примерно такой
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQR28uecctMuCzVnvS28xwexHXlotzX0bjVbBJt9xc1BskucoGf0A
https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRF0axxpp57EVZfAniMQsXrLb_P2U9aGHKC4uDy-mwa93tQ4if8

и такой
http://ledpremium.ru/upload/iblock/d3f/rasseivatel_prozrachnyy_polikarbonat_lrp.jpg
http://led-portal.ru/image/cache/data/al-profile/rass-optiml-500×500.jpg
https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcThVx-k1JnfuD34VhtOc4TB0F4-bYiU57qzwemt09JHDj5DGyGU8A

У первого более выражены защелки и «направляющие», его удобно всталять. У второго они выражены менее, его вставлять значительно труднее, особенно если слегка нарушена геометрия самого профиля, что бывает, когда он врезан в стенупотолокпол.

Можно использовать стекло, поликарбонат, но тогда нужно думать, как их вырезать, крепить, ка обеспечить демонтаж при необходимости. Сам профиль также обеспечивает теплоотвод ленты, что может быть важно для основного освещения (но если не использовать спецпрофиль, никто не мешает наклеить ленту просто на плоскую алюминиевую полосу, этого часто достаточно для нормального теплоотвода).


Можно использовать отраженный свет вот так
http://elvan.ru/wa-data/public/photos/58/02/258/258.970.jpg

>Хочется сделать освещение по периметру комнаты под потолком из нескольких лент, шириной сантиметров 10-20, глубина светильника вряд ли будет больше 3 см, хватит ли этого размера для хорошего рассеивания?

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

> Опять же с моей идеей, не будет ли неприятен для глаз — свет от горизонтального «светильника» в плоскости стены?

Не могу сказать. Зависит от яркости источника, контраста, качества рассеивателя. В крайнем случае можно приглушить яркость, но тогда это перестанет быть основным светом, правда, кто сказал, что это плохо? Можно поэкспериментировать, купить метров пять ленты, взять рассеиватель, приклеить ленту к стене на малярный скотч, приставить рассеиватель, да посмотреть. Только учитывать, что свет воспринимается нелинейно, поэтому при росте количества фактических светильников восприятие может измениться в худшуюлучшую сторону.

> Или может лучше купить светодиодов «с запасом» по яркости и светить ими в белый потолок


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

> Что же вы сделали со своей кармой?

Я ленюсь писать статьи, поэтому я R&C. Соответственно за статьи меня не плюсуют, а за комментарии плюсы обычно ставят в коммент, а минусы — в карму ) Я не беспокоюсь по этому поводу 🙂

Источник: habr.com

Думаю, первое о чём задумывается человек, желающий добавить элементы «умного дома» себе в квартиру — это управление освещением. В идеале минимальный набор функций, которыми должен быть наделён «умный свет» должен состоять из возможности включать и выключать свет как с выключателя, расположенного на стене, так и с любого устройства в домашней локальной сети, имеющего на борту браузер. Ещё есть большое желание управлять освещением с пульта дистанционного управления.
Итого минимальный функционал:

  • Включение/выключение света с кнопки
  • Включение/выключение света в браузере (а значит любым смартфоном/планшетом/компьютером/ноутбуком и т.д. в сети)
  • Включение/выключение света с ПДУ

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

Если кому-то лень читать, то можно посмотреть видео:



Остальные читаем дальше.
Для реализации функционала мне понадобились следующие элементы.

  • Arduino — Плата с микроконтроллером. Я использовал версию Arduino UNO, в которой заменил разъём usb на mini usb, потому что при старом разъёме, контакты прилегали не плотно друг к другу.
  • Arduino Ethernet Shield W5100. Это плата расширения для Arduino, необходимая для подключения UNO к локальной сети. На чип W5100 одел радиатор, ниже по тексту про нагрев этого чипа будет несколько слов. Ещё подправил разъём под ICSP, чтобы шилд ложился плотнее на Arduino.
  • Реле, для управления нагрузкой. Почитав публикации, заметил, что обыкновенные реле служат не долго из-за наличия подвижных элементов в нём. Я использовал твердотельное реле Fotek SSR-40 DA. Оно дороже, но надёжнее
  • ИК-приемник. Я использовал приёмник VS1838B с частотой 38 кгц. В теории хотелось бы располагать приёмник возле самого выключателя в комнате, по аналогии с управлением телевизором. Чтобы включить телевизор, надо на него направить пульт, но вот как их расположить в выключателе, чтобы это было эстетически не противно, я пока не придумал. Подумываю о том, чтобы располагать ИК-приёмники в центре комнаты на потолке. Ещё, пока только теоретический вариант — это использовать дополнительную плату Arduino, которая и будет с помощью GET запросов по локальной сети включать или выключать свет в любой из комнат. Но это пока теория и я остановился на том, чтобы расположить ИК-приёмник возле самого выключателя. В случае каких-то модификаций, ИК-приёмники можно будет убрать в чашку с выключателем, благо занимает он мало места.
    Чтобы подключить ИК-приёмник, желательно будет спаять небольшую обвязку, состоящую из:
    1 резистора на 100 Ом (не перепутайте с 100 кОМ. При 100 кОМ работать не будет)
    1 Конденсатора электролитического с номиналом 10мкф 50в , вотльтаж можно и меньше взять.
    1 Конденсатора керамического с номиналом 0.1мкф (взял с маркировкой S104).
    Либо божно взять уже готовый модуль на плате с напаянными элементами, включая сам ИК-приёмник.
  • Пульт дистанционного управления. Я использовал от телевизора LG, исходя из тех соображений, что телевизор или любое другое устройство LG я не куплю, то есть нажимая на кнопку пульта, я не буду думать о том, чтобы сработало именно выключение света, а не телевизор или другое устройство LG. Да, пульт выбран довольно большой, но в перспективе многие кнопки будут задействованы, ведь управлять будем не только светом. Сильно специфического производителя пультов, я тоже решил не брать.
  • Светодиод. Для одного блока я использую всего 1 светодиод и объясню почему. Он мне нужен лишь для индикации состояния реле, а как следствие и состояния света, включен или выключен. Этот элемент блока управления светом будет располагаться в коридоре, то есть в коридоре, стоя в обуви я смогу перед выходом увидеть в какой комнате свет был по забывчивости не выключен. Можно конечно для индикации и «красивостей» использовать дисплей, на котором выводить текст о состоянии света, но это физически занимает больше места. А так будет красным горит светодиод — значит свет включен, не горит — не включен.
  • Кнопка без фиксации настенная. Визуально она похожа на обычный выключатель, который стоит в большинстве квартир нашей родины, но работает она несколько иначе. Она всегда физически находится в одном положении, при нажатии на неё, она отщёлкивается обратно, по типу тактовой кнопки.
  • Тактовая кнопка. Примерно такая, как используется в кнопках reset или power на системном блоке ПК. Эта кнопка тоже нужна будет для выключения света, но в коридоре, чтобы не проходить в комнату, где забыли выключить свет.
  • Блок питания Arduino. «Запитать» Arduino можно как по USB, так и подав напряжение в выведенный для этого на плате разъём. Заметил такую особенность модуля локальной сети Ethernet Shield W5100. При питании от usb, чип w5100 начинает сильно греться. При этом перебоев в его работе я не наблюдал, даже при высокой его температуре и длительном испльзовании. Но при питании Arduino через отдельный разъём, чип w5100 грелся значительно меньше. Поэтому решено было питать Arduino НЕ через USB. Я использовал зарядку для телефона на 5v 2A с элементом для понижения с 5V до 3.3V
  • Сервер управления всеми элементами умного дома. На данном этапе сервер не нужен, НО надо заложить фундамент для дальнейшего централизованного управления автономными модулями умного дома. Это, конечно же отдельная история, то как интерфейс управления должен выглядеть. На первое время я, наверно, напишу простейшую самописку для управления через браузер с «резиновым» интерфейсом, несколькими вкладками и кнопками. Но произойдёт это уже по окончании установки всех модулей на своё место и ввода их в эксплуатацию.
  • ПК или ноутбук с USB разъёмом для загрузки кода в Arduino.
  • Arduino IDE — среда разработки для Arduino, которую можно бесплатно скачать с офф. сайта Arduino.
  • Резисторы для подключения кнопок(настенной и тактовой). Я использовал 1 кОм. И ещё резистор для подключения светодиода. Я использовал 220 Ом.
  • Провода, само собой.
  • Breadboard мне нужен был на момент разработки прототипа, очень удобно без пайки собрать схемку.

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

Модуль локальной сети Ethernet Shield W5100 по задумке производителя, думаю, должен одеваться поверх Arduino, но в моём случаем мешал разъём USB самой Arduino и контакты прилегали не плотно. До сих пор не понимаю, почему не использовать более маленький форм фактор разъёма, например mini usb. Я пробовал перепаять разъёмы и скажу, что с mini usb работает так же хорошо, тем более этот разъём, в моём случае, нужен только для заливки скетча (скетч = прошивка микроконтроллера у Arduino), питание буду подавать через другой разъём. Итого решил отпаять «родной» разъём USB от Arduino и припаивать кабель с разъёмом на конце, чтобы Ethernet Shield W5100 ложился на Arduino хорошо, все контакты соединялись.

Этот блок управления одной зоной освещения в квартире будет располагаться в щитке и только настенная кнопка будет находиться в комнате. К сожалению к минусам можно отнести громоздкость конструкции и необходимость большого щитка, для хранения всех блоков. Даже прикинув в голове на двух комнатную квартиру, где в каждой комнате, включая кухню по две зоны освещения, получаем:

комнаты кол-во зон
освещения
комната 1 2
комната 2 2
кухня 2
туалет+ванная 2
балкон 1
коридор/прихожая 1
итого надо блоков 10

Идея управления освещением проста и исходя из функционала, расписанного в первых абзацах статьи, логика такова:

    • Вариант управления №1. Нажимаем кнопку на стене -> Arduino обрабатывает это нажатие -> срабатывает реле, замыкающее/размыкающее контакты. Свет включается или выключается.
    • Вариант управления №2. Отправляем в браузере GET запрос -> Arduino обрабатывает запрос -> срабатывает реле, замыкающее/размыкающее контакты. Свет включается или выключается.
  • Вариант управления №3. Нажимаем кнопку на ПДУ, таким образом отправляем команду на ИК приёмник -> Arduino обрабатывает команду -> срабатывает реле, замыкающее/размыкающее контакты. Свет включается или выключается.

Это всё кратко, что касается теории и необходимых комплектующих.
В следующих статьях расскажу, как эти элементы соединить вместе, покажу свою схему подключения и перейдём к написанию кода в Arduino IDE для нашего микроконтроллера, после чего получим полностью работоспособное устройство.

Источник: mediaunix.com

Видео. Освещение дома на Ардуино

Для питания платы и LED ленты используется блок питания на 12 Вольт с выходным напряжением 1 Ампер. При этом общее потребление электроэнергии, если включить все освещение сразу, не превышает 15 Ватт, что сравнимо с одной энергосберегающей лампочкой. Но при этом освещение на Arduino работает в санузле (туалет совмещен с ванной), в прихожей, в коридоре на 2 этаже, в гостиной (зона отдыха и зона кухни).

Для управления освещением на Arduino используется пульт от телевизора. Кроме того, что автоматическое включение подсветки в ванной и коридоре — это очень удобно, можно еще и сэкономить на оплате за электроэнергию. Также в скетче прописан цикл для создания эффекта присутствия, когда вы уезжаете из дома на несколько дней. Освещение включается и выключается в разных комнатах по заданному алгоритму.

Как сделать управление освещением на Ардуино

Для этого проекта нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • IR приемник Ардуино;
  • пульт ДУ;
  • источник питания DC 12В;
  • светодиодная лента;
  • транзисторы и резисторы;
  • PIR датчики движения;
  • паяльник, термопистолет, провода и изолента.
Схема. Освещение в комнате на Arduino Nano
Схема. Освещение в комнате на Arduino Nano

Для включения LED ленты используются транзисторы 2N2222, заказанные за 60 рублей за штуку на Алиэкспресс. Характеристика 2N2222 транзисторов: макcимальное напряжение коллектор-база — 60 Вольт, макcимальное напряжение коллектор-эмиттер — 30 Вольт, макcимальное напряжение эмиттер-база — 5 В, макcимальный постоянный ток коллектора — 0.8 Ампер, максимальная рассеиваемая мощность — 0,5 Ватт.

В схеме два светильника, подключены через транзистор к Pin7 и Pin8, установлены в коридоре на 1 и 2 этаже, включаются автоматически только в темноте и при срабатывании датчиков движения. Светильник, подключенный к Pin6, установлен в ванной и включается автоматически от Pir датчика движения при любом освещении. Три светильника на Pin10, Pin11 и Pin12 управляются от пульта через ИК приемник.

Источник: xn--18-6kcdusowgbt1a4b.xn--p1ai


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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.