- Komponenter, der kræves
- ESP8266 HC-05 Bluetooth-kredsløbsdiagram
- HC-05 Bluetooth-modul
- Brug af seriel Bluetooth-terminal (Android-app)
- Programmering af NodeMCU ESP8266 til interface Bluetooth
Nu om dage er Bluetooth blevet en integreret del af digitale enheder, og det kommer indbygget i de fleste enheder såsom Smartphone, Laptop, PC, kamera, ure, Fitness Bands og mange flere. Bluetooth har altid været dominerende protokol i den trådløse kommunikation lige siden den blev opdaget. Selvom Bluetooth-teknologi grundlæggende er et kabeludskiftningssystem, men det udnytter også en universel bro til eksisterende datanetværk og en ad hoc-forbindelsesmekanisme til antal enheder i forskellige konfigurationer. Vi har brugt Bluetooth-modul HC05 og HC06 med mange andre mikrocontrollere for at få dem til at kommunikere trådløst:
- Interfacing Bluetooth HC-05 med STM32F103C8 Blue Pill: Kontrollerende LED
- Interfacing HC-05 Bluetooth-modul med AVR-mikrocontroller
- Android-styret robot ved hjælp af 8051 Microcontroller
- Kontrol af Raspberry Pi GPIO ved hjælp af Android-appen via Bluetooth
- Bluetooth-styret legetøjsbil ved hjælp af Arduino
I dag vil vi interface HC-05 Bluetooth-modul med det populære Wi-Fi-modul ESP8266 og styre en LED trådløst ved at sende kommandoer via Bluetooth. Denne LED kan erstattes af et relæ og et vekselstrømsapparat til at oprette en hjemmeautomationsapplikation.
Komponenter, der kræves
Hardware:
- NodeMCU ESP8266
- HC-05 Bluetooth-modul
Software:
- Arduino IDE
- Seriel Bluetooth-terminal (Android-app): Til overvågning af Bluetooth-data på en smartphone.
ESP8266 HC-05 Bluetooth-kredsløbsdiagram
Kredsløbsdiagram for at forbinde Bluetooth-modul HC-05 med NodeMCU ESP8266 er meget simpelt og vist nedenfor:
Et eksternt Bluetooth-modul er nødvendigt med ESP8266, da det ikke har indbygget Bluetooth som ESP32. ESP32 har indbygget Bluetooth Low Energy (BLE) og Classic Bluetooth, som vi tidligere har dækket få tutorials på:
- ESP32 BLE Server - GATT-service til indikation af batteriniveau
- ESP32 BLE-klient - Tilslutning til fitnessbånd for at udløse en pære
- Sådan bruges seriel Bluetooth i ESP32
HC-05 Bluetooth-modul
HC-05 er et serielt Bluetooth-modul. Det kan konfigureres ved hjælp af AT-kommandoer. Det kan fungere i tre forskellige konfigurationer (Master, Slave, Loop back). I vores projekt bruger vi det som slave. Funktionerne i HC-05-modulet inkluderer,
- Typisk -80dBm følsomhed.
- Standard baudrate: 9600bps, 8 databits, 1 stopbit, ingen paritet.
- Automatisk parring af pinkode: “1234” eller “0000” standard pinkode.
- Den har 6 ben.
- Vcc og GND ben bruges til at forsyne HC-05.
- Tx- og Rx-ben bruges til at kommunikere med mikrocontrolleren.
- Aktivér pin til aktivering af HC-05-modulet. når det er lavt, er modulet deaktiveret
- Statusindikator for tilstandsnål. Når den ikke er parret / forbundet med nogen anden Bluetooth-enhed, blinker LED kontinuerligt. Når den er tilsluttet / parret med en hvilken som helst anden Bluetooth-enhed, blinker LED'en med den konstante forsinkelse på 2 sekunder.
For at lære mere om Bluetooth-modulet, gå gennem vores andre Bluetooth-relaterede projekter.
Brug af seriel Bluetooth-terminal (Android-app)
Brug af denne app er meget let og kræver få trin. Screenshots er angivet nedenfor med trin. Par HC-05 med Smartphone. Standardkoden er '0000' eller '1234', men mest fungerer '1234'.
- Først skal du downloade og installere appen Gå derefter til enheder for at finde HC-05-modul. Vælg HC-05-modul, der er søgt i appen. Hvis den ikke findes, skal du kontrollere, om HC-05 er tilsluttet korrekt.
- Når du har klikket på HC-05, bliver den tilsluttet. Skriv nu enhver besked i meddelelsesfeltet og send den. Det bliver trykt på Arduino Serial Monitor.
Programmering af NodeMCU ESP8266 til interface Bluetooth
Til programmering af NodeMCU ESP8266 ved hjælp af ArduinoIDE, skal du bare slutte den fra bærbar computer eller pc ved hjælp af Micro USB-kabel og åbne Arduino IDE. Til denne tutorial bruges hardwareserien og softwareserien. Hardwareserien bruges til at læse og skrive data til Arduino Serial Monitor, og Sofware Serial bruges til at kommunikere med HC-05. Som altid gives komplet kode og demonstrationsvideo i slutningen af vejledningen.
Inkluder oprindeligt softwarens serielle bibliotek, da det vil blive brugt i denne vejledning.
#omfatte
Definer RX- og TX-stiften til seriel kommunikation med software, og definer også den ledede stift, der er tilsluttet NodeMCU. Vi bruger intern LED af NodeMCU, som er ved Pin D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Start software- og hardwareserien ved 9600 baudhastighed. Indstil Led Pin som output. Udskriv en velkomst- og fejlretningsmeddelelse.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("Startet…");
Først skal du læse fra Bluetooth-modulet og definere en sag, at hvis Bluetooth-modul modtager "B" fra telefon, start derefter blinkende lysdiode forbundet til D4 i NodeMCU, hvis det modtager "S", så stop med at blinke led. Vi bruger ikke forsinkelse () her. Men Arduino 'millis' vil blive brugt til ikke at hæmme Arduinos præstationer.
hvis (btSerial.available ()> 0) { char data = btSerial.read (); switch (data) { case 'B': ledB = "blink"; pause; sag 'S': ledB = "stop"; pause; standard: pause; } }
Millis er defineret og indstillet forsinkelsen til 500 ms, dvs. lysdioden blinker efter hver 500 ms. Du kan også konfigurere den ledede forsinkelse ved at ændre værdien af 'interval'. Den ledede stat skiftes.
usigneret langstrømMillis = millis ();
hvis (ledB == "blink") { Serial.println ("blinkende startet"); hvis (currentMillis - previousMillis> = interval) { previousMillis = currentMillis; hvis (ledState == LOW) { ledState = HIGH; } andet { ledState = LAV; } digitalWrite (ledet, ledState); } }
Og dette vil afslutte programmeringen af NodeMCU til at blinke LED trådløst ved hjælp af Bluetooth. Du kan også ændre programmet til at udføre forskellige opgaver med LED, ligesom LED'en kan erstattes af et relæ med vekselstrømsapparat for at lave Bluetooth-hjemmeautomatiseringsprojekt. I tvivlstilfælde eller forslag, bedes du kontakte vores forum eller kommentere nedenfor.