Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
edy555
PDF, PPTX
8,888 views
Bluetooth Low Energy入門講座 -part2
BLEデバイスをLinuxから使って、基礎的なインターネット連携をしてみようという実習講座の資料です。(第二部)
Engineering
◦
Read more
19
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 46
2
/ 46
3
/ 46
4
/ 46
5
/ 46
6
/ 46
7
/ 46
8
/ 46
9
/ 46
10
/ 46
11
/ 46
12
/ 46
13
/ 46
14
/ 46
15
/ 46
16
/ 46
17
/ 46
18
/ 46
19
/ 46
20
/ 46
21
/ 46
22
/ 46
23
/ 46
24
/ 46
25
/ 46
26
/ 46
27
/ 46
28
/ 46
29
/ 46
30
/ 46
31
/ 46
32
/ 46
33
/ 46
34
/ 46
35
/ 46
36
/ 46
37
/ 46
38
/ 46
39
/ 46
40
/ 46
41
/ 46
42
/ 46
43
/ 46
44
/ 46
45
/ 46
46
/ 46
More Related Content
PDF
Bluetoothl-Low-Energy入門講座-part1
by
edy555
PPTX
フリスクでBleアプリ
by
Tomohiro Goya
PDF
BlueZで遊んでみる - BLE大阪勉強会
by
Shinji Kobayashi
PDF
Winストアアプリでble接続
by
エンジニア勉強会 エスキュービズム
PDF
20140922 ble bootcamp
by
akihiro uehara
PDF
Dpdk環境の話
by
Masaru Oki
PDF
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
by
Kenichiro MATOHARA
PDF
Tremaで試すFirewall
by
M Hagiwara
Bluetoothl-Low-Energy入門講座-part1
by
edy555
フリスクでBleアプリ
by
Tomohiro Goya
BlueZで遊んでみる - BLE大阪勉強会
by
Shinji Kobayashi
Winストアアプリでble接続
by
エンジニア勉強会 エスキュービズム
20140922 ble bootcamp
by
akihiro uehara
Dpdk環境の話
by
Masaru Oki
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
by
Kenichiro MATOHARA
Tremaで試すFirewall
by
M Hagiwara
What's hot
PDF
Lagopusで試すFirewall
by
Tomoya Hibi
PDF
Running lagopus on Xeon D
by
Masaru Oki
PPTX
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
by
npsg
PDF
OpenFlowで覚えるネットワーク
by
M Hagiwara
PDF
Lagos running on small factor machine
by
Lagopus SDN/OpenFlow switch
PDF
自宅実験環境 Aug 2014
by
Masaru Oki
PDF
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
by
シスコシステムズ合同会社
PDF
Dpdk pmd
by
Masaru Oki
PDF
Getting Started with Jetson Nano
by
NVIDIA Japan
PDF
DPDK QoS
by
Masaru Oki
PDF
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
by
Tomoya Hibi
PDF
Xeon d
by
Masaru Oki
PDF
Kernel vm-2014-05-25
by
Hirochika Asai
PDF
Lagopus + DockerのDPDK接続
by
Tomoya Hibi
PPTX
VPP事始め
by
npsg
PDF
Linux packet-forwarding
by
Masakazu Asama
PDF
Rps・rfs等最新linux kernel事例
by
Takuya ASADA
PPTX
自作仮想化基盤 「n0stack」の紹介
by
Takeshi Take
PDF
CPU製品出荷状況と消費電力の見える化
by
Naoto MATSUMOTO
PDF
Interrupt Affinityについて
by
Takuya ASADA
Lagopusで試すFirewall
by
Tomoya Hibi
Running lagopus on Xeon D
by
Masaru Oki
WAN SDN 実践入門! ~ OpenDayLightのPCEP/BGPに触れてみる ~
by
npsg
OpenFlowで覚えるネットワーク
by
M Hagiwara
Lagos running on small factor machine
by
Lagopus SDN/OpenFlow switch
自宅実験環境 Aug 2014
by
Masaru Oki
【Interop tokyo 2014】 Internet of Everything / SDN と シスコ技術者認定
by
シスコシステムズ合同会社
Dpdk pmd
by
Masaru Oki
Getting Started with Jetson Nano
by
NVIDIA Japan
DPDK QoS
by
Masaru Oki
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
by
Tomoya Hibi
Xeon d
by
Masaru Oki
Kernel vm-2014-05-25
by
Hirochika Asai
Lagopus + DockerのDPDK接続
by
Tomoya Hibi
VPP事始め
by
npsg
Linux packet-forwarding
by
Masakazu Asama
Rps・rfs等最新linux kernel事例
by
Takuya ASADA
自作仮想化基盤 「n0stack」の紹介
by
Takeshi Take
CPU製品出荷状況と消費電力の見える化
by
Naoto MATSUMOTO
Interrupt Affinityについて
by
Takuya ASADA
Similar to Bluetooth Low Energy入門講座 -part2
PDF
ifLink[改善版].pdf
by
KunihiroSugiyama1
PDF
Mac から Python で BLE ペリフェラルを操作する
by
Takuya Nishimoto
PPTX
AITCオープンラボ第4回IoT勉強会 センサーデータの取得・送信編
by
Yasuyuki Jinnouchi
PDF
IBM Cloud&sakura.io体験ハンズオン 20171208
by
さくらインターネット株式会社
PPTX
Arduino tank meets bluetooth
by
Masuda Tomoaki
PDF
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
by
integra66
PDF
機械学習 (AI/ML) 勉強会 #2 IoT編
by
Fujio Kojima
PDF
IoTデバイス センサデータ分析システム
by
Yuki Nihei
PDF
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312
by
さくらインターネット株式会社
PDF
2023-01-26_IoTに活かそう!「UNIXという考え方」.pdf
by
Akira Tateishi
PDF
iOSアプリ開発者のための Bluetooth Low Energy体験講座
by
akihiro uehara
PDF
Web先端技術味見部#28 Physical Webハンズーオン開発補助資料
by
Recruit Technologies
PDF
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
by
Junichi Kakisako
PPTX
IoTLT-Vol92-Wiki-IoT-20221009-1.pptx
by
Takashi Yamanoue
PDF
sakura.io handson with IBM Bluemix
by
さくらインターネット株式会社
PPT
00 maker
by
BeatCraft
PPTX
SensorBee: Stream Processing Engine in IoT
by
Daisuke Tanaka
ODP
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
by
Kenichiro MATOHARA
PDF
Ruby × Arduinoで フィジカルコンピューティング やってみた
by
shiftky
PDF
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
by
Futomi Hatano
ifLink[改善版].pdf
by
KunihiroSugiyama1
Mac から Python で BLE ペリフェラルを操作する
by
Takuya Nishimoto
AITCオープンラボ第4回IoT勉強会 センサーデータの取得・送信編
by
Yasuyuki Jinnouchi
IBM Cloud&sakura.io体験ハンズオン 20171208
by
さくらインターネット株式会社
Arduino tank meets bluetooth
by
Masuda Tomoaki
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
by
integra66
機械学習 (AI/ML) 勉強会 #2 IoT編
by
Fujio Kojima
IoTデバイス センサデータ分析システム
by
Yuki Nihei
クラウドコミュニケーションAPI Twilio&sakura.io体験ハンズオン 20180312
by
さくらインターネット株式会社
2023-01-26_IoTに活かそう!「UNIXという考え方」.pdf
by
Akira Tateishi
iOSアプリ開発者のための Bluetooth Low Energy体験講座
by
akihiro uehara
Web先端技術味見部#28 Physical Webハンズーオン開発補助資料
by
Recruit Technologies
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
by
Junichi Kakisako
IoTLT-Vol92-Wiki-IoT-20221009-1.pptx
by
Takashi Yamanoue
sakura.io handson with IBM Bluemix
by
さくらインターネット株式会社
00 maker
by
BeatCraft
SensorBee: Stream Processing Engine in IoT
by
Daisuke Tanaka
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
by
Kenichiro MATOHARA
Ruby × Arduinoで フィジカルコンピューティング やってみた
by
shiftky
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
by
Futomi Hatano
Bluetooth Low Energy入門講座 -part2
1.
食関連産業IT化(機械化)講座 応用編 Bluetooth
Low Energy入門講座 モノとアプリをつなげる基本技術 第二部 実習 北海道ソフトウェア技術開発機構 2013年11月12日~13日
2.
2日目の内容 • 午前
– コードによるデータの取得 – 各方法の説明 • 午後 – インターネットへのアップロード
3.
コードによる制御
4.
コード制御の実装方法 • 自動化やデータ処理を行ないたい
• プログラムによる制御をする必要がある • 3案 – gatttool+python – libbluetooth+socket(C言語) – btle.js (BLEのnode.js実装: JavaScript)
5.
TI社のサンプル • TI社提供のサンプルコード
– iOS用 – Android用 – http://www.ti.com/tool/sensortag-sw
6.
実装方法 • python+gatttool
– gatttoolコマンドを使用、簡便 • libbluetooth+socket – C言語 – 正統派だが面倒 • btle.js – BLEのnode.js実装: JavaScript – Webとの連携に良いかも
7.
gatttool+スクリプト • gatttoolを利用してデバイスを制御
• スクリプト言語としてpythonを利用 – 前述のgatttoolをサブプロセスとしてstdio経由 で使用する • サンプル – ble-python ディレクトリ – IR Temperatureの取得 – これを実際に動作させてみる
8.
python超入門 • ブロック
– Cでいう { ... } – コロン“:”で始まりインデントを下げる – インデントにはタブを使わない(ほうが良い) • 関数呼び出しには括弧が必須 – エラーにならないので注意 • 関数定義はdef文
9.
ble-python(0) • 準備
– BDアドレスを調べておく $ sudo hcitool lescan LE Scan ... 90:59:AF:0A:A8:A4 (unknown) 90:59:AF:0A:A8:A4 SensorTag
10.
ble-python(1) • ソース:
sensortag-temp.py • BDアドレスを修正 def main(bdaddr='90:59:AF:0A:A8:A4'): tool = connect(bdaddr) while True: try: tmpr = read_data(tool) print tmpr except: print "Error:", sys.exc_info() time.sleep(5)
11.
ble-python(2) • 実行手順
– 必要に応じてボタンを押す $ sudo python sensortag-temp.py Preparing to connect. You might need to press the side button... 15.3 15.6 15.3
12.
ble-python(3) • データをどうやって取っているか
– コマンドを送って、反応を受け取る tool.sendline('char-read-hnd 0x25') tool.expect('descriptor: .*') rval = tool.after.split() #print rval objT = floatfromhex(rval[2] + rval[1]) ambT = floatfromhex(rval[4] + rval[3]) tmpr = calcTmpTarget(objT, ambT) – どんな応答を受け取っているかprintで確認
13.
ble-python(4) • 他のセンサを使用するよう修正
– UUIDを変更して別のセンサ値を取得してみる – 参考: http://processors.wiki.ti.com/index.php/SensorTag_User_Guide • 初期化部分 – イネーブルして一度取得 tool.sendline('char-write-cmd 0x29 01') tool.expect('¥[LE¥]>') tool.sendline('char-read-hnd 0x25') tool.expect('descriptor: .*')
14.
ble-python(5) • 初期化部分
– イネーブル対象を変更 tool.sendline('char-write-cmd 0x29 01') tool.expect('¥[LE¥]>') tool.sendline('char-read-hnd 0x25') tool.expect('descriptor: .*') • データ取得部分 tool.sendline('char-read-hnd 0x25') tool.expect('descriptor: .*') rval = tool.after.split() #print rval
15.
ble-python(6) • 温度
• 加速度 • 方位(地磁気) • ボタン • 気圧 • ジャイロ
16.
socket+C言語 • 別実装の方法として参考提示
• サンプル – ble-cディレクトリ
17.
socket+C言語: コンパイル •
ライブラリのインストール(済) $ sudo apt-get install libbluetooth-dev • コード中のアドレスを修正 – test.c line:186 str2ba("90:59:AF:0A:A8:A4", &opts.dst); • コンパイル $ make
18.
socket+C言語: 実行 •
コマンド入力後、センサーのボタンを押す • その後Enterを入力 $ ./test push side button bt_io_connect: 3 write WRITE_CMDwrite: 4 write READ_REQwrite: 3 read responseread: 5 opcode: 11 ad fe c8 0a temperature: 17.554379
19.
socket+C言語: 解説 •
講習の範囲を超えるので簡単に • ユーティリティとしてbtio.c/hを使用 – 後述のbtle.jsの一部、bluz由来 • ソケットを作成 – PF_BLUETOOTH – PROTO_L2CAP • ATTのデータフォーマットで入出力 • root権限でなくても動作する
20.
btle.js • Node.js向けBLEモジュール
– beetle juiceと発音するそうです – bluezのコードをベースに、glib等ライブラリ依 存を削除 – githubで公開 • https://github.com/jacklund/btle.js – npmでインストール可能
21.
Node.jsとは • 趣旨から外れるので一言だけ説明
– サーバサイドJavaScript – イベントドリブン – 高負荷にも耐えるWebアプリケーションサーバ として知られる
22.
btle.js(0) • インストール(済)
– node.jsの最新版をインストール – npmでbtle.jsをインストール $ sudo apt-get install libbluetooth-dev $ sudo apt-get install python-software-properties python $ sudo apt-get install g++ make $ sudo add-apt-repository ppa:chris-lea/node.js $ sudo apt-get update $ sudo apt-get install nodejs npm $ npm install -g node-gyp $ npm install btle.js
23.
btle.js(1) • アドレスの修正
// Connect btle.connect('90:59:AF:0A:A8:A4', function(err, device) { • 実行 $ node btle-test.js Temperature, 65230, 2944 Temperature, 65220, 2944 – Notificationを受信して生データを表示
24.
btle.js(2) • アトリビュートの読み出し版
$ node btle-read2.js connecting SensorTag... connected Temperature: 17.475821408366528 Got close – 温度への変換を実装 – 少し遅延を入れている
25.
btle.js(3) • HTTPサーバ版
$ node btle-http2.js connecting SensorTag... connected – ブラウザから参照する http://localhost:1337/
26.
noble • noble:
もうひとつのnode.js ble実装 – というか決定版 – https://github.com/sandeepmistry/noble – 各種デバイス対応やペリフェラルも存在
27.
noble+sensortag • インストールはこれだけ
$ sudo npm install sensortag $ sudo npm install async • 実行 $ cd node_modules/sensortag $ sudo node test.js
28.
インターネット連携
29.
インターネット連携 • やること:センサーから取得したデータをサ
ーバにアップロードする • クラウドサービスを利用する
30.
xively.com • 「Public
Cloud for the Internet of Things」 • モノのインターネットのためのクラウド • データの蓄積 • グラフ化 • WebAPI (REST) • 各種プラットフォーム用ライブラリあり • Developer Accountは無料で取得可能
31.
xively.com
33.
実例:室温記録
34.
xivelyのはじめ方 1. アカウントを作成
2. フィードを作成 3. APIキーを取得 4. データをアップロード
35.
xively: アカウント作成 •
(作成済みのアカウントを共有します)
36.
xively:手順 • ログイン
• デバイス(フィード)作成 • Feed IDとAPI Keyを取得 • スクリプトに設定 • 実行
37.
xively:デバイス追加
38.
xively:Feed IDとAPI Key
39.
xively:スクリプト • Feed
IDとAPIキーを転記 XIVELY_API_KEY = "eIpXlvKHd9CdtdD5SK9TgzaiZ9osxOX2a05MK18epQdAb0iy" XIVELY_FEED_ID = 813879821 • Bluetoothアドレスを転記 def main(bdaddr='90:59:AF:0A:A8:A4'): • インターバルを調整
40.
xively:実行 • 実行すると、データ取得&アップロードを
継続 $ python ./sensortag2xively.py Preparing to connect. You might need to press the side button... (datetime.datetime(2013, 11, 9, 14, 11, 29, 172604, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>), 20.7) (datetime.datetime(2013, 11, 9, 14, 11, 30, 828813, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>), 21.1) ....
41.
xively:コンソール
42.
xively:フィード表示 • Xivelyのサイトでグラフ表示
– https://xively.com/feeds/813879821
43.
xively:データ取得 • REST
APIにより蓄積データを参照可能 – https://xively.com/dev/docs/api/quick_reference/historical_data/ – JSON, XML, CSV • CSVで一日分のデータを取得する例 $ wget --header "X-ApiKey: eIpXlvKHd9CdtdD5SK9TgzaiZ9osxOX2a05MK18epQdAb0iy" 'https://api.xively.com/v2/feeds/813879821/datastreams/tmpr. csv?start=2013-11-09T00:00:00Z&duration=24hours' -O tmpr.csv
44.
xively:グラフイメージ取得 • グラフイメージの取得
– see https://xively.com/dev/docs/api/data/read/single_datastream/ https://api.xively.com/v2/feeds/{feed id}/datastreams/{stream id}.png
45.
xively:JSによるグラフ作成 • インタラクティブなグラフを含むページ作成
– http://xively.github.io/channel-viz/
46.
まとめ • BLEの仕組みの理解
• Linuxからの利用 • Xivelyへのアップロード
Download