Arduino Nano - BLE
Deze handleiding legt uit hoe u een Arduino Nano gebruikt om het BLE HM-10-module te besturen. We behandelen in detail:
- Het gebruik van Bluetooth Low Energy (BLE) technologie met Arduino Nano
- Het versturen van data van Arduino Nano naar een smartphone-app via BLE
- Het ontvangen van data op Arduino Nano van een smartphone-app via BLE
- Het besturen van Arduino Nano vanuit een smartphone-app met BLE

Het doel van deze handleiding is:
- Gegevens uitwisselen tussen een Arduino Nano en een smartphone-app via BLE
- Gebruik maken van de HM-10 Bluetooth Low Energy module
- Demonstreren van de Bluetooth Serial Monitor app op Android, hoewel elke Android/iOS app kan worden gebruikt
- Het bedienen van verschillende apparaten die verbonden zijn met Arduino Nano via de smartphone-app, met voorbeelden zoals een LED en een servomotor
Het is belangrijk om te weten dat deze handleiding zich richt op Bluetooth Low Energy (BLE, Bluetooth 4.0). Als u informatie zoekt over Classic Bluetooth (Bluetooth 2.0), raadpleeg dan de gelijksoortige tutorial Arduino Nano - Bluetooth.
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de HM-10 Bluetooth Module
De HM-10 is een seriële BLE-module die fungeert als een omzetter van seriële data naar Bluetooth Low Energy. Hij kan het volgende:
- Gegevens ontvangen via de seriële RX-pin en deze versturen naar een gekoppeld apparaat, zoals een smartphone, via BLE
- Gegevens ontvangen via BLE (van het gekoppelde apparaat) en deze doorsturen naar de seriële TX-pin
Wanneer een Arduino Nano wordt gebruikt om te communiceren met een smartphone-app (Android/iOS), verlopen de stappen als volgt:
- De Arduino Nano is verbonden met de HM-10 Bluetooth module via de seriële/SoftwareSerial-pinnen
- De HM-10 Bluetooth module wordt gekoppeld aan de smartphone-app
- Gegevens worden vanaf Arduino Nano naar de smartphone-app verstuurd door ze naar de seriële/SoftwareSerial-verbinding te sturen
- Gegevens worden vanuit de smartphone-app ontvangen door de Arduino Nano door ze te lezen vanuit de seriële/SoftwareSerial-verbinding
- Er is geen extra BLE-code nodig op de Arduino Nano
Pinout van de BLE HM-10 Module

De HM-10 BLE module heeft 6 pinnen:
- BKR pin: Deze pin wordt gebruikt voor het regelen van het gedrag van de module. Beginners kunnen deze pin negeren.
- RX pin: Dit is een seriële dataprin, deze moet verbonden worden met de TX pin van de Arduino Nano. Data die via deze pin wordt ontvangen, wordt via Bluetooth verzonden.
- TX pin: Dit is een seriële dataprin, deze moet verbonden worden met de RX pin van de Arduino Nano. Data die via BLE wordt ontvangen, wordt via deze pin als seriële data verstuurd.
- GND pin: Dit is de aarde (ground) pin, die verbonden moet worden met de GND van de voedingsbron.
- VCC pin: Dit is de voedingspin, die verbonden moet worden met 3.3V voedingsspanning.
- STATE pin: Deze pin geeft de werkstatus van de module aan:
- Knippert in standby-modus - herhaalt elke 500ms een puls;
- Aan in verbindingstoestand - hoog niveau.
- Er zijn slechts vier pinnen nodig voor de HM-10, namelijk VCC, GND, RX en TX.
- Sommige fabrikanten maken de HM-10 met alleen deze vier pinnen.
...NOOT
...NOOT
Over de Bluetooth Serial Monitor App
Om de Bluetooth Serial Monitor App te gebruiken, moet u eerst uw Arduino Nano bord verbinden met een HM-10 Bluetooth module. Vervolgens download en installeert u de app op uw smartphone. Tot slot opent u de app en maakt u verbinding met de HM-10 Bluetooth module.
Als deze stappen voltooid zijn, kunt u data verzenden en ontvangen van de Arduino Nano alsof u de Serial Monitor in de Arduino IDE gebruikt, zonder dat u code hoeft aan te passen of Bluetooth-specifieke code hoeft toe te voegen aan uw Arduino Nano programma.
Aansluitschema

This image is created using Fritzing. Click to enlarge image
Tabel met verbindingen
| Arduino Nano Pins | HM-10 Bluetooth Pins |
|---|---|
| RX (Pin 0) | TX |
| TX (Pin 1) | RX |
| 5V | VCC |
| GND | GND |
| BKR (NIET verbonden) | |
| STATE (NIET verbonden) |
...NOOT
De Arduino Nano code kan andere pinnen gebruiken door het Seriële object te vervangen door een alternatief zoals Serial1, Serial2, of SoftwareSerial (indien beschikbaar).
...NOOT
Hoe te programmeren voor Bluetooth
Er is geen specifieke Bluetooth-programmering nodig, alleen seriële communicatie-programmering is vereist.
Arduino Nano verstuurt data naar Bluetooth-app op smartphone
Om data te versturen van een Arduino Nano bord naar een Bluetooth-app op een smartphone, kan onderstaande Arduino Nano code worden gebruikt. Dit voorbeeld toont hoe de boodschap “Arduino here, command me!” elke seconde wordt verzonden van de Arduino Nano naar de smartphone-app.
Snelstappen
- Zoek beschikbare apparaten en selecteer de HM-10 module.
Om de code te gebruiken en een verbinding tot stand te brengen tussen een Arduino Nano en een smartphone via BLE, volgt u deze stappen:
- Download en installeer de Bluetooth Serial Monitor App op uw smartphone.
- Verbind volgens het aansluitschema de HM-10 Bluetooth module met de Arduino Nano.
- Open de Arduino IDE, kopieer de meegeleverde code en upload deze naar de Arduino Nano. Als u problemen ondervindt bij het uploaden, koppel dan de TX en RX pinnen los van de Bluetooth module, upload de code, en sluit vervolgens de RX/TX pinnen weer aan.
- Start de Serial Monitor in de Arduino IDE.
- Open op uw smartphone de Bluetooth Serial Monitor app en schakel over naar de BLE-modus.
- Zoek naar beschikbare apparaten en selecteer de HM-10 module.

- Maak verbinding tussen de smartphone en de HM-10 Bluetooth module.

- Bekijk het resultaat op de Android app.

- Bekijk de output in de Serial Monitor van de Arduino IDE.
Als u deze stappen volgt en de code uitvoert, zal de data die op de Serial Monitor van de Arduino IDE en op de Android-app verschijnt identiek zijn.
Bluetooth App verstuurt data naar Arduino Nano
De onderstaande code voert het volgende uit:
- Data versturen van de Bluetooth-app naar het Arduino Nano bord
- Het Arduino Nano bord leest de binnenkomende data en stuurt vervolgens een reactie terug naar het Bluetooth-apparaat.
Snelstappen
Hieronder staan de stappen om deze code te gebruiken met Arduino Nano en een Android app:
- Start de Arduino IDE en kopieer de bijgeleverde code.
- Klik op de Upload-knop om de code naar het Arduino Nano bord te sturen.
- Open de Serial Monitor in de Arduino IDE.
- Start de Android app en koppel deze met de HM-10 Bluetooth module volgens de instructies uit het vorige voorbeeld.
- Typ na het verbinden “LED ON” of “LED OFF” in de Android app en druk op de “SEND”-knop.

- Het Arduino Nano bord ontvangt de data en print een reactie naar de seriële poort. Daarna wordt deze data naar de Bluetooth app gezonden. Het resultaat kunt u op de Android app bekijken.

- Bekijk de output in de Serial Monitor van de Arduino IDE.
Nadat u de bovenstaande stappen hebt uitgevoerd, zult u zien dat de data die op de Serial Monitor van de Arduino IDE en in de Android app wordt weergegeven, overeenkomen.
Arduino Nano Code – LED bedienen met smartphone app via BLE
De volgende voorbeeldcode voor Arduino Nano gebruikt de commando’s “ON” en “OFF” die via de Bluetooth Serial Monitor app worden ontvangen om een geïntegreerde LED aan en uit te zetten.
Meer informatie over deze instructies vindt u in de tutorial Arduino Nano controls LED via Bluetooth/BLE. Voor een uitgebreidere uitleg raadpleeg de tutorial Arduino Nano controls LED via Bluetooth/BLE.
Arduino Nano Code – Servomotor bedienen met smartphone app via BLE
- De onderstaande Arduino Nano code ontvangt een hoekwaarde van de Bluetooth Serial Monitor App.
- Met deze hoekwaarde wordt vervolgens de hoek van een servomotor geregeld.
Een gedetailleerdere uitleg vindt u in de tutorial Arduino Nano controls Servo Motor via Bluetooth/BLE. Voor een nadere toelichting zie de tutorial Arduino Nano controls Servo Motor via Bluetooth/BLE.
Als u de Bluetooth Serial Monitor app nuttig vindt, geef deze dan alstublieft 5 sterren in de Play Store. Uw waardering wordt zeer op prijs gesteld!
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.