IMBLEを使ってみたよ(スマホからLEDのON/OFF制御するまで)
はじめに
以前から気になっていたIMBLEというモジュールを購入し、少し遊んでみたので、記事にしたいと思います。
IMBLEとは、interplan社が開発したBLEモジュールで、秋月電子や千石電商などの電子部品屋で簡単に手に入ります。
開発元のinterplan社は日本企業であり、データシートやマニュアル等が全て日本語で用意されているため、非常にありがたいです。
シリアル通信で簡単にデータを送受信・制御できるBluetooth Low Energyモジュールで、Bluetooth Low Energyを意識せず、知識不要でBLE機器が実現できます。
もちろん低消費電力でコンパクトサイズ、しかも手軽に実装できるコネクタタイプです。
実験環境
使用したマイコンボードはNucleo-L053R8で、PlatformIOでソフトの開発をしました。
この記事では上記のNucleoボードを使用していますが、Arduinoなど、PlatformIOが対応しているボードであれば、同様に開発できると思います。
BLE通信する端末はAndroidスマートフォンを用い、GooglePlayで「IMBLE」と調べるとinterplan社公式のアプリがあるので、通信にはそれを使用しました。
プログラム
gistf7826a1c51414de94ef8bf1ac9e85c86
プログラムの解説
行っていることとしては、スマホから「01」と送信するとLEDが点灯し、「02」と送信するとLEDが消灯する、というごく単純なものになります。
通常のSerialはPCとNucleoボードの通信用で、imbleSerialはIMBLEとNucleoボードの通信用のものになります。
IMBLEは「01」という文字列を受信すると、マイコンボードに受信データの「01」に加え先頭に「00,0000,00:」が入ります。*2
ですので、実際に必要な受信データだけを切り出す必要があります。そのため、16,17,20行目で、:(コロン)をキーとして受信データを切り取っています。
後は、その受信データが「01」なのか「02」なのかでHIGHとLOWを切り替えているだけです。
終わりに
ぶっちゃけ記事にするほどでも無いかな...とも思いましたが、あまりIMBLEに関する情報が出ておらず、また個人的にinterplan社の無線モジュールが好きなので、記事にしました。せっかくの日本製の無線モジュールですし、皆さん使ってあげてくださいね。
どうでもいいつぶやき
普段、秋月で10円単位の買い物をしているせいで、3000円近くするIMBLEを買うのは結構気合が入りました。