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

Сегодня мы будем связывать Bluetooth-модуль HC-05 с популярным модулем Wi-Fi ESP8266 и управлять светодиодом по беспроводной связи, отправляя команды через Bluetooth. Этот светодиод может быть заменен на реле или устройство переменного тока для создания приложения домашней автоматизации.
Принципиальная схема подключения модуля Bluetooth HC-05 к NodeMCU ESP8266 очень проста и показана далее.


Для ESP8266 необходим внешний модуль Bluetooth, так как он не имеет встроенного Bluetooth, как в ESP32.
В этом проекте мы будем использовать мобильное приложение Serial Bluetooth Terminal. Использовать это приложение очень легко, и для настройки связи требуется всего нескольких шагов. Просто подключите HC-05 к смартфону. Код по умолчанию: «0000» или «1234», но в основном «1234» работает.
Сначала загрузите и установите приложение. Затем перейдите в devices, чтобы найти модуль HC-05. Выберите HC-05 Module в приложении. Если он не найден, проверьте правильность подключения и питания HC-05.


После нажатия на HC-05 он будет подключен. Теперь введите любое сообщение в окне сообщений приложения и отправьте его. Оно будет напечатано в последовательном мониторе Arduino.


Для программирования NodeMCU ESP8266 с использованием Arduino IDE просто подключите его к ноутбуку или ПК с помощью кабеля Micro USB и откройте Arduino IDE. Для этого урока будут использованы аппаратный и программный последовательные интерфейсы. Аппаратный интерфейс будет использоваться для чтения и записи данных в Arduino, а программный интерфейс будет использоваться для связи с HC-05. Код программы взаимодействия ESP8266 и модуля Bluetooth показан далее.
#include <SoftwareSerial.h>
SoftwareSerial btSerial(D2, D3); // прием Rx, передача Tx
int led = D4; // встроеный светодиод NodemCU
int ledState = LOW; // выкл. светодиод
String ledB = "";
unsigned long previousMillis = 0; // millis вместо задержки
const long interval = 500; // мигание после каждых 500 мс
void setup() {
delay(1000);
Serial.begin(9600);
btSerial.begin(9600); // модуль Bluetooth, скорость передачи данных
pinMode(D4, OUTPUT);
Serial.println("Started...");
}
void loop() {
if (btSerial.available() > 0) { // проверим, отправляет ли модуль bluetooth какие-то данные в esp8266
char data = btSerial.read(); // считать данные из HC-05
switch (data)
{
case 'B': // если полученные данные B
ledB = "blink"; // запишем строку
break;
case 'S': // если полученные данные S
ledB = "stop";
break;
default:
break;
}
}
unsigned long currentMillis = millis();
if (ledB == "blink") { // если полученные данные B, запустим мигание
Serial.println("blinking started");
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(led, ledState);
}
}
}
© digitrode.ru