- Потрібні компоненти
- Електрична схема модуля 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
- Керування Raspberry Pi GPIO за допомогою програми 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 дуже проста і показана нижче:
Зовнішній модуль Bluetooth необхідний для ESP8266, оскільки він не має вбудованого Bluetooth, як ESP32. ESP32 має вбудований Bluetooth Low Energy (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 стоп-біт, без паритету.
- Пін-код для автоматичного з'єднання: пін-код за замовчуванням “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 Serial Monitor.
Програмування NodeMCU ESP8266 для інтерфейсу Bluetooth
Для програмування NodeMCU ESP8266 за допомогою ArduinoIDE, просто підключіть його до ноутбука або ПК за допомогою кабелю Micro USB і відкрийте Arduino IDE. У цьому підручнику буде використано апаратний та програмний серіали. Апаратний серійний номер буде використовуватися для зчитування та запису даних на Arduino Serial Monitor, а програмний серійний - для зв'язку з HC-05. Як завжди, повний код та демонстраційне відео подано в кінці підручника.
Спочатку включіть бібліотеку послідовного програмного забезпечення, оскільки вона буде використана в цьому посібнику.
#включати
Визначте вивід 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 'millis' буде використовуватися, щоб не перешкоджати роботі Arduino.
if (btSerial.available ()> 0) { char data = btSerial.read (); перемикач (дані) { випадок 'B': ledB = "блимає"; перерву; регістр 'S': ledB = "зупинка"; перерву; за замовчуванням: перерва; } }
Визначається міліс і встановлюється затримка 500 мс, тобто світлодіод блиматиме через кожні 500 мс. Також ви можете налаштувати світлодіодну затримку, змінивши значення "інтервал". Світлодіодний стан буде переключено.
unsigned long currentMillis = millis ();
if (ledB == "блимає") { Serial.println ("моргання розпочато"); якщо (currentMillis - previousMillis> = інтервал) { previousMillis = currentMillis; якщо (ledState == LOW) { ledState = HIGH; } ще { ledState = LOW; } digitalWrite (led, ledState); } }
Це закінчить програмування NodeMCU на миготіння світлодіода бездротовим способом за допомогою Bluetooth. Ви також можете змінити програму на виконання різних завдань зі світлодіодом, наприклад, світлодіод можна замінити реле з приладом змінного струму, щоб зробити проект домашньої автоматизації Bluetooth. У разі будь-яких сумнівів чи пропозицій, будь ласка, зв’яжіться з нашим форумом або коментарем нижче.