- Componenten vereist
- ESP8266 HC-05 Bluetooth-module schakelschema
- HC-05 Bluetooth-module
- Seriële Bluetooth-terminal gebruiken (Android-app)
- NodeMCU ESP8266 programmeren om Bluetooth te koppelen
Tegenwoordig is Bluetooth een integraal onderdeel geworden van digitale apparaten en wordt het ingebouwd in de meeste apparaten zoals smartphones, laptops, pc's, camera's, horloges, fitnessbanden en nog veel meer. Bluetooth heeft altijd het protocol in de draadloze communicatie gedomineerd sinds het werd ontdekt. Hoewel Bluetooth-technologie in wezen een kabelvervangingssysteem is, maakt het ook gebruik van een universele brug naar bestaande datanetwerken en een ad-hocverbindingsmechanisme voor een aantal apparaten in verschillende configuraties. We hebben Bluetooth-module HC05 en HC06 met veel andere microcontrollers gebruikt om ze draadloos te laten communiceren:
- Koppeling van Bluetooth HC-05 met STM32F103C8 Blue Pill: Controlerende LED
- Koppeling HC-05 Bluetooth-module met AVR Microcontroller
- Android-gestuurde robot met behulp van 8051 Microcontroller
- Raspberry Pi GPIO bedienen met Android-app via Bluetooth
- Bluetooth-gestuurde speelgoedauto met Arduino
Vandaag zullen we de HC-05 Bluetooth-module koppelen met de populaire Wi-Fi-module ESP8266 en een LED draadloos bedienen door opdrachten via Bluetooth te verzenden. Deze LED kan worden vervangen door een relais en een AC-apparaat om een Home Automation-toepassing te bouwen.
Componenten vereist
Hardware:
- NodeMCU ESP8266
- HC-05 Bluetooth-module
Software:
- Arduino IDE
- Seriële Bluetooth-terminal (Android-app): om Bluetooth-gegevens op een smartphone te bewaken.
ESP8266 HC-05 Bluetooth-module schakelschema
Het schakelschema om Bluetooth-module HC-05 te verbinden met NodeMCU ESP8266 is heel eenvoudig en wordt hieronder weergegeven:
Een externe Bluetooth-module is nodig met ESP8266, omdat deze geen ingebouwde Bluetooth heeft zoals ESP32. ESP32 heeft ingebouwde Bluetooth Low Energy (BLE) en klassieke Bluetooth, waarop we eerder enkele tutorials hebben behandeld:
- ESP32 BLE-server - GATT-service voor indicatie van batterijniveau
- ESP32 BLE Client - Verbinding maken met fitnessband om een lamp te activeren
- Seriële Bluetooth gebruiken in ESP32
HC-05 Bluetooth-module
HC-05 is een seriële Bluetooth-module. Het kan worden geconfigureerd met AT-opdrachten. Het kan werken in drie verschillende configuraties (Master, Slave, Loop back). In ons project zullen we het als slaaf gebruiken. De kenmerken van HC-05-module omvatten,
- Typische gevoeligheid van -80dBm.
- Standaard baudrate: 9600bps, 8 databits, 1 stopbit, geen pariteit.
- Pincode voor automatisch koppelen: "1234" of "0000" standaardpincode.
- Het heeft 6 pinnen.
- Vcc- en Gnd-pinnen worden gebruikt voor het voeden van de HC-05.
- Tx- en Rx-pinnen worden gebruikt om te communiceren met de microcontroller.
- Pin inschakelen voor het activeren van de HC-05-module. als het laag is, is de module uitgeschakeld
- State pin fungeert statusindicator. Wanneer het niet is gekoppeld / verbonden met een ander Bluetooth-apparaat, knippert de LED continu. Wanneer het is verbonden / gekoppeld met een ander Bluetooth-apparaat, knippert de LED met een constante vertraging van 2 seconden.
Ga voor meer informatie over de Bluetooth-module door onze andere Bluetooth-gerelateerde projecten.
Seriële Bluetooth-terminal gebruiken (Android-app)
Het gebruik van deze app is heel eenvoudig en vereist enkele stappen. De screenshots worden hieronder gegeven met stappen. Koppel de HC-05 gewoon met een smartphone. De standaardcode is '0000' of '1234' maar meestal werkt '1234'.
- Download en installeer eerst de app. Ga vervolgens naar apparaten om HC-05 Module te vinden. Selecteer HC-05 Module doorzocht in de app. Indien niet gevonden, controleer dan of HC-05 correct is gevoed.
- Nadat u op de HC-05 hebt geklikt, wordt er verbinding gemaakt. Typ nu een willekeurig bericht in het berichtvenster en verzend het. Het wordt afgedrukt op de Arduino Serial Monitor.
NodeMCU ESP8266 programmeren om Bluetooth te koppelen
Voor het programmeren van de NodeMCU ESP8266 met ArduinoIDE, sluit u hem gewoon aan op laptop of pc met een micro-USB-kabel en opent u Arduino IDE. Voor deze zelfstudie worden de seriële hardware en de seriële software gebruikt. De hardware-serie wordt gebruikt om gegevens te lezen en te schrijven naar Arduino Serial Monitor en Sofware Serial zal worden gebruikt om te communiceren met HC-05. Zoals altijd wordt de volledige code en demovideo aan het einde van de tutorial gegeven.
Neem in eerste instantie de Software Serial-bibliotheek op, aangezien deze in deze zelfstudie zal worden gebruikt.
# omvatten
Definieer de RX- en TX-pin voor seriële software-communicatie, definieer ook de led-pin die is aangesloten op NodeMCU. We gebruiken een interne LED van NodeMCU die zich op Pin D4 bevindt.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Start de software en hardware serieel op 9600 baudrate. Stel Led Pin in als output. Druk een welkomst- en foutopsporingsbericht af.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("Gestart…");
Lees eerst van de Bluetooth-module en bepaal een geval dat als de Bluetooth-module "B" ontvangt van de telefoon, dan begint met knipperen met led verbonden met D4 van NodeMCU, anders als het "S" ontvangt, stopt met knipperen met led. We gebruiken hier geen delay () . Maar Arduino 'millis' zal worden gebruikt om de prestaties van Arduino niet te belemmeren.
if (btSerial.available ()> 0) { char data = btSerial.read (); switch (data) { case 'B': ledB = "blink"; breken; case 'S': ledB = "stop"; breken; standaard: pauze; } }
De milliseconden zijn gedefinieerd en de vertraging is ingesteld op 500 ms, dwz de led knippert na elke 500 ms. Ook kunt u de led-vertraging configureren door de waarde van 'interval' te wijzigen. De led-status wordt omgeschakeld.
unsigned lange currentMillis = millis ();
if (ledB == "blink") { Serial.println ("knipperend gestart"); if (currentMillis - previousMillis> = interval) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
En hiermee is het programmeren van NodeMCU om LED draadloos te laten knipperen met Bluetooth voltooid. U kunt ook het programma wijzigen om verschillende taken met LED uit te voeren, zoals de LED kan worden vervangen door een relais met AC-apparaat om een Bluetooth-huisautomatiseringsproject te maken. Neem in geval van twijfel of suggestie contact op met ons forum of reageer hieronder.