Урок №19. Система умного дома.

На данном уроке мы предлагаем познакомится с двумя классическими методами дистанционного управления проектом,а именно bluetooth и ИК.После внимательного ознакомления,можно приступать к выполнению следующего урока

## Bluetooth

Bluetooth — это один из самых распространенных типов связи для коротких дистанций, которым пользуются большинство современных электронных устройств. Телефонные гарнитуры, наушники, клавиатуры и мышки, принтеры и т.д.

Подключение к Arduino:

 Pin 0 (RX)
 GND
 5V

**Особенность**

ПЕРЕД ЗАГРУЗКОЙ ПРОГРАММЫ НА АРДУИНО,НЕОБХОДИМО ОТКЛЮЧАТЬ BLUETOOTH МОДУЛЬ,ИНАЧЕ ЗАГРУЗКА БУДЕТ НЕВОЗМОЖНА

**Программирование bluetooth-модуля аналогично обычному Serial()**

 Для управления с телефона

1. Включаем Bluetooth на телефоне и ищем новые устройства
2. Находим в списке расстройств «***HC-06″***и подключаемся к нему.
3. Телефон спросит пин-код. необходимо ввести «***1234***» или «***0000***«
4. Скачать программу bluetooth terminal

## ИК приемник

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

**Особенность**
Можно использовать любой ИК-пульт ,необходимо каждую клавишу рассмотреть в Serial мониторе и на основании полученного кода писать условия

```
#include <IRremote.h> // подключаем библиотеку для IR приемника
 IRrecv irrecv(A0); // указываем пин, к которому подключен IR приемник
 decode_results results;
 void setup() // процедура setup{
   irrecv.enableIRIn();  // запускаем прием инфракрасного сигнала
   pinMode(A0, INPUT); // пин A0 будет входом (англ. «intput»)
   Serial.begin(9600); // подключаем монитор порта
 }
 void loop() // процедура loop
 {
   if (irrecv.decode(&results)) // если данные пришли выполняем команды
   {
     Serial.println(results.value); // отправляем полученные данные на порт
  // !!!В Мониторе порта выводится страшный код,на его основе СОЗДАЮТСЯ УСЛОВИЯ И СОБЫТИЯ!!!
     irrecv.resume(); // принимаем следующий сигнал на ИК приемнике
   }
 }

```

**Пример.Управляем светодиодом с помощью ИК-пульта**

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

* FFA857 — увеличение громкости;
* FFE01F — уменьшение громкости.

В качестве светодиода, используем встроенный светодиод на выводе №13, так что схема подключения останется прежней. Итак, программа:

```
#include "IRremote.h"

IRrecv irrecv(A0); // указываем вывод, к которому подключен приемник

decode_results results;

void setup() {
  irrecv.enableIRIn(); // запускаем прием
}

void loop() {
  if ( irrecv.decode( &results )) { // если данные пришли
    switch ( results.value ) {
    case 0xFFA857:
        digitalWrite( 13, HIGH );
        break;
    case 0xFFE01F:
        digitalWrite( 13, LOW );
        break;
    }
    irrecv.resume(); // принимаем следующую команду
  }
}

```

Загружаем на Ардуино и тестируем. Жмем **vol+** — светодиод зажигается. Жмем **vol-** — гаснет. Теперь, зная как это все работает, можно вместо светодиода управлять двигателями робота, или другими самодельными микроэлектронными устройствами!

Дополнительные популярные способы обмена информацией с ардуино:

1)Веб-сервер

2)С помощью смс(ГСМ)