- Komponenter krävs
- ESP8266 HC-05 Bluetooth-kretsschema
- HC-05 Bluetooth-modul
- Använda seriell Bluetooth-terminal (Android-app)
- Programmerar NodeMCU ESP8266 för att gränssnitt Bluetooth
Nu om dagen har Bluetooth blivit en integrerad del av digitala enheter och den kommer inbyggd i de flesta enheter som Smartphone, Laptop, PC, Kamera, Klockor, Fitnessband och många fler. Bluetooth har alltid dominerat protokollet i den trådlösa kommunikationen ända sedan den upptäcktes. Även om Bluetooth-teknik i grund och botten är ett kabelbytessystem, använder den också en universell brygga till befintliga datanätverk och en ad hoc-anslutningsmekanism för antal enheter i olika konfigurationer. Vi har använt Bluetooth-modulen HC05 och HC06 med många andra mikrokontroller för att få dem att kommunicera trådlöst:
- Gränssnitt Bluetooth HC-05 med STM32F103C8 Blue Pill: Kontrollerande LED
- Gränssnitt HC-05 Bluetooth-modul med AVR-mikrokontroller
- Android-kontrollerad robot med 8051 mikrokontroller
- Styr Raspberry Pi GPIO med Android-app via Bluetooth
- Bluetooth-kontrollerad leksaksbil med Arduino
Idag kommer vi att koppla ihop HC-05 Bluetooth-modul med populär Wi-Fi-modul ESP8266 och styra en LED trådlöst genom att skicka kommandon via Bluetooth. Denna LED kan ersättas av ett relä och en AC-apparat för att bygga en hemautomationsapplikation.
Komponenter krävs
Hårdvara:
- NodeMCU ESP8266
- HC-05 Bluetooth-modul
Programvara:
- Arduino IDE
- Seriell Bluetooth-terminal (Android-app): För att övervaka Bluetooth-data på smarttelefon.
ESP8266 HC-05 Bluetooth-kretsschema
Kretsschema för att ansluta Bluetooth-modul HC-05 med NodeMCU ESP8266 är väldigt enkelt och visas nedan:
En extern Bluetooth-modul behövs med ESP8266 eftersom den inte har inbyggd Bluetooth som ESP32. ESP32 har inbyggd Bluetooth Low Energy (BLE) och Classic Bluetooth, som vi tidigare har täckt över några tutorials:
- ESP32 BLE-server - GATT-tjänst för indikering av batterinivå
- ESP32 BLE-klient - Anslutning till Fitness Band för att utlösa en glödlampa
- Hur man använder seriell Bluetooth i ESP32
HC-05 Bluetooth-modul
HC-05 är en seriell Bluetooth-modul. Den kan konfigureras med AT-kommandon. Det kan fungera i tre olika konfigurationer (Master, Slave, Loop back). I vårt projekt kommer vi att använda det som en slav. Funktionerna i HC-05-modulen inkluderar,
- Typisk -80dBm känslighet.
- Standard baudhastighet: 9600bps, 8 databitar, 1 stoppbit, ingen paritet.
- Automatisk ihopparning av PIN-kod: “1234” eller “0000” standard PIN-kod.
- Den har 6 stift.
- Vcc- och GND-stift används för att driva HC-05.
- Tx- och Rx-stift används för att kommunicera med mikrokontrollern.
- Aktivera stift för att aktivera HC-05-modulen. när den är låg är modulen inaktiverad
- Statusindikeringsstatusindikator. När den inte är ihopparad / ansluten till någon annan Bluetooth-enhet blinkar LED kontinuerligt. När den är ansluten / ihopkopplad med någon annan Bluetooth-enhet, blinkar lysdioden med konstant fördröjning på 2 sekunder.
För att lära dig mer om Bluetooth-modulen, gå igenom våra andra Bluetooth-relaterade projekt.
Använda seriell Bluetooth-terminal (Android-app)
Att använda den här appen är väldigt enkelt och kräver få steg. Skärmdumparna ges nedan med steg. Koppla bara ihop HC-05 med Smartphone. Standardkoden är '0000' eller '1234' men mestadels fungerar '1234'.
- Först ladda ner och installera appen Gå sedan till enheter för att hitta HC-05-modulen. Välj HC-05-modul som sökts i appen. Om det inte hittas, kontrollera om HC-05 är ordentligt försedd med ström.
- När du har klickat på HC-05 kommer den att anslutas. Skriv nu ett meddelande i meddelandefältet och skicka det. Den kommer att skrivas ut på Arduino Serial Monitor.
Programmerar NodeMCU ESP8266 för att gränssnitt Bluetooth
För att programmera NodeMCU ESP8266 med ArduinoIDE, anslut bara den från bärbar dator eller PC med Micro USB-kabel och öppna Arduino IDE. För den här självstudien kommer maskinvaruserien och mjukvaruserien att användas. Hårdvaruserien kommer att användas för att läsa och skriva data till Arduino Serial Monitor och Sofware Serial kommer att användas för att kommunicera med HC-05. Som alltid ges komplett kod och demonstrationsvideo i slutet av handledningen.
Inledningsvis inkludera Software Serial-biblioteket eftersom det kommer att användas i denna handledning.
#omfatta
Definiera RX- och TX-stift för programvaruseriekommunikation, definiera också led-stift som är ansluten till NodeMCU. Vi använder intern lysdiod för NodeMCU som är på Pin D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Starta programvaru- och hårdvaruserien med 9600 baudhastighet. Ställ in Led Pin som output. Skriv ut ett välkomst- och felsökningsmeddelande.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("Startad…");
Läs först från Bluetooth-modulen och definiera ett fall att om Bluetooth-modulen tar emot "B" från telefonen, börja sedan blinka LED ansluten till D4 i NodeMCU annars om den får "S" sluta blinka led. Vi använder inte fördröjning () här. Men Arduino 'millis' kommer att användas för att inte hindra Arduinos prestanda.
om (btSerial.available ()> 0) { char data = btSerial.read (); switch (data) { case 'B': ledB = "blink"; ha sönder; case 'S': ledB = "stop"; ha sönder; standard: bryta; } }
Millis definieras och ställer in fördröjningen på 500 ms, dvs lysdioden blinkar efter var 500 ms. Du kan också konfigurera led-fördröjningen genom att ändra värdet på "intervall". Den ledda staten kommer att växlas.
osignerad långströmMillis = millis ();
if (ledB == "blink") { Serial.println ("blinkande startade"); if (currentMillis - previousMillis> = interval) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } annat { ledState = LÅG; } digitalWrite (led, ledState); } }
Och detta kommer att avsluta programmeringen av NodeMCU till Blink LED trådlöst med Bluetooth. Du kan också ändra programmet för att utföra olika uppgifter med LED som att LED kan ersättas av ett relä med AC-apparat för att göra Bluetooth-hemautomationsprojekt. Vid tveksamhet eller förslag, vänligen kontakta vårt forum eller kommentar nedan.