Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
IoTタグで遊んでみよう
Search
いざわゆきみつ (Yukimitsu Izawa)
June 18, 2016
Technology
650
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
IoTタグで遊んでみよう
2016/06/18 Kanazawa.rb #46 @ ITBP武蔵
いざわゆきみつ (Yukimitsu Izawa)
June 18, 2016
Other Decks in Technology
See All in Technology
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
330
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
280
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
250
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
190
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
920
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
120
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
170
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
290
1つのリクエストを追って理解する - llm-dのP/D分離
akhino
1
160
その Valkey 使いこなしていますか?
onk
PRO
5
1.5k
Featured
See All Featured
Chasing Engaging Ingredients in Design
codingconduct
0
360
Tell your own story through comics
letsgokoyo
1
1.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Product Roadmaps are Hard
iamctodd
55
13k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Done Done
chrislema
187
17k
Scaling GitHub
holman
464
140k
Making the Leap to Tech Lead
cromwellryan
135
10k
Site-Speed That Sticks
csswizardry
13
1.6k
Test your architecture with Archunit
thirion
2
2.4k
Transcript
「安心・安全・安定・信頼」できるインターネットサービスを גࣜձࣾΫϧΟοτ Ҫᖒ ࢤॆ *P5λάͰ༡ΜͰΈΑ͏ 2016/06/15 (Sat) Kanazawa.rb #46 @ITBPଂ
「安心・安全・安定・信頼」できるインターネットサービスを ͜͡͠ΐ͏͔͍ • (株)クルウィットの取締役 兼 北北陸陸⽀支社⻑⾧長 • 博⼠士(情報科学)
• ネットワーク関連の委託研究・⾃自社サービス開発など 2 • 井澤 志充 (いざわゆきみつ) @Yukimitsu_Izawa
「安心・安全・安定・信頼」できるインターネットサービスを *P5ͱ モノのインターネット(Internet of Things、IoT)は、 様々な「物」がインターネットに接続され、情報交換する ことにより相互に制御する仕組みである。 それによる社会の実現も指す。「物のインターネット」と も呼ぶ。
Wikipediaより 3
「安心・安全・安定・信頼」できるインターネットサービスを Ϟϊʁ • モノ = IoTデバイス • パソコン, スマホ,
タブレット, raspberry pi,.. • 家電( TV, デジタルオーディオプレイヤー, HDDプレ イヤー,..) • 家の付帯設備 (鍵, インターフォン, 電球,..) • 電⼦子⼯工作( arduino, BLEデバイス,..) 4
「安心・安全・安定・信頼」できるインターネットサービスを *P5σόΠεͷ*0 • 状態取得(Observe) • 環境情報: 温度度湿度度、気圧、照度度、 •
モーション情報: 振動、傾斜、移動、 • 位置情報: 存在位置、近接、通過、 • スイッチ状態: ⽞玄関の施錠状態、ドアの開け閉め、 • 状態変更更(Control) • 家電のOn/Off • 照明制御 • シャッター駆動 • 施錠/解錠 5
「安心・安全・安定・信頼」できるインターネットサービスを ҰੲલͷίϯϐϡʔςΟϯάͱ͍͏ͱ • PCでWord, Excelでファイルを作成・編集 • PCの中に閉じた世界 •
FAのような制御 • 現実世界にあるゴツいものを操作・制御 6 ཧతͳࢹͰΈΔͱ྆ۃͳੈք
「安心・安全・安定・信頼」できるインターネットサービスを Ή͔͠Ή͔͠ • 能登半島の某川に設置された⽔水⾨門の制御をしたことがあ りました。 • ⽔水⾨門扉の開度度, ⾨門の外側と内側の⽔水位や塩分濃度度を取 得。
• i-‐‑‒mode(!)端末から確認できるようにするシステムでし た。 • ちょっと書き込むとマジで⾨門扉が開閉する。 • ヘタに開閉すると川周辺流流域の⽥田畑に塩害が発⽣生 7
「安心・安全・安定・信頼」できるインターネットサービスを ͜Μͳͭ 8
「安心・安全・安定・信頼」できるインターネットサービスを 9 ʮੜ·ΕͯॳΊͯͷIoTϓϩάϥϛϯάਫͰͨ͠ʂʯ ී௨ͦΜͳͷͰ༡ͳ͍ɻ ͭ·Γ……
「安心・安全・安定・信頼」できるインターネットサービスを ଟ༷ଟछͳ*P5σόΠεͷ಄ʹΑͬͯ ぼくらが「プログラミング」という⼿手段で介⼊入 できる世界が拡張された。 10
「安心・安全・安定・信頼」できるインターネットサービスを なんかたのしそうじゃね!? 11
「安心・安全・安定・信頼」できるインターネットサービスを ࠓͷίϯηϓτ • 電⼦子⼯工作の世間⼀一般のイメージは… • 回路路図読めない • ハンダ付けむずかしそう
• 抵抗読めない • 燃えそう • 爆発しないの? 12 →今⽇日は「半⽥田付けしないIoT遊び」を⽬目指します
「安心・安全・安定・信頼」できるインターネットサービスを ࠓͷ՝ • 侵⼊入検知システムを作ってみよう 13
「安心・安全・安定・信頼」できるインターネットサービスを ༧ਤ 14 ৼಈݕ ௨ Twitterʹߘ
「安心・安全・安定・信頼」できるインターネットサービスを ηϯαʔωοτϫʔΫ • 今回はセンサーネットワークには無線プロトコルのひと つであるZigBeeを利利⽤用します。 15
「安心・安全・安定・信頼」できるインターネットサービスを ;JH#FFͱ • 近距離離無線通信プロトコル • 規格: IEEE 802.15.4
• 速度度: 250Kbps(2.4GHz帯の場合) • 短距離離低速だが低消費電⼒力力 16
「安心・安全・安定・信頼」できるインターネットサービスを ࢠػɾػɾதܧػ • ZigBeeでは最⼤大で65536機が同⼀一ネットワーク上に配置 可能 • グループ分け/ID⼿手段としては •
無線channel # • application ID • device ID 17
「安心・安全・安定・信頼」できるインターネットサービスを 58&-JUFΛͬͯΈΔ • モノワイヤレス株式会社製(東京コスモス電機株式会社か ら分離離) • Energy Harvest 環境での駆動を想定して設計
• ボタン電池駆動可能 • 技適OK • Analog I/O • digital I/O 18 http://mono-wireless.com/jp/products/TWE-001Lite.html ΑΓ
「安心・安全・安定・信頼」できるインターネットサービスを 58&-JUFγϦʔζ • TWE-‐‑‒Lite (SMD) • TWE-‐‑‒Lite DIP (DIP)
• アンテナバリエーションいろいろ • TWE-‐‑‒Lite 2525a (IoTタグ) • MonoStick (USB) 19 http://mono-wireless.com/jp/products/ ΑΓ ࠓճ͜ͷ2ͭΛ͍·͢
「安心・安全・安定・信頼」できるインターネットサービスを ࠓճͷߏ • センサー • TWE-‐‑‒Lite 2525a × n個
• 親機 • Mono Stick × 1個 • Raspberry Pi2に挿して使う 20
「安心・安全・安定・信頼」できるインターネットサービスを 58&-JUFB • All-‐‑‒in-‐‑‒One • TWE-‐‑‒Lite + 3軸加速度度センサ +
アンテナ + 電池ホルダ • 設定もOTA(Over the Air)通信で簡単 • ⾊色々な検知モード • 動き始め,静⽌止,⾃自由落落下 • シングルタップ,ダブルタップ • シェイク,ターン,スピン • ねこったー (参考⽂文献:ハルロック) 21
「安心・安全・安定・信頼」できるインターネットサービスを .POP4UJDL • TWE-‐‑‒Lite + USBシリアルドングル • PCからはFTDIのUSBシリアルに⾒見見える
• 親機として使うほか、TWE-‐‑‒Lite 2525aの設定時にOTA 送信機としても使う 22
「安心・安全・安定・信頼」できるインターネットサービスを ηϯαʔͷઃఆํ๏ • ファームを公式サイトから落落としてくる • TWE-‐‑‒Lite R(ライター) でセンサーファームを書き込む
• 〃 MonoStickにOTA⽤用ファームを書き込 む • シリアル経由でMoniStickにOTA⽤用の設定をする • OTA経由でセンサーへ設定をする 23
「安心・安全・安定・信頼」できるインターネットサービスを ϑΝʔϜͷμϯϩʔυ • 公式サイトからアプリをダウンロードする。 • https://mono-‐‑‒wireless.com/jp/products/TWE-‐‑‒ Lite-‐‑‒2525A/firmware_̲update.html •
ver 1.6.1 (2016/4/28 リリース) • Samp_̲Monitor_̲LITE2525A_̲1_̲6_̲1.zip • Samp_̲Monitor_̲EndDevice_̲Input_̲JN5164_̲CNFMS T_̲1_̲6_̲1.bin • Samp_̲Monitor_̲EndDevice_̲Input_̲JN5164_̲LITE25 25A_̲1_̲6_̲1.bin • Samp_̲Monitor_̲Parent_̲JN5164_̲1_̲6_̲1.bin 24
「安心・安全・安定・信頼」できるインターネットサービスを ϑΝʔϜΣΞ • Samp_̲Monitor_̲EndDevice_̲Input_̲JN5164_̲CNFMST _̲1_̲6_̲1.bin • 2525aへの設定書き込み⽤用のファーム •
Samp_̲Monitor_̲EndDevice_̲Input_̲JN5164_̲LITE252 5A_̲1_̲6_̲1.bin • 2525aのファーム • Samp_̲Monitor_̲Parent_̲JN5164_̲1_̲6_̲1.bin • 親機動作⽤用のファーム 25
「安心・安全・安定・信頼」できるインターネットサービスを ॻ͖ࠐΈػ • USBアダプター TWE-‐‑‒Lite R • https://mono-‐‑‒wireless.com/jp/products/TWE-‐‑‒Lite-‐‑‒ R/index.html
26 https://mono-wireless.com/jp/products/TWE-Lite-R/index.htmlΑΓ
「安心・安全・安定・信頼」できるインターネットサービスを ॻ͖ࠐΈιϑτ • Windows⽤用 TWE-‐‑‒Lite プログラマ • https://mono-‐‑‒wireless.com/jp/tech/misc/LiteProg/ index.html
27
「安心・安全・安定・信頼」できるインターネットサービスを 58&-JUF3ͰϑΝʔϜͷॻ͖ࠐΈ • 書き込み機をちょっと拡張 28 + = ϥΠλʔ Lܕϐϯϔομ
「安心・安全・安定・信頼」できるインターネットサービスを 58&-JUF3ͰϑΝʔϜͷॻ͖ࠐΈ • TWE-‐‑‒Lite2525aの場合 29
「安心・安全・安定・信頼」できるインターネットサービスを 58&-JUF3ͰϑΝʔϜͷॻ͖ࠐΈ • TWE-‐‑‒Lite プログラマで書き込む • Samp_̲Monitor_̲EndDevice_̲Input_̲JN5164_̲LIT E2525A_̲1_̲6_̲1.bin
30
「安心・安全・安定・信頼」できるインターネットサービスを .POP4UJDL05"༻ϑΝʔϜͷॻ͖ࠐΈ • MonoStickを直接WindowsPCに接続して書き込む • Samp_̲Monitor_̲EndDevice_̲Input_̲JN5164_̲CN FMST_̲1_̲6_̲1.bin 31
「安心・安全・安定・信頼」できるインターネットサービスを 05"ઃఆํ๏ • MonoStickにシリアル経由でOTA⽤用の設定を書き込む 32 ←ಈ͖࢝Ί,੩ࢭϞʔυ ←ಈ͖࢝ΊݕՃ
「安心・安全・安定・信頼」できるインターネットサービスを • 設定項⽬目については公式サイト参照のこと • https://mono-‐‑‒wireless.com/jp/products/TWE-‐‑‒ ZERO/Samp_̲monitor/interactive.html 33
「安心・安全・安定・信頼」できるインターネットサービスを 05"ઃఆํ๏ • 2525aにOTAで設定を書き込む • MonoStickのすぐ側で2525aに電池を差し込むと、無 線経由で設定が書き込まれる。
34
「安心・安全・安定・信頼」できるインターネットサービスを ػͷઃఆํ๏ • MonoStickに親機⽤用のファームを書き込む • Samp_̲Monitor_̲Parent_̲JN5164_̲1_̲6_̲1.bin 35
「安心・安全・安定・信頼」できるインターネットサービスを ଓࡁΈػͷγϦΞϧग़ྗྫ • 待機状態(Time Sequenceのみ表⽰示) 36
「安心・安全・安定・信頼」できるインターネットサービスを ଓࡁΈػͷγϦΞϧग़ྗྫ • センサーからの発報があると 37
「安心・安全・安定・信頼」できるインターネットサービスを • プロトコルについては公式サイト参照のこと • https://mono-‐‑‒wireless.com/jp/products/TWE-‐‑‒ Lite-‐‑‒2525A/manual_̲settings.html 38
「安心・安全・安定・信頼」できるインターネットサービスを ϑΥʔϚοτ 例例: ::rc=80000000:lq=132:ct=00E5:ed=8102161F:id=A :ba=2920:a1=0928:a2=0506:x=-‐‑‒038:y=0052:z=00 95 39
「安心・安全・安定・信頼」できるインターネットサービスを SVCZͰࢹ • Raspberry Pi2 に MonoStickを挿して親機とする • Rubyプログラムとしては以下の処理理を実施する
• Serial portを監視 • ⼊入ってきたデータ(⾏行行単位)をみて、センサーデータ だったらparseする • parseした内容に応じてTwitterにツイート 40
「安心・安全・安定・信頼」できるインターネットサービスを αϯϓϧϓϩάϥϜ 41 # coding: utf-8 require 'serialport' require 'twitter'
require 'optparse' class SensorAlert def initialize(serial_device, msg_q) @msg_q = msg_q @sensor_stats = {} @sp = SerialPort.new(serial_device, 115_200, 8, 1, 0) rescue => e puts e.to_s exit 1 end def line_parser(line) return nil if !line.match(/^::/) || line.match(/^::ts/) if line =~ /^::rc/ line.chomp.split(':').inject({}) { |a, e| a.merge! Hash[*e.split('=')] } end end
「安心・安全・安定・信頼」できるインターネットサービスを αϯϓϧϓϩάϥϜ 42 def read_serial @sp.gets end def main_loop loop
do next unless line_hash = line_parser(read_serial) @sensor_stats[line_hash['id']] ^= true @msg_q.push sprintf("センサーID:%sが%sになりました。\n(%s)", line_hash['id'], @sensor_stats[line_hash['id']] ? 'On' : 'Off', Time.now.to_s) end end end
「安心・安全・安定・信頼」できるインターネットサービスを αϯϓϧϓϩάϥϜ 43 class TwitterUpdate CONSUMER_KEY = 'XXXXXXXXXXXXXXXXX' CONSUMER_SECRET =
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' ACCESS_TOKEN_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' ACCESS_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' def initialize(queue) @queue = queue @client = Twitter::REST::Client.new do |config| config.consumer_key = CONSUMER_KEY config.consumer_secret = CONSUMER_SECRET config.access_token = ACCESS_TOKEN_KEY config.access_token_secret = ACCESS_SECRET end end def main_loop loop do @client.update(@queue.pop) end end end
「安心・安全・安定・信頼」できるインターネットサービスを αϯϓϧϓϩάϥϜ 44 # parsing options params = ARGV.getopts('d:') unless
params['d'] puts '-d required.' exit 1 end device_name = params['d'] unless FileTest.chardev?(device_name) puts "Error device file #{device_name}" exit 1 end q = Queue.new Thread.new do twitter = TwitterUpdate.new(q) twitter.main_loop end sa = SensorAlert.new(device_name, q) sa.main_loop
「安心・安全・安定・信頼」できるインターネットサービスを σϞ ※ドアにくっつけて使っている気分になってください。 @twelite2525a のツイートを確認します。 45
「安心・安全・安定・信頼」できるインターネットサービスを ·ͱΊ • IoTタグを使うと、⼿手軽にIoTプログラミングを楽しめ る。 • Rubyのserialport gemが便便利利。 46
「安心・安全・安定・信頼」できるインターネットサービスを %JTDMBJNFSPG8BSSBOUZ • 本システムはあくまで実験⽬目的です。 • 本システムを⽤用いたことで利利⽤用者が何らかの損害を被っ てもなんら保証がないことをご理理解ください。 •
デバイスがあるだけでは安全ではありません。 • ホームセキュリティ会社が売っているのは「デバイス」 ではなくて「運⽤用」なんです。 • 発報したら誰かが駆けつけるというところがサービス のキモ。 47
「安心・安全・安定・信頼」できるインターネットサービスを ࢀߟจݙ • 加速度度センサー内蔵無線タグ TWE-‐‑‒Lite-‐‑‒2525A • https://mono-‐‑‒wireless.com/jp/products/TWE-‐‑‒ Lite-‐‑‒2525A/
• 加速度度センサTWE-‐‑‒Lite-‐‑‒2525AのOTA(無線)による設 定変更更⼿手順 • http://hanzomemo.blogspot.jp/2015/08/twe-‐‑‒ lite-‐‑‒2525aota.html • TWE-‐‑‒Lite-‐‑‒2525A.2を動かすまでの⼿手順。 • http://www.lopple.jp/?p=864 48
「安心・安全・安定・信頼」できるインターネットサービスを • Thank You! • If you have any
comments, • please send to: • Mail:
[email protected]
/
[email protected]
• Twitter: @Yukimitsu_̲Izawa 49