0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【CONEXIOBlackBearでこんなことをやってみた】BLEセンサーを初心者がつなげてみた!

Last updated at Posted at 2022-06-06

BLE接続は難しい?

BLEは「Bluetooth Low Energy」のことで、通常のBluetoothよりも省電力での接続を実現できます。最初はBLEの意味すらわからず、プログラミングを本格的に始めて1年程度の私でしたが、やってみると数日でBLEセンサーをCONEXIOBlackBearにつなげることができました!先輩方からも助言をいただきましたが、振り返ってみれば意外に簡単という印象でした。

※そもそもCONEXIOBlackBearってなに?という方は下記の記事をご確認ください!

BLE接続の構成

今回使用したセンサーは、ユニ電子の温湿度センサー (Loggta、LoggtaCable、LoggtaWR) と、CO2センサー(Logtta CO2)です。またBLE接続を実行するためには、bluepyと呼ばれるPython用ライブラリを用いると簡単です。

■ユニ電子Logttaシリーズ紹介ページ http://www.uni-elec.co.jp/logtta_page.html

BLE接続の構成としては、BLEセンサーはアドバタイズ(ブロードキャスト通信)で、親機であるCONEXIOBlackBearに対して「私はここにいるよ」と知らせます。その知らせをCONEXIOBlackBear上でbluepyによって取得し、温度(℃)・湿度(%)・バッテリー残量(%)・CO2濃度(ppm)を、CONEXIOBlackBear上で表示させました。

図1.png

bluepyのインストール方法

bluepyをインストールする手順については以下のコマンドをCONEXIOBlackBear上で叩くだけなので簡単です。

# apt-get install python3-pip
# apt-get install libglib-2.0-dev
# pip3 install bluepy

センサーをアドバタイズモード(ビーコンモード)にする

ユニ電子のBLEセンサーは、初期設定のままだとiPhoneでデータを受信する設定になっています。そのためiPhone上のユニ電子アプリを使用して、BLEセンサーをビーコンモードに設定します。詳しくは上記のユニ電子URLに掲載されている資料をご覧ください。

プログラムの実行(温湿度センサーの例)

import bluepy #bluepyをimportする
scanner = bluepy.btle.Scanner(0)
devices = scanner.scan(3) #3秒間周辺をスキャンする
for device in devices:       
 for (adtype, description, value) in device.getScanData()   
 #adtypeはアドバタイズデータの種別番号
 #adtypeの意味を記述するのがdescription
 #データ本体がvalue   
   com_id=valueの頭文字 
   if desc=="xxxx" and com_id == "xxxx": #温湿度センサーであるかのチェック        	  		      	 		 
       temp=valueから計算
       print('Temperature: %f'% temp) #温度の表示
       humid=valueから計算
       print('Humid: %f'% humid) #湿度の表示
       Battery=valueから計算
       print('Battery: %d'% battery) #バッテリー残量の表示 

上記を読んでいただければ、何をしているかは大体わかっていただけると思います。(思ったよりもプログラム量は少ないと思いました!) CO2センサーも同じように実装することができます。

また、「valueからの計算」については、ユニ電子から情報提供していただいたアドバタイズデータの詳細から計算しました。

そして…いよいよ、このプログラム(scan3.py)の実行です!

図2.png
上図のように、このプログラムを実行すると、CONEXIOBlackBearのコマンドライン上へ、温度・湿度・バッテリー残量を表示することができました!夏の暑い時期に実施した結果ですので、温度と湿度が結構暑苦しい値になっています…

知識ゼロからでも(もちろんベテランの方でも)思ったよりも簡単ですので、是非BLE接続を試してみてください!

BLEセンサーを、CONEXIOBlackBearでつなげてみませんか?

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?