Содержание
Bluetooth Modülünü Kullanmaya Başlamadan Önce Şunları Öğrenelim
Bluetooth, cep telefonlarımızdan kulaklıklarımıza kadar neredeyse kablosuz iletişim yeteneğine sahip tüm cihazlarda var olan bir teknolojidir. Arduino projelerimize de bluetooth ekleyebilmemiz için piyasada çeşitli modüller bulunmaktadır. Bunlardan en uygun fiyatlı ve en kullanışlı olanı HC-05 modelidir.
Arduino İle Bluetooth TX ve RX Bağlatılarını Yaparken Neye Dikkat Etmeliyim?
Bluetooth modülü Arduino ile TX/RX protokolü ile birbirine bağlanır. RX “Receive” yani almak, TX ise “Transmit” yani vermek kelimelerinden gelmektedir. Yani kısaca bir alıcı/verici protokolüdür. Bağlantıda önemli olan nokta ise Arduino’nun TX pini Bluetooth modülünün RX pinine bağlanmalı, Arduino’nun RX pini de Bluetooth modülünün TX pinine çapraz şekilde bağlanmalıdır.
HC06 ve HC05 arasında ne gibi farklılıklar var?
HC-05 görünüm olarak HC-06 modülü ile neredeyse tamamen aynıdır. Temelde aynı işlevi görseler de HC-05 modelini kullanarak iki adet HC-05 veya HC-06 modelleri arasında doğrudan iletişim kurulabilmektedir. HC-05’i ayırt etmek için basit bir yöntem vardır: çoğu HC-05 modülün üzerinde ufak bir buton bulunmaktadır. HC-06’da ise bu buton mevcut değildir.
HC05 ve HC06 Bluetooth Modüllerinin Konfigürasyonunu Yapalım
Modülümüzün konfigürasyonunu kolay bir şekilde yapabilmek için aşağıdaki şemaya göre bağlantı yapmamız ve 5V ve GND pinlerini Arduino’ya takarken modül üzerindeki butonu basılı tutmamız gerekir.
Konfigürasyon için kod:
#include <softwareserial.h> SoftwareSerial mySerial(10, 11); // RX,TX String isim = "Arduino UNO"; int sifre = 1234; String uart = "9600,0,0"; void setup() { Serial.begin(9600); Serial.println("HC-05 Modul Ayarlaniyor..."); Serial.println("Lutfen 5 sn icinde HC-05 modulun uzerindeki butona basili tutarak baglanti yapiniz."); mySerial.begin(38400); delay(5000); mySerial.print("AT+NAME="); mySerial.println(isim); Serial.print("Isim ayarlandi: "); Serial.println(isim); delay(1000); mySerial.print("AT+PSWD="); mySerial.println(sifre); Serial.print("Sifre ayarlandi: "); Serial.println(sifre); delay(1000); mySerial.print("AT+UART="); mySerial.println(uart); Serial.print("Baud rate ayarlandi: "); Serial.println(uart); delay(2000); Serial.println("Islem tamamlandi."); } void loop() { }
Bluetooth Modülü Nasıl Windows Bilgisayara Tanıtabilirim?
Sıra geldi bluetooth modülümüzü Windows bilgisayarımıza tanıtmaya. Sistem tepsisinde bulunan “Bluetooth Aygıtları” simgesine çift tıklayarak açıyoruz
Arduino’muza bluetooth modülünün takılı olduğundan ve modülün iletişim modunda olduğundan emin oluyoruz (LED’in hızlıca yanıp sönüyor olması gerek). Bilgisayarımız tarama yaparak bluetooth modülümüzü buluyor. Burada, isim olarak konfigürasyon programında yazdığımızı ismi görmeliyiz.
Eşleştirme işlemini başlatınca, bu sefer bilgisayarımız modüle verdiğimiz şifreyi soracak.
Bilgisayarımız aygıt yükleme işlemini tamamladıktan sonra “Denetim Masası”ndan “Aygıtlar ve Yazıcılar” ı seçerek listenin en altında bulunan bluetooth modülümüze sağ tıklıyor ve “Özellikler”i seçiyoruz. Buradaki pencereden “Donanım”a gelerek burada yazılı olan COM portunun numarasını öğreniyoruz. Benim bilgisayarımda COM5 olarak görünüyor.
Arduino programını açarak “Ayarlar” menüsünden portu değiştirerek bluetooth modülümüze bağlanacak şekilde ayarlıyoruz.
Arduino programından “Seri Port Ekranı”nı açarak baud rate’i 9600 olarak seçiyor ve istediğimiz komutu giriyoruz. q, w, e ve r tuşları sırasıyla 7, 6, 5 ve 4 numaralı pinlere bağlı LED’leri yakar veya söndürür. Z tuşu tüm LED’leri söndürür ve X tuşu tüm LED’leri yakar.
Подключение Bluetooth-модуля к Arduino
Так теперь нам нужно подключить нашу Arduino с Bluetooth. Если на Arduino нет вывода с 3.3В, а только 5В то нужен будет поставить стабилизатор чтобы снизить питание. Назначение выводов HC-05 легко найти в интернете. Для использования рекомендуем вам сделать плату с выведенными линиями питания, Rx и Tx. Подключение к Arduino необходимо производить в следующем порядке:
- вывод Arduino 3.3В или (5В через стабилизатор!) — к 12 пину модуля Bluetooth
- вывод Arduino GND — к 13 пину модуля Bluetooth
- вывод Arduino TX — к 2 пину модуля RX Bluetooth
- вывод Arduino RX — к 1 пину модуля TX Bluetooth
После подключения необходимо проверить работоспособность Bluetooth модуля. Подключим Светодиод к 12 выводу Arduino и загрузим на плату следующий скетч:
Char incomingByte; // входящие данные
int LED = 12; // LED подключен к 12 пину
void setup() {
Serial.begin(9600); // инициализация порта
pinMode(LED, OUTPUT); //Устанавливаем 12 вывод как выход
Serial.println(«Press 1 to LED ON or 0 to LED OFF…»);
}
void loop() {
if (Serial.available() > 0) { //если пришли данные
incomingByte = Serial.read(); // считываем байт
if(incomingByte == «0»)
{
digitalWrite(LED, LOW); // если 1, то выключаем LED
Serial.println(«LED OFF. Press 1 to LED ON!»); // и выводим обратно сообщение
}
if(incomingByte == «1») {
digitalWrite(LED, HIGH); // если 0, то включаем LED
Serial.println(«LED ON. Press 0 to LED OFF!»);
}
}
}
SoftwareSerial
В качестве примера подключим модуль по второй схеме (на пины D2 и D3) и загрузим простую программу, которая будет пересылать данные с программного Serial (на пинах D2 и D3, Bluetooth) на аппаратный (который мы можем смотреть через монитор порта в Arduino IDE):
#include <SoftwareSerial.h> SoftwareSerial mySerial(3, 2); // RX, TX void setup() { Serial.begin(9600); mySerial.begin(9600); } void loop() { if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } }
Откроем терминал и монитор порта и можем общаться с компьютером, Arduino выступает в роли посредника и перекидывает данные с Bluetooth на USB и наоборот:
Точно так же можно использовать SoftwareSerial для программ и приложений, если аппаратный UART на Arduino нужен для других целей.
Serial Bluetooth Terminal
Теперь нам понадобиться клиент для Android, который сможет подключиться к последовательному порту через bluetooth. Найдем такое приложение в Play Market.
Найдем наш модуль в меню devices. И попробуем к нему подключиться.
Наше устройство на экране поиска в Serial Bluetooth Terminal
Попробуем подключиться, и если все правильно, то увидим сообщение Connected.
Подключились к нашему модулю
И наконец, отправим на наш модуль команды. На которые должна среагировать программа в Ардуино и изменить цвет rgb светодиода.
Задаем белый цвет rgb светодиода через приложение
Каждая введенная цифра отвечает за свой цвет на rgb светодиоде. Как вы помните, цвета переключаются в цикле. Если на два цвета отправить 0, а на последний 250, то гореть должен только один цвет.
Цвет изменяется по bluetooth
Создание проекта для ATmega8 в программной среде CodeVision
Аналогичные операции можно произвести и в других программных средах для программирования микроконтроллеров AVR, например, Atmel Studio.
После установки CodeVision вам необходимо выполнить следующие ниже перечисленные шаги чтобы создать проект и написать программу.
Шаг 1. Создайте новый проект в CodeVision, выбрав пункт меню File -> New -> Project. В появившемся диалогом окне нажмите Yes.
Шаг 2. Откроется CodeWizard. Кликните в ней на первой опции, то есть AT90, затем нажмите OK.
Шаг 3. Выберите свой микроконтроллер, в нашем случае им будет Atmega8.
Шаг 4. Кликните на Ports (порты). В нашем проекте мы будем использовать Port C4 и C5 для управления светодиодом. Таким образом, необходимо сконфигурировать биты 4 и 5 как выходные кликнув на них, как показано на рисунке:
Шаг 5. Мы будем использовать универсальный асинхронный последовательный приемопередатчик (USART) для Rx и Tx (приема и передачи данных). Поэтому необходимо выбрать настройки USART, в них кликнуть на настройки приема и оставить их по умолчанию.
Шаг 6. Выберите Program -> Generate, Save and Exit. Теперь более половины вашей работы по программированию микроконтроллера Atmega8 можно считать выполненной.
Шаг 7. Создайте новую папку на рабочем столе чтобы записывать туда наши файлы.
У нас будет 3 диалоговых окна (будут появляться последовательно одно за другим) для сохранения наших файлов.
Сделайте то же самое (что и на представленном рисунке) с двумя другими диалоговыми окнами – то есть сохраните предлагаемые ими файлы.
После этого рабочая область программы будет выглядеть следующим образом:
Теперь большая часть работы по программированию микроконтроллера Atmega8 нами выполнена с использованием такой удобной программной среды как CodeVision. Но ели вы не хотите использовать данную программную среду, то вы можете запрограммировать работу с последовательным портом микроконтроллера вручную по аналогии с последовательностью действий в таких статьях на нашем сайте как:
- взаимодействие двух микроконтроллеров AVR ATmega8 через UART;
- связь AVR ATmega8 и Arduino Uno через универсальный асинхронный приемопередатчик (UART)
Установка приложения Bluino Loader
Далее нам нужно установить приложение Bluino Loader из Google Play Store.
Первое приложение, которое вам нужно знать — это «Bluino Loader» для Andorid 4.0 или выше с доступным соединением Bluetooth. Вы можете скачать или установить его из магазина Google Play:
Bluino Loader — версия для Arduino IDE
или
Pro-версия для поддержки разработчика Bluino Loader Pro для Arduino IDE
Это приложение предназначено для работы с Arduino Uno, вы можете писать, редактировать и загружать эскизы в Arduino uno по bluetooth HC-05. Приложение легкое для понимания, как Arduino IDE, есть много примеров эскиза, а также вы можете добавить некоторые библиотеки, просто скопируйте папку библиотеки в папку BluinoLoader / libraries.
Вы можете изменить тему цвета редактора, размера текста и многих функций. Если вы хотите получить функцию Serial Monitor, удалить рекламу и иметь возможность сканировать любое имя bluetooth (не только Bluino # …), вы можете купить PRO-версию.
Загрузка эскиза работает очень хорошо по Bluetooth. Так что можно поставить этому приложению оценку 4 из 5.
Как передаются данные с помощью Bluetooth?
Bluetooth использует полосу частот ISM (Industrial, Scientific and Medical Band) в диапазоне от 2,402 до 2,480 Ггц. В этом интервале доступно до 79 каналов. Каждый из них имеет ширину полосы частот равную 1 Мгц. Диапазон частот 2,4 Ггц, очень близкий к 2,402 Ггц используется связь Wi-Fi, совместимую со стандартом IEEE 802.11.
Bluetooth поддерживает функции изменения частоты «на лету» (FHSS), благодаря которой в течение секунды каналы могут быть изменены 1600 раз. Эти изменения, а также передача небольших пакетов данных приводят к тому, что Bluetooth-соединения остаются стабильны.
List of other recommended Arduino Bluetooth modules
Now that I’ve gone through the above Arduino Bluetooth tutorial, here’s a list of other recommended Arduino Bluetooth modules to try! They are all Grove compatible!
Grove compatible?
Grove system is Seeed very own initiative, mainly aimed at helping users like yourself to easily use different modules, sensors, and more through our plug and play system!
We currently already hold more than 200 Grove modules, including other modules/sensor types for you to choose from!
Don’t believe how easy pairing is made possible with Grove? Below shows a general Arduino Bluetooth module vs one of our Grove – Bluetooth Modules:
- Typical Arduino Bluetooth pairing circuit
- With Grove Bluetooth module
Like how simple and less messy it is?
All you need is a Grove Base Shield alongside your Arduino and you’re good to go!
Ok, now let us start with our list of Arduino Bluetooth Modules and Shields!
1. Bluetooth V4.0 option: Grove – Blueseeed (HM11)
The Grove – Blueseeed LE (HM11) is a Low Energy Bluetooth module that utilizes an HM11 with capabilities described as the one above in its datasheet. It can be used with your Arduino board alongside the base shield similar to the earlier tutorial!
With support for a BLE ComAssistant APK, this Bluetooth module can easily communicate with your phone without pairing!
It can be set via AT commands directly as well!
Applicable in many conditions such as robot controls or remote control equipment, this Arduino Bluetooth Module is suitable for both beginners and avid tinkerers!
Interested to find out more?
We’ve provided an easy and convenient command set alongside an Arduino pairing tutorial on our product page!
2) Grove – Serial Blueseeed (CSR BC417)
Looking for an option that rivals the HC-06 Bluetooth Module? The Grove – Serial Blueseeed (CSR BC417) not only matches the Bluetooth V2.0 and hopping spread spectrum technique, but it supports a higher transmission speed and ease of pairing!
When planning to use the HC-06 Bluetooth Module, you have to go through the tedious way of converting voltages, dealing with voltage dividers and electrical circuits which is not apparent on the Grove – Serial Blueseeed!
Thanks to our Grove system, all you need to pair the Grove – Serial Blueseeed with Arduino are plug-and-play Grove cables!
Apart from its ease of pairing, it features a selectable baud rate and a within 30min auto-reconnect when disconnected feature as well!
Interested to find out more?
We’ve provided an easy and convenient command set alongside an Arduino pairing tutorial on our product page!
3) Arduino Bluetooth Shield option: Blueseeed Shield V2 (HM01)
Looking for an Arduino Bluetooth shield option instead? Here’s the first recommended option!
Based on the HM01 Bluetooth module, it’s a low cost and easy to use option with Bluetooth 2.0 technology and integrated Grove ports for you to install our plethora of Grove Modules!
Here are its features and specifications:
- Seeeduino/Arduino compatible
- Up to 10m communication distance in house without obstacle
- A full set of configuration commands
- UART interface (TTL) with programmable baud rate
- On board PCB Antenna
- Input Voltage: 3.3V
- Baudrate: 9600, 19200, 38400, 57600, 115200, 230400, 460800
- Default Baud rate: 9600, Data bits: 8, Stop bit: 1, Parity: No parity
- Default PINCODE:”1234”
Interested to find out more?
We’ve provided an Arduino and Andriod pairing tutorial on our product page!
4) HM11 Shield Option: Seeed Blueseeed Shield (HM11)
Like what you saw about the HM11 Arduino Bluetooth module earlier with the first recommendation? This is a shield version; more functions, and even easier connectivity!
Since it’s packed with exactly what you’ll get from the HM11 module; Bluetooth V4.0, 2.4Ghz band, etc., I’ll just cover its specialties!
For that, we’ll take a look into its hardware:
- HM-11 module
- Signal lamp: Lamp will blink if BLE is not connected, but the lamp will keep lighting after BLE has been connected
- Grove connectors: Two Grove connectors for convenient plugging of Grove products onto the board
- Hard or Softserial port: You can choose two of seven digital pins as the communication channel, just plug the jumpers into the headers
- Reserved pinouts from HM-11: There are reserved pinouts from the HM-11 module, such as CTS1, RTS1, and PIO2, etc.
- Reset Button: For reset of the shield, doesn’t affect the mainboard even if its plugged in
Note: This shield is only best compatible with the following boards:
- Arduino Uno/Seeeduino v4.2
- Arduino Leonardo/Seeeduino Lite
Interested to find out more?
We’ve provided an Arduino pairing tutorial on our product page!
Подключение Bluetooth JY-MCU к Arduino Mega 2560
Подключение довольно простое.
Официальная схема подключения:
- TXT на JY-MCU подключаем к RX (0) на Arduino
- RXD на JY-MCU подключаем к TX (1) на Arduino
При таком варианте подключения придется каждый раз отключать питание модуля Bluetooth перед загрузкой скетча. Не забывайте про это.
Меня такой вариант не устраивает, поэтому я решил использовать дискретные порты с поддержкой Serial.
Неофициальная схема подключения:
- VCC на JY-MCU подключаем к +5В Arduino
- GND на JY-MCU подключаем к GND Arduino
- TXT на JY-MCU подключаем к дискретному PIN 50 на Arduino
- RXD на JY-MCU подключаем к дискретному PIN 51 на Arduino
Вот теперь можно загружать скетчи без отключения питания модуля Bluetooth.
Чтобы закрепить Bluetooth, я решил использовать плату Proto Shield и миниатюрную беспаечную макетную плату. К ней в будущем и буду подключать остальное оборудование, элементы управления и индикации.
Немного теории
Здесь я приведу несколько основных терминов, которые необходимы нам для воплощения задачи (о ней мы поговорим немного позже) в жизнь.
Bluetooth
Стандарт беспроводной радиосвязи, связывающий на коротком расстоянии различные типы устройств. Для управления железками через Web Bluetooth API нам потребуется Bluetooth v4.0.
Сервисы
Внутри bluetooth-устройства есть сервисы. Сам по себе сервис — это коллекция характеристик и связей с другими сервисами. У каждого сервиса есть свои UID и имя. Зачастую будут попадаться “Unknown services”. Это связано с тем, что количество устройств и вариантов их использования велико.
Характеристики
Внутри каждого сервиса есть характеристики, в которые можно писать, считывать их, а также подписаться на них. Характеристика также имеет свой UID.
Характеристики Bluetooth модуля HC-06 / HC-05
Bluetooth является сегодня одним из самых популярных типов связи для коротких дистанций, которым пользуются большинство бытовых приборов и электронных устройств — наушники, компьютерные клавиатуры и мышки и другие гаджеты. В робототехнике Bluetooth модуль используют для управления различных устройств на Arduino NANO, например, управление машинкой или катером со смартфона.
HC-05/06 Bluetooth модуль распиновка
Оба устройства построены на чипе CSR BC417, который поддерживает радиосигнал по протоколу Bluetooth со скоростью до 3 Мбит/сек. На самой плате находится антенна из дорожки в виде змейки, обеспечивающая дальность связи до 10 метров. Главным преимуществом можно назвать устойчивость к широкополосным помехам, а значит несколько устройств могут общаться между собой, не мешая друг другу.
Скетч для управления Ардуино через блютуз со смартфона на Android ничем не отличается от скетча, который применяется для управления Ардуино с компьютера. Так как в обоих случаях микроконтроллер будет получать данные по протоколу UART (универсальный асинхронный приемопередатчик) — самый первый и наиболее распространенный сегодня физический протокол передачи данных.
Исходный код программы (скетча)
Arduino
/* Sending Sensor Data to Nordic BLE android app by CircuitDigest(http://www.circuitdigest.com/)
works with nRF24L01. and the works for Nordic’s
It reads temperature from a DHT11 and sends it via BTLE.
Works with Nordic Semiconductor apps such as
«nRF Connect for Mobile» and «nRF Temp 2.0 for BLE»
Pin Mapping:
GND -> GND on the Arduino
VCC -> 3.3v on the Arduino
CE -> PIN 9 on the Arduino
CSN -> PIN 10 on the Arduino
SCK -> PIN 13 on the Arduino Uno
MOSI -> PIN 11 on the Arduino Uno
MISO -> PIN 12 on the Arduino Uno
IRQ -> not used
*/
#include <SPI.h>
#include <RF24.h>
#include <BTLE.h>
#include <DHT.h> // dht11 temperature and humidity sensor library
#define DHTPIN 4 // контакт, к которому подключен датчик dht11
#define DHTTYPE DHT11 // select dht type as DHT 11 or DHT22
DHT dht(DHTPIN, DHTTYPE);
RF24 radio(9, 10); // CE, CSN
BTLE btle(&radio);
void setup() {
Serial.begin(9600);
delay(1000);
Serial.print(«BLE and DHT Starting… «);
Serial.println(«Send Temperature Data over BTLE»);
dht.begin(); // initialise DHT11 sensor
btle.begin(«CD Temp»); // 8 chars max (максимум 8 символов)
Serial.println(«Successfully Started»);
}
void loop() {
float temp = dht.readTemperature(); //считываем данные температуры
if (isnan(h) || isnan(t)) { // Check if any reads failed and exit early (to try again).
Serial.println(F(«Failed to read from DHT sensor!»));
return;
}
Serial.print(» Temperature: «); Serial.print(t); Serial.println(«Â°C «);
nrf_service_data buf;
buf.service_uuid = NRF_TEMPERATURE_SERVICE_UUID;
buf.value = BTLE::to_nRF_Float(temp);
if (!btle.advertise(0x16, &buf, sizeof(buf))) {
Serial.println(«BTLE advertisement failed..!»);
}
btle.hopChannel();
delay(2000);
}
1 |
/* Sending Sensor Data to Nordic BLE android app by CircuitDigest(http://www.circuitdigest.com/) DHTdht(DHTPIN,DHTTYPE); RF24radio(9,10);// CE, CSN BTLEbtle(&radio); voidsetup(){ Serial.begin(9600); delay(1000); Serial.print(«BLE and DHT Starting… «); Serial.println(«Send Temperature Data over BTLE»); dht.begin();// initialise DHT11 sensor btle.begin(«CD Temp»);// 8 chars max (максимум 8 символов) Serial.println(«Successfully Started»); } voidloop(){ floattemp=dht.readTemperature();//считываем данные температуры if(isnan(h)||isnan(t)){// Check if any reads failed and exit early (to try again). Serial.println(F(«Failed to read from DHT sensor!»)); return; } Serial.print(» Temperature: «);Serial.print(t);Serial.println(«Â°C «); nrf_service_databuf; buf.service_uuid=NRF_TEMPERATURE_SERVICE_UUID; buf.value=BTLE::to_nRF_Float(temp); if(!btle.advertise(0x16,&buf,sizeof(buf))){ Serial.println(«BTLE advertisement failed..!»); } btle.hopChannel(); delay(2000); } |
Как включить Bluetooth с Windows 10
С каждой новой версией Windows, Microsoft делает процесс подключения различных периферийных устройств к этим беспроводным технологиям всё проще и проще. Блютуз на ноутбуке — как включить его в Windows 10?
Через параметры:
Запустить блютуз в Виндовс 10 можно разными способами. Давайте рассмотрим самый простой и быстрый, с помощью вкладки параметры компьютера.
Нажимаем на «Пуск», затем «Параметры» далее переходим в раздел «Устройства».
Вы увидите вкладку «Bluetooth» и ползунок, который необходимо передвинуть, тем самым включить или выключить блютуз. Начнется поиск устройств которые доступны к подключению.
Из появившегося списка выберите то устройство которое вам необходимо, для того чтобы началась синхронизация.
Через Центр действий:
Посмотрите справа от даты и времени на панели задач. В качестве небольшого окна сообщений отображается значок. Нажмите на него, чтобы открыть Центр действий, где видны многочисленные быстрые настройки, такие как сеть (Wi-Fi), режим самолета и другое. Также есть кнопка переключения, которая показывает имя подключенного или не подключенного устройства. Щелкнув по нему, можно включить bluetooth на ноутбуке Windows 10.
Подключение Bluetooth JY-MCU к Arduino Mega 2560
Подключение довольно простое.
Официальная схема подключения:
- VCC на JY-MCU подключаем к +5В Arduino
- GND на JY-MCU подключаем к GND Arduino
- TXT на JY-MCU подключаем к RX (0) на Arduino
- RXD на JY-MCU подключаем к TX (1) на Arduino
При таком варианте подключения придется каждый раз отключать питание модуля Bluetooth перед загрузкой скетча. Не забывайте про это.
Меня такой вариант не устраивает, поэтому я решил использовать дискретные порты с поддержкой Serial.
Неофициальная схема подключения:
- VCC на JY-MCU подключаем к +5В Arduino
- GND на JY-MCU подключаем к GND Arduino
- TXT на JY-MCU подключаем к дискретному PIN 50 на Arduino
- RXD на JY-MCU подключаем к дискретному PIN 51 на Arduino
Вот теперь можно загружать скетчи без отключения питания модуля Bluetooth.
Чтобы закрепить Bluetooth, я решил использовать плату Proto Shield и миниатюрную беспаечную макетную плату. К ней в будущем и буду подключать остальное оборудование, элементы управления и индикации.
Работа проекта
Шаг 1. Соберите схему, приведенную на рисунке выше. Перед загрузкой кода программы в плату Arduino отсоедините контакты Rx и Tx. После загрузки программы снова их подсоедините.
Шаг 2. Скачайте по приведенной в начале статье ссылки приложение для смартфона под названием “Arduino Bluetooth Voice Controller”. Либо вы непосредственно можете скачать его со своего смартфона по его названию.
Шаг 3. Запустите скачанное приложение, у вас на смартфоне появится его экран, показанный на приведенном ниже рисунке. Кликните на “connect to Bluetooth device” (соединиться с Bluetooth устройством), выберите после этого свой Bluetooth модуль и затем проверьте подсоединился ли он к приложению или нет. Затем кликните на иконку микрофона и после этого вы можете передавать голосовые команды Bluetooth модулю HC-06.
Примечание: когда вы будете подключаться к Bluetooth модулю HC-06 в первый вам необходимо будет ввести пароль для подключения к модулю – используйте в качестве пароля 0000 или 1234.
Шаг 4. Передавая голосовые команды Bluetooth модулю HC-06, который затем транслирует их по последовательному порту связи плате Arduino, которая выполняет принятую команду по включению/выключению светодиодов. Список реализованных в программе команд и действия, которые при их поступлении следует выполнить, представлен в следующей таблице.
№ п/п | Команда | Действие |
1 | all LED turn on | включить оба светодиода |
2 | all LED turn off | выключить оба светодиода |
3 | turn on Red LED | включить красный светодиод |
4 | turn on green LED | включить зеленый светодиод |
5 | turn off red LED | выключить красный светодиод |
6 | turn off green LED | выключить зеленый светодиод |
Аналогичным образом, изменяя код программы, вы можете добавить в этот проект любые другие команды и, соответственно, добавить в схему любые другие устройства (электрическая лампочка, телевизор, кондиционер и т.д.), которыми вы хотите управлять с помощью голоса.
Часть 1. Соединение с компьютером (WIN7)
Если в вашем компьютере нет встроенного блютуза, то можно воспользоваться . Найти его в салонах связи или на радио рынках не составит труда.
После установки драйверов на блютуз можно приступать к работе.
.
Действие 1
Идем в панель управления, щелкаем на иконку блютуза и выбираем «Показать устройства Bluetooth»
Через некоторое время компьютер произведет поиск и вы увидите ваш модуль (У вашего модуля может быть другое имя).
Выбираем второй вариант — «Введите код образования пары устройства»
Для HC-06 этот код 1234
Завершается все такой картиной.
А за ним еще одно
Первый этап настройки завершен
В случае, если вы забудете каким COM портом у вас определился блютуз, это всегда можно посмотреть выполнив следующие действия:
Действия
P.S. Или посмотреть в диспетчере устройств
. Действие 2
Для передачи данных можно использовать любой терминал. Я использовал простой и бесплатный «Termite «.
В качестве примера мы будем изменять состояние встроенного на плату Arduino светодиода «LED 13». Включаться он будет при приеме символа «W», а отключаться при «S». Приведенный ниже скетч нужно залить в плату Arduino. При заливке в плату необходимо отсоединить питание от блютуз модуля
, после заливки снова подсоединить.
пример программного кода:
setup
Serial
loop
Serial
Serial
// При символе «W» включаем светодиод
// При символе «S» выключаем светодиод
Termite
В настройках выбираем наш порт, скорость (9600).
Также модуль можно проверить и без Arduino просто замкнув выводы TX и RX. Termite отправляемые символы отмечает синим цветом, полученные зелеными. Т.е. если при закороченных выводах мы отправили и нам пришло тоже самое — значит что модуль работает исправно. На фото ниже это и продемонстрировано.