head

2017年8月5日土曜日

Update, nanoPi BLE gateway server アドレス指定編(ble_gateway_sv2)




前回のLinux版の BLE Gateway Server のアップデートを行いました。
改良内容は、プロトコルの拡張となり、1回に送信可能データ桁数を増やしました。
旧版は25byteで、識別に必要なデバイス名を3-5byte、残りの最大20byte
を利用できましたが、
新は、データ部最大 25byte使用可能です。

[改良の仕組み]
Bluetooth device adress(BD address)を使い、server側から、
子機(peripheral)を識別するように。検出方法を変更しています。
この変更により、advertising パケットの最大25 byteを全てデータ領域で
使用できるようになりました。

*) 下記のアドレス種類の例外があり、対象は
public address 機種のみです、random address は対象外としています。



# 概要
旧版(アドレス指定無し)と、同様です。





# 参考 /Bluetooth Device Address

Bluetoothに対応しているデバイスを識別するために使われるのがアドレス:Bluetooth Device Addressで、
BD_ADDR、BDアドレスなどと表記されることもあります。
Bluetooth v4のアドレスは48ビット(EUI-48)を使用しており、
Public AddressとRandom Addressの2種類のアドレスが使用可能です。

・Public Address
これはIEEE 802準拠のアドレスであり、EthernetのMACアドレスと同等のアドレスです。
製品製造時に機器ごとに書き込まれる固定のアドレスです。
機器を製造した企業や機器の個別アドレスを含みます。

*)
48ビットのアドレス
パブリック・デバイス・アドレスは、Bluetooth SIGが企業ごとに発行した24ビットの識別子と、
企業が製品1つづつに割り振る24ビットの識別子から構成されます。

・Random Address
セキュリティを考慮した、各端末(機器)で自動生成される端末アドレスです。
乱数を使います。Bluetooth v4では一般的で、機器の製造工程で書き込む必要がありません。


参考:
http://micro.rohm.com/jp/techweb_iot/knowledge/iot02/s-iot02/04-s-iot02/2732




# code (BETA)
central : nanoPi/ ble_gateway_sv2
https://github.com/kuc-arc-f/ble_gateway_sv2

peripheral : RN4020 +atmega
RN4020_sv2_0_9_1.ino
https://gist.github.com/kuc-arc-f/727cf086673ad33eaf1f6d9055cd3f0d

RN4020_sv2_0_9_3.ino
https://gist.github.com/kuc-arc-f/d2408ff3752d8023db81b33baf2555f0


==== 2017/08/06 ====
esp32 driver(ESP-IDF)
app_bt.c
https://gist.github.com/kuc-arc-f/93a175c7821331f0e0d4934579acd972

=== Update:2017/09/07 ===
update: 0.9.3 scan動作の変更等
http://knaka0209.blogspot.jp/2017/09/nanoPi-8.html

=== Update:2017/08/17 ==
update v0.9.2をリリースしました。
設定ファイルから、子機デバイス情報を設定可能になりました。
blog: http://knaka0209.blogspot.jp/2017/08/nanoPi-6.html

========


# 補足/プロトコル 新/旧比較


新verは、旧と比較してプロトコル仕様が異なり、互換性がありません。
25 byte 固定 (例は、5byte * 5 項目)
device nameを廃止
BD address を追加

V2/ プロトコル仕様(PDF)
https://github.com/kuc-arc-f/ble_gateway_sv2/blob/master/doc/Protocol-Spec-ble-Rn4020-pubAddr.pdf


#  V2/ 設定手順
#) public address の調査
BT アプリ等で、起動時の advertising データ内の BD address を確認します。



===2017/08/06 ===
BTアプリによって、アドレス英数の大文字/小文字が逆になる現象を発見しました。
bluepyは、アドレス英数文字は全て小文字表示のようですので、
チェック用の python 追加しました。必要あれば参考下さい。
scan5-checkAddr.py
https://github.com/kuc-arc-f/ble_gateway_sv2/blob/master/ble_gateway_sv2/scan5-checkAddr.py

=========


#) address メモしておきます。(参考)
複数デバイスを設置する場合ですが、
 *) 例、表形式にまとめておきます。
内容は、BD Addres , 用途、センサ種類



#) BLE server に設定します。
ble_gateway_sv2.py
=== 2017/08/23 ===
update 0.9.2 で、デバイス追加方法を変更しています。
http://knaka0209.blogspot.jp/2017/08/nanoPi-6.html
====

定数を追加し、デバイス追加処理 ( init_param()  ) 
で追加します。
*) 下記の mPubAddr01



旧版のREADME 手順と重複しますが
https://github.com/kuc-arc-f/ble_gateway_sv/blob/master/README.md
http_func.py --送信先の設定 (* 例は thingSpeak 
ble_gateway_sv.py  /send_http() 
--request param設定、BLE収集配列から、HTTP送信用のバッファにセットします。

完了したら、server 起動します。

# Log /クラウド転送が開始されます。
*) 今回は、2台で各1項目で 種類少なめですが。






# NANOPI NEO で、BLE GATEWAY SERVER を設置する
http://knaka0209.blogspot.com/2017/07/nanoPi-2.html

# Update, BLE gateway server 0.9.2
http://knaka0209.blogspot.jp/2017/08/nanoPi-6.html


# BLE -IOT関連まとめ
http://knaka0209.blogspot.jp/2017/07/BLE-matome.html


0 件のコメント:

コメントを投稿

google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social