- Необходимые компоненты
- Схема модуля Bluetooth ESP8266 HC-05
- Модуль Bluetooth HC-05
- Использование последовательного терминала Bluetooth (приложение для Android)
- Программирование NodeMCU ESP8266 для интерфейса Bluetooth
Сегодня Bluetooth стал неотъемлемой частью цифровых устройств и встроен в большинство устройств, таких как смартфоны, ноутбуки, ПК, камеры, часы, фитнес-браслеты и многие другие. Bluetooth всегда был доминирующим протоколом в беспроводной связи с момента его открытия. Хотя технология Bluetooth, по сути, представляет собой систему замены кабеля, она также использует универсальный мост к существующим сетям передачи данных и специальный механизм подключения для нескольких устройств в различных конфигурациях. Мы использовали модуль Bluetooth HC05 и HC06 со многими другими микроконтроллерами, чтобы обеспечить их беспроводную связь:
- Взаимодействие Bluetooth HC-05 с STM32F103C8 Blue Pill: контрольный светодиод
- Взаимодействие модуля Bluetooth HC-05 с микроконтроллером AVR
- Робот, управляемый Android с использованием микроконтроллера 8051
- Управление GPIO Raspberry Pi с помощью приложения Android через Bluetooth
- Игрушечная машинка с управлением по Bluetooth и Arduino
Сегодня мы соединим модуль Bluetooth HC-05 с популярным модулем Wi-Fi ESP8266 и будем управлять светодиодом по беспроводной сети, отправляя команды через Bluetooth. Этот светодиод можно заменить реле и устройством переменного тока для создания приложения домашней автоматизации.
Необходимые компоненты
Оборудование:
- NodeMCU ESP8266
- Модуль Bluetooth HC-05
Программного обеспечения:
- IDE Arduino
- Последовательный терминал Bluetooth (приложение для Android): для мониторинга данных Bluetooth на смартфоне.
Схема модуля Bluetooth ESP8266 HC-05
Принципиальная схема подключения Bluetooth-модуля HC-05 к NodeMCU ESP8266 очень проста и представлена ниже:
Для ESP8266 необходим внешний модуль Bluetooth, так как он не имеет встроенного Bluetooth, такого как ESP32. ESP32 имеет встроенный Bluetooth с низким энергопотреблением (BLE) и классический Bluetooth, по которым мы ранее рассмотрели несколько руководств:
- Сервер ESP32 BLE - Служба GATT для индикации уровня заряда батареи
- Клиент ESP32 BLE - подключение к фитнес-браслету для срабатывания лампы
- Как использовать последовательный Bluetooth в ESP32
Модуль Bluetooth HC-05
HC-05 - это последовательный модуль Bluetooth. Его можно настроить с помощью AT-команд. Он может работать в трех различных конфигурациях (Master, Slave, Loop back). В нашем проекте мы будем использовать его как раб. Возможности модуля HC-05 включают:
- Типичная чувствительность -80 дБм.
- Скорость передачи по умолчанию: 9600 бит / с, 8 бит данных, 1 стоповый бит, без контроля четности.
- PIN-код автоматического сопряжения: PIN-код по умолчанию «1234» или «0000».
- Имеет 6 контактов.
- Контакты Vcc и Gnd используются для питания HC-05.
- Контакты Tx и Rx используются для связи с микроконтроллером.
- Контакт включения для активации модуля HC-05. при низком уровне модуль отключен
- Состояние контакта действует индикатор состояния. Когда он не сопряжен / не подключен к какому-либо другому устройству Bluetooth, светодиод постоянно мигает. Когда он подключен / сопряжен с любым другим устройством Bluetooth, светодиод мигает с постоянной задержкой в 2 секунды.
Чтобы узнать больше о модуле Bluetooth, просмотрите другие наши проекты, связанные с Bluetooth.
Использование последовательного терминала Bluetooth (приложение для Android)
Использование этого приложения очень простое и требует нескольких шагов. Ниже приведены скриншоты с пошаговыми инструкциями. Просто соедините HC-05 со смартфоном. Код по умолчанию - «0000» или «1234», но в основном работает «1234».
- Сначала загрузите и установите приложение. Затем перейдите к устройствам и найдите модуль HC-05. Выберите модуль HC-05, который искали в приложении. Если не обнаружен, проверьте, правильно ли запитан HC-05.
- После нажатия HC-05 он подключится. Теперь введите любое сообщение в поле сообщения и отправьте его. Он будет распечатан на последовательном мониторе Arduino.
Программирование NodeMCU ESP8266 для интерфейса Bluetooth
Для программирования NodeMCU ESP8266 с использованием ArduinoIDE просто подключите его к ноутбуку или ПК с помощью кабеля Micro USB и откройте Arduino IDE. В этом руководстве будет использоваться серийный номер оборудования и серийный номер программного обеспечения. Аппаратный последовательный порт будет использоваться для чтения и записи данных в последовательный монитор Arduino, а последовательный интерфейс программного обеспечения будет использоваться для связи с HC-05. Как всегда, полный код и демонстрационное видео приведены в конце руководства.
Сначала включите библиотеку Software Serial, поскольку она будет использоваться в этом руководстве.
#включают
Определите выводы RX и TX для программного обеспечения последовательной связи, также определите вывод светодиода, подключенный к NodeMCU. Мы используем внутренний светодиод NodeMCU, который находится на выводе D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Запустите программный и аппаратный последовательный порт на скорости 9600 бод. Установите Led Pin в качестве выхода. Напечатайте приветственное и отладочное сообщение.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, ВЫХОД); Serial.println («Запущено…»);
Во-первых, считайте данные из модуля Bluetooth и определите случай , когда модуль Bluetooth получает «B» от телефона, затем начинает мигать светодиод, подключенный к D4 на NodeMCU, иначе, если он получает «S», перестанет мигать светодиод. Здесь мы не используем delay () . Но «миллис» Arduino будет использоваться, чтобы не снижать производительность Arduino.
если (btSerial.available ()> 0) { char data = btSerial.read (); переключатель (данные) { case 'B': ledB = "blink"; сломать; case 'S': ledB = "стоп"; сломать; по умолчанию: перерыв; } }
Миллис определен и устанавливает задержку на 500 мс, т.е. светодиод будет мигать каждые 500 мс. Также вы можете настроить задержку светодиода, изменив значение «интервала». Состояние светодиода будет переключено.
беззнаковый длинный currentMillis = millis ();
if (ledB == "мигание") { Serial.println ("мигание началось"); if (currentMillis - previousMillis> = интервал) { previousMillis = currentMillis; если (ledState == LOW) { ledState = HIGH; } еще { ledState = LOW; } digitalWrite (led, ledState); } }
На этом мы закончим программирование NodeMCU на мигание светодиода по беспроводной связи через Bluetooth. Вы также можете изменить программу для выполнения различных задач со светодиодом, например, светодиод можно заменить на реле с устройством переменного тока, чтобы создать проект домашней автоматизации Bluetooth. В случае каких-либо сомнений или предложений, пожалуйста, обратитесь на наш форум или оставьте комментарий ниже.