Arduino Nano - Bluetooth

Deze tutorial leert u hoe u met Arduino Nano de HC-05 Bluetooth Module aanstuurt. In detail behandelen we:

Arduino Nano Bluetooth

Het doel van deze tutorial:

Deze tutorial richt zich op Classic Bluetooth (Bluetooth 2.0). Voor informatie over Bluetooth Low Energy - BLE (Bluetooth 4.0), verwijzen we u naar deze vergelijkbare tutorial: Arduino Nano - Bluetooth Low Energy

Hardware Benodigd

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB-kabel
1×HC-05 Bluetooth-Module
1×Jumper Wires (verbindingsdraden)
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over HC-05 Bluetooth Module

De HC-05 is een Serial Bluetooth-module die functioneert als een Serial-naar-Bluetooth converter. Het voert de volgende taken uit:

  • Data ontvangen via de Serial RX-pin en deze via Bluetooth naar het gekoppelde apparaat (zoals een smartphone) sturen
  • Data ontvangen via Bluetooth (van het gekoppelde apparaat) en deze naar de Serial TX-pin verzenden

Specifiek voor communicatie tussen Arduino Nano en een smartphone-app (Android/iOS):

  • Arduino Nano is verbonden met een HC-05 Bluetooth Module via Serial- of SoftwareSerial-pinnen.
  • De HC-05 Bluetooth Module is gekoppeld met de smartphone-app.
  • Arduino Nano stuurt data naar de smartphone-app door deze naar Serial/SoftwareSerial te verzenden.
  • Arduino Nano ontvangt data van de smartphone-app door deze te lezen vanaf Serial/SoftwareSerial.
  • Er is geen speciale Bluetooth-code nodig op de Arduino Nano.

Bluetooth HC-05 Module Pinout

Bluetooth pinout

De HC-05 Bluetooth Module heeft 6 pinnen:

  • Enable/Key pin: Deze pin wordt gebruikt om te schakelen tussen Data Mode (laag, LOW) en Command Mode (hoog, HIGH). Indien niet aangesloten, staat hij standaard in Data Mode.
  • VCC pin: voedingspin, moet verbonden zijn met +5V van de voedingsspanning.
  • GND pin: aardingspin, moet verbonden zijn met de GND van de voeding.
  • TX pin: seriële datapin, moet verbonden zijn met de RX pin van Arduino Nano. De via Bluetooth ontvangen data wordt via deze pin als seriële data verzonden.
  • RX pin: seriële datapin, moet verbonden zijn met de TX pin van Arduino Nano. De data die via deze pin binnenkomt, wordt naar Bluetooth gestuurd.
  • State pin: verbonden met de onboard LED en kan gebruikt worden als feedback om te controleren of Bluetooth correct functioneert.

Voor basisfuncties hoeft u slechts vier pinnen van de HC-05 Bluetooth Module aan te sluiten op Arduino Nano.

De HC-05 Bluetooth Module bevat ook twee ingebouwde onderdelen:

  • Een LED die de status van de module aangeeft:
    • Een knippering elke twee seconden betekent Command Mode
    • Snelle knippering betekent dat hij wacht op verbinding in Data Mode
    • Twee keer per seconde knipperen betekent een succesvolle verbinding in Data Mode
  • Een knop die gebruikt kan worden om de Key/Enable pin te bedienen om de werkingsmodus te selecteren (Data of Command Mode)

Werking

De HC-05 Bluetooth module kent twee werkingsmodi:

  • Data Mode: gebruikt voor het verzenden en ontvangen van data met het verbonden apparaat
  • Command Mode: gebruikt om instellingen te configureren

Gelukkig werkt de HC-05 Bluetooth module standaard zonder configuratie met Arduino Nano.

HC-05 Standaardinstellingen

Standaard Bluetooth Naam “HC-05”
Standaard Wachtwoord 1234 of 0000
Standaard Communicatie Slave
Standaard Mode Data Mode
Standaard Data Mode Baud Rate 9600, 8, N, 1
Standaard Command Mode Baud Rate 38400, 8, N, 1

Over Bluetooth Serial Monitor App

De Bluetooth Serial Monitor App is een mobiele applicatie met een gebruikersinterface die lijkt op de Serial Monitor van de Arduino IDE. Deze communiceert via Bluetooth met een Arduino Nano. U kunt met Arduino Nano communiceren alsof deze is verbonden met de Serial Monitor van een PC, zonder speciale Bluetooth-code toe te voegen in uw Arduino Nano programma. Volg hiervoor de volgende stappen:

  • Verbind Arduino Nano met een HC-05 Bluetooth-module
  • Installeer de Bluetooth Serial Monitor App op uw smartphone
  • Open de app en koppel deze met de HC-05 Bluetooth-module

U kunt nu data versturen en ontvangen met Arduino Nano op dezelfde manier als met de Serial Monitor van de Arduino IDE. Er is geen aanpassing nodig aan de bestaande Arduino code of toevoeging van Bluetooth-code.

Aansluitschema

Arduino Nano Bluetooth wiring diagram

This image is created using Fritzing. Click to enlarge image

Tabel van aansluitingen (bedrading).

Arduino Nano Pins HC-05 Bluetooth Pins
RX (Pin 0) TX
TX (Pin 1) RX
5V VCC
GND GND
Enable/Key (NIET aangesloten)
State (NIET aangesloten)

※ Notiz:

U kunt ook andere Arduino Nano pinnen gebruiken door het Serial-object in de Arduino-code te wijzigen naar Serial1, Serial2,... of SoftwareSerial indien beschikbaar.

Hoe te programmeren voor Bluetooth

Er is geen code specifiek voor Bluetooth nodig. We maken alleen gebruik van de standaard Serial code.

Arduino Nano stuurt data naar Bluetooth App op smartphone

Om data te sturen van Arduino Nano naar een Bluetooth-app op een smartphone gebruikt u de volgende code:

In dit voorbeeld stuurt Arduino Nano elke seconde de tekst “Arduino here, command me!” naar de Bluetooth-app op de smartphone.

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-bluetooth */ void setup() { Serial.begin(9600); } void loop() { Serial.println("Arduino here, command me!"); delay(1000); }

Snelle stappen

  • Download en installeer de Bluetooth Serial Monitor App op uw smartphone.
  • Verbind de HC-05 Bluetooth-module met de Arduino Nano volgens het aansluitschema.
  • Open de Arduino IDE, kopieer de code en plak deze in de IDE.
  • Klik op de Upload knop in de Arduino IDE om de code naar Arduino Nano te uploaden. Bij een fout ontkoppel de TX en RX pinnen van de Bluetooth-module, upload de code, en sluit daarna de RX/TX weer aan.
  • Open de Serial Monitor op de Arduino IDE.
  • Open de Bluetooth Serial Monitor App op uw smartphone en selecteer de Classic Bluetooth-modus.
Bluetooth Serial Monitor App
  • Verbind de HC-05 Bluetooth-module met de app.
Bluetooth Serial Monitor pairing
  • Bekijk het resultaat op de Android-app.
Bluetooth Serial Monitor App
  • Bekijk het resultaat ook in de Serial Monitor van de Arduino IDE.
COM6
Send
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

U zult zien dat de informatie op de Serial Monitor van Arduino IDE en de Android-app identiek is.

Bluetooth App stuurt data naar Arduino Nano

De volgende code:

  • Verstuurt data van een Bluetooth-app naar Arduino Nano
  • Laat Arduino Nano de data lezen en een reactie versturen naar de Bluetooth-app
/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-bluetooth */ // NOTE: change the Serial to other Serial/Software Serial if you connects Bluetooth module to other pins void setup() { Serial.begin(9600); } void loop() { Serial.println(F("Arduino here, command me!")); if (Serial.available()) { // if there is data comming String command = Serial.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { Serial.println("LED is turned OFF"); // reports action to smartphone app // TODO: control your LED here } else if (command == "LED ON") { Serial.println("LED is turned ON"); // reports action to smartphone app // TODO: control your LED here } } delay(500); }

Snelle stappen

  • Kopieer de code en open deze in Arduino IDE.
  • Klik op de Upload knop om de code te compileren en uploaden naar Arduino Nano.
  • Open de Serial Monitor in Arduino IDE.
  • Start de Android-app en koppelt deze met de HC-05 Bluetooth-module zoals eerder gedaan.
  • Nadat de verbinding staat, typt u in de Android-app “LED ON” of “LED OFF” en drukt u op de “SEND” knop.
Bluetooth Serial Monitor App
  • Arduino Nano ontvangt de data en toont een reactie op de seriële poort.
  • De data wordt vervolgens naar de Bluetooth-app gestuurd.
  • Het resultaat is te zien in de Android-app.
Bluetooth Serial Monitor App
  • Bekijk de output in de Serial Monitor van de Arduino IDE.
COM6
Send
Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! Arduino here, command me! LED ON LED is turned ON Arduino here, command me! Arduino here, command me! Arduino here, command me! LED OFF LED is turned OFF Arduino here, command me! Arduino here, command me!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

U ziet dat de informatie op de Serial Monitor van Arduino IDE en de Android-app hetzelfde is.

Arduino Nano Code - LED besturen met smartphone-app via Bluetooth

Onderstaand voorbeeldcode voor Arduino Nano accepteert twee commando’s (“ON” en “OFF”) van de Bluetooth Serial Monitor App. Deze commando’s worden gebruikt om een ingebouwde LED aan en uit te zetten.

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-bluetooth */ #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define LED_PIN 12 // The Arduino Nano pin connected to the LED SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); void setup() { Serial.begin(9600); bluetooth.begin(9600); pinMode(LED_PIN, OUTPUT); // set the digital pin as output: } void loop() { if (bluetooth.available()) { // if there is data comming String command = bluetooth.readStringUntil('\n'); // read string until meet newline character if (command == "LED OFF") { digitalWrite(LED_PIN, LOW); // turn off LED bluetooth.println("LED is turned OFF"); // reports action to smartphone app } else if (command == "LED ON") { digitalWrite(LED_PIN, HIGH); // turn on LED bluetooth.println("LED is turned ON"); // reports action to smartphone app } } }

Een uitgebreidere uitleg van deze instructies vindt u in de Arduino Nano bestuurt LED via Bluetooth/BLE tutorial.

Arduino Nano Code - Servo motor besturen met smartphone-app via Bluetooth

De onderstaande Arduino Nano code:

  • Ontvangt een hoekwaarde
  • Via de Bluetooth Serial Monitor App
  • En bestuurt daarmee de hoek van de servo motor.
/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-bluetooth */ #include <Servo.h> #include <SoftwareSerial.h> #define SOFT_RX 4 // The Arduino Nano pin connected to the TX of the bluetooth module #define SOFT_TX 5 // The Arduino Nano pin connected to the RX of the bluetooth module #define SERVO_PIN 12 // The Arduino Nano pin connected to the servo motor SoftwareSerial bluetooth(SOFT_RX, SOFT_TX); Servo servo; // create servo object to control a servo int pos = 0; // variable to store the servo position void setup() { Serial.begin(9600); bluetooth.begin(9600); servo.attach(SERVO_PIN); } void loop() { if (bluetooth.available()) { // if there is data comming int angle = bluetooth.parseInt(); if (angle >= 0 && angle <= 180) { servo.write(angle); // rotate servo bluetooth.print("Rotated servo to angle: ");// reports action to smartphone app bluetooth.println(angle); } else { bluetooth.print("Invalid angle: ");// reports invalid value to smartphone app bluetooth.println(angle); } } }

De instructies vindt u uitgebreid in de Arduino Nano bestuurt servo motor via Bluetooth/BLE tutorial.

Als u de Bluetooth Serial Monitor app nuttig vindt, geeft u dan alstublieft een 5-sterren beoordeling op de Play Store. Uw steun wordt zeer gewaardeerd!

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en ondersteuning voor het gebruik van Arduino Nano met de HC-05 Bluetooth Module.

Functies Referenties

Opmerkingen

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!