Управляем светодиодом с помощью Arduino, Bluetooth модуля и Android-смартфона

Небольшой проект, в котором вы научитесь управлять светодиодом с помощью Arduino, Bluetooth и Android OS.

Для проекта вам понадобятся:

  • Arduino UNO;
  • 3 резистора на 300Ω;
  • 1 резистор на 150Ω;
  • Светодиод;
  • Коннекторы;
  • Bluetooth модуль (HC-06 или другой);
  • Смартфон на Android;
  • Приложение SPP Bluetooth Apk (в данном примере - unWired Lite);
  • Некоторые навыки программирования на C.

Подключаем HC-06 к Arduino

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

Модуль HC-06 4 подключается к Arduino с помощью 4-х контактов:

RXD

TXD

VCC

GND

HC-06 и Arduino

RXD служит для приема данных от Arduino; TXD - отправляет данные на плату Arduino; VCC - это контакт для источника питания (3.3 В - 6.6 В); GND - земля.

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

Делитель напряжения с R1 = 300Ω:

Vout = R2/(R2+R1) * Vin

3.3 = R2/(R2+300) * 5

3.3*R2 + 990 = 5*R2

R2 = 990/1.7

R2 ~ 600Ω

Если у вас другой резистор:

R2 = (3.3 * R1)/1.7Ω

Подключаем модуль HC-06 к Arduino (смотрите рисунок):

Arduino-------------HC-06

RX-------------------TXD

TX-------------------RXD

+5V-----------------VCC

GND----------------GND

Подключаем HC-06 к Arduino

Скетч для Arduino

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

При использовании android смартфона с соответствующим spp bluetooth apk, команда подается на bluetooth (RX/TX). При этом bluetooth модуль налаживает связь с bluetooth нашего android'а, используя профиль под названием SPP (Serial Port Profile). Он эмулирует подключение по USB порту нашего Arduino и android.

Инициализируем все контакты и переменные.

char command;

String string;

#define led 8

Скорость передачи данных модуля HC-06 по умолчанию равна 9600 baud. Код функции void setup:

void setup()

{

Serial.begin(9600);

pinMode(led, OUTPUT);

}

Void loop:

void loop()

{ if (Serial.available() > 0)

{string = "";} while(Serial.available() > 0)

{ command = ((byte)Serial.read());

if(command == ':')

{

break;

}

else {

string += command;

}

delay(1);

}

if(string == "LO")

{

LEDOn();

}

if(string =="LF")

{

LEDOff();

}

}

В скетче две функции. Их имена говорят сами за себя.

void LEDOn()

{

digitalWrite(led, HIGH);

}

void LEDOff()

{

digitalWrite(led, LOW);

}

Приложение для android UnWired Lite

unWired - это приложение, которое дает возможность подключаться к bluetooth модулю Arduino. Это не единственное подобное приложение, так что можете пользоваться другим, если хотите.

Перед запуском приложения, подключите bluetooth модуль.

Первый экран приложения показан на рисунке ниже. Выберите пункт ‘Dispositivos Pareados’. Должны появится все подключенные к смартфону устройства. Среди этих устройств выбираем bluetooth модуль, который мы подключили до этого.

UnWired

На втором экране (рис. 2) вы будете непосредственно вводить команды для отправки через bluetooth. В нашем случае это две команды - LO для того, чтобы включить светодиод и LF - чтобы выключить светодиод.

UnWired 2

Готово!

Теперь вы знаете как настроить работу bluetooth модуля и arduino и как дистанционно передавать команды плате.

Вы с тем же успехом можете получать данные от Arduino и отображать их в android приложении. Для этого надо просто немного изменить функции в скетче.

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!