Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Microcontroller BLE-Nano von Keywish

Posted on 2. April 20208. März 2024 by Stefan Draeger

In diesem Beitrag möchte ich dir den Microcontroller BLE-Nano von Keywish vorstellen.
Die Bezeichnung BLE steht hier für Bluetooth Low Energie und repräsentiert den Bluetooth Standard 4.0.

Microcontroller BLE-Nano von Keywish

  • Bezug
  • Technische Daten
    • Dokumentation von Keywish
  • Anschluß & Schaltung
  • AT Befehle zum konfigurieren
    • Liste an AT Befehlen für den BLE-Nano
      • schreiben von AT Befehlen
      • Tabelle der gebräuchlichen AT Befehle für den BLE-Nano
  • Verbinden des BLE-Nano mit einem Android Gerät
  • Reichweite des Bluetooth Moduls
    • Test der Reichweite unter verschiedenen Bedingungen
      • im Gebäude
      • außerhalb vom Gebäude
      • im bebauten Gelände
      • im Gelände
  • Quellcode
    • schalten von LEDs per Bluetoothverbindung
      • Video

Der BLE-Nano ist ein herkömmlicher Arduino Nano Klon, welcher lediglich ein Bluetooth Modul vom Typ CC2540 verbaut hat.

"ATMEL M328P U-CN" Chip
„ATMEL M328P U-CN“ Chip
Bluetooth BLE Chip CC2540
Bluetooth BLE Chip CC2540

Bezug

Den BLE-Nano habe ich über aliexpress.com für knapp 5€ inkl. Versandkosten erstanden, du bekommst diesen aber auch über ebay.de wo dieser mit ca. 17 € inkl. Versandkosten ca. 3x so teuer ist.

Dieses Mal biete ich keinen direkten Link zum Ebay Artikel bzw. zur Liste an, denn diese Preisspanne ist doch sehr hoch. Daher geht dieses Mal meine Empfehlung klar an aliexpress.com.

Technische Daten

Der BLE-Nano ist, wie bereits erwähnt ein Arduino Nano Klon welcher zusätzlich den Bluetooth Low Energy Chip CC2540 verbaut hat.

  • Chip –  ATmega328P mit 16 MHz
  • Betriebsspannung 5V
  • Eingangsspannung 7-12V (Vin)
  • Stromaufnahme 19mA
  • Speicher
    • Flash Speicher 32 KB (2 KB durch den Bootloader reserviert)
    • SRAM 2 KB
    • EEPROM 1 KB
  • Ein / Ausgänge
    • digitale Ein / Ausgänge  22
    • PWM Pins 8
    • analoge Eingänge 8
    • max. Stromaufnahme pro Pin 40 mA 
  • Abmaße (L x B) 48 mm x 18 mm
  • Gewicht 7 g

Dokumentation von Keywish

Auf dem GitHub Repository von Keywish findest du eine ausführliche Dokumentation sowie ein Datenblatt zu diesem Microcontroller.

Anschluß & Schaltung

Da der BLE-Nano über einen Bluetooth Chip verfügt und die sonstigen Eigenschaften sehr identisch mit dem „normalen“ Arduino Nano Klon sind möchte ich hier speziell nur auf die Programmierung und den Betrieb mit dem Bluetooth Chip eingehen.

Anders wie beim RF-Nano ist der Bluetooth Adapter an keine besonderen Pins verdrahtet und kann einfach über die Serielle Schnittstelle des Microcontrollers angesprochen / ausgewertet werden. Der Microcontroller BLE-Nano erstellt und trennt die Verbindung dabei weitestgehend selbstständig.

Aufbau der Schaltung - BLE-Nano mit 3 LEDs
Aufbau der Schaltung – BLE-Nano mit 3 LEDs

AT Befehle zum konfigurieren

Der BLE-Nano ist bereits fertig vorkonfiguriert und einsatzbereit. Wenn man jedoch das Passwort für die Verbindung ändern möchte oder andere Parameter einstellen möchte muss man diese über sogenannte AT Befehle über einen seriellen Terminal einstellen.

Eingabe von AT Befehlen über den seriellen Monitor der Arduino IDE
Eingabe von AT Befehlen über den seriellen Monitor der Arduino IDE

In dem kleinen GIF, zeige ich den Befehl zum Test ob der BLE-Nano auf AT Befehle reagiert. Es wird lediglich der Befehl „AT“ eingegeben und abgesendet, der BLE-Nano antwortet darauf mit einem „+OK“.

Hierfür kann zbsp. der serielle Monitor der Arduino IDE verwendet werden. Jedoch startet der BLE-Nano nach erfolgreichem schreiben des Kommandos neu und der serielle Monitor „verliert“ die Verbindung und das Fenster muss geschlossen und neu geöffnet werden.

Liste an AT Befehlen für den BLE-Nano

Die Liste mit den gültigen AT Befehlen findest du im offiziellen Dokument zum BLE-Nano unter https://github.com/keywish/keywish-nano-plus/blob/master/BLE-Nano/Ble-Nano%20operation%20manual%20V.1.6.pdf. Ich empfehle das Dokument herunterzuladen und mit einem externen Programm zu öffnen.

schreiben von AT Befehlen

Um Werte auf den BLE-Nano zu schreiben muss der Befehl gefolgt von einem Gleichheitszeichen und dem Wert eingegeben werden zbsp:

AT+PASS=123456

Wenn das schreiben erfolgreich war, wird dieses mit einem Text quitiert der BLE-Nano neugestartet.

OK+SetPassWord=123456
+SUCCESS

Sollte bei der Eingabe vom Passwort zbsp. die Regel min 6 Zeichen und nur Zahlen, verletzt werden so wird dieses mit einer Ausgabe quitiert.

+OK
EEROR
SetPassWord 
Must 6bit length 
Must 0~10 numble

Tabelle der gebräuchlichen AT Befehle für den BLE-Nano

BefehlBeschreibungdefault
AT+ALL listet die gesetzten Einstellungen auf 
AT+VER Anzeige der BLE Firmware Version V1.1
AT+NAME setzen des Namens für das Bluetooth Gerät  Ble-Nano
AT+MAC anzeigen der MAC Adresse 
AT+PASS setzen des Passwortes für die Verbindung 000000 (6x null)

Verbinden des BLE-Nano mit einem Android Gerät

Anders als bei Herkömmlichen Bluetooth Geräten (< Bluetooth 4.0) wird bei Bluetooth Low Energy die Verbindung nicht über die Konfiguration der Bluetoothverbindung von Android aufgebaut sondern man muss ein spezielles Programm verwenden.

Auf dem GitHub Repository von Keywish findet man eine APK Datei für Android Geräte um eine Verbindung aufzubauen das Problem ist hier nur das diese mit Chinesischen Zeichen daherkommt und daher die Bedienung sehr umständlich ist.

Android App - BLE Testapp von Keywish
Android App – BLE Testapp von Keywish

Da diese App nicht über den Google Playstore installiert wird, werden bei der Installation Sicherheitshinweise angezeigt welche man bestätigen muss.
Ich empfehle hier die Android App „Serial Bluetooth Terminal von Kai Morich„.

Reichweite des Bluetooth Moduls

Laut Spezifikation ist die maximale Reichweite eines Bluetooth LE Gerätes bei 10 bis 40 Meter, dieses liegt unter anderem daran das die Sende / Empfangsleistung (~ 10mW) gedrosselt ist. Diese gewollte Drosselung bringt den Vorteil das der Energieverbrauch deutlich gesunken ist und somit der Einsatz im IoT Bereich erweitert wurde.

Test der Reichweite unter verschiedenen Bedingungen

Als nächstes möchte ich nun einpaar kleine Tests der Reichweite zeigen.
Diese sind natürlich nicht repräsentativ da es viele Faktoren gibt welche Einfluss darauf nehmen.

Einflüsse welche die Reichweite beeinflussen sind zbsp:

  • Störungsquellen
    • elektrische Geräte, Überlandleitungen
  • Qualität der Sender / Empfänger

im Gebäude

Der Test erfolgt im Gebäude, zwischen zwei Räumen, die Wände sind einfache Ziegelwände mit Putz (und Tapete), zusätzlich befinden sich als eventuelle Störungsquellen noch elektrische Geräte wie Fernseher / Receiver und Computer in der nähe.

Es konnte auf zwei Etagen in jedem Raum eine Verbindung zum BLE-Nano hergestellt werden.
Dabei war die maximale Distanz ca. 8m bis 10m.

außerhalb vom Gebäude

Der Empfänger befindet sich außerhalb des Gebäudes und der Sender (das Android Handy) befindet sich im Gebäude.

BLE-Nano, test der Reichweite außerhalb vom Gebäude
BLE-Nano, test der Reichweite außerhalb vom Gebäude

Ich konnte wiederum dabei von jedem Punkt im Gebäude eine Verbindung zum BLE-Nano herstellen und eine der drei LEDs schalten.

im bebauten Gelände

Der Sender und der Empfänger befinden sich außerhalb vom Gebäude im bebauten Gelände

BLE-Nano , test der Reichweite im bebauten Gelände
BLE-Nano , test der Reichweite im bebauten Gelände

Es konnte eine maximale Distanz von 21m erreicht werden. 

im Gelände

Der Sender und der Empfänger befinden sich außerhalb vom bebauten Gelände (im freien Feld).

BLE-Nano, offenes Gelände
BLE-Nano, offenes Gelände

Im offenen, nicht bebautem Gelände konnte eine Reichweite von 32 m hergestellt werden. Damit kommt man ziemlich nah an den maximalen Wert aus der Spezifikation von 40 m.

Quellcode

schalten von LEDs per Bluetoothverbindung

Über die serielle Verbindung erhält man einen ASCII Zahlencode welchen man entweder zunächst in den „echten“ Wert umzuwandeln oder aber man verwendet diesen so wie er ist.

Im folgenden Code verwende ich die ASCII Zeichen für 0,1 und 2 um die rote, grüne und blaue LED zu schalten.

#define led_rot 8 //rote LED am digitalen Pin D8
#define led_blau 10 //blaue LED am digitalen Pin D10
#define led_gruen 13 //gruene LED am digitalen Pin D13

//Variablen zum speichern Status der LEDs
boolean ledRotAN = false;
boolean ledBlauAN = false;
boolean ledGruenAN = false;

void setup() {
  //beginn der seriellen Kommunikation mit 9600 baud
  Serial.begin(9600);

  //definieren das die digitalen Pins als AUSGAENGE dienen
  pinMode(led_rot, OUTPUT);
  pinMode(led_blau, OUTPUT);
  pinMode(led_gruen, OUTPUT);
}

void loop() {
  //wenn Daten an den seriellen Schnittstelle anliegen, dann...
  while (Serial.available() > 0) {
    //lesen der Daten
    int value = Serial.read();
    //ausgeben der Daten auf der seriellen Schnittstelle
    //diese Daten sind im Seriellen Monitor der Arduino IDE zu sehen, sowie
    //werden diese an das Terminal zurück gesendet.
    //Es wird ein ASCII Zeichen empfangen, 
    //48 = 0
    //49 = 1
    //50 = 2
    Serial.println(value);
    switch (value) {
      case 48:
        //Umkehren des Status
        ledRotAN = !ledRotAN;
        //Wenn der Status ledRotAN = true ist dann setzte HIGH, ansonsten LOW
        digitalWrite(led_rot, ledRotAN ? HIGH : LOW);
        break;
      case 49:
        ledGruenAN = !ledGruenAN;
        digitalWrite(led_gruen, ledGruenAN ? HIGH : LOW);
        break;
      case 50:
        ledBlauAN = !ledBlauAN;
        digitalWrite(led_blau, ledBlauAN ? HIGH : LOW);
        break;
    }
    //eine kleine Pause von 2 Millisekunden
    delay(2);
  }
}

Video

BLE-Nano, verbinden und LEDs steuern
Dieses Video auf YouTube ansehen.

6 thoughts on “Microcontroller BLE-Nano von Keywish”

  1. Andrej sagt:
    22. Oktober 2020 um 16:50 Uhr

    Hallo,
    ich würde gerne Wissen, ob und wie der Treiber für das CC2540 Bluetooth Modul installiert wurde. Denn bei mir ist eine verbindung nicht möglich allerdings lässt sich das BLE Nano mit dem obigen Code und der App via Bluetooth steuern, jedoch nicht mit anderen Bluetooth Apps.
    Danke schon jetzt für die Hilfe

    Antworten
    1. Stefan Draeger sagt:
      26. Oktober 2020 um 11:09 Uhr

      Hi,
      für das Bluetooth Modul benötigst du keine separaten Treiber denn das ganze funktioniert über der seriellen Schnittstelle.

      Gruß,

      Stefan Draeger

      Antworten
    2. Rainer Unverhau sagt:
      15. Juni 2021 um 08:23 Uhr

      Hallo Stefan,
      danke für den ausführlichen Post.

      Würde gerne den BLE Nano für ein Stromzählerprojekt verwenden.
      Ist der BLE Nano beim Starten automatisch im AT-Command Mode?
      Beim HC-05 muss ich das über einen Pin umschalten und die Baudrate ist dann 38400 für das Senden der AT-Befehle. Wie funktioniert das hier?

      Danke für eine kurze Rückmeldung
      Rainer

      Antworten
  2. Andrej sagt:
    10. November 2020 um 12:36 Uhr

    Hallo,
    ich würde gerne mein BLE-Nano Board mit Hilfe der App „Bluetooth Electronics“ steuern, abder es ist keine Verbindung möglich!
    brauche ich einen Treiber oder muss ich mithilfe von AT befehlen Daten senden.
    Ich bin Einsteiger in Arduino und in Datenübertragung via Bluetooth.
    Danke für die Hilfe!!

    Antworten
  3. Gusty FEINEN sagt:
    20. November 2020 um 22:05 Uhr

    Mein BLE-Nano von Keywish scheint nicht zum download mit der Arduino IDE geeignet. Als Board wähle ich „Arduino Nano 33 BLE“. Aber nach Kompilierung scheint IDE nach 2 USB Geräten zu suchen und bricht ab. Ein Reset auf dem Board geht auch leider nicht. Beim Anwählen eines klassischen Arduino Nano in der IDE kann ich ein Script downloaden. aber dann fehlt ja alle Wifi und BT Funktionen …
    Was kann ich tun ? Geht nur das Original ?

    Antworten
    1. Norbert sagt:
      30. November 2020 um 13:45 Uhr

      Versuchs doch mal mit dem Board Arduino Nano mit ATmega 328P als Prozessor, bei mir klappt das ganz ohne Probleme.

      Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}