- 必要なコンポーネント
- ESP8266 HC-05Bluetoothモジュールの回路図
- HC-05Bluetoothモジュール
- シリアルBluetooth端末の使用(Androidアプリ)
- NodeMCUESP8266をプログラミングしてBluetoothとインターフェースする
今日、Bluetoothはデジタルデバイスの不可欠な部分になり、スマートフォン、ラップトップ、PC、カメラ、時計、フィットネスバンドなどのほとんどのデバイスに組み込まれています。Bluetoothは、発見されて以来、常にワイヤレス通信のプロトコルを支配してきました。がBluetoothの技術は、基本的にケーブル交換システムであるが、それはまた、既存のデータネットワークへのユニバーサルブリッジと様々な構成でのデバイスの数のためのアドホック接続機構を活用しています。BluetoothモジュールHC05およびHC06を他の多くのマイクロコントローラーとともに使用して、ワイヤレスで通信できるようにしました。
- Bluetooth HC-05とSTM32F103C8ブルーピルのインターフェース:LEDの制御
- HC-05BluetoothモジュールとAVRマイクロコントローラーのインターフェース
- 8051マイクロコントローラーを使用したAndroid制御ロボット
- Bluetooth経由でAndroidアプリを使用してRaspberryPiGPIOを制御する
- Arduinoを使用したBluetooth制御のおもちゃの車
本日は、HC-05 Bluetoothモジュールを一般的なWi-FiモジュールESP8266と接続し、Bluetooth経由でコマンドを送信してLEDをワイヤレスで制御します。このLEDは、ホームオートメーションアプリケーションを構築するためにリレーとACアプライアンスに置き換えることができます。
必要なコンポーネント
ハードウェア:
- NodeMCU ESP8266
- HC-05Bluetoothモジュール
ソフトウェア:
- Arduino IDE
- シリアルBluetoothターミナル(Androidアプリ):スマートフォンでBluetoothデータを監視します。
ESP8266 HC-05Bluetoothモジュールの回路図
BluetoothモジュールHC-05をNodeMCUESP8266に接続するための回路図は非常に単純で、以下に示されています。
ESP32のようなBluetoothが組み込まれていないため、ESP8266には外部Bluetoothモジュールが必要です。ESP32にはBluetoothLow Energy(BLE)とClassic Bluetoothが組み込まれており 、これまでにいくつかのチュートリアルについて説明しました。
- ESP32BLEサーバー-バッテリーレベル表示のためのGATTサービス
- ESP32 BLEクライアント–フィットネスバンドに接続して電球をトリガーする
- ESP32でシリアルBluetoothを使用する方法
HC-05Bluetoothモジュール
HC-05はシリアルBluetoothモジュールです。ATコマンドを使用して構成できます。3つの異なる構成(マスター、スレーブ、ループバック)で動作します。私たちのプロジェクトでは、それをスレーブとして使用します。HC-05モジュールの機能は次のとおりです。
- 典型的な-80dBmの感度。
- デフォルトのボーレート:9600bps、8データビット、1ストップビット、パリティなし。
- 自動ペアリングピンコード:「1234」または「0000」のデフォルトピンコード。
- 6本のピンがあります。
- VccピンとGndピンは、HC-05への電力供給に使用されます。
- TxピンとRxピンは、マイクロコントローラーとの通信に使用されます。
- HC-05モジュールをアクティブにするためのピンを有効にします。低い場合、モジュールは無効になります
- 状態ピンはステータスインジケータとして機能します。他のBluetoothデバイスとペアリング/接続されていない場合、LEDは継続的に点滅します。他のBluetoothデバイスと接続/ペアリングされると、LEDは2秒の一定の遅延で点滅します。
Bluetoothモジュールの詳細については、他のBluetooth関連プロジェクトをご覧ください。
シリアルBluetooth端末の使用(Androidアプリ)
このアプリの使用は非常に簡単で、いくつかの手順が必要です。スクリーンショットを以下に手順とともに示します。HC-05をスマートフォンとペアリングするだけです。デフォルトのコードは「0000」または「1234」ですが、ほとんどの場合「1234」が機能します。
- まず、アプリをダウンロードしてインストールします。次に、デバイスに移動してHC-05モジュールを見つけます。アプリで検索したHC-05モジュールを選択します。見つからない場合は、HC-05の電源が適切に供給されているかどうかを確認してください。
- HC-05をクリックすると、接続されます。メッセージボックスにメッセージを入力して送信します。Arduinoシリアルモニターに印刷されます。
NodeMCUESP8266をプログラミングしてBluetoothとインターフェースする
ArduinoIDEを使用してNodeMCUESP8266をプログラミングするには、マイクロUSBケーブルを使用してラップトップまたはPCから接続し、ArduinoIDEを開きます。このチュートリアルでは、ハードウェアシリアルとソフトウェアシリアルを使用します。ハードウェアシリアルはArduinoシリアルモニターへのデータの読み取りと書き込みに使用され、ソフトウェアシリアルはHC-05との通信に使用されます。いつものように、完全なコードとデモビデオはチュートリアルの最後にあります。
このチュートリアルで使用されるため、最初にソフトウェアシリアルライブラリを含めます。
#include
ソフトウェアシリアル通信用のRXピンとTXピンを定義し、NodeMCUに接続されているLEDピンも定義します。ピンD4にあるNodeMCUの内部LEDを使用しています。
SoftwareSerial btSerial(D2、D3); // RX、 int led = D4;
ソフトウェアとハードウェアのシリアルを9600ボーレートで起動します。LEDピンを出力として設定します。ウェルカムメッセージとデバッグメッセージを出力します。
Serial.begin(9600); btSerial.begin(9600); pinMode(D4、OUTPUT); Serial.println( "開始…");
まず、Bluetoothモジュールから読み取り、Bluetoothモジュールが電話から「B」を受信した場合にNodeMCUのD4に接続されたLEDの点滅を開始し、「S」を受信した場合はLEDの点滅を停止するケースを定義します。ここでは delay() を使用していません。ただし、Arduinoの「millis」はArduinoのパフォーマンスを妨げないように使用されます。
if(btSerial.available()> 0){ char data = btSerial.read(); switch(data) { case'B ': ledB = "blink"; ブレーク; ケース 'S': ledB = "stop"; ブレーク; デフォルト: ブレーク; } }
ミリ秒が定義され、遅延を500ミリ秒に設定します。つまり、LEDは500ミリ秒ごとに点滅します。また、「interval」の値を変更することにより、LED遅延を構成できます。LEDの状態が切り替わります。
unsigned long currentMillis = millis();
if(ledB == "blink"){ Serial.println( "点滅が開始されました"); if(currentMillis-previousMillis> =間隔){ previousMillis = currentMillis; if(ledState == LOW){ ledState = HIGH; } else { ledState = LOW; } digitalWrite(led、ledState); } }
これで、Bluetoothを使用してワイヤレスでLEDを点滅させるNodeMCUのプログラミングが終了します。プログラムを変更して、LEDをACアプライアンス付きのリレーに置き換えて、Bluetoothホームオートメーションプロジェクトを作成できるように、LEDでさまざまなタスクを実行することもできます。疑問や提案がある場合は、以下のフォーラムまたはコメントにアクセスしてください。