head

ラベル BLE の投稿を表示しています。 すべての投稿を表示
ラベル BLE の投稿を表示しています。 すべての投稿を表示

2017年12月8日金曜日

RN4020 BLE ブレークアウト お試し編



BLE関係となります。microchip RN4020 のブレークアウト基板
以前、モジュール品を製作した時に検証の基板ですが、
放置していたので。通信テストしてみました


# 部品
マイクロチップ Bluetooth RN4020-V/RM123



# 配線



電源(VDD) バスコン(セラコン 0.1u) 追加
WAKE_SW : 10K プルアップ
WAKE_HW : 10K プルアップ

GND は、全て結線しています。
*) プルアップしないと、起動しませんでした。

電源は、 3V3投入すると、起動できました。

pcから、FTDI 経由で操作可能です。


#Log -UART


Nコマンド => A (アドバタイズ)
adv 送信できました。



#スマホ アプリでscan

# raw data


送信値を、確認できました。


# 回路図


# 配置図


*) ピンを、引き出しただけですが。

# pdf
https://github.com/kuc-arc-f/RN4020C-1C_pdf

# EAGLE file , ver 7.5
https://github.com/kuc-arc-f/RN4020C-1C_pcb



# まとめ

BLE Gateway経由で、クラウド転送できそうです



# 関連のページ

# 電池1本駆動、BLE バッテリー小型化編
http://knaka0209.blogspot.jp/2017/09/RN4020-4.html

#  RN4020 BLE 搭載用ベース基板 試作編
http://knaka0209.blogspot.jp/2017/09/RN4020-1.html

# RN4020 BLE + ATMEGA328, 省エネ改良版
http://knaka0209.blogspot.jp/2017/07/esp32-21.html

# RASPBERRY PI , BLE GATEWAY 設置、
http://knaka0209.blogspot.jp/2017/07/raspi-5-BLE.html






2017年11月16日木曜日

複数の設置場所のセンサー値を 場所指定で読み上げる。 Google Home +IoT連携(3)


前回に続いて Google Home関係となります。
複数の違う場所に置いたセンサを、個別に読み上げる機能を追加しました。
前回は全て1回にまとめて、音声出力していたのですが。

処理 (webhook 自作api):
前回より、複雑になりますが。
dialogFlowから、webhookを呼ぶ時のリクエスト内に
Google Homeに音声入力した情報が含まれてましたので、
チェックして、設置場所を探し、対象デバイスの更新を取得できる外部APIを呼びます。
音声出力の文章の組立て方法は前回と同様。dialogFlowに出力します。



# 動画、  温度センサの読み上げ
リビング
玄関
室内全部(2箇所) 平均値の計算

*) 前回と同様ショートカット機能も活用しています。( スマホ設定 )





# 実行時のJSONのダンプ
 homeに音声入力した内容もふくまれています。
 result 内
 action : Intents action
 resolveQuery : User Says / おそらく音声入力した文
 Entities 等、
これらをキーにして、どの音声出力パターンを出力すべきか判定。
今回は、action をつかいました。




# Intentsの追加、追加機能分
今回は、Entities は使いませんでしたが、動作できました。
Fulfillment の下の、Use webhook のチェックを ON にします。

リビング:




玄関:



Integrations
追加した、Intents を 選択して追加。



Test > Update Draft
で反映できました。


# code --python27
webhook リクエストのチェック。分岐処理あたり。




# 参考の記事
GoogleHomeをスプラトゥーンアシスタントにする #2 Twitterからステージ情報の取得
https://qiita.com/kotatu_km/items/c340027914d690095b66




# 関連
Google Home +IoT連携 ,センサー値の読み上げ機能
http://knaka0209.blogspot.jp/2017/10/gHome-1.html



2017年10月30日月曜日

温度/湿度/気圧読み上げを追加しました。 Google Home +IoT連携(2)


前回に続いて Google Home関係となります。
複数のBLE子機と、Google Home miniの連携(拡張機能)で
温度/湿度/気圧のを含む、室内のセンサー値を読み上げています。

*) APIの配置や、通信方法は前回と同じです。
dialogFlow +自作api



# 動画
前回と同様で、ショートカットを登録して、
短い単語で、起動できるように設定しています。



1台目:温度/湿度/気圧
2台目:温度
を 音声出力。



# 追加した、BME280 搭載デバイス
プロト基板で、仮配線ですが。
電池(二次電池)を 基板の上に搭載して、電源供給しています。
5V昇圧回路も使用。




*) 基板の右側に、bme280 ( 秋月さんモジュール )




# 配線の参考
http://knaka0209.blogspot.jp/2017/07/raspi-7.html



# 前回同様、グラフの表示も音声出力と並行して 可能です。
thingSpeak



field5, 6,7 : 1 台目
field1 : 2台目



# code --arduino IDE
BLE driver ( 子機 )
https://github.com/kuc-arc-f/RN4020_sv2_0_9_3_bat1_bme

*1 ) BLE gatewayも、前回と同じです。
追加したデバイス分の、送信処理を追加した程度

*2) 子機は、BLE以外(wifi 機器 etc )でも問題ありません。
クラウド連携でデータ出力可能であれば、home側から参照できます。



# 関連の記事
Google Home +IoT連携 ,センサー値の読み上げ機能
http://knaka0209.blogspot.jp/2017/10/gHome-1.html




#




2017年10月25日水曜日

Google Home +IoT連携 ,センサー値の読み上げ機能




Google Home関係となります。
Google Home miniでの拡張機能で、dialogFlow/ Fulfillment
のwebhook 経由で、外部APIから IoT更新のセンサー値データを読み込みます。

先人さまの、記事を参考に機能を追加しました。
Webhookは、今回はappEngine(GAE) 使いました。
Google以外のクラウドでも多分よさそうです。

*) 先日 Home mini 実機を入手したので、基本機能も良く理解していませんが、
少しづつ調べたいと思います。



# thanks/ 参考

自然言語処理を容易に実装できるDialogflow(旧:API.AI) を使ってみる
https://qiita.com/flatfisher/items/76bc86b65e5f2150a1a0

GoogleHomeをDialogflow(旧:API.ai)でスプラトゥーンアシスタントにする
https://qiita.com/tak_km/items/c06f45c6692dceb9258d

手順としては、
dialogFlow で、 Entity, Intents 等を設定しておき、
Fulfillment で、 webhook を指定
シミュレータでテスト、みたいな流れでした。



# 概要






# 動画
指定場所の、温度センサー値読み出し。


*) テスト版で、テストアプリの接続確認の質問出てます。
申請すれば、確認承認後は出ないかもしれません。



# Code ,python (utf-8 )
webhook.py


データ保存クラウドの、レスポンスの参考は下記です

{"temperature":"24","humidity":0}


Home側から呼ばれた時、
最新の、センサー値を出力する必要があります。

# dialogFlow のJSON ダンプを追加しました。2017/10/26





# IoT側
子機は省電力版の BLE(arduino) + BLE gateway使用していますが、
クラウド側にデータ保存できれば、他の機種でも問題ないと思います

参考:
BLE gateway 機能:
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html

BLE子機:
http://knaka0209.blogspot.jp/2017/09/RN4020-4.html



==== Update:2017/10/26  ====
動画の追加:複数のセンサー対応。


会話の内容(例)
1) センサーをチェック (音声入力)

2) Home (音声出力)
ok,リビングの温度は、24度です。
玄関の温度は、22度です。
センサー値の平均は、23度です。
現在の時刻は、11時45分です。

*)少し長くなりましたが。
平均値の計算、時刻の追加は オプションです
テスト版は同じです。

==== Update:2017/10/27 =====
Home対応と、グラフ表示機能を追加しました。
2箇所のセンサーのログの監視が可能です。(PC ,mobile )
field1: 1台目
field4: 2台目

異なるクラウドサービス (thigSpeak )にも、
データ送信機能を追加しています。



*) グラフの最新値は、Homeの音声出力する値と
同一になります。

==== update :2017/10/30 ====
補足、ショートカットの利用 (ご参考まで )
一般的な話しですが , Homeアプリのショートカットを使うと、
テストの追加したアプリも少し楽になりました。
テスト版モードに切り替わる点は、おなじですが。
音声入力が楽になります。下記を登録しておきます。
1)
テスト
内容、テスト用アプリにつないで、
2)チェック、intentsで定義した文章
内容、センサーをチェックして

# 入力、
OK,Google テスト
チェック

1で、テスト接続
2で、実行





動画


==== =====







2017年10月3日火曜日

micro:bitでIoT ,mbed編




BBC micro:bit 関連になります。
教育用らしいのですが、国内でも
購入できるようになったようですので購入してみました。

BLE使用して、前回の複数Beacon対応の
BLE Hub( gateway)経由で、クラウド送信までテストしてみました。



#部品
Micro:bit
http://akizukidenshi.com/catalog/g/gM-12513/

Soc: Nordic nRF51822
32-bit ARM Cortex M0 processor (16MHz)
16kB RAM
256kB Flash


#開発環境
複数ありそうですが、
今回は、mbed使いました。
https://os.mbed.com/


# thanks /参考のページ
https://os.mbed.com/platforms/Microbit/



#サンプル

1 ) 変数の送信。
https://gist.github.com/kuc-arc-f/36a919dace241e9ac46f87103cfebed8



*) Gap Profile サンプルを参考にしています。 advertising 送信
https://os.mbed.com/teams/Bluetooth-Low-Energy/code/BLE_GAP_Example/

2 ) adc で、LM60BIZ センサー値を送信。


adc読み込み部分:
https://gist.github.com/kuc-arc-f/901ace15833ebf6dfc9fe2d16e9b97bd


adc は、誤差が大きかったです。(P0 )
取得値= 623mV
実測(テスタ) = 585mV
誤差 = 38mV
*) 使えないかも。。センサによっては


*) mbedからのpinですが、ボードのピン番号と違うようでした。
検索した記事
BBC micro:bit PinNames.h contains pin names that do not match the micro:bit pins
https://github.com/ARMmbed/mbed-os/issues/2713
ページ内のピン対応関係の記載(ヘッダファイル)
https://github.com/lancaster-university/microbit-dal/blob/master/inc/drivers/MicroBitPin.h




本体のピン番号




# BLE hub(gateway )

random address を使うようで、public address 以外も
scanできるように修正

https://github.com/kuc-arc-f/ble_gateway_sv2_mbit


====update:2017/10/04 ====
random address(BD アドレス)について補足
異なるデバイスでrandom addressが重複する場合は、誤作動が想定される為、
対策を検討する必要する必要があります。
例として旧版のble_gateway_sv (https://github.com/kuc-arc-f/ble_gateway_sv )
は、データ内にデバイス名(ID)を格納しデータ管理を行える設計です。
追加デバイスに対して、重複しないデバイス名を決定する必要があり、
BDアドレスを使用しません。

====update:2017/10/04 ====
# 消費電力を測定しました、5Vライン
BLE Gap送信: 14.3 mA



*)[参考] hello world (UART 出力)は、17.3 mA
==== ====







# 関連
BLEハブ機能: UPDATE, NANOPI BLE GATEWAY SERVER アドレス指定
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html

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




#



2017年9月14日木曜日

周辺センサ等の電源スイッチングの追加




BLE子機での、モジュール全体の消費電力をさらに下げる方法で
カンタンな仕組みですが
周辺センサの電源ラインを、基板の3V3電源を結線せずに
マイコンのデジタル出力から電力を供給する方法としました。
内容的には、周辺回路の変更とドライバの調整となります。

*1)省電力センサであれば、正常に動作しましたが、
消費電力の多いセンサは電力不足となり軌道も失敗する可能性があります。
*2) スリープ復帰直後の電力=ONにするため、センサ値の誤差が出る場合も
 想定できますので、調整が必要な場合もありそうです。


# 結果
スリープ時、センサ接続した配線
旧版 : 0.27mA
新版 : 0.18mA  (電源 スイッチング機能付)
消費電力は下がりました。

*1) 差は、0.09 mA  (90uA )で少ないですが、
 もともと旧版の消費電力が少ない為
 長時間連続稼動の、累積消費差の差分は やや大きくなりそうです
*2) BLE送信時は、ほぼ同等でした


# 部品 /配線
LM60BIZ アナログ温度センサ使いまいした。

D13に、
センサの 3V3電源ラインを結線しています

*)マイコンは前回の、省電力対応のベース基板を使っています。


# code  -arduino IDE (Beta)
RN4020_sv2_0_9_3_SenSw.ino

https://gist.github.com/kuc-arc-f/c44ca838bff72b7836c9341e3440f61e




==== update:2017/09/14 ====
水分センサも追加でテストしてみました。
手持ちの部品で、通常の電源ラインからの電力供給と比較し
ADC測定値が誤差が、大きかったのでトランジスタ(増幅回路)
を追加して、スイッチングしました。



結果(スリープ時):
旧版: 11.5 mA
新版: 0.18 mA (電力スイッチ機能付)
こちらは、大きく差がでました。

関連:
http://knaka0209.blogspot.jp/2016/09/esp-wroom-02-20.html


# 関連の記事
RN4020 BLE 搭載用ベース基板 試作編
http://knaka0209.blogspot.jp/2017/09/RN4020-1.html


BLEハブ機能: UPDATE, NANOPI BLE GATEWAY SERVER アドレス指定
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html


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



#





2017年9月11日月曜日

BLE 子機 電池配線/ケース etc,DIY編




DIY で電源周辺の回路小型化。ケース配置等を検討してみました。
前回のRN4020 BLEモジュール使用しています。

*)以前は、安価な100均さまのモバイル電源(単三×2/ 5V出力)+ micro USBケーブル
 で基板電源の作成が多かったのですが、ケースに収める為、
 電池BOX/ XHコネクタ等で配線しています。



# 概観
手のひらにのせられる程度に、収まりました。
電池は、単三×2本 +5V DCDCコンバータで昇圧。
アナログ温度センサを BLE送信しています。

ケースは、100均さまのプラケース加工。
上面、アンテナ付近に通信用穴、側面は
温度センサ用風穴を複数あけています。

電池BOX配線は、 XHコネクタ使いました。
ケース幅が狭くて、電池は斜めになってますが。。






# 配線の参考図

 

*) 重なってる配線があったり、いまいちな図ですが
手ハンダ用の、参考です。


# 周辺のBOM
片面ユニバーサル基板 Dタイプ(47x36mm) ガラスコンポジット
http://akizukidenshi.com/catalog/g/gP-08242/

5V昇圧
http://akizukidenshi.com/catalog/g/gM-08619/

基板用コネクタ XH 2P B2B-XH-A(LF)(SN)
http://akizukidenshi.com/catalog/g/gC-12247/

電池ボックス 単3×2本 スイッチ付 XHコネクタ付
http://akizukidenshi.com/catalog/g/gP-12244/

ピンソケット、電線etc



# Log - thingSpeak



# 関連の記事
RN4020 BLE 搭載用ベース基板 試作編
http://knaka0209.blogspot.jp/2017/09/RN4020-1.html

BLEハブ機能: UPDATE, NANOPI BLE GATEWAY SERVER アドレス指定
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html


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

2017年9月7日木曜日

Update, python BLE gateway server v 0.9.3


前回のpython版 BLE gateway sereverの update行いました。 ( ble_gateway_sv2)

主な修正内容は、scan処理の変更で、機能的な改良ではありません。
旧版は、短時間のadvertisingパケットを受信する為、
scanを連続実行していましたが、数秒サイクルでのscan処理に変更しています。

1) scanタイマの変更
 5秒サイクルで scan
2)1日の稼動時間帯の設定: 初期=OFF
 appConst.py
 mTimeAct=1 を設定すると、scan処理の稼動範囲(scan処理の自動ON/OFF)を設定可能です。
 開始/終了時刻も変更可能 (時間単位 ,開始 <終了の条件 )





# code
前回と同じプロジェクト URLです。
https://github.com/kuc-arc-f/ble_gateway_sv2

# 子機driver /arduino IDE
合わせて子機の修正が必要になります。
advertising送信=10 sec (旧は 5sec) 、消費電力が増えますが。
他の方法の調整で下げたいと思います。

D9 :RN4020 スイッチング
送信: 10 sec
https://gist.github.com/kuc-arc-f/d2408ff3752d8023db81b33baf2555f0




# 関連のページ
# Update, nanoPi BLE gateway server アドレス指定編(ble_gateway_sv2)
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html


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


#

2017年9月5日火曜日

RN4020 BLE 搭載用ベース基板 試作編



以前のBLE基板を参考に、
省電力IoT用 として開発していた試作基板 が届きましたので
第1回目の試作してみました。



# 特徴など
マイコン側からUART通信で、Bluetooth(BLE)制御可能です。
市販品 Bluetooth RN4020モジュール(*1) /秋月電子さんの AE-RN4020-XB
を基板上面に搭載できるピン配置のベース基板です。

省電力IoT、容量の少ない小型電池でも長期間連続可能を目標

トランジスタ 5V増幅ピンで、BLE基板の5VスイッチON/OFF可能
(下記の D9)

電源は 5V入力可能、3V3 LDO搭載しています。

小型化、前回のatmega328P-PU 通常サイズ-ブレッドボード版より小型化にしています

上記のBLEスイッチ機能も実装している為、
外部トランジスタ等の回路不要でスリープ時省電力化できます。


*1)参考URL: http://akizukidenshi.com/catalog/g/gK-11102/


# ピン配置/仕様
Atmega328P-AU 搭載
基板外形寸法: 22 x 40 mm
デジタル :最大8
ADC : 最大4
I2C : 1
UART : 1
入力電圧 : 5V
動作電圧: 3.3V




*1) 3V3 arduino Pro mini 仕様と似ていますが。ピン数は少なめです
*2) サンプルコードに対応した内部結線
D5/D6: softwareSerial で BLE通信し、
D9: BLE(5V)のON/OFF スイッチが可能。
(トランジスタ 5V増幅 ,通信時=ON )


# 消費電力
稼動時平均 : 0.23 mAh
スリープ時 : 0.18 mAh 

*1) センサ接続していない場合です。
*2) サンプルコード実行時、30分タイマ
*3) 公開している省電力版 サンプルドライバを書き込んだ場合です、



# 概観/組立て例
RN4020モジュールを装着した場合です。



側面から見ると、上面は下6Pでソケット装着の為、
少し前側 アンテナ部分が下に下がっています。


*) アナログ温度センサ接続しています。A0


# 開発環境
arduino IDE で開発できます。
マイコンボードは[arduino Pro mini 3.3V 8MHz]
を選択しています。




# 送信ログ /thingSpeak
arduino側に、公開していた子機ドライバ書き込んでいます。


公開していた BLEハブ機能(BLE gateway /python 版)経由で
クラウド送信しています。



# まとめ
設計ミスで、ジャンパ結線の修正部分がありますが。
調整を続けたいと思います。


# 関連の記事
BLEハブ機能: UPDATE, NANOPI BLE GATEWAY SERVER アドレス指定
最新 :v 0.9.2
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html

回路/ ハード関連: RN4020 BLE + ATMEGA328, 省エネ改良
http://knaka0209.blogspot.jp/2017/07/esp32-21.html



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


2017年8月19日土曜日

BLE 子機 消費電力測定結果 ,RN4020 +atmega (第1回)



連続稼動テストを続けていた、
RN4020 BLE子機の第1回目の、測定報告となります。



#条件
1日 =24時間稼動
タイマー間隔= 300sec (5分)
電池 : 二次電池単三- 2本 (ニッケル水素)
*) 100均さまの、モバイル電源(単三×2本 2.4V)で
 出力= 5V ( おそらく昇圧回路内臓 )
*) BLE server は前回と同じ, nanoPiを経由して
 クラウド連携する構成です。

# 結果
稼動時間 : 1095 H ( 45.6日 )


# 考察
条件としては、やや消費電力は多めとしました。
1) タイマー間隔を、300秒から 10/15分(600秒) 以上に変更すると
 稼動時間は延ばせそうです。
2) 周辺センサの電源を ON/OFF スイッチ機能を、
 追加していない為、やや消費は多めになっています。
3) 小型化の為、電池2本としましたが。昇圧時の電力ロス
 が想定されるので、使用できる電力量は少なめ
 だったと予想しています。

#
次も条件等を変更して、テストしてみたいと思います。


# 関連の記事
RN4020 BLE + ATMEGA328, 省エネ改良版
http://knaka0209.blogspot.jp/2017/07/esp32-21.html

消費電力比較、RN4020 BLE とESP8266
http://knaka0209.blogspot.jp/2017/07/raspi-8.html


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





2017年8月17日木曜日

Update, BLE gateway server 0.9.2


前回のアドレス指定の BLE gateway sereverの 
update行いました。 ( ble_gateway_sv2)
内容は、コンフィグからデバイスリストを読み込む方法に変更し、
デバイス追加時にコードにの変更を少なめに出来るように修正しました。



#
1) configの設定、
config.json を追加し、各デバイス名/ BDアドレスを記載しておきます(json形式)




*) 記載サンプルは、config-sample.json
*) デバイス名は、キー項目となり。重複名はNGとなります。
*) public addressを事前に調査が必要な点は前回と同じ。

2) コード修正 ( 前回と似ています )
http_func.py --送信先の設定 (* 例は thingSpeak
ble_gateway_sv.py  /send_http()
--request param設定、BLE収集配列から、HTTP送信用のバッファにセットします。
*) 今回は、config.json に記載した デバイス名/field を指定しデータ取り出します。
*) コード内の、BDアドレス定義は削除しています、

# Log には、デバイス名、アドレス、各BLE子機からの読み込み値
が出力されます。





# code
前回と同じプロジェクト URLです。
https://github.com/kuc-arc-f/ble_gateway_sv2



# 関連のページ
# Update, nanoPi BLE gateway server アドレス指定編(ble_gateway_sv2)
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html

RN4020 BLE + ATMEGA328, 省エネ改良版
http://knaka0209.blogspot.jp/2017/07/esp32-21.html

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




2017年8月7日月曜日

python ,GATT characteristic通信編


前回のGAP profileベースの advertising通信で
bt4.x プロトコル拡張もほぼ限界に達してきたようですので。
別の方法を検討しました。
GATT profileを使って、characteristic value
をperipheral から読見込みテストを行いました。

[環境]
GATT client/Central : nanoPi (python)
GATT server/peripheral : esp32

*) esp32は、省電力面ではNGでしたが、
 GATTのサンプルコードが存在したので、勉強には良さそうでした。
 連続稼動の場合は、省エネ化できるデバイスに変えたほうが良いでしょう。


# thanks / 参考のサイトさま
GATT(Generic Attribute Profile)概要
http://yegang.hatenablog.com/entry/2014/08/09/195246



# Log -python/ Central
sRead=0000..
の行が、読み込んだ行です。










# Log -esp32 /peripheral
GATT_READ_EVT 、のイベント当りが、
characteristic 読み込み実行された応答部分です。







# code(beta)、解説など

# Central/ GATT client --python (nanoPi)
getCharacteristic.py (bluepy を使用してます。 )
* BDアドレス (public address) を指定し、コネクト
*  characteristic  -UUID を指定します。
mCHAR_UUID = 0xFF01
* properties は、読み込み権限のある場合は、読めました。
* 指定の characteristic  -UUID が存在する場合、
読み込み処理 ( .read()  )を実行すると、valueが取得できました。

https://gist.github.com/kuc-arc-f/b5cd0e6f8f6901922571654d6d33160a


# peripheral /GATT server -esp32
gatts_demo.c --ESP-IDF
*  別タスクで、センサ値等のデバイス値を、変数にセットしておきます。
xTaskCreate(&sensorTask, "sensorTask", 4096, NULL, 5, NULL);

*  characteristic -UUID は固定にしておき、読み込み側で指定します。
#define GATTS_CHAR_UUID_TEST_A      0xFF01
*  callback の ESP_GATTS_READ_EVT で、
送信値をセットし、
esp_ble_gatts_send_response() で送信


https://gist.github.com/kuc-arc-f/b108bdc2306ba77cf59f412612a47737

*) 前回の、BLE Server(IoT連携 )と異なり
GATT部分の通信テストで、peripheral - SCAN処理や
クラウド転送機能は実装していません。



# 関連のページ

Update, nanoPi BLE gateway server アドレス指定編(ble_gateway_sv2)
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html

nanoPi NEO で、BLE Gateway Server を設置する
http://knaka0209.blogspot.com/2017/07/nanoPi-2.html

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








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


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

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

AD-parts

Shop
Bluetooth搭載
ベース基板

Social