- Potrebne komponente
- Shema vezja modula Bluetooth ESP8266 HC-05
- Modul Bluetooth HC-05
- Uporaba serijskega terminala Bluetooth (aplikacija za Android)
- Programiranje NodeMCU ESP8266 za vmesnik Bluetooth
Zdaj je Bluetooth postal sestavni del digitalnih naprav in je vgrajen v večino naprav, kot so pametni telefon, prenosni računalnik, osebni računalnik, kamera, ure, fitnes pasovi in mnogi drugi. Odkar je bila odkrita, Bluetooth vedno prevladuje nad protokolom v brezžični komunikaciji. Čeprav je tehnologija Bluetooth v bistvu sistem za nadomestitev kablov, ima pa tudi univerzalni most do obstoječih podatkovnih omrežij in priložnostni mehanizem povezave za številne naprave v različnih konfiguracijah. Za brezžično komunikacijo smo uporabili modula Bluetooth HC05 in HC06 s številnimi drugimi mikrokrmilniki:
- Povezava Bluetooth HC-05 z modro tabletko STM32F103C8: Kontrolna LED
- Povezava modula Bluetooth HC-05 z mikrokrmilnikom AVR
- Robot pod nadzorom Androida z mikrokrmilnikom 8051
- Nadzor Raspberry Pi GPIO z uporabo aplikacije Android prek Bluetootha
- Toy Car z nadzorom Bluetooth z uporabo Arduina
Danes bomo modul Bluetooth HC-05 povezali s priljubljenim modulom Wi-Fi ESP8266 in brezžično upravljali LED s pošiljanjem ukazov prek Bluetootha. To LED lahko zamenjate z relejem in izmeničnim aparatom za izdelavo aplikacije za avtomatizacijo doma.
Potrebne komponente
Strojna oprema:
- NodeMCU ESP8266
- Modul Bluetooth HC-05
Programska oprema:
- Arduino IDE
- Serijski terminal Bluetooth (aplikacija za Android): za spremljanje podatkov Bluetooth na pametnem telefonu.
Shema vezja modula Bluetooth ESP8266 HC-05
Shema vezja za povezavo modula Bluetooth HC-05 z NodeMCU ESP8266 je zelo preprosta in prikazana spodaj:
Zunanji modul Bluetooth je potreben pri ESP8266, saj nima vgrajenega Bluetootha, kot je ESP32. ESP32 ima vgrajeni Bluetooth Low Energy (BLE) in Classic Bluetooth, o katerih smo prej obravnavali nekaj vadnic:
- Strežnik ESP32 BLE - storitev GATT za prikaz stanja baterije
- ESP32 BLE odjemalec - priklop na fitnes pas za sprožitev žarnice
- Kako uporabljati serijski Bluetooth v ESP32
Modul Bluetooth HC-05
HC-05 je serijski modul Bluetooth. Nastavite ga lahko z ukazi AT. Deluje lahko v treh različnih konfiguracijah (Master, Slave, Loop back). V našem projektu ga bomo uporabili kot sužnja. Značilnosti modula HC-05 vključujejo,
- Značilna občutljivost -80dBm.
- Privzeta hitrost prenosa: 9600 bps, 8 podatkovnih bitov, 1 stop bit, brez paritete.
- PIN koda za samodejno seznanjanje: privzeta PIN koda »1234« ali »0000«.
- Ima 6 nožic.
- Za napajanje HC-05 se uporabljajo zatiči Vcc in Gnd.
- Tx in Rx nožice se uporabljajo za komunikacijo z mikrokrmilnikom.
- Omogoči zatič za aktiviranje modula HC-05. ko je nizka, je modul onemogočen
- Državni pin deluje indikator stanja. Ko ni seznanjen / povezan z nobeno drugo napravo Bluetooth, LED neprekinjeno utripa. Ko je povezan / seznanjen s katero koli drugo napravo Bluetooth, LED utripa s konstantno zakasnitvijo 2 sekundi.
Če želite izvedeti več o modulu Bluetooth, preberite naše druge projekte, povezane z Bluetoothom.
Uporaba serijskega terminala Bluetooth (aplikacija za Android)
Uporaba te aplikacije je zelo enostavna in zahteva nekaj korakov. Posnetki zaslona so podani spodaj s koraki. Preprosto povežite HC-05 s pametnim telefonom. Privzeta koda je '0000' ali '1234', večinoma pa '1234' deluje.
- Najprej prenesite in namestite aplikacijo, nato pojdite na naprave in poiščite modul HC-05. Izberite modul HC-05, ki ga iščete v aplikaciji. Če ga ne najdete, preverite, ali je HC-05 pravilno napajan.
- Po kliku na HC-05 se bo povezal. Zdaj v poljubno sporočilo vnesite katero koli sporočilo in ga pošljite. Natisnjen bo na serijski monitor Arduino.
Programiranje NodeMCU ESP8266 za vmesnik Bluetooth
Za programiranje NodeMCU ESP8266 z uporabo ArduinoIDE, ga preprosto priključite na prenosni računalnik ali računalnik s kablom Micro USB in odprite Arduino IDE. Za to vadnico bo uporabljena serijska oprema strojne opreme in programska oprema. Serijska oprema strojne opreme bo uporabljena za branje in zapisovanje podatkov v Arduino Serial Monitor, programska oprema Serial pa za komunikacijo s HC-05. Kot vedno je na koncu vadnice navedena celotna koda in predstavitveni video.
Sprva vključite serijsko knjižnico programske opreme, saj bo uporabljena v tej vadnici.
#include
Določite pin RX in TX za serijsko komunikacijo programske opreme, določite tudi led pin, povezan z NodeMCU. Uporabljamo notranjo LED diode NodeMCU, ki je na Pin D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Zaženite programsko in strojno serijo s hitrostjo 9600 baudov. Nastavite Led Pin kot izhod. Natisnite sporočilo dobrodošlice in odpravljanja napak.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, IZHOD); Serial.println ("Začelo…");
Najprej preberite iz modula Bluetooth in določite primer, da če modul Bluetooth prejme “B” iz telefona, nato začnite utripati Led, povezan z D4 NodeMCU, sicer, če prejme “S”, nato nehajte utripati. Tu ne uporabljamo delay () . Toda Arduino 'millis' bo uporabljen, da ne bo oviral njegovega delovanja.
if (btSerial.available ()> 0) { char data = btSerial.read (); stikalo (podatki) { primer 'B': ledB = "utripanje"; odmor; primer 'S': ledB = "stop"; odmor; privzeto: odmor; } }
Milis je definiran in nastavite zakasnitev na 500 ms, tj. LED bo utripal po vsakih 500 ms. Zakasnitev led lahko nastavite tudi tako, da spremenite vrednost "interval". LED stanje bo preklopljeno.
nepodpisan dolgi tokMillis = milis ();
če (ledB == "utripa") { Serial.println ("utripanje se je začelo"); if (currentMillis - previousMillis> = interval) { previousMillis = currentMillis; če (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
S tem bo programiranje NodeMCU brezžično utripalo LED z Bluetoothom. Program lahko spremenite tudi tako, da opravlja različne naloge z LED-diodami, kot je LED-dioda, ki jo lahko nadomestite z aparatom Rele z AC-jem, da ustvarite projekt za avtomatizacijo doma Bluetooth. V primeru kakršnega koli dvoma ali predloga se obrnite na naš forum ali komentar spodaj.