注目キーワード

【Arduino】ディスプレイ付きマイコン「M5StickC Plus」 Bluetooth(無線)でPCにデータを送信する!(Bluetooth Serial)

すけろく
これまで、M5StickC PlusでWi-Fi接続を使ったデータの
やり取りは見てきたが、Bluetoothはまだだな。
げんろく
確かに。
Bluetoothについてはまだだった。
すけろく
近距離ならBluetooth通信も有効だ。
何か作れないかの。
げんろく
では、今回はBluetoothを使った通信の一つ、
Bluetooth Serialについて触れてみよう。
この記事では、ディスプレイ付きマイコン「M5StickC Plus」に搭載されている「Bluetooth」を使って、パソコンとの通信してみます。
Bluetoothを使った通信はいろいろありますが、今回は「Bluetooth Serial」というものを使います。
「M5StickC Plus」の6軸IMU(慣性測定装置)から、本体の傾きを計算し、それをパソコンに送信してグラフ化してみます。

今回使用するマイコンはこちら!

created by Rinker
M5Stack
¥5,838 (2024/05/29 09:39:24時点 Amazon調べ-詳細)
画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレイサイズ、バッテリ容量が変更になっています。ブザーも実装されました。通信(WiFi/Bluetooth)機能、6軸加速度センサーも搭載されています。
Aruduino で開発できます。

これからはじめる方にお勧めの参考図書はこちら!

created by Rinker
¥3,089 (2024/05/29 10:16:33時点 Amazon調べ-詳細)
created by Rinker
¥2,310 (2024/05/29 00:45:20時点 Amazon調べ-詳細)
created by Rinker
技術評論社
¥3,278 (2024/05/29 10:44:29時点 Amazon調べ-詳細)
created by Rinker
¥2,420 (2024/05/29 10:16:34時点 Amazon調べ-詳細)

Bluetooth Serialって何?

Bluetoothとは、無線通信技術のひとつです。

10m程度の短距離の通信規格で、主にスマホ、タブレット、やパソコンの周辺機器を無線で繋ぐ技術として使われていますよね。

具体的には無線イヤホンやスピーカー、マウスやキーボードといった機器がBluetoothを使って、ワイヤレス接続しています。

 

また、IoTを開発する際に、Arduinoで開発されたデバイスを、PCなどと連携させたいパターンは多くあります。

例えば、

  • PCからArduinoデバイスへ設定値を上書きする
  • Arduinoデバイスで取得したデータをPCに送信する

などが、具体的な利用シーンではないでしょうか。

 

このような場合、有線であれば、ケーブルをデバイスにつないで、シリアル接続でデータのやり取りをします。シリアル接続は、Arduino標準機能にもなっていて、連携先のPCなどでもサポートされているので使い勝手が良いからです。

しかし、有線接続するとデバイスとPCなどの配置などが制限されてしますので、無線でデータのやり取りができたほうが良いのではないでしょうか。

そこで使用できるが、「Bluetooth Serial」です。正式にはBluetoothのSPP(Serial Port Protocol)といいます。

SPPとは、Bluetoothのプロファイルのひとつで、Bluetooth搭載機器を仮想のシリアルポート化するためのプロファイルのこと。

Bluetooth Serialを使ってデータを送信する

それでは、実際にプログラミングしてみましょう。

 

6軸IMU制御に関する内容は、次の記事で紹介していますので、ご覧ください。

6軸IMU制御方法はこちら

関連記事

すけろく M5StickC Plusには、筐体の動きや傾きを検知する センサーが標準で搭載されているらしいな。 げんろく 6軸IMUのことか。 加速度、角速度を測るセンサーだ。 計算で姿勢角度も分[…]

 

Bluetooth Serialを使うためには次のヘッダーをプログラムに追加して、生成します。

#include "BluetoothSerial.h"
BluetoothSerial SerialBT;

 

Bluetooth Serialでデータを送信する際には、次の関数で制御します。

関数 説明
begin(“DeviceName”); シリアル接続を開始します。DeviceNameで識別されます。
println(“出力内容”); 出力内容を送信します。

 

Bluetooth Serialを使った6軸IMUデータ送信プログラム

Arduino IDEを起動して、「ファイル」メニューから「新規ファイル」を選択し、表示されるスケッチに以下のように記述します。

 Arduino IDE スケッチ例

 

 M5StickC Plusへの書き込み

  1. 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  2. 「ツール」メニューから「ボード」情報を確認し、M5StickC Plusであるか確認します。
    この際、「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
  3. 「ツール」メニューから「Patition Scheme」を「”No OTA(Large APP)”」にします。
    ※ここを変更しないと、スケッチが大きいというエラーになります。
  4. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。
  5. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 

 プログラム実行結果

プログラムの書き込みが終了したら、M5StickC Plusのディスプレイ上には次のように表示されています。

 

上部にある名前が「デバイス名」になります。

次の手順で、WindowsOSにデバイスをペアリングして、シリアルモニターでデータを確認します。


メインメニューから「設定」を選択します。

「Bluetoothとデバイス」の設定を確認し、Bluetoothが「オン」になっていることを確認します。
確認後、「デバイスの追加」ボタンを押します。

「デバイスを追加する」ウィンドウで、「Bluetooth」を選択します。

デバイスが検知されますので、M5StickC Plusの画面上にあるデバイス名と同じものを選択してください。
ペアリングができたら「完了」を押します。

次にメインメニューを右クリックして表示されるメニューから「デバイスマネージャー」を開きます。

デバイスマネージャー画面から、ポート(COMとLPT)を展開します。
「Bluetoothリンク経由の標準シリアル(COM~)」というものが2つ追加されます。
※後で接続に使うのは番号の大きいほうなのでそちらを覚えます。

Arduino IDEで「ツール」から「シリアルポート」を選択して、先ほど追加されたCOMポートを選択します。

Arduino IDEで「ツール」から「シリアルモニタ」を選択して起動します。

シリアルモニタが起動して、左の画像のようにデータが表示されればOKです。

 

取得したデータをグラフにしてみました。

M5StickC Plusを手にもって動かすとそれぞれの値が0から遠くなり山が現れます。

これを使うと面白いものができるかもしれませんね!

 

 

編集後記

いかがだったでしょうか。

M5StickC Plusの傾きデータがPC上のシリアルモニタに無線で送信され、無事見ることができました。

これでデータロギング中は、PCとの接続等なくデータの送信ができますね!

今後、いろいろと使えそうです。

 

記事は以上になります。

最後までご覧いただきありがとうございました。

今回使用するマイコンはこちら!

created by Rinker
M5Stack
¥5,838 (2024/05/29 09:39:24時点 Amazon調べ-詳細)
画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレイサイズ、バッテリ容量が変更になっています。ブザーも実装されました。通信(WiFi/Bluetooth)機能、6軸加速度センサーも搭載されています。
Aruduino で開発できます。

これからはじめる方にお勧めの参考図書はこちら!

created by Rinker
¥3,089 (2024/05/29 10:16:33時点 Amazon調べ-詳細)
created by Rinker
¥2,310 (2024/05/29 00:45:20時点 Amazon調べ-詳細)
created by Rinker
技術評論社
¥3,278 (2024/05/29 10:44:29時点 Amazon調べ-詳細)
created by Rinker
¥2,420 (2024/05/29 10:16:34時点 Amazon調べ-詳細)

M5StickC Plus の他の記事はこちらからどうぞ!

すけろく んーどうしたものか。 げんろく どうした? 深刻な顔をして。 すけろく M5Stackにプログラムを書き込んだら 起動しなくなってな。 電源ON/OFFでも無理なのだ。 げんろく 書き込んだプログラムか、バッテリーの 過放電か。工場出荷時に戻してみてはどうだ? この記事では、M5Stackにプログラムを書き込んだ結果、うまく動作しなくなった場合の対処方法を記載します。 ご紹介するのは「工 […]

すけろく 以前、Bluetooth Serialを使って データをPCに送信したが、何か良い使い方はないかな。 げんろく 最近、土壌水分センサーとやらを手に入れた。 これで計測した水分量をPCに送信してみるか? すけろく それは良いな。 今後、使い道が広がっていきそうな予感がする。 この記事では、ディスプレイ付きマイコン「M5StickC Plus」に搭載されている「Bluetooth」を使って、 […]

すけろく 前回の記事で6軸IMUのデータをPCでグラフ化したが、 うまく傾き検知ができているようだ。 げんろく そうだな。 微細な傾きも検知できているようだ。 すけろく 傾き検知の機能を使って何かできないかな? げんろく なら、机を離れる時にノートなどの見守りを してくれる「デスク見守り君」を作るぞ! 今回の記事では、ディスプレイ付きマイコン「M5StickC Plus」を使って、「デスク見守り君 […]

すけろく これまで、M5StickC PlusでWi-Fi接続を使ったデータの やり取りは見てきたが、Bluetoothはまだだな。 げんろく 確かに。 Bluetoothについてはまだだった。 すけろく 近距離ならBluetooth通信も有効だ。 何か作れないかの。 げんろく では、今回はBluetoothを使った通信の一つ、 Bluetooth Serialについて触れてみよう。 この記事では […]

すけろく M5StickC Plusには、筐体の動きや傾きを検知する センサーが標準で搭載されているらしいな。 げんろく 6軸IMUのことか。 加速度、角速度を測るセンサーだ。 計算で姿勢角度も分かる。 すけろく んんっ!? 難しい単語が出てきたな。。 げんろく よし。 物体の動きを計測する要素について M5StickC Plusを使って試してみるぞ! この記事では、ディスプレイ付きマイコン「M5 […]

すけろく 前回作ったお天気表示プログラムは なかなか、評判が良いな。 げんろく うれしいな。 ただ、お天気情報は起動時のみ取得というところが 課題だ。 げんろく 今回は、1時間に1回お天気情報を後進するように してみよう。 この記事では、Arduino IDEを使ってM5StickC Plusのディスプレイに、お天気情報を1時間に1回更新表示する方法を紹介します。 画面描画は主に、Adafruit […]

すけろく 汎用ライブラリの「AdafruitGFX」にビットマップ画像を ディスプレイ表示するものがあるそうな。 げんろく いかにも。機能は実装されている。 ちょうど、アイコンをアニメーションさせたいと 思っておったわ。 すけろく うむ。 面白そうだな。やってみるか! げんろく わかった。 今回は、単色のアイコンを使って天気情報を 視覚的に伝える画面を作ってみよう。 この記事では、Arduino […]

すけろく 標準ライブラリでの画面描画はできた。 しかし、M5StickC Plus向けのライブラリなので 汎用性がないな。 げんろく たしかに。 M5Stackや他のAruduino機器でも使えるものが必要だな。 すけろく そのようなものがあるのか? げんろく よし。今回は、汎用的に使えるライブラリを紹介しよう。 Adafruit社が公開している「Adafruit_GFX」だ。 この記事では、Ar […]

すけろく 前回の記事でJSON形式データは取り扱うことができた。 これでインターネットにあるサービスを活用できるな。 げんろく そうだな。 今回は天気情報を提供しているサイトからJSON形式データを 取得してM5StickC Plusの画面に表示してみよう。 前回の記事では、次の画像のように、Arduino IDEを使い、M5StickC Plusのディスプレイにインターネットのサイトから取得した […]

すけろく 普段、何気なくブラウザでインターネットサイトを 見ているが、URLの最初のHttpsとはなんだ? げんろく httpsはHttpの通信を暗号化して行うものだ。 ちょっと違いを押さえてみるか。 すけろく あと、Arduino IDEでプログラムを作る際の 注意点なんかも頼む。 げんろく わかった。 プログラムに組み込む方法も見てみよう。 皆さんが普段パソコン(PC)やスマホ、タブレットのブ […]

すけろく Pythonなどでは、JSONでデータを扱っていたが、 Arduino IDEで扱うことはできるのか? げんろく それなら「ArduinoJSON」ライブラリがあるぞ! 取り扱うデータで使用するメモリサイズの 計算ツールもあるから便利だ。 この記事では、Arduino IDEを使ってM5StickC PlusのプログラムでJSON形式を取り扱う方法を紹介します。 今回使用するライブラリは […]

すけろく M5StickC Plusに英語を表示することは 画面制御の記事で行えたが、日本語は表示できないのか? げんろく いや、方法はあるぞ。 eFontライブラリをM5StickC Plusで実行できるように 修正して提供してくれているものを使うのだ。 すけろく ぜひ、やってみたいの~ この記事では、Arduino IDEを使ってM5StickC Plusのディスプレイに日本語を表示させるため […]

すけろく M5StickC Plusも時刻同期までできた。 うまくいっておるな。 げんろく ああ、「M5StickC」向けに作成したプログラムが 微修正で実行できるからありがたい。 すけろく そういえば、画面が大きくなったな。 値段も大きくなっているが。。。 げんろく 今回は新しいM5StickC Plusの 画面制御まわりを見てみるか。 この記事では、Arduino IDEを使ってM5Stick […]

  すけろく 前回はWiFi接続することができた。 次は時刻同期がしたいな。 げんろく たしかに。時刻同期は基本だからな。 以前M5StickCでやったプログラムをベースに 実装してみよう。   この記事では、M5StickC PlusをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービス(NTPサーバー)と時刻を同期する方法について紹介します。 今回使用す […]

すけろく M5StickC Plusの大まかな違いは分かった。 WiFi接続をしてみるか。 げんろく そうだな。 M5StickCと同じように使えるのか確認してみよう。 この記事では、M5StickC Plusに実装されているWiFi機能を使って、Wi-Fiルータに接続する方法について紹介します。 今回使用するマイコンはこちら! 画面付きで小型のマイコンです。旧版のM5StickCから、ディスプレ […]

すけろく なんか、M5StickCが「在庫なし」になっている。 げんろく ああ、新しい「M5StickC Plus」が出たからな。 旧版は在庫限りになっているのだろう。 すけろく うむ。画面が大きくなったな。 値段も大きくなっておる。 げんろく そうだな。 M5StickC PlusでLチカでもしてみるか。 今回の記事では、「M5StickC Plus」を開発環境であるArduino IDEを使っ […]