- Необходими компоненти
- ESP8266 HC-05 Схема на Bluetooth модул
- Bluetooth модул HC-05
- Използване на сериен Bluetooth терминал (приложение за Android)
- Програмиране на NodeMCU ESP8266 за интерфейс Bluetooth
Днес Bluetooth се превърна в неразделна част от цифровите устройства и той се вгражда в повечето устройства като смартфон, лаптоп, компютър, камера, часовници, фитнес ленти и много други. Bluetooth винаги е бил доминиращ протокол в безжичната комуникация откакто е открит. Въпреки че технологията Bluetooth по същество е система за подмяна на кабели, но тя също така използва универсален мост към съществуващите мрежи за данни и механизъм за ad hoc връзка за брой устройства в различни конфигурации. Използвахме Bluetooth модул HC05 и HC06 с много други микроконтролери, за да ги накараме да комуникират безжично:
- Взаимодействие на Bluetooth HC-05 със STM32F103C8 Blue Pill: Контролиращ LED
- Взаимодействие на HC-05 Bluetooth модул с AVR микроконтролер
- Android контролиран робот, използващ 8051 микроконтролер
- Контролиране на Raspberry Pi GPIO с помощта на Android App през Bluetooth
- Кола с играчки, контролирана от Bluetooth, използваща Arduino
Днес ще свържем HC-05 Bluetooth модула с популярния Wi-Fi модул ESP8266 и ще управляваме безжично LED чрез изпращане на команди чрез Bluetooth. Този светодиод може да бъде заменен от реле и променливотоков уред за изграждане на приложение за домашна автоматизация.
Необходими компоненти
Хардуер:
- NodeMCU ESP8266
- Bluetooth модул HC-05
Софтуер:
- IDE на Arduino
- Сериен Bluetooth терминал (приложение за Android): За наблюдение на Bluetooth данни на смарт телефон.
ESP8266 HC-05 Схема на Bluetooth модул
Схема за свързване на Bluetooth модул HC-05 с NodeMCU ESP8266 е много проста и е показана по-долу:
За ESP8266 е необходим външен Bluetooth модул, тъй като той няма вграден Bluetooth като ESP32. ESP32 има вграден Bluetooth Low Energy (BLE) и Classic Bluetooth, за които по-рано разгледахме няколко урока:
- ESP32 BLE сървър - GATT услуга за индикация за нивото на батерията
- ESP32 BLE клиент - Свързване към фитнес лента за задействане на крушка
- Как да използвам сериен Bluetooth в ESP32
Bluetooth модул HC-05
HC-05 е сериен Bluetooth модул. Може да се конфигурира с помощта на AT команди. Може да работи в три различни конфигурации (Master, Slave, Loop back). В нашия проект ще го използваме като роб. Характеристиките на модула HC-05 включват,
- Типична чувствителност -80dBm.
- Скорост на предаване по подразбиране: 9600bps, 8 бита за данни, 1 стоп бит, без паритет.
- Пин код за автоматично сдвояване: ПИН код по подразбиране „1234“ или „0000“.
- Той има 6 щифта.
- Vcc и Gnd щифтове се използват за захранване на HC-05.
- Tx и Rx щифтовете се използват за комуникация с микроконтролера.
- Разрешаване на щифт за активиране на модула HC-05. когато е ниско, модулът е деактивиран
- Държавен щифт действа индикатор за състояние. Когато не е сдвоено / свързано с друго Bluetooth устройство, LED мига непрекъснато. Когато е свързано / сдвоено с друго 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, а Sofware Serial ще се използва за комуникация с HC-05. Както винаги пълен код и демонстрационно видео е дадено в края на урока.
Първоначално включете серийната библиотека на софтуера, тъй като тя ще се използва в този урок.
#include
Определете RX и TX пина за серийна комуникация на софтуера, също така дефинирайте led пина, свързан към NodeMCU. Използваме вътрешен светодиод на NodeMCU, който е на Pin D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Стартирайте серийния софтуер и хардуер със скорост 9600 бода. Задайте Led Pin като изход. Отпечатайте съобщение за добре дошли и отстраняване на грешки.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("Започна…");
Първо, прочетете от Bluetooth модула и дефинирайте случай, че ако Bluetooth модулът получи „B“ от телефона, след това започнете да мигате Led, свързан към D4 на NodeMCU, иначе ако получи „S“, спрете да мигате led. Тук не използваме delay () . Но Arduino 'millis' ще се използва, за да не възпрепятства работата на Arduino.
ако (btSerial.available ()> 0) { char данни = btSerial.read (); превключвател (данни) { случай 'B': ledB = "мигане"; почивка; случай 'S': ledB = "стоп"; почивка; по подразбиране: почивка; } }
Милисът се дефинира и задава закъснението на 500ms, т.е. светодиодът ще мига след всеки 500ms. Също така можете да конфигурирате светодиодното забавяне, като промените стойността на „интервал“. Воденото състояние ще се превключва.
неподписан дълъг токMillis = милис ();
ако (ledB == "мига") { Serial.println ("мигането започна"); ако (currentMillis - previousMillis> = интервал) { previousMillis = currentMillis; ако (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
И това ще завърши програмирането NodeMCU да мига LED безжично чрез Bluetooth. Можете също така да промените програмата, за да изпълнява различни задачи със светодиод, като светодиодът може да бъде заменен от реле с уред за променлив ток, за да се направи проект за домашна автоматизация на Bluetooth. В случай на съмнение или предложение, моля, свържете се с нашия форум или коментар по-долу.