Проект ардуино освещение

Проект 13. Автоматическое управление светом

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

Вариант 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 посадочную площадку.
  • Подключаем лампочку через реле, как показано на рисунке.
Код программы:
Алгоритм работы:

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

В коде 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В, через Коннектор с помощью Проводков, как показано на рисунке ниже.
Код программы:
Алгоритм работы:

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

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

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

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

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

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

Источник

Автоматическое освещение комнаты на базе контроллера Аrduino

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

Цель проекта: смонтировать два контура освещения комнаты на втором этаже дома, при условии управления в ручном и автоматическом режиме, при минимальных затратах.

Планирование

В качестве датчика движения выбор пал на пироэлектрический инфракрасный сенсор HC-SR50, в первую очередь из-за большого угла обнаружения, порядка 120 градусов. Более подробно останавливаться на нем не будем, единственное о чем следует сказать так это то, что перемычка на сенсоре установлена в положение H. В этом режиме при каждом срабатывании сенсора на выходе остается логическая единица. По количеству сенсоров всё зависит от самой комнаты, в моём случае двух вполне достаточно.

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

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

Для управления в ручном режиме соберём маленькую плату с двумя тактовыми кнопками для удобства монтажа.

Перемычка JD-Vсс — Vсс убирается, если на катушку реле будет подаваться отдельное питание, как я понял делается это для гальванической развязки. Для переключения реле необходимо входы IN1 или IN2 притягивать к земле.

Подготовка к монтажу

По питанию в моем распоряжение было только напряжение 220 переменного и 12 постоянного тока. Поэтому для питания самого контроллера, реле и сенсоров используется простая схема понижения напряжения до пяти вольт.

Платы нарисованы в программе Sprint-Layout, довольно простые и по сути плата контроллера нужна для того чтобы удобно подключать сигналы.

Платы произведены всеми любимой технологией ЛУТ .

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

Составление скетча

// Проект автоматики освещения.
// Настройка пинов.
#define Sensor_1 10 // Пин первого сенсора НС-SR501.
#define Sensor_2 11 // Пин второго сенсора НС-SR501.
#define D0 3 // Пин датчика освещенности.
int Relay[2] = <8, 9>; // Пины реле.
int Button[2] = <5, 6>; // Пины кнопок.
// Переменные.
boolean Start_Sensor = false; // Переменная отражающая факт срабатывания датчика.
boolean relayEnabled[2] = ; // Состояние реле.
boolean buttonWasUp[2] = ; // Состояние кнопок.
unsigned long previousMillis = 0; /* Переменнтая для хранения
предыдущего времени срабатывания датчика. */
unsigned long activateTime; // Переменная для хранения времени срабатывания реле.
int value = 0; // Временная переменная для таймера.
// Константы.
const int T_hold = 10000; // Время удержания реле при отсутствии движения.
const int T_motion = 200; // Время от начала фиксирования движения до срабатывания реле.

void setup()
<
// Настройка пинов и их начальное состояние.
pinMode(D0, INPUT); // Датчик освещенности — вход.
for (int i = 0; i T_motion)
<
previousMillis = millis();
value++;
>
>
else
<
Start_Sensor = false; // Возвращение в исходное состояние факта срабатывания.
value = 0;
>
if(value >= 10)
<
Start_Sensor = true; // Факт срабатывания датчика.
value = 0;
>
>

Монтаж

Датчики спрятаны в небольшую пластиковую коробку.

Все кабели, за исключением ответвлений к сенсорам, спрятаны в пластиковые короба.

Вид смонтированного центрального щита.

Получившийся проект удовлетворил поставленную цель, как при работе в автоматическом режиме, например при кратковременном нахождении в комнате, так и в ручном режиме при постоянном нахождении в комнате при отсутствии движения.

Во время работы автоматики не было замечено каких-либо отказов, замечаний.

Источник

Подсветка комнаты или кухни на Ардуино с пультом

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

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

Подсветка на ws2812 с ИК пультом и датчиком движения

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

  • Arduino Uno / Arduino Nano;
  • адресная лента ws2812 / ws2811;
  • датчик движения HCSR04;
  • ИК приемник и пульт ДУ;
  • источник питания 5В или 12В;
  • резистор 220 Ом, провода.

Схема сборки данного проекта представлена на картинке ниже, обратите внимание, что для ленты ws2811 потребуется источник питания 12 Вольт, а для ленты ws2812 или ws2815 блок питания на 5 Вольт. Схема подключения адресной ленты и Ардуино при этом остается неизменной. Так же необходимо, чтобы в адресной ленте было четное количество светодиодов для симметричности включения световых эффектов.

Сборка подсветки для ванной комнаты на Ардуино

Для создания эффектов на ws2811 используется библиотека Adafruit_NeoPixel.h, для ИК пульта необходима библиотека IRremote.h, а для записи настроек в память eeprom необходима библиотека EEPROM.h — скачать библиотеки можно здесь. После сборки электрической схемы умной подсветки в комнате на Arduino и ws2812, установите необходимые библиотеки и загрузите следующую программу в плату.

Скетч. Подсветка комнаты или кухни на Ардуино

Пояснения к коду:

  1. после загрузки программы необходимо указать коды от кнопок пульта ДУ — они будут выводиться на мониторе порта Arduino IDE;
  2. также необходимо указать в скетче количество светодиодов в ленте (желательно использовать четное количество светодиодов в подсветке).

Заключение. После первой загрузки программы световые эффекты и цвет ленты будет отображаться некорректно, так как информация с настройками берется из EEPROM Arduino — по умолчанию в ячейках энергонезависимой памяти хранится число 250. Соответственно все переменные будут равны 250 при первой загрузке программы, чтобы это исправить сохраните свои настройки, при помощи ик пульта.

Источник

Как научить Arduino управлять светом

Сейчас на просторах китайских интернет магазинов можно найти различные системы освещения, которыми можно управлять, как с помощью пульта, так и с помощью адаптивных методов управления. Например, на www.aliexpress.com продаются лампочки, которыми можно управлять с помощью пульта. Также там продаются лампочки, которые включаются автоматически при регистрации движения или при фиксации слабой освещенности. Каждому начинающему радиолюбителю будет интересно узнать, по какому принципу работает это умное оборудование. Чтобы разобраться с этой задачей, мы подготовили материал, в котором подробно рассмотрим примеры управления светом с помощью Arduino. Проект Ардуино представляет собой платформу, на которой собираются платы, содержащие на своем борту микроконтроллер. Особенностью этих плат является то, что к ним можно подключать десятки различных компонентов, которыми можно управлять через встроенный микроконтроллер. Для нашего материала мы будем использовать такие компоненты, как ИК-приемник, датчик освещенности и PIR-датчик.

Управляем освещением при помощи ИК-пульта

В этом примере мы рассмотрим управление с помощью обычного пульта управления от телевизора. Для этого примера потребуется такое оборудование и ПО:

  • Arduino UNO — одна из разновидностей плат ардуино;
  • Блок твердотельного реле FOTEK SSR-25DA;
  • ИК-приемник TSOP1xxx;
  • Любой ИК-Пульт от телевизора;
  • Arduino IDE — программное обеспечение для загрузки микрокода в микроконтроллер Arduino;
  • Лампочка, подключаемая к сети 220 вольт.

Первым делом нам нужно установить Arduino IDE. Скачать официальный установщик Arduino IDE можно, перейдя по ссылке www.arduino.cc/en/Main/Software. В нашем случае мы загрузим версию для Windows. Установка достаточно проста и с ней должен справиться любой пользователь. После установки Arduino IDE приступим к непосредственной сборке схемы управления светом. Ниже изображена схема подключения всех компонентов к плате Arduino UNO.

Теперь подключим наш собранный модуль управления светом к компьютеру посредством USB кабеля. Перед запуском Arduino IDE нужно установить модуль IRremote. Загрузить этот модуль можно на GitHub по ссылке:

Загруженный архив нужно распаковать в папку «C:\Program Files\Arduino\libraries», где Arduino IDE хранит все библиотеки. Теперь можно запустить установленную ранее Arduino IDE. В запущенной программе нам нужно ввести код, изображенный ниже.

Скачать файл этого кода для загрузки в скетч можно по ссылке sketch_1.

Этот код нужен для того, чтобы узнать код кнопки, которую передает ИК-пульт при нажатии.

В нашем случае мы будем использовать пульт от телевизора Samsung. Ниже показано изображение используемого ИК-Пульта.

Теперь загрузим наш код в микропроцессор и откроем «Монитор порта». На самом пульте нажмем понравившуюся кнопку и посмотрим на результат в «Мониторе порта». В нашем случае высветился код 16523466. Этот код мы и будем использовать для следующего скетча. Теперь загрузим второй код программы в Arduino IDE. Скачать файл этого кода можно по ссылке sketch_2. Обратите внимание, что в 21 первой строке скетча записан код нашей кнопки. Код вашей кнопки будет совершенно другой. Загрузив этот код в микропроцессор, лампочка изначально не будет гореть. Нажав запрограммированную кнопку, мы ее включим. Отключение лампочки производится нажатием этой же кнопки.

Из примера видно, что сделать систему управления светом на базе Arduino совсем несложно. Также стоит отметить, что для этого примера вы можете использовать практически любой ИК-Пульт. Саму же сборку лучше всего поместить в отдельный блок и разместить рядом с лампочкой. Таким образом, при наведении пульта на лампочку, ее можно будет включать и отключать. Еще хотелось бы отметить, что удобней использовать схему с беспроводным Bluetooth адаптером. Такая схема намного функциональней, поскольку передает сигнал через радиоволну, а управление светом производится через смартфон. Но такая схема будет намного дороже рассмотренной из-за стоимости беспроводного Bluetooth адаптера.

Управляем освещением при помощи датчика освещенности

В этом примере наш блок управления светом будет управлять светом автоматически. Поможет ему в этом датчик освещенности, который будет передавать информацию на микроконтроллер о состоянии текущего показателя освещения. Если освещенность очень низкая, то микроконтроллер будет автоматически включать лампочку, подключенную к сети 220 вольт. Такую систему освещения еще называют адаптивной. Для примера сборки схемы с адаптивным освещением потребуется такое оборудование и ПО:

  • Arduino UNO — одна из разновидностей плат ардуино;
  • Блок реле SRD-12VDC-SL-C;
  • Резистор на 10 кОм;
  • Фоторезистор (выступает в роли датчика освещенности);
  • Arduino IDE — программное обеспечение для загрузки микрокода в микроконтроллер Arduino;
  • Лампочка, подключаемая к сети 220 вольт.

Первым делом соберем схему с помощью этих компонентов изображенную ниже.

Теперь откроем Arduino IDE и внесем в нее такой код:
int s1 = A0; // Выбираем пин для подключения датчика освещенности «Фоторезистора»
int s2; // Переменная, которая будет хранить информацию, получаемую с датчика
void setup() <
Serial.begin(9600); // Устанавливаем последовательный порт для связи
>
void loop() <
// Считываем информацию с датчика:
s2 = analogRead(s1); // Присваиваем значение переменой s2
Serial.println(s2); // Выводим информацию на «Монитор порта» с датчика освещенности
delay(100); // Устанавливаем короткую задержку
>
Этот код не предназначен для включения нашей лампочки. С помощью этого кода мы проверим наш датчик освещенности. Поэтому загрузим этот код в Arduino UNO и откроем «Монитор порта».

В «Мониторе порта» видно, что мы получаем значения с фоторезистора, а это значит, что он нормально функционирует. Теперь пришло время загрузить основной код для автоматического управления светом. Для этого вставьте этот код в Arduino IDE:
int s1 = A0; // Выбираем пин для подключения датчика освещенности «Фоторезистора»
int s2; // Переменная, которая будет хранить информацию, получаемую с датчика
void setup() <
pinMode(2, OUTPUT); // Подключаем второй пин к реле SRD-12VDC-SL-C
Serial.begin(9600); // Устанавливаем последовательный порт для связи
>
void loop() <
// Считываем информацию с датчика:
s2 = analogRead(s1);// Присваиваем значение переменой s2
Serial.println(s2); // Выводим информацию на «Монитор порта» с датчика освещенности
if(s2
Принцип работы этого скетча основан на условном операторе, при котором выполняется условие «s2 int p1 = 8; // Выбираем пин для подключения датчика освещенности «Фоторезистора»
int s1; // Переменная, которая будет хранить информацию, получаемую с датчика
void setup() <
pinMode(2, OUTPUT); // Подключаем второй пин к реле SRD-12VDC-SL-C
Serial.begin(9600); // Устанавливаем последовательный порт для связи
>
void loop() <
s1 = digitalRead(p1); // Считываем информацию с датчика
if (s1 == LOW) < // Условие
Serial.println(«The object does not move»); // Выводим сообщение в «Монитор порта» что объект не найден
digitalWrite(2,LOW); // Отключаем лампочку
>
else <
Serial.println(«The object started moving»); // Выводим сообщение в «Монитор порта» что объект найден
digitalWrite(2,HIGH); //Включаем блок реле SRD-12VDC-SL-C
>
delay(900); // Устанавливаем короткую задержку
>
Принцип работы этой программы детально описан в ее комментариях. Проверить работу датчика можно с помощью «Монитора порта», в котором будут выводиться сообщения «The object started moving» и «The object does not move».

Где купить

Приобрести оборудование для управления светом можно как в специализированном магазине, так и онлайн в Интернет-магазине. Во втором случае, особого внимания заслуживает бюджетный вариант приобретения изделий на сайте Алиэкспресс. Для некоторых видеокамер есть вариант отгрузки со склада в РФ, их можно получить максимально быстро, для этого при заказе выберите «Доставка из Российской Федерации»:

Подводим итог

В этой статье мы рассмотрели три способа управления светом: при помощи датчика движения, фоторезистора и ИК-приемника. Каждый из методов найдет свое применение в различных помещениях и намного упростит управление светом. Также хочется отметить, что вы можете комбинировать эти примеры. Например, можно одновременно использовать датчик приближения и ИК-приемник. Еще хотелось бы напомнить нашим читателям, что все рассмотренные примеры используют прямое подключение к сети 220 В, поэтому будьте предельно осторожны. Если у вас под рукой нет платы Arduino или она еще не дошла из Китая, то мы советуем воспользоваться бесплатным сервисом Autodesk Circuits. Этот сервис представляет собой конструктор с различными компонентами Arduino.

Все платы Arduino и компоненты в этом сервисе виртуальные.

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

Видео по теме

Источник

Adblock
detector