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
EN
Uploaded by
Futomi Hatano
PPTX, PDF
5,145 views
Webエンジニアのためのスマートホームハック ~ Node.js で家電とArduinoを操作 ~
HTML5 Conference 2016 2016年9月3日(土)
Technology
◦
Related topics:
Node.js Development
•
Read more
2
Save
Share
Embed
Embed presentation
Download
Downloaded 20 times
1
/ 55
2
/ 55
3
/ 55
4
/ 55
5
/ 55
6
/ 55
7
/ 55
8
/ 55
9
/ 55
10
/ 55
11
/ 55
12
/ 55
13
/ 55
14
/ 55
15
/ 55
16
/ 55
17
/ 55
18
/ 55
19
/ 55
20
/ 55
21
/ 55
22
/ 55
23
/ 55
24
/ 55
25
/ 55
26
/ 55
27
/ 55
28
/ 55
29
/ 55
30
/ 55
31
/ 55
32
/ 55
33
/ 55
34
/ 55
35
/ 55
36
/ 55
37
/ 55
38
/ 55
39
/ 55
40
/ 55
41
/ 55
42
/ 55
43
/ 55
44
/ 55
45
/ 55
46
/ 55
47
/ 55
48
/ 55
49
/ 55
50
/ 55
51
/ 55
52
/ 55
53
/ 55
54
/ 55
55
/ 55
More Related Content
PDF
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
by
Futomi Hatano
PDF
AWS GreengrassによるLチカとAIスピーカーによるBAS制御の実証実験
by
TomohisaYamazoe
PDF
ESP8266をはじめよう
by
Kei Yoshimura
PDF
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
by
CODE BLUE
PDF
Sony Spresense #Edge computing device with ultra low power
by
義則 太田
PPT
スタートアップ機能の等価回路モデル
by
マルツエレック株式会社 marutsuelec
PDF
Spresense meetup#2 try_multicore_programming
by
義則 太田
PDF
Arduino 習作工坊 - Lesson 5 機械之夜
by
CAVEDU Education
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
by
Futomi Hatano
AWS GreengrassによるLチカとAIスピーカーによるBAS制御の実証実験
by
TomohisaYamazoe
ESP8266をはじめよう
by
Kei Yoshimura
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
by
CODE BLUE
Sony Spresense #Edge computing device with ultra low power
by
義則 太田
スタートアップ機能の等価回路モデル
by
マルツエレック株式会社 marutsuelec
Spresense meetup#2 try_multicore_programming
by
義則 太田
Arduino 習作工坊 - Lesson 5 機械之夜
by
CAVEDU Education
What's hot
PPTX
Esp8266 webserver1
by
MasatoOshikiri
PDF
Gs1350 5 datasheet_20201202
by
MasahitoTsuchida
PPTX
Cisco ios
by
ssuser021e0d
PPTX
Cisco ios
by
ssuserc9df1e
PDF
WA-MIKAN(和みかん)説明資料
by
三七男 山本
PDF
GR-SAKURAでEtherCAT
by
Bizan Nishimura
PPTX
Interrupts on xv6
by
Takuya ASADA
PDF
/proc/irq/<irq>/smp_affinity
by
Takuya ASADA
PDF
GR-MANGOでEtherCAT
by
Bizan Nishimura
PDF
IoT WARS - the force awakens -
by
Tsuyoshi Seino
PPTX
Internet of Things
by
Rainmaker Ho
PPT
UVLOの等価回路モデル作成方法
by
Tsuyoshi Horigome
PPT
ULVOの等価回路モデル
by
マルツエレック株式会社 marutsuelec
PDF
Kadecot Application Examples
by
sonycsl
PDF
SD WiFi v3基板の説明
by
三七男 山本
PDF
Lucas apa pacsec_slides_jp-final
by
PacSecJP
PPT
RSQB Flip Flopの等価回路モデル
by
マルツエレック株式会社 marutsuelec
PDF
マイコンロボット実習
by
Takehiko YOSHIDA
PPTX
Making remote controlled robot
by
Batzorigt Rentsen
PPTX
Odyssey MAX 10 FPGA入門セミナーテキスト
by
Tsuyoshi Horigome
Esp8266 webserver1
by
MasatoOshikiri
Gs1350 5 datasheet_20201202
by
MasahitoTsuchida
Cisco ios
by
ssuser021e0d
Cisco ios
by
ssuserc9df1e
WA-MIKAN(和みかん)説明資料
by
三七男 山本
GR-SAKURAでEtherCAT
by
Bizan Nishimura
Interrupts on xv6
by
Takuya ASADA
/proc/irq/<irq>/smp_affinity
by
Takuya ASADA
GR-MANGOでEtherCAT
by
Bizan Nishimura
IoT WARS - the force awakens -
by
Tsuyoshi Seino
Internet of Things
by
Rainmaker Ho
UVLOの等価回路モデル作成方法
by
Tsuyoshi Horigome
ULVOの等価回路モデル
by
マルツエレック株式会社 marutsuelec
Kadecot Application Examples
by
sonycsl
SD WiFi v3基板の説明
by
三七男 山本
Lucas apa pacsec_slides_jp-final
by
PacSecJP
RSQB Flip Flopの等価回路モデル
by
マルツエレック株式会社 marutsuelec
マイコンロボット実習
by
Takehiko YOSHIDA
Making remote controlled robot
by
Batzorigt Rentsen
Odyssey MAX 10 FPGA入門セミナーテキスト
by
Tsuyoshi Horigome
Viewers also liked
PPTX
JavaScript と Arduino でオリジナルデバイスを作ろう
by
Yoshihiro Iwanaga
PPTX
Web エンジニアのためのWeb エンジニアのためのロボットアームの API を考えてみる
by
Futomi Hatano
PDF
f3js - JS Board Shibuya #6 LT
by
Jun Kato
PDF
SORACOM Air+RaspberryPi+littleBits+IFTTTしてみる
by
Seigo Tanaka
PDF
Smart.js: JavaScript engine running on tiny MCU
by
Kiwamu Okabe
PPTX
ネットに繋いでIoTしよう
by
wamisnet
PDF
JS Board で IoT は楽勝か?
by
Shingo Fukui
PDF
JavaScriptでも鉄道模型
by
ayasehiro
PPTX
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
by
Tanaka Yuichi
PDF
これから Raspberry Pi をいじる方向けの資料 20130616版
by
Michiya Tominaga
PDF
Node.jsでDroneたちをめっちゃ簡単にHACKする話 JSオジサン#6
by
Yukiko Tamiya
PDF
Creel Product Overview; Digital Commerce Starts With Creel
by
Game-Consultant.com
PPT
加昌校園自然學習步道導覽圖
by
bouzone
PPT
How effective is the combination of your main
by
shockwaves94
DOC
Resume_Susanta
by
Susanta Dutta Banik
PPS
Итоговая работа проекта Цикли в нашей жизни
by
galina_pr
PDF
Онлайн портал по хранению и обмену e-сертификатами
by
E-COM UA
PPTX
Information Architecture class11 03 27
by
Marti Gukeisen
PDF
Y11003 (CHINESE PROFICIENCY TEST YCT 2)
by
Agnes Yodo
PDF
Teaching big data
by
Rim Moussa
JavaScript と Arduino でオリジナルデバイスを作ろう
by
Yoshihiro Iwanaga
Web エンジニアのためのWeb エンジニアのためのロボットアームの API を考えてみる
by
Futomi Hatano
f3js - JS Board Shibuya #6 LT
by
Jun Kato
SORACOM Air+RaspberryPi+littleBits+IFTTTしてみる
by
Seigo Tanaka
Smart.js: JavaScript engine running on tiny MCU
by
Kiwamu Okabe
ネットに繋いでIoTしよう
by
wamisnet
JS Board で IoT は楽勝か?
by
Shingo Fukui
JavaScriptでも鉄道模型
by
ayasehiro
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
by
Tanaka Yuichi
これから Raspberry Pi をいじる方向けの資料 20130616版
by
Michiya Tominaga
Node.jsでDroneたちをめっちゃ簡単にHACKする話 JSオジサン#6
by
Yukiko Tamiya
Creel Product Overview; Digital Commerce Starts With Creel
by
Game-Consultant.com
加昌校園自然學習步道導覽圖
by
bouzone
How effective is the combination of your main
by
shockwaves94
Resume_Susanta
by
Susanta Dutta Banik
Итоговая работа проекта Цикли в нашей жизни
by
galina_pr
Онлайн портал по хранению и обмену e-сертификатами
by
E-COM UA
Information Architecture class11 03 27
by
Marti Gukeisen
Y11003 (CHINESE PROFICIENCY TEST YCT 2)
by
Agnes Yodo
Teaching big data
by
Rim Moussa
Similar to Webエンジニアのためのスマートホームハック ~ Node.js で家電とArduinoを操作 ~
PDF
機械学習 (AI/ML) 勉強会 #2 IoT編
by
Fujio Kojima
PDF
さくらのIoT Platform α版ハンズオン
by
さくらインターネット株式会社
PPTX
IoTハンズオン
by
Takashi Ariyama
PDF
20190521 node-red ug vol8 kitazaki v2
by
Ayachika Kitazaki
PDF
20190521 node-red ug vol8 kitazaki v1
by
Ayachika Kitazaki
PDF
IoTハンズオン資料(おうちハック)配布用
by
Takashi Ariyama
PDF
EnOcean × Node-REDで簡単・本格IoT
by
Akiyuki Yoshino
PDF
de:code 2018 一挙紹介! Azure が提供する IoT 系サービス
by
Masaru Takahashi
PDF
Bluetoothl-Low-Energy入門講座-part1
by
edy555
PPTX
Current status and future trends in Node-RED
by
nodered_ug_jp
PDF
LoRaWANとAzure IoT Hub接続ハンズオン
by
Tomokazu Kizawa
PDF
EdgeTech+2024 展示会「 AVENT LoRa Solution」配布資料一式
by
CRI Japan, Inc.
PPTX
Enocean無線センサー用ノード開発事例
by
nodered_ug_jp
PDF
sakura.io体験ハンズオン 20180228
by
さくらインターネット株式会社
PDF
20160928_「Cloud Robotics Azure Platform 基本セット」構築ハンズオン
by
IoTビジネス共創ラボ
PDF
2023-01-26_IoTに活かそう!「UNIXという考え方」.pdf
by
Akira Tateishi
PDF
20140922 ble bootcamp
by
akihiro uehara
PDF
AWS歴2週間で IoT に挑戦してみた。
by
Shogo Matsuda
PDF
ECHONETコンソーシアムショートプレゼンテーション
by
Norimitsu Shida
PDF
AWS IoT EduKit ワークショップのご紹介
by
Yukinobu Mine
機械学習 (AI/ML) 勉強会 #2 IoT編
by
Fujio Kojima
さくらのIoT Platform α版ハンズオン
by
さくらインターネット株式会社
IoTハンズオン
by
Takashi Ariyama
20190521 node-red ug vol8 kitazaki v2
by
Ayachika Kitazaki
20190521 node-red ug vol8 kitazaki v1
by
Ayachika Kitazaki
IoTハンズオン資料(おうちハック)配布用
by
Takashi Ariyama
EnOcean × Node-REDで簡単・本格IoT
by
Akiyuki Yoshino
de:code 2018 一挙紹介! Azure が提供する IoT 系サービス
by
Masaru Takahashi
Bluetoothl-Low-Energy入門講座-part1
by
edy555
Current status and future trends in Node-RED
by
nodered_ug_jp
LoRaWANとAzure IoT Hub接続ハンズオン
by
Tomokazu Kizawa
EdgeTech+2024 展示会「 AVENT LoRa Solution」配布資料一式
by
CRI Japan, Inc.
Enocean無線センサー用ノード開発事例
by
nodered_ug_jp
sakura.io体験ハンズオン 20180228
by
さくらインターネット株式会社
20160928_「Cloud Robotics Azure Platform 基本セット」構築ハンズオン
by
IoTビジネス共創ラボ
2023-01-26_IoTに活かそう!「UNIXという考え方」.pdf
by
Akira Tateishi
20140922 ble bootcamp
by
akihiro uehara
AWS歴2週間で IoT に挑戦してみた。
by
Shogo Matsuda
ECHONETコンソーシアムショートプレゼンテーション
by
Norimitsu Shida
AWS IoT EduKit ワークショップのご紹介
by
Yukinobu Mine
More from Futomi Hatano
PDF
Embedded Webで加速するWeb of Things
by
Futomi Hatano
PDF
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
by
Futomi Hatano
PDF
HTML5 Conference 2015 悩める組込機器向けウェブコンテンツのパフォーマンス
by
Futomi Hatano
PDF
ウェブ標準デバイス系 API 総集編 2014
by
Futomi Hatano
PDF
html5j自動車部 第三回勉強会 W3C標準化と車載プラットフォームの最新動向
by
Futomi Hatano
PDF
ようこそ、HTML5裏APIの世界へ - HTML5 Conference 2013
by
Futomi Hatano
PDF
アプリ開発支援サービス「アプリカン」 - HTML5 Experts Night 2013年8月23日
by
Futomi Hatano
PDF
第40回 HTML5とか勉強会 HTML5マークアップ ビギナーの良くある質問にズバリ答えます
by
Futomi Hatano
PDF
HTML5マークアップ珍プレー集 - HTML5 Conference 2012
by
Futomi Hatano
PDF
Progressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナー
by
Futomi Hatano
PDF
HTML5マークアップの心得と作法
by
Futomi Hatano
Embedded Webで加速するWeb of Things
by
Futomi Hatano
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
by
Futomi Hatano
HTML5 Conference 2015 悩める組込機器向けウェブコンテンツのパフォーマンス
by
Futomi Hatano
ウェブ標準デバイス系 API 総集編 2014
by
Futomi Hatano
html5j自動車部 第三回勉強会 W3C標準化と車載プラットフォームの最新動向
by
Futomi Hatano
ようこそ、HTML5裏APIの世界へ - HTML5 Conference 2013
by
Futomi Hatano
アプリ開発支援サービス「アプリカン」 - HTML5 Experts Night 2013年8月23日
by
Futomi Hatano
第40回 HTML5とか勉強会 HTML5マークアップ ビギナーの良くある質問にズバリ答えます
by
Futomi Hatano
HTML5マークアップ珍プレー集 - HTML5 Conference 2012
by
Futomi Hatano
Progressive Enhancement - クロスブラウザー対応に必要なこと - Microsoft IE10 移行セミナー
by
Futomi Hatano
HTML5マークアップの心得と作法
by
Futomi Hatano
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
Download