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

Оглавление статьи: Как научить 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 по ссылке:

https://github.com/z3t0/Arduino-Irremote/archive/master.zip

Загруженный архив нужно распаковать в папку «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 < 700) //Устанавливаем пороговое значение, при котором лампочка будет включаться
digitalWrite(2,HIGH); //Включаем блок реле SRD-12VDC-SL-C
else digitalWrite(2,LOW); // Если показания датчика больше порогового значения, то лампочка не включится или отключится
delay(100); // Устанавливаем короткую задержку
}

Принцип работы этого скетча основан на условном операторе, при котором выполняется условие «s2 < 700». Это условие означает, что при значении датчика меньше 700 лампочка будет включаться, а если значение больше 700, то лампочка отключится. Из примера видно, как легко можно создать адаптивную систему автоматического освещения.

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

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

Рекомендуем к прочтению: подробно рассказываем как подключить датчик движения к Ардуино.

Для этого примера потребуется такое оборудование и ПО:

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

Оборудование с автоматическим включением

Как и в предыдущих примерах, первым делом соберем схему, представленную ниже.

Схема подключения с автоматическим включением

Теперь наберем в Arduino IDE код, представленный ниже, и загрузим его на плату:
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 и компоненты в этом сервисе виртуальные.

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

Видео по теме

Комментарии (7)
Михаил 09.05.2017 / 14:17 0

Где sketch_1? Хотел сыну показать

Ответить
    VashUmnyiDom
    VashUmnyiDom 10.05.2017 / 02:31 2

    Cсылки на sketch_1 и sketch_2 исправили, смотрите в тексте.

    Ответить
Сергей 20.03.2018 / 06:07 0

В скетче “Управляем освещением при помощи датчика освещенности” помоему есть ошибка:
int s2 = ; // Переменная, которая будет хранить информацию, получаемую с датчика
Правильно будет:
int s2 = s1 ; // Переменная, которая будет хранить информацию, получаемую с датчика

Ответить
    VashUmnyiDom
    VashUmnyiDom 31.03.2018 / 00:35 0

    Здравствуйте!

    Исправили: так как значение впоследствии присваивается перед использованием, то можно просто int s2;

    Ответить
      Сергей 02.04.2018 / 15:07 1

      При компиляции скетча программой Arduino будет выскакивать ошибка если оставить просто int s2

      Ответить
        VashUmnyiDom
        VashUmnyiDom 11.05.2018 / 05:55 0

        Сергей, нужно обязательно поставить точку с запятой,
        int s2 // здесь ошибка
        int s2; // здесь правильно
        Приведенные скетчи компилируются без ошибок – проверили.

        Ответить
Евгений 13.10.2018 / 02:24 30

Доброго дня! В этих схемах отделено питания для платы ардуино не нужно?

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

Adblock
detector
Кнопка - вверх