HM-10 Bluetooth Low Energyモジュール:完全技術ガイド
ワイヤレス通信は現代において魅力的な概念です。現代の電子デバイスの大半が何らかの形でワイヤレス通信を利用しています。本記事ではHM-10と、Bluetooth Low Energy(BLE)モジュールを用いたワイヤレス通信確立におけるその重要な役割について解説します。HM-10の理解に必要な情報と各種コンポーネントを網羅しています。
1. HM-10ピン構成
CC2540またはCC2541 Bluetooth SOC(System on Chip)BLEを採用。

HM-10モジュールは34ピンですが、通信確立に必須なのは4ピンのみです。
| ピン番号 | ピン名 | ピン説明 |
|---|---|---|
| 1 | UART_TX | UARTインターフェース・送信 |
| 2 | UART_RX | UARTインターフェース・受信 |
| 3 | UART_CTS | UARTインターフェース |
| 4 | UART_RTS | UARTインターフェース |
| 5-10 | NC | 未接続 |
| 11 | RESET | 100ms以上Lowでリセット |
| 12 | VCC | 3.3V |
| 13-14 | GND | グランド |
| 15 | USB_D- | USBインターフェース |
| 16-19 | NC | 未接続 |
| 20 | USB_D+ | USBインターフェース |
| 21-22 | GND | グランド |
| 23 | PIO0 | システムキー |
| 24 | PIO1 | システムLED |
| 25-34 | PIO2-11 | プログラマブル入出力ライン |
上表は各ピンとその機能を示しています。
HM-10 BLEモジュールにはHM10CとHM-10Sの2バージョンがあります。
2. HM-10モジュールの特長
- 送受信時のバイト制限なし
- Bluetooth Low Energy消費(BLEチップ)
- Bluetoothバージョン:V4.0
- 動作周波数:2.4GHz ISM帯
- スリープモード時消費電流:50〜200µA
- 汎用入出力ピン:12本
- UARTシリアルインターフェース & フルスピードUSBインターフェース
- キャプチャ機能付き32kHzスリープタイマー
- インシリアルプログラミング:128KBまたは256KB
- 8KBスタティックRAM
- 通信距離:見通し100m
- ポータブルサイズ

2.1 HM-10モジュール仕様
- モジュール動作電圧:2.0V〜3.6V
- 低電圧動作
- バックアップバッテリ消費:235µA
- RF入力レベル:10dBm
- 最大電圧:+3.9V
- 動作温度:-40℃〜+85℃
- 静電耐圧:750V
HM-11、HM-01〜HM-09も代替として使用可能です。

3. HM-10モジュールの用途
- 100m以内の近距離ワイヤレス通信に便利
- 低消費電力でモバイルデバイスに最適
- Bluetooth 4.0モジュールとして低コスト、低予算プロジェクトに好適
- UART通信でArduinoなど多くのコントローラ/プロセッサと接続可能
その他の用途:
- ロボティクス
- USBドングル
- サーバー
- 医療機器
- レジャー・スポーツ用品
- コンピュータ周辺機器

4. HM-10モジュールの使い方
UARTシリアル接続でArduinoとのペアリングが容易です。ArduinoやRaspberry Piとの統合で問題が発生した場合はHM-10データシートを参照してください。

プロジェクト使用前にHM-10モジュールが正規品か確認することが重要です。
クローン品を避けるには、32kHz水晶発振子の有無を確認してください。クローン品の場合、ファームウェアダウンロードでファームウェアバージョンを変更する必要があります。そうでないとATコマンドでのアクセスやスマートフォンとのペアリングが不可能です。
BLEモジュール同士(例:2つのHM-10)や、AndroidデバイスなどBLE対応デバイスと通信可能。シリアルUART経由で通信し、ATコマンドセットで完全カスタマイズ可能。CC2541 Bluetooth用ブレークアウトボードで、3.3Vレギュレータ内蔵。
Arduino 5Vボード使用時、HM-10 RXピンは3.3Vのままです。ArduinoのHM-10 TXピンを3.3Vにレベル変換する必要があります。
4.1 必要コンポーネント
- Arduino Bluetoothコントローラ
- HM-10 Bluetoothモジュール
- 抵抗(1kΩ、470Ω)
- 接続ワイヤ(FTDI)
- Arduino IDE
- Androidアプリ:BLE Scanner(HM-10モジュール用)
4.2 回路図

出典: https://www.youtube.com/watch?v=geSEbu6mj2Q
4.3 Arduinoモジュール設定 + ATコマンド
- PCでArduinoボードを開き、正しいUSBポートを選択
- シリアルモニタを開き、デフォルトボーレートが工場出荷時の9600か確認
- コマンド AT+NAME? をスペースなしで入力 → OK+NAME: HMSoft と表示されるはず
- Bluetooth 4.0 LEとの通信が可能に
4.4 2つのHM-10間でのデータ送受信
2つのHM-10で相互通信を行います。
- ATコマンド AT+ADDR? で元のMACアドレスを照会(例: 20C38FF61DA1。各HM-10 BLEは固有アドレスを持つ)
- 2つのHM-10をペアリングするには AT+CON[param1] と AT+ROLE[param1] を使用
4.5 HM-10 BLE 4.0とArduinoボードの配線
Arduino Bluetoothコントローラとモジュールのインターフェース接続:
| HM-10 | Arduino |
|---|---|
| HM-10 TX | D2 |
| HM-10 RX | D3 |
| GND | GND |
| VCC | 3.3V |
Arduino UNOのプログラミングにはソフトウェアシリアルまたはハードウェアシリアルのいずれかを使用可能。サンプルプロジェクトではソフトウェアシリアルを使用。

出典: https://www.youtube.com/watch?v=Xt5e10B4Eq0&t=13s
Arduino BluetoothコントローラとBluetooth Low EnergyでLEDを制御するコード:
#include <SoftwareSerial.h>
SoftwareSerial HM10(2, 3); // RX = 2, TX = 3
char appData;
String inData = "";
void setup() {
Serial.begin(9600);
Serial.println("HM10 serial started at 9600");
HM10.begin(9600);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
}
void loop() {
HM10.listen();
while (HM10.available() > 0) {
appData = HM10.read();
inData = String(appData);
Serial.write(appData);
}
if (Serial.available()) {
delay(10);
HM10.write(Serial.read());
}
if (inData == "F") {
Serial.println("LED OFF");
digitalWrite(13, LOW);
delay(500);
}
if (inData == "N") {
Serial.println("LED ON");
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
}
4.6 BLE Androidスキャナーアプリ
- モバイルデバイス用BLEスキャナーをダウンロード(リンク参照)
- アプリ起動、Bluetoothと位置情報権限を許可

出典: アプリスクリーンショット (https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner&hl=en_IN)
- デバイススキャン実行、Bluetooth Low Energy 4.0は MLT-BT05 として表示
- ペアリングコード 123456789 で接続
- 接続準備完了後、MLT-BT05 をクリックし「Custom Service」を選択
- オプション R、W、N が表示。テストで W をクリックし 1 または 0 を送信してLED操作
5. HM-10 BLEと他モジュールの違い
最大の違いはBluetoothバージョンです。工場出荷時設定にはBluetooth 4.0の全機能が含まれ、低消費電力で最大24Mbps伝送が可能。Bluetooth 2/2.1モジュール(例:HC-05)と比較してHM-10は優れた性能を発揮します。

HC-05モジュール
出典: https://freesvg.org/1554744332
6. 結論
HM-10モジュールの特長を詳しく解説しました。デフォルト設定でArduinoとの統合が容易で、ベースボードと少数のコンポーネントでプロジェクトをすぐに開始できます。詳細、お問い合わせ、部品購入はこちらまでご連絡ください。
産業技術
- CNCプラズマ切断機の詳細ガイド:特徴・メリット・用途
- 高速加工機完全解説:特徴・材料・メリット・限界・最適戦略
- ゴムロール研削マスターガイド:優れた表面品質を実現するプロフェッショナル技術
- 直流ウォーターポンプ完全ガイド:家庭用から産業用まで
- ピストンの基礎知識:エンジニアと愛好家のための完全ガイド
- UIDを解き明かす:歴史・マンデート・未来の3部構成シリーズ
- Fishbowl Manufacturing完全攻略:製造指示モジュール必須ホットキー
- Fishbowl BOMモジュール:迅速な生産のための必須ホットキー
- 製造モジュールグループ完全攻略:部品表とオーダー管理
- Cプログラミング言語:包括的な概要
- C#:Microsoftのモダンプログラミング言語の包括的概要