Bluetooth LCD

このプロジェクトでは、UNOボードに接続されたBluetoothモジュールを通じてメッセージを受信し、そのメッセージをLCD画面に表示します。

1. 回路の構築

../_images/15-Wiring_Bluetooth_LCD.png

2. コードのアップロード

  1. ultimate-sensor-kit\iot_project\bluetooth\01-Bluetooth_lcd のパスにある 01-Bluetooth_lcd.ino ファイルを開くか、このコードを Arduino IDE にコピーアンドペーストしてください。

    注釈

    ライブラリをインストールするには、Arduinoライブラリマネージャーで "LiquidCrystal I2C" と検索してインストールしてください。

  2. 適切なボードとポートを選択した後、 書き込み ボタンをクリックします。

  3. シリアルモニターを開き(ボーレートは 9600 に設定)、デバッグメッセージを確認します。

3. アプリとBluetoothモジュールの接続

"Serial Bluetooth Terminal"というアプリを使って、BluetoothモジュールからArduinoへメッセージを送ることができます。

  1. Serial Bluetooth Terminalのインストール

    Google Playから、Serial Bluetooth Terminal をダウンロードしてインストールします。

  2. Bluetoothの接続

    まず初めに、スマートフォンの Bluetooth をオンにします。

    ../_images/09-app_1_shadow.png

    スマートフォンの Bluetooth設定 に進み、 JDY-31-SPP のような名前を探します。

    ../_images/09-app_2_shadow.png

    見つけたら、表示されるポップアップで ペアリング を承認します。ペアリングコードが必要な場合は、「1234」と入力してください。

    ../_images/09-app_3_shadow.png
  3. Bluetoothモジュールとの通信

    Serial Bluetooth Terminalを開いて、"JDY-31-SPP"に接続します。

    ../_images/00-bluetooth_serial_4_shadow.png
  4. コマンドの送信

    Serial Bluetooth Terminalアプリを使用して、Bluetooth経由でArduinoにメッセージを送ります。送信されたメッセージはLCDに表示されます。

    ../_images/15-lcd_shadow.png

4. コードの解説

注釈

ライブラリをインストールするには、Arduinoライブラリマネージャーで "LiquidCrystal I2C" と検索し、該当するライブラリをインストールしてください。

  1. LCDの設定

    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    

    このコード断片では、LiquidCrystal_I2Cライブラリをインクルードし、I2Cアドレスを 0x27 、LCDの列数を 16 、行数を 2 で初期化します。

  2. Bluetooth通信の設定

    #include <SoftwareSerial.h>
    const int bluetoothTx = 3;
    const int bluetoothRx = 4;
    SoftwareSerial bleSerial(bluetoothTx, bluetoothRx);
    

    この部分でSoftwareSerialライブラリをインクルードし、JDY-31 BluetoothモジュールがArduinoと通信できるように、ピン3(TX)とピン4(RX)を指定しています。

  3. 初期設定

    void setup() {
       lcd.init();
       lcd.clear();
       lcd.backlight();
    
       Serial.begin(9600);
       bleSerial.begin(9600);
    }
    

    setup() 関数では、LCDを初期化し、既存の内容をクリアします。また、LCDのバックライトを点灯します。シリアルモニターとBluetoothモジュールの通信も、ボーレート 9600 で開始されます。

  4. メインループ

    void loop() {
       String data;
    
       if (bleSerial.available()) {
          data += bleSerial.readString();
          data = data.substring(0, data.length() - 2);
          Serial.print(data);
    
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print(data);
       }
    
       if (Serial.available()) {
          bleSerial.write(Serial.read());
       }
    }
    

    これがArduinoプログラムの主要な動作ループです。Bluetoothモジュールとシリアルモニターからの入力データを継続的にチェックします。Bluetoothデバイスからデータが受信されると、それを処理し、シリアルモニターとLCDに表示します。シリアルモニターにデータが入力されると、そのデータはBluetoothモジュールに送信されます。