SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Webエンジニアのためのスマートホームハック ~ Node.js で家電とArduinoを操作 ~
Report
Futomi Hatano
Follow
CEO at futomi Co., Ltd.
Sep. 3, 2016
•
0 likes
•
5,085 views
1
of
55
Webエンジニアのためのスマートホームハック ~ Node.js で家電とArduinoを操作 ~
Sep. 3, 2016
•
0 likes
•
5,085 views
Download Now
Download to read offline
Report
Technology
HTML5 Conference 2016 2016年9月3日(土)
Futomi Hatano
Follow
CEO at futomi Co., Ltd.
Recommended
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
Futomi Hatano
4K views
•
49 slides
AWS GreengrassによるLチカとAIスピーカーによるBAS制御の実証実験
TomohisaYamazoe
479 views
•
13 slides
ESP8266をはじめよう
Kei Yoshimura
10.1K views
•
55 slides
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
CODE BLUE
3.6K views
•
57 slides
Sony Spresense #Edge computing device with ultra low power
義則 太田
1K views
•
26 slides
スタートアップ機能の等価回路モデル
マルツエレック株式会社 marutsuelec
267 views
•
10 slides
More Related Content
What's hot
Esp8266 webserver1
MasatoOshikiri
47.4K views
•
3 slides
Gs1350 5 datasheet_20201202
MasahitoTsuchida
14 views
•
6 slides
Cisco ios
ssuser021e0d
17 views
•
54 slides
Cisco ios
ssuserc9df1e
34 views
•
54 slides
WA-MIKAN(和みかん)説明資料
三七男 山本
2.4K views
•
14 slides
GR-SAKURAでEtherCAT
Bizan Nishimura
3.3K views
•
16 slides
What's hot
(20)
Esp8266 webserver1
MasatoOshikiri
•
47.4K views
Gs1350 5 datasheet_20201202
MasahitoTsuchida
•
14 views
Cisco ios
ssuser021e0d
•
17 views
Cisco ios
ssuserc9df1e
•
34 views
WA-MIKAN(和みかん)説明資料
三七男 山本
•
2.4K views
GR-SAKURAでEtherCAT
Bizan Nishimura
•
3.3K views
Interrupts on xv6
Takuya ASADA
•
3K views
/proc/irq/<irq>/smp_affinity
Takuya ASADA
•
3.4K views
GR-MANGOでEtherCAT
Bizan Nishimura
•
1.9K views
IoT WARS - the force awakens -
Tsuyoshi Seino
•
1K views
Internet of Things
Rainmaker Ho
•
254 views
UVLOの等価回路モデル作成方法
Tsuyoshi Horigome
•
254 views
ULVOの等価回路モデル
マルツエレック株式会社 marutsuelec
•
271 views
Kadecot Application Examples
sonycsl
•
3.1K views
SD WiFi v3基板の説明
三七男 山本
•
1.2K views
Lucas apa pacsec_slides_jp-final
PacSecJP
•
543 views
RSQB Flip Flopの等価回路モデル
マルツエレック株式会社 marutsuelec
•
193 views
マイコンロボット実習
Takehiko YOSHIDA
•
5.1K views
Making remote controlled robot
Batzorigt Rentsen
•
153 views
Odyssey MAX 10 FPGA入門セミナーテキスト
Tsuyoshi Horigome
•
874 views
Viewers also liked
JavaScript と Arduino でオリジナルデバイスを作ろう
Yoshihiro Iwanaga
5.6K views
•
40 slides
Web エンジニアのためのWeb エンジニアのためのロボットアームの API を考えてみる
Futomi Hatano
2.3K views
•
19 slides
f3js - JS Board Shibuya #6 LT
Jun Kato
5.5K views
•
26 slides
SORACOM Air+RaspberryPi+littleBits+IFTTTしてみる
Seigo Tanaka
5.9K views
•
55 slides
Smart.js: JavaScript engine running on tiny MCU
Kiwamu Okabe
6.7K views
•
10 slides
ネットに繋いでIoTしよう
wamisnet
4.9K views
•
17 slides
Viewers also liked
(20)
JavaScript と Arduino でオリジナルデバイスを作ろう
Yoshihiro Iwanaga
•
5.6K views
Web エンジニアのためのWeb エンジニアのためのロボットアームの API を考えてみる
Futomi Hatano
•
2.3K views
f3js - JS Board Shibuya #6 LT
Jun Kato
•
5.5K views
SORACOM Air+RaspberryPi+littleBits+IFTTTしてみる
Seigo Tanaka
•
5.9K views
Smart.js: JavaScript engine running on tiny MCU
Kiwamu Okabe
•
6.7K views
ネットに繋いでIoTしよう
wamisnet
•
4.9K views
JS Board で IoT は楽勝か?
Shingo Fukui
•
5.2K views
JavaScriptでも鉄道模型
ayasehiro
•
5.6K views
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
Tanaka Yuichi
•
3.3K views
これから Raspberry Pi をいじる方向けの資料 20130616版
Michiya Tominaga
•
73.6K views
Node.jsでDroneたちをめっちゃ簡単にHACKする話 JSオジサン#6
Yukiko Tamiya
•
4.3K views
Creel Product Overview; Digital Commerce Starts With Creel
Game-Consultant.com
•
1.5K views
加昌校園自然學習步道導覽圖
bouzone
•
808 views
Agile for-dummies
Shiraz316
•
1.5K views
How effective is the combination of your main
shockwaves94
•
696 views
Resume_Susanta
Susanta Dutta Banik
•
623 views
Итоговая работа проекта Цикли в нашей жизни
galina_pr
•
1.1K views
Онлайн портал по хранению и обмену e-сертификатами
E-COM UA
•
740 views
Information Architecture class11 03 27
Marti Gukeisen
•
609 views
Y11003 (CHINESE PROFICIENCY TEST YCT 2)
Agnes Yodo
•
646 views
Similar to Webエンジニアのためのスマートホームハック ~ Node.js で家電とArduinoを操作 ~
2016年2月4日 空間OSの設計コンセプトと先端IT
aitc_jp
838 views
•
21 slides
Mt basic as-os_on_danbot
たけおか しょうぞう
916 views
•
33 slides
Lagopus Switch Usecases
Sakiko Kawai
1.8K views
•
32 slides
AWS IoT EduKit ワークショップのご紹介
Yukinobu Mine
284 views
•
20 slides
Getting Started with Jetson Nano
NVIDIA Japan
7.1K views
•
26 slides
SORACOM Bootcamp Rec12 | SORACOM Inventory
SORACOM,INC
783 views
•
38 slides
Similar to Webエンジニアのためのスマートホームハック ~ Node.js で家電とArduinoを操作 ~
(20)
2016年2月4日 空間OSの設計コンセプトと先端IT
aitc_jp
•
838 views
Mt basic as-os_on_danbot
たけおか しょうぞう
•
916 views
Lagopus Switch Usecases
Sakiko Kawai
•
1.8K views
AWS IoT EduKit ワークショップのご紹介
Yukinobu Mine
•
284 views
Getting Started with Jetson Nano
NVIDIA Japan
•
7.1K views
SORACOM Bootcamp Rec12 | SORACOM Inventory
SORACOM,INC
•
783 views
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
aitc_jp
•
148 views
Ns2240series users manual_07
squat12
•
2.5K views
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
Kentaro Ebisawa
•
11K views
Intalio Cloud Workshop
Daisuke Sugai
•
10K views
MVPComCamp2015:Hyper-V仮想スイッチのTipsとTo Be(仮)
wind06106
•
2.1K views
RouterBOARD with OpenFlow
Toshiki Tsuboi
•
12.6K views
2015/05/23 シニア技術者プログラム第3弾 「第二回IoT勉強会&交流会」 15:00~15:20 Arduinoで簡単回路作成実演
aitc_jp
•
822 views
Jubatus分類器の活用テクニック
JubatusOfficial
•
11.9K views
20110724 WIZDOM:知識ゼロからのArduino(1)
Atsushi ENTA
•
2.9K views
EnOcean Development Performance - STM3xy and .NET Gadgeteer
Atomu Hidaka
•
1.1K views
Netduino
Tadahiro Ishisaka
•
1.6K views
CODE BLUE 2014 : サイバーエスピオナージを抑制するためにデバイスを無効化する ハイパーバイザー "DeviceDisEnabler" by...
CODE BLUE
•
1.9K views
Exciting and Thrilling, EnOcean technology online seminar #2
Atomu Hidaka
•
520 views
ECHONETコンソーシアムショートプレゼンテーション
Norimitsu Shida
•
4.6K views
More from Futomi Hatano
Embedded Webで加速するWeb of Things
Futomi Hatano
2.7K views
•
54 slides
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
Futomi Hatano
3K views
•
57 slides
HTML5 Conference 2015 悩める組込機器向けウェブコンテンツのパフォーマンス
Futomi Hatano
14.3K views
•
56 slides
ウェブ標準デバイス系 API 総集編 2014
Futomi Hatano
23.7K views
•
27 slides
html5j自動車部 第三回勉強会 W3C標準化と車載プラットフォームの最新動向
Futomi Hatano
3.7K views
•
43 slides
ようこそ、HTML5裏APIの世界へ - HTML5 Conference 2013
Futomi Hatano
31.5K views
•
65 slides
More from Futomi Hatano
(11)
Embedded Webで加速するWeb of Things
Futomi Hatano
•
2.7K views
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
Futomi Hatano
•
3K views
HTML5 Conference 2015 悩める組込機器向けウェブコンテンツのパフォーマンス
Futomi Hatano
•
14.3K views
ウェブ標準デバイス系 API 総集編 2014
Futomi Hatano
•
23.7K views
html5j自動車部 第三回勉強会 W3C標準化と車載プラットフォームの最新動向
Futomi Hatano
•
3.7K views
ようこそ、HTML5裏APIの世界へ - HTML5 Conference 2013
Futomi Hatano
•
31.5K views
アプリ開発支援サービス「アプリカン」 - HTML5 Experts Night 2013年8月23日
Futomi Hatano
•
2.1K views
第40回 HTML5とか勉強会 HTML5マークアップ ビギナーの良くある質問にズバリ答えます
Futomi Hatano
•
9.7K views
HTML5マークアップ珍プレー集 - HTML5 Conference 2012
Futomi Hatano
•
9.6K views
Progressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナー
Futomi Hatano
•
1.4K views
HTML5マークアップの心得と作法
Futomi Hatano
•
14.1K views
Recently uploaded
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
164 views
•
16 slides
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
145 views
•
12 slides
画像生成AIの問題点
iPride Co., Ltd.
10 views
•
9 slides
GraphQLはどんな時に使うか
Yutaka Tachibana
14 views
•
37 slides
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
57 views
•
20 slides
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
5 views
•
1 slide
Recently uploaded
(14)
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
164 views
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
145 views
画像生成AIの問題点
iPride Co., Ltd.
•
10 views
GraphQLはどんな時に使うか
Yutaka Tachibana
•
14 views
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
57 views
ヒアラブルデバイスにおける音漏れ信号を用いた空中ジェスチャ認識
sugiuralab
•
5 views
MLOps Course Slides_JP(配布用).pdf
Yuya Yamamoto
•
118 views
CatBoost on GPU のひみつ
Takuji Tahara
•
548 views
磁石内臓イヤリングによる磁力変化を利用したジェスチャ識別
sugiuralab
•
7 views
拡散する画像生成.pdf
NTTDOCOMO-ServiceInnovation
•
44 views
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
•
115 views
インフラチームとCCoEの関係.pptx
ssuser5c7ee4
•
20 views
2023情報処理学会関西支部大会-G12.pdf
KoseiShimoda1
•
7 views
テスト自動化.pdf
ssuserf8ea02
•
29 views
Webエンジニアのためのスマートホームハック ~ Node.js で家電とArduinoを操作 ~
1.
Webエンジニアのためのスマートホームハック Node.js で家電とArduinoを操作 2016年9月3日(土) HTML5 Conference
2016 @futomi futomi.hatano
2.
自己紹介 2 マークアップ解説本 API解説本 APIチュートリアル本Windows
8API解説本 有限会社 futomi 代表取締役 株式会社ニューフォリア 取締役 最高技術責任者
3.
日経SYSTEMS連載 2015年4月号~2016年3月号:こんなに変わったWeb開発/HTML5の基本テクニック 3
4.
日経SYSTEMSコラム 4 • そろそろIoTに触れてみませんか • マイコンボードを使って大気圧と気温を取得 •
Webブラウザーから制御 MIDIでサーボを動かす • Node.jsで家電を操作 赤外線を利用しよう • ECHONET Liteで家電をコントロール • スマホから機器を制御「デバイスコネクトWebAPI」 • 電池交換が不要に 無線技術「EnOcean」に注目 • ... IoTで火が付くITエンジニア魂:2016年4月号~2017年3月号 (予定)
5.
GitHubとnpm 5 https://www.npmjs.com/~futomi https://github.com/futomi
6.
6 IoTで話題の通信方式 PANからLPWANまで
7.
話題の無線方式 Personal Area Network
Home Area Network Low Power Wide Area Network Bluetooth Wi-SUN Wi-Fi EnOcean LoRa SigFox NB-IoT Wi-Fi HaLow Zigbee 特定小電力無線 サブギガ帯 (920MHz帯) Z-Wave DECT
8.
機器操作プロトコル例 8 Wi-SUN UDP UDP TCP HTTP SOAP UPnP SSDP IP Wi-Fi Ethernet Wi-Fi Ethernet IP UDP
TCP HTTP SOAP ONVIF WS- Discovery IP Wi-Fi Ethernet SOAP ECHONET Lite 家電/センサーセンサー AV/NW機器家電/センサー CCTVカメラ EnOcean Z-Wave
9.
Web屋でも試せる条件 • USBドングルとデバイスがネットで1個から手に入る • まとめ買い前提はつらい... •
野良ディベロッパーはお呼びでないメーカーが多い... • 技適が通っている • 電波を使う以上、避けては通れない... • 海外で普及していても日本では使えないものが多い... • 通信仕様が無料で一般公開されている • 標準化団体によっては会員でないと仕様が公開されていない • 非会員には有料で売っている団体もある • 機器種別ごとのプロファイルが規定されている • 低レイヤだけ規定されてても上位レイヤが規定されていないと事実上メーカー独自 規格と同じで野良ディベロッパーは扱えない 9 技適マーク
10.
もくじ • IoTで話題の通信方式 • Arduino編 •
EnOcean編 • ECHONET Lite編 • UPnP編 • まとめ 10
11.
11 Arduino編 JSでArduinoにアクセスする方法
12.
Web屋のArduino 12 そんなワガママな貴方 (私も) のために... •
はんだ付けなんてやりたくない • 電気回路に興味はない • 抵抗のカラーコードなんて分からない • ブレッドボードも使いたくない • C言語なんてできる限り使いたくない • やっぱりJavaScriptで
13.
Arduino Shield Kit 13 FaBo http://fabo.io/ seeed
studio - Grove https://www.seeedstudio.com/
14.
Chrome + Web
MIDI API + Moco • Midi Firmware for Arduino Uno (Moco)でArduinoのUSBファームを書き 換えて、ArduinoをMIDIデバイスとして認識されるようにする http://morecatlab.akiba.coocan.jp/lab/index.php/aruino/midi-firmware-for- arduino-uno-moco/ • 残念ながらスケッチはC言語で書くが、Arduino MIDI Libraryが便利 http://playground.arduino.cc/Main/MIDILibrary • データはMIDIフォーマットに載せてオレオレフォーマットで送る
15.
実験 15 ・Seeed社のGroveを使って超音波距離センサー, LED, サーボをArduinoに接続 ・距離センサーの結果をリアルタイムに取得して表示 ・ブラウザー上のスライダーでサーボを操作 ・サーボ操作のコマンドを受け付けたらLED点灯
16.
ビデオ 16 https://youtu.be/d7S5Mqelf08
17.
オレオレMIDIフォーマット 17 1 メッセージ値 チャネル番号 ステータスバイト 0 データバイト1 0 データバイト2 ノート番号 0~127 ベロシティ 0~127 電子ピアノなら PC →
Arduino Arduino → PC 超音波距離センサーが計測した距離 (cm) データバイト1 + データバイト2 (0~180) サーボの角度 (deg) データバイト1 + データバイト2 (0~254)
18.
Node.js + Johnny-Five
+ Firmata • Johnny-Five • USB経由でFirmataを使ってArduinoと通信するNode.jsモジュール • さまざまなArduino互換ボードとセンサーに対応 • Firmata • PCとマイコンの間でやり取りするためのプロトコル • ライブラリはArduinoのIDEに付属 • ArduinoにFirmataをビルド転送するだけ • 実際の通信はJohnny-Fiveに任せプロトコルを知る必要はない 18
19.
Johnny-Five 19 http://johnny-five.io/ http://johnny-five.io/api/multi/
20.
実験 20 FaBo社のFaBoを使って気圧センサー (Barometer I2C
Brick: MPL115A2) をArduinoに接続 温度と気圧を取得したら高度 (理論値) を計算して表示
21.
Node.jsのコード 21 var five =
require("johnny-five"); var board = new five.Board(); board.on("ready", () => { var multi = new five.Multi({controller: "MPL115A2"}); multi.on("change", () => { // 温度 (摂氏) var tmp = this.temperature.celsius; // 大気圧 (kPaをhPaに変換) var prs = this.barometer.pressure * 10; // 高度 (メートル) : 日本の場合 var alt = ((Math.pow(1013.25/prs, 1/5.257) - 1) * (tmp + 273.15)) / 0.0065; // 結果表示 ... }); });
22.
22 EnOcean編 電源要らずのIoT
23.
EnOceanの特徴 • エナジーハーベスティング • バッテリーレス無線発信技術 •
電磁誘導や太陽光発電などで電池要らず • 主にビルオートメーションなどの業務用に活用される • 近年はスマートホームも視野に • 周波数はサブギガ帯 • 日本では928MHz • ローム社が日本市場向け無線モジュールを扱っている • 製品 • 各種センサー (温度, 湿度, CO2, ドア開閉など) • ロッカースイッチ 23
24.
製品例 24
25.
仕様書 • EnOcean GmbH.が一般無料公開 •
https://www.enocean.com/en/knowledge-base/ • 仕様書の種類 • EnOcean Serial Protocol (ESP) 3 • テレグラムのフォーマット仕様 • EnOcean Radio Protocol (ERP) 2 • テレグラムのデータ部の仕様 • EnOcean Equipment Profiles (EEP) 2.6.5 • 機器種別ごとの仕様 • EnOceanアライアンスにて策定 25
26.
EnOceanのプロトコル体系 26
27.
EnOcean Equipment Profiles
(EEP) • デバイス種別ごとにEEPが割り振られている • A5-02-05: Temperature Sensor Range 0℃ to +40℃ • A5-07-01: Occupancy with Supply voltage monitor • A5-09-04: CO2 Sensor • F6-02-04: Rocker Switch, 2 Rocker, Light and blind control • EEPの把握の仕方 • EnOceanデバイスの説明書に記載されている(はず) • 記載されてなければ販売元に聞くしかない • 4BSというカテゴリのEEPならLearnボタンが用意されており、それを押すと自分自 身のEEPを通知するテレグラムを飛ばしてくれる • ただし、製品によっては間違っていたりする... 27
28.
Learnボタン 28
29.
node-enocean-utils • EnOceanを扱うためのNode.jsモジュール • https://github.com/futomi/node-enocean-utils •
依存関係 • Node.js 4.4以上 • serialportモジュール • インストール $ npm install node-enocean-utils 29
30.
EnOceanデバイスの登録 (teach-in) 30 var enocean
= require('node-enocean-utils'); // EnOceanデバイスの登録 enocean.teach({ 'id' : '00 00 00 2C 86 5C', 'eep' : 'F6-02-04', 'name': 'ESM210R Rocker Switch Single' }); enocean.teach({ 'id' : '00 00 04 01 31 95', 'eep' : 'A5-02-05', 'name': 'STM 431J Temperature Sensor' });
31.
EnOceanデバイスのモニター 31 // モニター開始 enocean.startMonitor({'path': 'COM7',
'rate': 57600}); // data-knownイベントのリッスン enocean.on('data-known', (telegram) => { var message = telegram['message']; console.log(message['device']['name'] + ': ' + message['desc']); }); ESM210R Rocker Switch Single: B0 pressed ESM210R Rocker Switch Single: B0 released ESM210R Rocker Switch Single: BI pressed ESM210R Rocker Switch Single: BI released STM 431J Temperature Sensor: 28.2℃ STM 431J Temperature Sensor: 28.4℃ 出力例
32.
32 ECHONET Lite編 家電とスマートメーターを操作
33.
ECHONET Liteの特徴 • 家電の種別ごとにクラス定義 •
エアコン, 空気清浄機, スマートメーターなど • 通信の下位層はなんでもアリ • TCP, UDP, Bluetooth, Wi-SUNなど • セキュリティーも下位層任せ • 製品 • エアコン, シーリングライト, 空気清浄機, スマートメーターなど • エアコンは別途ネットワークモジュールを購入する必要あり • メーカーによってはホームゲートウェイも購入する必要あり 33
34.
製品例 34 ダイキン 新うるさら7
35.
ネットワークアダプタ 35
36.
仕様書 • ECHONETコンソーシアムが一般無料公開 • http://echonet.jp/spec/ •
仕様書の種類 • ECHONET Lite規格書 Ver.1.12 • http://echonet.jp/spec_v112_lite/ • プロトコルの概要および共通部分の仕様 • APPENDIX ECHONET機器オブジェクト詳細規定 Release H • http://echonet.jp/spec_object_rh/ • 機器種別ごとの仕様 36
37.
node-echonet-lite • ECHONET Liteを扱うためのNode.jsモジュール •
https://github.com/futomi/node-echonet-lite • 依存関係 • Node.js 4.4以上 • serialportモジュール (Wi-SUN ルートBを扱う場合) • インストール $ npm install node-echonet-lite 37
38.
初期化 38 // モジュールのロード var EchonetLite
= require('node-echonet-lite'); // EchonetLiteオブジェクトを生成 var el = new EchonetLite({'type': 'lan'}); // EchonetLiteオブジェクトを初期化 el.init((err) => { // ここで機器発見 });
39.
機器発見 39 el.startDiscovery((err, res) =>
{ var device = res['device']; var address = device['address']; // 機器のIPアドレス var eoj = device['eoj'][0]; // EOJ var group_code = eoj[0]; // グループコード var class_code = eoj[1]; // クラスコード // 家庭用エアコンかどうかを判定 if(group_code === 0x01 && class_code === 0x30) { // 機器発見プロセスを停止 el.stopDiscovery(); // ここからあれこれエアコン操作 ... }); }
40.
エアコンON/OFF 40 var epc =
0x80; // ON/OFFを表すプロパティコード // ONかOFFかを調べる el.getPropertyValue(address, eoj, epc, (err, res) => { // ONだったならtrue, OFFだったならfalse var status = res['message']['data']['status']; // ONならOFFに, OFFならONにする var edt = { 'status': !status }; // EDTオブジェクト el.setPropertyValue(address, eoj, epc, edt, (err, res) => { if(!err) { console.log('成功'); } }); });
41.
Wi-SUN ルートB用のUSBドングル 41 http://www.tessera.co.jp/rl7023stick-d_dss.html テセラ・テクノロジー RL7023 Stick-D/DSS http://www.rohm.co.jp/web/japan/news-detail?news- title=2014-10-02_news&defaultGroupId=false ローム/Jorjin WSR35A1-00
42.
Bルートの申し込み (東電の場合) • 電力メーター情報発信サービス (Bルートサービス) http://www.tepco.co.jp/pg/consignment/ liberalization/smartmeter-broute.html •
申し込みが終わると後日勝手に メータが交換される (停電なし) • その後「認証ID」が郵送 • さらにその後メールでパスワード が通知 42
43.
我が家のスマートメーター 43
44.
Wi-SUN Bルートの実際のやり取り 44 > SKSENDTO
1 FE80:0000:0000:0000:0000:0000:0000:0000 0E1A 2 000E 1081001A05FF0102880162019E00 EVENT 21 FE80:0000:0000:0000:0000:0000:0000:0000 00 OK ERXUDP FE80:0000:0000:0000:0000:0000:0000:0000 FE80:0000:0000:0000:0000:0000:0000:0001 0E1A 0E1A 001C64000334809F 1 0012 1081001A02880105FF0172019E040381E5ED > SKSENDTO 1 FE80:0000:0000:0000:0000:0000:0000:0000 0E1A 2 000E 1081001B05FF0102880162019F00 EVENT 21 FE80:0000:0000:0000:0000:0000:0000:0000 00 OK ※ 実際にはテキストとバイナリが混在したコマンドとレスポンスでECHONET Liteパケット部はバイナリ ECHONET Liteパケット部分 ECHONET Liteパケット部分
45.
ビデオ(非公開) 45
46.
node-echonet-lite Wi-SUN Bルート初期化 46 var
EchonetLite = require('node-echonet-lite'); var el = new EchonetLite({ 'lang' : 'ja', 'type' : 'wisunb', 'adapter': 'bp35a1', 'path' : 'COM8', 'id' : '0123456789ABCDEF0123456789ABCDEF', 'pass' : 'ABCDEFGHIJKL', 'baud' : 115200 }); ・以降はUDPを扱う場合と同じ ・ただし、機器発見は時間がかかる(我が家の環境では20秒ほど) ・基本的にレスポンスは遅い
47.
47 UPnP編 テレビなどのAV機器にアクセス
48.
UPnPの特徴 • 機器発見と録画映像再生制御など • SSDP,
M-Search • HTTP POSTでSOAPをリクエスト • 対応機器 • ほとんどのテレビが対応 • ただしUPnPで規定されていない操作はメーカー独自 • パケットキャプチャーすればある程度は分かる(かも) 48
49.
node-upnp-utils • UPnPを扱うためのNode.jsモジュール • https://github.com/futomi/node-upnp-utils •
依存関係 • Node.js 4.4以上 • xml2jsモジュール • インストール $ npm install xml2js $ npm install node-upnp-utils 49
50.
機器発見 var upnp =
require('node-upnp-utils'); // addedイベントのリスナー upnp.on('added', (device) => { // 欲しいデバイスが見つかれば発見処理を停止 upnp.startDiscovery(); // あとはお好きなように... ... }); // 機器発見開始 upnp.startDiscovery();
51.
アクション送信 51 var upnp =
require('node-upnp-utils'); var soap = ''; soap += '<?xml version="1.0" encoding="utf-8"?>'; soap += '<s:Envelope ...>...</s:Envelope>'; var params = { 'url' : 'http://192.168.10.4:20003/MediaServer/ContentDirectory/Control', 'soap': soap }; upnp.invokeAction(params, (err, obj, xml, res) => { ... });
52.
ビデオ(非公開) 52
53.
53 まとめ Web屋でもIoT
54.
Web屋でもIoT • Webディベロッパーでも関われる分野はある • Arduino,
Wi-SUN, EnOcean, etc.. • IoTはモノだけでなく見える化も重要、そこはWeb屋の得意分野 • ハードは専門家に任せよう • ドットメイクのブームもあるがそんな簡単じゃない • ハルロック読みましょう
55.
ご清聴ありがとうございました @futomi futomi.hatano