====== Bluetooth - модуль HM-10 ======
===== Описание =====
===== Примеры подключения и использования =====
==== Пример 1. Зажигание светодиода ====
=== Шаг 1. Подготовка ===
**Описание:** Реализуем пример, который будет включать светодиод, по команде, переданной на блютус-модуль.

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

**Что понадобится:**
^ Что нужно                              ^ Количество  ^
| [[https://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart Uno]]  | 1           |
| [[https://smartelements.ru/collection/shildy/product/sensor-shield|Sensor Shield]]  | 1           |
| [[https://smartelements.ru/collection/svyaz/product/bluetooth-modul-hm-10|Bluetooth модуль HM-10]]  | 1           |
| [[https://smartelements.ru/collection/moduli/product/modul-svetodioda-krasnyy|Модуль светодиода (красный)]]  | 1           |
| [[https://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-mama-mama|Провода "мама - мама"]]  | 7           |

**Схема подключения:**
{{ :main:comm:hm-10_uno.png?nolink |}}

=== Шаг 2. Загрузите скетч на контроллер ===

<file Arduino>
#include <SoftwareSerial.h> // подключение библиотеки для эмуляции сериал-порта

SoftwareSerial HM10(2, 3); // создание виртуального сериал соединения на выводах RX = 2, TX = 3
char appData; //
String inData = ""; // переменная для хранения полученных данных

void setup()
{
  Serial.begin(9600); // инициализация сериал соединения
  Serial.println("HM10 serial started at 9600"); // вывод поясняющей надписи
  HM10.begin(9600); // инициализация соединения блютус модуля со скоростью 9600 бод
  pinMode(13, OUTPUT); // конфигурация вывода светодиода

}

void loop()
{
  HM10.listen();  // "прослушивание" порта
  while (HM10.available() > 0) {   // если пришла какая-то информация
    appData = HM10.read(); // чтение полученных данных
    inData = String(appData);  // сохранение данных в строковом формате
    Serial.write(appData); //выведем полученные данные в монитор сериал порта
  }


  if (Serial.available()) { // если что-то пришло в сериал порт
    delay(10); // задержка в 10 мс
    HM10.write(Serial.read()); //отправить это в порт блютус модуля
  }


  if (inData == "1") { // если пришла единица
    Serial.println("LED ON"); // поясняющая надпись в монитор порта
    HM10.println("LED ON"); // поясняющая надпись в блютус модуль
    digitalWrite(13, HIGH); // включить светодиод
    delay(500); // задержка в полсекунды
    digitalWrite(13, LOW); // погасить светодиод
    HM10.println("LED OFF"); // поясняющая надпись в блютус модуль
  }
}
</file>

=== Шаг 3. Установка и настройка приложения ===
После того, как модуль подключен к контроллеру, а контроллер подключен к компьютеру, нам нужно установить приложение для работы с блютус на смартфоне. На примере ОС Android рассмотрим процесс установки приложения.

В магазине приложений найдите приложение serial bluetooth terminal и установите его.
{{ :main:comm:install_app.jpg?nolink&400 |}}

В настройках телефона активируйте Bluetooth соединения.
{{ :main:comm:bt_activating.jpg?nolink&400 |}}

Откройте приложение Serial Bluetooth Terminal, войдите в основное меню.
{{ :main:comm:btapp_main_menu.jpg?nolink&400 |}}

Выберите раздел Devices, перейдите на вкладку Bluetooth LE и нажмите Scan.
{{ :main:comm:btapp_scan.jpg?nolink&400 |}}

После сканирования устройств, выберите нужное устройство. (Если Вы до этого не меняли его имени, то имя должно содержать фразу "HM10"). 
{{ :main:comm:btapp_device_select.jpg?nolink&400 |}}

При выборе устройства, приложение снова откроет начальную страницу (терминал) и отобразит состояние подключения.
{{ :main:comm:btapp_just_connected.jpg?nolink&400 |}}

Далее, в поле ввода, наберите с клавиатуры цифру 1, и нажмите кнопку отправить. После отправки, сообщение отобразится в терминале. На контроллере загорится встроенный светодиод на полсекунды. В терминал выведется информация о включении и отключении светодиода.
{{ :main:comm:btapp_send_1.jpg?nolink&400 |}}

=== Шаг 4. Результат ===
Наблюдайте как по команде со смартфона включается и отключается светодиод на модуле.