- HM10 BLE 4.0モジュールとは何ですか?
- HM10と他のBluetoothモジュールの違い
- 必要なコンポーネント
- 回路図
- Arduino Bluetoothコントローラー(HM-10モジュール)Androidアプリケーション
- HM-10Bluetoothモジュールを使用してLEDを制御するArduinoUNOのプログラミング
Bluetoothは、最も人気があり使いやすいワイヤレステクノロジの1つです。数年にわたって、Bluetooth標準の多くのアップグレードが行われ、現在進行中のテクノロジと将来のテクノロジに対応し、ユーザーのニーズを満たしています。Bluetoothバージョン1.0からBluetoothバージョン5.0に至るまで、データレートの向上、低消費電流でIoTに使用できる機能、セキュリティの向上など、多くの変更が加えられています。マイクロコントローラーとのインターフェース。このようなBluetoothモジュールは、Bluetooth4.0をベースにしたHM10です。
HM10 BLE 4.0モジュールとは何ですか?
HM10はシリアルBLEモジュール(Bluetooth-Low-Energy)であり、低消費電力アプリケーションでの使用を目的としており、コインサイズのバッテリーでも長持ちします。HM10は、Bluetooth 4.0モジュールであるに基づいて、テキサス・インスツルメンツCC2540またはCC2541 BLEシステムのSoC(システムオンチップ)。モジュールのファームウェアと設計は、済南華尾テクノロジーによって作成および管理されています。モジュールにはシリアル/ UARTレイヤーが付属しており、デバイスをさまざまなマイクロコントローラーとインターフェースできるようにします。 HM10は、単純な接続を作成し、iBeaconと一緒にまたはiBeaconとして使用するのに理想的です。
HM10は、非常に人気のあるBluetooth 4.0BLEモジュールになりました。HM10はBluetooth4.0ベースのモジュールのみであるため、HC-05、HC-06、その他のBluetoothモジュールなどのBluetooth 2 /2.1モジュールとは接続しません。HM10は、シリアルUART接続を介して送信されるATコマンドを介して制御されます。HM-10はBluetoothLow Energy(BLE)モジュールであり、BLEの詳細についてはリンクをたどってください。また、nRF24L01モジュールをArduinoでBLEモジュールとして使用する方法についても学びます。
HM10と他のBluetoothモジュールの違い
HM10が持つ主な違いはBluetoothバージョンです。HM10はBluetooth4.0モジュールであるため、速度、スループット、範囲など、Bluetoothバージョン4.0のすべての機能が搭載されています。HM10は、低エネルギー/低消費電力で24 Mbpsの最大のデータレートを提供しています。これに加えて、HM10はオープンスペースで100メートルの距離範囲を提供します。Bluetooth 2.0ベースのモジュールであるHC-05などの他のBluetoothモジュールと比較すると、HM10は確かにHC-05よりも優れたパフォーマンスを発揮します。HC-05は、HM10と比較して3Mbpsしか提供しません。HM10はかなり少ないです。
BluetoothモジュールHC-05およびHC-06は、安価でインターフェースが簡単なため、メーカーや愛好家の間で今でも非常に人気があります。また、HC-05 / 06を使用して多くのプロジェクトを作成し、それらを他の多くのマイクロコントローラーとインターフェースしました。
- ESP8266とインターフェースするBluetoothモジュール:LEDの制御
- Bluetooth HC-05とSTM32F103C8ブルーピルのインターフェース:LEDの制御
- HC-05BluetoothモジュールとAVRマイクロコントローラーのインターフェース
- BluetoothモジュールHC-06とPICマイクロコントローラーのインターフェース
- ArduinoとBluetoothを使用した音声制御LED
- RaspberryPiを使用した音声制御ライト
Bluetooth関連のすべてのプロジェクトはこのリンクにあります。
今日は、HM-10BLEモジュールをArduinoUnoとインターフェースして、Bluetoothプロトコルを使用してLEDをワイヤレスで制御します。オン/オフコマンドはスマートフォンから送信されます。
必要なコンポーネント
ハードウェア:
- Arduino UNO
- HM10Bluetoothモジュール
- 抵抗器(1kΩ、470Ω)
- ジャンパー線
ソフトウェア:
- Arduino IDE
- Arduino Bluetoothコントローラー(HM-10モジュール)Androidアプリ
- Androidスマートフォン
回路図
ArduinoとHM-10Bluetoothモジュールを接続するための回路図は、 以下に示すように非常に単純です。
プロジェクトを開始する前に、HM-10モジュールが純正のHM-10モジュールであることを確認してください。広く中国のクローンHM-10モジュールが利用可能です。純正とクローンHM-10モジュールの違いを確認するには、HM-10ボード上の32KHzの水晶発振器の存在を確認してください。水晶発振器が存在する場合、それは純正のHM-10モジュールであり、ファームウェアを変更する必要はありません。ただし、代わりに水晶発振器が表示されない場合は、クローンHM10モジュールであるため、クローンHM-10モジュールのファームウェアを変更する必要があります。。HM-10ファームウェアを変更しないと、ATコマンドでHM-10モジュールにアクセスしたり、スマートフォンとペアリングしたりすることはできません。ここでもクローンモジュールを使用しているので、Ardruinoに接続する前にファームウェアをフラッシュしました。クローンHM-10モジュールのファームウェアを変更するには、クローンHM-10モジュールのファームウェアを変更またはフラッシュする方法に関するチュートリアルに従ってください。
Arduino Bluetoothコントローラー(HM-10モジュール)Androidアプリケーション
Arduino Bluetoothコントローラー(HM-10モジュール)は、GooglePlayストアで無料で入手できるAndroidアプリケーションです。このアプリは、HM-10BLEモジュール用の簡単でシンプルなインターフェースを備えています。テスト中、HM-10をすばやく見つけることができ、HM-10と即座に接続しました。このアプリには、ボタンを作成してカスタムの名前と機能でカスタマイズできるなど、いくつかの優れた機能があります。ここでは、このBluetoothコントローラーアプリで2つのボタンを作成して、Arduinoに接続されているLEDをオンまたはオフにする方法を説明します。
Arduino Bluetoothコントローラー(HM-10モジュール)Androidアプリのセットアップ方法:
- GooglePlayストアからアプリをダウンロードします。
- アプリのホームページは次のようになり、デバイスの接続、検索アイコン、アイコンの削除、デバイスステータス、テキストの送信、テンプレートの追加などの機能を見つけることができます。検索アイコンをクリックするか、をクリックして、デバイスの検索を開始します。右上隅の3つのドットに移動し、[ デバイスの接続] を選択します。
- 使用可能なすべてのデバイスが画面に表示されます。正しいHM-10モジュールを選択してください。
- これでHM-10が正常に接続され、画面上部にHM-10のステータスが表示されます。
- これで、テキストセクションに書き込んで矢印を押して送信することでテキストまたは文字列を直接送信するか、カスタムテンプレートを作成できます。
- 時間を節約するためのカスタムテンプレートを作成します。右上隅の「+」アイコンをクリックして、詳細を入力します。「名前」はボタン名、「テキスト」フィールドはHM-10に送信されるテキストまたは文字列用であり、「説明」はボタンがどのように機能するかを示すボタンの説明です。
- まず、LEDをオンにするボタンを作成し、緑色にします。ボタンはHM-10に「N」の文字を送信し、HM-10はArduinoに接続されたLEDをオンにします。 同様に、LEDオフのボタンを作成し、赤色にします。。ボタンはHM-10に「F」の文字を送信します。HM-10はArduinoに接続されているLEDをオフにします。
- これで、テキストフィールドのすぐ下に作成された2つのボタンが表示されます。LEDを制御したい場合は、ボタンをクリックするだけです。
これで、HM-10モジュールを制御するためのAndroidアプリのセットアップが完了しました。次に、Androidアプリからキャラクターを取得するためのArduinoUnoのプログラミングから始めます。
HM-10Bluetoothモジュールを使用してLEDを制御するArduinoUNOのプログラミング
いつものように、デモビデオ付きの完全なプログラムはこのチュートリアルの最後にあります。このプロジェクトのためにArduinoUNOをプログラミングすることは、多くの労力もライブラリも必要としません。ハードウェアシリアルおよびソフトウェアシリアルライブラリを使用できます。ソフトウェアシリアルを使用している場合は、ソフトウェアシリアルライブラリを含めるか、ハードウェアシリアルに進みます。このプロジェクトでは、SoftwareSerialを使用しています。したがって、ソフトウェアシリアルライブラリを含めることから始めます。ピンRxとTxは、Arduinoの2ピンと3ピンで接続されています。
#include
2つの変数は、HM10とAndroidアプリから受信したデータを保存するために使用されます。
char appData; String inData = "";
ただ、9600ボーレートでハードウェアおよびソフトウェアのシリアルを開始し、いくつかのデバッグ文を印刷します。LEDピンは出力として設定され、最初はオフになっています。
Serial.begin(9600); Serial.println( "HM10シリアルは9600で開始しました"); HM10.begin(9600); // HM10シリアルを9600ボーレートに設定 pinMode(13、OUTPUT); //オンボード LEDdigitalWrite(13、LOW); // LEDをオフにします
HM10ポートのリッスンを開始し、HM10が使用可能になり、データを送信するまで文字列を読み取ります。データを文字列で保存します。
HM10.listen(); // HM10ポート を リッスンしますwhile(HM10.available()> 0){// HM10が何かを送信する場合は、appData = HM10.read();を 読み取ります。inData = String(appData); //データを文字列形式で保存します Serial.write(appData); }
以下のためにATとHM10をデバッグコマンドだけHM10に文字列を送信しますコードの下の行を記述します。
if(Serial.available()){//利用可能な場合はユーザー入力を読み取ります。 delay(10); HM10.write(Serial.read()); }
受信した文字列が「F」の場合はシリアルモニターにメッセージを出力し、LEDをオフにします。受信した文字列が「N」の場合はLEDをオフにします。シリアルモニターにメッセージを印刷し、500msの遅延でLEDを点滅させます。
if(inData == "F"){ Serial.println( "LED OFF"); digitalWrite(13、LOW); // LED delay(500);を オフにします。} if(inData == "N"){ Serial.println( "LED ON"); digitalWrite(13、HIGH); // LED delay(500);を オフにします。digitalWrite(13、LOW); // LED delay(500);を オフにします。}
これで、ArduinoとBLE HM10 Blutooth4.0モジュールを使用してLEDを制御する方法に関する完全なチュートリアルは終了です。繰り返しになりますが、純正のHM10モジュールをお持ちの場合は、ファームウェアをフラッシュする必要はなく、すぐに使用できます。ただし、クローンHM-10モジュールを使用している場合は、クローンHM10BLEモジュールのファームウェアをフラッシュします。疑問や提案がある場合は、以下にコメントするか、フォーラムに書き込んでください。