- Was ist das HM10 BLE 4.0-Modul?
- Unterschied zwischen HM10 und anderen Bluetooth-Modulen
- Erforderliche Komponenten
- Schaltplan
- Arduino Bluetooth Controller (HM-10-Modul) Android-Anwendung
- Programmieren von Arduino UNO zur Steuerung der LED mithilfe des HM-10 Bluetooth-Moduls
Bluetooth ist eine der beliebtesten und benutzerfreundlichsten drahtlosen Technologien. In den letzten Jahren wurden viele Verbesserungen des Bluetooth-Standards vorgenommen, um mit der aktuellen Technologie mit der zukünftigen Technologie Schritt zu halten und die Bedürfnisse der Benutzer zu befriedigen. Ab Bluetooth Version 1.0 bis Bluetooth Version 5.0 wurden viele Änderungen vorgenommen, darunter höhere Datenraten, die Möglichkeit, für IoT mit geringem Stromverbrauch, verbesserter Sicherheit usw. verwendet zu werden. Um die Bluetooth-Kommunikation zu erlernen, stehen viele Module zur Verfügung Schnittstelle zu Mikrocontrollern. Ein solches Bluetooth-Modul ist HM10, das auf Bluetooth 4.0 basiert.
Was ist das HM10 BLE 4.0-Modul?
Das HM10 ist ein serielles BLE-Modul (Bluetooth-Low-Energy), das für Anwendungen mit geringem Stromverbrauch vorgesehen ist und selbst mit einem münzgroßen Akku eine lange Lebensdauer hat. Das HM10 ist ein Bluetooth 4.0-Modul, das auf dem BLE-System-SoC (System on Chip) von Texas Instruments CC2540 oder CC2541 basiert. Die Firmware und das Design des Moduls werden von Jinan Huamao Technology erstellt und verwaltet. Das Modul verfügt über eine serielle / UART-Schicht, mit der das Gerät mit verschiedenen Mikrocontrollern verbunden werden kann. Der HM10 ist ideal, um einfache Verbindungen herzustellen und mit oder als iBeacon zu verwenden.
Das HM10 ist zu einem sehr beliebten Bluetooth 4.0 BLE-Modul geworden. Das HM10 ist nur ein Bluetooth 4.0-basiertes Modul und kann daher nicht mit Bluetooth 2 / 2.1-Modulen wie HC-05, HC-06 und anderen Bluetooth-Modulen verbunden werden. Das HM10 wird über AT-Befehle gesteuert, die über die serielle UART-Verbindung gesendet werden. HM-10 ist ein Bluetooth Low Energy (BLE) -Modul. Um mehr über BLE zu erfahren, folgen Sie dem Link. Erfahren Sie auch, wie ein nRF24L01-Modul mit Arduino als BLE-Modul verwendet werden kann.
Unterschied zwischen HM10 und anderen Bluetooth-Modulen
Der Hauptunterschied, den HM10 besitzt, ist die Bluetooth-Version. Das HM10 ist ein Bluetooth 4.0-Modul und verfügt daher über alle Bluetooth Version 4.0-Funktionen wie Geschwindigkeit, Durchsatz und Reichweite. Das HM10 bietet eine Datenrate von bis zu 24 Mbit / s bei geringem Energie- und Stromverbrauch. Gleichzeitig bietet der HM10 eine Reichweite von 100 Metern im offenen Raum. Im Vergleich zu anderen Bluetooth-Modulen wie HC-05, einem Bluetooth 2.0-basierten Modul, bietet das HM10 mit Sicherheit eine bessere Leistung als das HC-05. Der HC-05 bietet nur 3 Mbit / s im Vergleich zu HM10, was ziemlich viel weniger ist.
Die Bluetooth-Module HC-05 und HC-06 sind bei Herstellern und Hobbyisten nach wie vor sehr beliebt, da sie billig und einfach zu verbinden sind. Wir haben auch viele Projekte mit HC-05/06 durchgeführt und sie mit vielen anderen Mikrocontrollern verbunden:
- Bluetooth-Modulschnittstelle mit ESP8266: Steuerung einer LED
- Verbindung von Bluetooth HC-05 mit STM32F103C8 Blue Pill: Kontroll-LED
- Verbindung des Bluetooth-Moduls HC-05 mit dem AVR-Mikrocontroller
- Verbindung des Bluetooth-Moduls HC-06 mit dem PIC-Mikrocontroller
- Sprachgesteuerte LEDs mit Arduino und Bluetooth
- Sprachgesteuerte Lichter mit Raspberry Pi
Alle Bluetooth-bezogenen Projekte finden Sie unter diesem Link.
Heute werden wir das HM-10 BLE-Modul mit Arduino Uno verbinden, um eine LED drahtlos über das Bluetooth-Protokoll zu steuern. Die Ein / Aus-Befehle werden vom Smartphone gesendet.
Erforderliche Komponenten
Hardware:
- Arduino UNO
- HM10 Bluetooth-Modul
- Widerstände (1 kΩ, 470 Ω)
- Überbrückungsdrähte
Software:
- Arduino IDE
- Arduino Bluetooth Controller (HM-10-Modul) Android App
- Android Smartphone
Schaltplan
Der Schaltplan für den Anschluss des Arduino- und HM-10-Bluetooth-Moduls ist wie unten gezeigt sehr einfach.
Bevor Sie mit dem Projekt beginnen, stellen Sie sicher, dass Ihr HM-10-Modul ein echtes HM-10-Modul ist. Es gibt weit verbreitete chinesische geklonte HM-10-Module. Um den Unterschied zwischen echtem und geklontem HM-10-Modul festzustellen, sehen Sie sich einfach das Vorhandensein eines 32-kHz-Kristalloszillators auf der HM-10-Platine an. Wenn der Kristalloszillator vorhanden ist, handelt es sich um ein echtes HM-10-Modul, und Sie müssen die Firmware nicht ändern. Wenn Sie den Crystal Oscillator jedoch nicht sehen können, handelt es sich um ein geklontes HM10-Modul, und Sie müssen die Firmware des geklonten HM-10-Moduls ändern. Ohne die HM-10-Firmware zu ändern, können Sie weder mit AT-Befehlen auf das HM-10-Modul zugreifen noch es mit Smartphones koppeln. Hier verwenden wir auch das Klonmodul, also haben wir seine Firmware geflasht, bevor wir es mit Ardruino verbunden haben. Um die Firmware des geklonten HM-10-Moduls zu ändern, folgen Sie einfach unserem Tutorial zum Ändern oder Flashen der Firmware des geklonten HM-10 -Moduls.
Arduino Bluetooth Controller (HM-10-Modul) Android-Anwendung
Der Arduino Bluetooth Controller (HM-10-Modul) ist eine Android-Anwendung, die kostenlos im Google Play Store erhältlich ist. Diese App verfügt über eine einfache Benutzeroberfläche für das HM-10 BLE-Modul. Während des Tests konnte es HM-10 schnell finden und es wurde sofort mit HM-10 verbunden. Die App verfügt über einige coole Funktionen, mit denen Sie eine Schaltfläche erstellen und mit benutzerdefinierten Namen und Funktionen anpassen können. Hier erfahren Sie, wie Sie zwei Schaltflächen in dieser Bluetooth-Controller-App erstellen, um die mit Arduino verbundene LED ein- und auszuschalten.
So richten Sie die Android-App Arduino Bluetooth Controller (HM-10-Modul) ein:
- Laden Sie die App aus dem Google Play Store herunter.
- Die Startseite der App sieht wie folgt aus: Hier finden Sie Funktionen wie Gerät verbinden, Suchsymbol, Symbol löschen, Gerätestatus, Text senden, Vorlage hinzufügen usw. Beginnen Sie mit der Suche im Gerät, indem Sie entweder auf Suchsymbol klicken oder auf klicken zu drei Punkten in der oberen rechten Ecke und wählen Sie Gerät verbinden .
- Alle verfügbaren Geräte werden auf dem Bildschirm angezeigt. Wählen Sie das richtige HM-10-Modul.
- Jetzt ist der HM-10 erfolgreich verbunden und Sie können den Status des HM-10 oben auf dem Bildschirm sehen.
- Jetzt können Sie entweder direkt einen Text oder eine Zeichenfolge senden, indem Sie in den Textbereich schreiben und zum Senden auf den Pfeil klicken, oder Sie können eine benutzerdefinierte Vorlage erstellen.
- So erstellen Sie eine benutzerdefinierte Vorlage, um Zeit zu sparen. Klicken Sie auf das Symbol „ + “ in der oberen rechten Ecke und geben Sie die Details ein. Der " Name " ist der Name der Schaltfläche, das Feld " Text " steht für Texte oder Zeichenfolgen, die an HM-10 gesendet werden, und " Beschreibung " ist nur die Beschreibung der Schaltfläche, wie die Schaltfläche funktioniert.
- Zum einen eine Taste für Turn LED ON schaffen und geben ihm eine grüne Farbe. Die Taste sendet einen "N" -Brief an HM-10, wodurch die an Arduino angeschlossene LED eingeschaltet wird. Erstellen Sie auf ähnliche Weise eine Schaltfläche für LED AUS und geben Sie ihr eine rote Farbe.. Die Taste sendet einen F-Buchstaben an HM-10, wodurch die an Arduino angeschlossene LED ausgeschaltet wird.
- Jetzt können Sie die beiden Schaltflächen sehen, die direkt unter dem Textfeld erstellt wurden. Wenn Sie nun die LED steuern möchten, klicken Sie einfach auf die Schaltflächen.
Damit ist die Einrichtung der Android-App zur Steuerung des HM-10-Moduls abgeschlossen. Jetzt beginnen wir mit der Programmierung von Arduino Uno, um die Charaktere aus der Android App zu erhalten.
Programmieren von Arduino UNO zur Steuerung der LED mithilfe des HM-10 Bluetooth-Moduls
Wie immer finden Sie das vollständige Programm mit Demonstrationsvideo am Ende dieses Tutorials. Das Programmieren von Arduino UNO für dieses Projekt erfordert weder viel Aufwand noch eine Bibliothek. Sie können die serielle Hardware- und die serielle Softwarebibliothek verwenden. Wenn Sie Software Serial verwenden, fügen Sie einfach die Software Serial Library hinzu, andernfalls fahren Sie mit Hardware Serial fort. In diesem Projekt verwenden wir SoftwareSerial. So starten Sie mit, einschließlich Serien - Library Software. Die Pins Rx und Tx sind an 2 und 3 Pins von Arduino verbunden.
#einschließen
Die beiden Variablen werden verwendet, um die von HM10 und Android App empfangenen Daten zu speichern.
char appData; String inData = "";
Starten Sie einfach die Hardware- und Software-Serie mit einer Baudrate von 9600 und drucken Sie einige Debugging-Anweisungen. Der LED-Pin wird als Ausgang gesetzt und ist anfangs ausgeschaltet.
Serial.begin (9600); Serial.println ("HM10 serial serial at 9600"); HM10.begin (9600); // HM10 seriell auf 9600 Baudrate einstellen pinMode (13, OUTPUT); // integrierte LED digitalWrite (13, LOW); // LED ausschalten
Hören Sie den HM10-Port ab und lesen Sie die Zeichenfolge, bis der HM10 verfügbar ist und die Daten sendet. Speichern Sie die Daten in einer Zeichenfolge.
HM10.listen (); // den HM10-Port abhören, während (HM10.available ()> 0) {// wenn HM10 etwas sendet, dann lese appData = HM10.read (); inData = String (appData); // speichere die Daten im String-Format Serial.write (appData); }}
Zum Debuggen des HM10 mit AT-Befehlen schreiben Sie einfach die folgende Codezeile, die den String an HM10 sendet.
if (Serial.available ()) {// Benutzereingaben lesen, falls verfügbar. Verzögerung (10); HM10.write (Serial.read ()); }}
Wenn die empfangene Zeichenfolge "F" ist, drucken Sie eine Nachricht auf dem seriellen Monitor und schalten Sie die LED aus. Wenn die empfangene Zeichenfolge "N" ist, drucken Sie eine Nachricht auf dem seriellen Monitor und blinken Sie die LED mit einer Verzögerung von 500 ms.
if (inData == "F") { Serial.println ("LED OFF"); digitalWrite (13, LOW); // LED- Verzögerung ausschalten (500); } if (inData == "N") { Serial.println ("LED ON"); digitalWrite (13, HIGH); // LED- Verzögerung ausschalten (500); digitalWrite (13, LOW); // LED- Verzögerung ausschalten (500); }}
Damit ist das vollständige Tutorial zur Steuerung der LED mit dem Arduino- und BLE HM10 Blutooth 4.0-Modul abgeschlossen. Denken Sie auch hier daran, dass Sie , wenn Sie ein echtes HM10-Modul haben, dessen Firmware nicht flashen müssen, es sofort verwendet werden kann. Wenn Sie jedoch ein geklontes HM-10-Modul verwenden, flashen Sie die Firmware auf dem geklonten HM10 BLE-Modul. Wenn Sie Zweifel oder Vorschläge haben, kommentieren Sie diese bitte unten oder schreiben Sie an unser Forum.