siroyanTech’s blog

電子工作/プログラミング/脳科学

IMBLEを使ってみたよ(スマホからLEDのON/OFF制御するまで)

はじめに

以前から気になっていたIMBLEというモジュールを購入し、少し遊んでみたので、記事にしたいと思います。 

IMBLEとは、interplan社が開発したBLEモジュールで、秋月電子千石電商などの電子部品屋で簡単に手に入ります。

開発元のinterplan社は日本企業であり、データシートやマニュアル等が全て日本語で用意されているため、非常にありがたいです。

シリアル通信で簡単にデータを送受信・制御できるBluetooth Low Energyモジュールで、Bluetooth Low Energyを意識せず、知識不要でBLE機器が実現できます。

もちろん低消費電力でコンパクトサイズ、しかも手軽に実装できるコネクタタイプです。

技適取得済でユーザの免許や申請手続きは不要。組み込み用に手軽にお使いいただけます。 *1

 

実験環境

使用したマイコンボードはNucleo-L053R8で、PlatformIOでソフトの開発をしました。

この記事では上記のNucleoボードを使用していますが、Arduinoなど、PlatformIOが対応しているボードであれば、同様に開発できると思います。

BLE通信する端末はAndroidスマートフォンを用い、GooglePlayで「IMBLE」と調べるとinterplan社公式のアプリがあるので、通信にはそれを使用しました。

f:id:siroyanTech:20200328224739j:plain

プログラム

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を買うのは結構気合が入りました。

*1:interplan社HPより

*2: IMBLE 取扱説明書(ソフトウェア編)5p