Successfully reported this slideshow.
Your SlideShare is downloading. ×

IoTタグで遊んでみよう

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 49 Ad
Advertisement

More Related Content

Slideshows for you (20)

Advertisement

Similar to IoTタグで遊んでみよう (13)

Advertisement

IoTタグで遊んでみよう

  1. 1. 「安心・安全・安定・信頼」できるインターネットサービスを 株式会社クルウィット 井澤 志充 IoTタグで遊んでみよう 2016/06/15 (Sat) Kanazawa.rb #46 @ITBP武蔵
  2. 2. 「安心・安全・安定・信頼」できるインターネットサービスを じこしょうかい • (株)クルウィットの取締役  兼  北北陸陸⽀支社⻑⾧長   • 博⼠士(情報科学)   • ネットワーク関連の委託研究・⾃自社サービス開発など 2 • 井澤  志充  (いざわゆきみつ) @Yukimitsu_Izawa
  3. 3. 「安心・安全・安定・信頼」できるインターネットサービスを IoTとは モノのインターネット(Internet  of  Things、IoT)は、 様々な「物」がインターネットに接続され、情報交換する ことにより相互に制御する仕組みである。   それによる社会の実現も指す。「物のインターネット」と も呼ぶ。   Wikipediaより 3
  4. 4. 「安心・安全・安定・信頼」できるインターネットサービスを モノ? • モノ  =  IoTデバイス   • パソコン,  スマホ,  タブレット,  raspberry  pi,..   • 家電(  TV,  デジタルオーディオプレイヤー,  HDDプレ イヤー,..)   • 家の付帯設備  (鍵,  インターフォン,  電球,..)   • 電⼦子⼯工作(  arduino,  BLEデバイス,..) 4
  5. 5. 「安心・安全・安定・信頼」できるインターネットサービスを IoTデバイスのI/O • 状態取得(Observe)   • 環境情報:  温度度湿度度、気圧、照度度、   • モーション情報:  振動、傾斜、移動、   • 位置情報:  存在位置、近接、通過、   • スイッチ状態:  ⽞玄関の施錠状態、ドアの開け閉め、   • 状態変更更(Control)   • 家電のOn/Off   • 照明制御   • シャッター駆動   • 施錠/解錠 5
  6. 6. 「安心・安全・安定・信頼」できるインターネットサービスを 一昔前のコンピューティングというと • PCでWord,  Excelでファイルを作成・編集   • PCの中に閉じた世界   • FAのような制御   • 現実世界にあるゴツいものを操作・制御 6 物理的な視点でみると両極端な世界
  7. 7. 「安心・安全・安定・信頼」できるインターネットサービスを むかしむかし • 能登半島の某川に設置された⽔水⾨門の制御をしたことがあ りました。   • ⽔水⾨門扉の開度度,  ⾨門の外側と内側の⽔水位や塩分濃度度を取 得。   • i-‐‑‒mode(!)端末から確認できるようにするシステムでし た。   • ちょっと書き込むとマジで⾨門扉が開閉する。   • ヘタに開閉すると川周辺流流域の⽥田畑に塩害が発⽣生 7
  8. 8. 「安心・安全・安定・信頼」できるインターネットサービスを こんなやつ 8
  9. 9. 「安心・安全・安定・信頼」できるインターネットサービスを 9 「生まれて初めてのIoTプログラミングは水門でした!」 普通はそんなもので遊べない。 つまり……
  10. 10. 「安心・安全・安定・信頼」できるインターネットサービスを 多様多種なIoTデバイスの台頭によって ぼくらが「プログラミング」という⼿手段で介⼊入 できる世界が拡張された。 10
  11. 11. 「安心・安全・安定・信頼」できるインターネットサービスを なんかたのしそうじゃね!? 11
  12. 12. 「安心・安全・安定・信頼」できるインターネットサービスを 今日のコンセプト • 電⼦子⼯工作の世間⼀一般のイメージは…   • 回路路図読めない   • ハンダ付けむずかしそう   • 抵抗読めない   • 燃えそう   • 爆発しないの? 12 →今⽇日は「半⽥田付けしないIoT遊び」を⽬目指します
  13. 13. 「安心・安全・安定・信頼」できるインターネットサービスを 今日の課題 • 侵⼊入検知システムを作ってみよう 13
  14. 14. 「安心・安全・安定・信頼」できるインターネットサービスを 完成予想図 14 振動検知 通 知 Twitterに投稿
  15. 15. 「安心・安全・安定・信頼」できるインターネットサービスを センサーネットワーク • 今回はセンサーネットワークには無線プロトコルのひと つであるZigBeeを利利⽤用します。 15
  16. 16. 「安心・安全・安定・信頼」できるインターネットサービスを ZigBeeとは • 近距離離無線通信プロトコル   • 規格:  IEEE  802.15.4   • 速度度:  250Kbps(2.4GHz帯の場合)   • 短距離離低速だが低消費電⼒力力 16
  17. 17. 「安心・安全・安定・信頼」できるインターネットサービスを 子機・親機・中継機 • ZigBeeでは最⼤大で65536機が同⼀一ネットワーク上に配置 可能   • グループ分け/ID⼿手段としては   • 無線channel  #   • application  ID   • device  ID 17
  18. 18. 「安心・安全・安定・信頼」できるインターネットサービスを TWE-Liteを使ってみる • モノワイヤレス株式会社製(東京コスモス電機株式会社か ら分離離)   • Energy  Harvest  環境での駆動を想定して設計   • ボタン電池駆動可能   • 技適OK   • Analog  I/O   • digital  I/O 18 http://mono-wireless.com/jp/products/TWE-001Lite.html より
  19. 19. 「安心・安全・安定・信頼」できるインターネットサービスを TWE-Lite製品シリーズ • TWE-‐‑‒Lite  (SMD)   • TWE-‐‑‒Lite  DIP  (DIP)   • アンテナバリエーションいろいろ   • TWE-‐‑‒Lite  2525a  (IoTタグ)   • MonoStick  (USB) 19 http://mono-wireless.com/jp/products/ より 今回はこの2つを使います
  20. 20. 「安心・安全・安定・信頼」できるインターネットサービスを 今回の構成 • センサー   • TWE-‐‑‒Lite  2525a  ×  n個   • 親機   • Mono  Stick  ×  1個   • Raspberry  Pi2に挿して使う 20
  21. 21. 「安心・安全・安定・信頼」できるインターネットサービスを TWE-Lite2525a • All-‐‑‒in-‐‑‒One   • TWE-‐‑‒Lite  +  3軸加速度度センサ  +  アンテナ  +  電池ホルダ   • 設定もOTA(Over  the  Air)通信で簡単   • ⾊色々な検知モード   • 動き始め,静⽌止,⾃自由落落下   • シングルタップ,ダブルタップ   • シェイク,ターン,スピン   • ねこったー  (参考⽂文献:ハルロック) 21
  22. 22. 「安心・安全・安定・信頼」できるインターネットサービスを MonoStick • TWE-‐‑‒Lite  +  USBシリアルドングル   • PCからはFTDIのUSBシリアルに⾒見見える   • 親機として使うほか、TWE-‐‑‒Lite  2525aの設定時にOTA 送信機としても使う 22
  23. 23. 「安心・安全・安定・信頼」できるインターネットサービスを センサーの設定方法 • ファームを公式サイトから落落としてくる   • TWE-‐‑‒Lite  R(ライター)  でセンサーファームを書き込む   •                              〃            MonoStickにOTA⽤用ファームを書き込 む   • シリアル経由でMoniStickにOTA⽤用の設定をする   • OTA経由でセンサーへ設定をする 23
  24. 24. 「安心・安全・安定・信頼」できるインターネットサービスを ファームのダウンロード • 公式サイトからアプリをダウンロードする。   • 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
  25. 25. 「安心・安全・安定・信頼」できるインターネットサービスを ファームウェア • 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
  26. 26. 「安心・安全・安定・信頼」できるインターネットサービスを 書き込み機 • 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より
  27. 27. 「安心・安全・安定・信頼」できるインターネットサービスを 書き込みソフト • Windows⽤用  TWE-‐‑‒Lite  プログラマ   • https://mono-‐‑‒wireless.com/jp/tech/misc/LiteProg/ index.html 27
  28. 28. 「安心・安全・安定・信頼」できるインターネットサービスを TWE-Lite Rでファームの書き込み • 書き込み機をちょっと拡張 28 + = ライター L型ピンヘッダ
  29. 29. 「安心・安全・安定・信頼」できるインターネットサービスを TWE-Lite Rでファームの書き込み • TWE-‐‑‒Lite2525aの場合 29
  30. 30. 「安心・安全・安定・信頼」できるインターネットサービスを TWE-Lite Rでファームの書き込み • TWE-‐‑‒Lite  プログラマで書き込む   • Samp_̲Monitor_̲EndDevice_̲Input_̲JN5164_̲LIT E2525A_̲1_̲6_̲1.bin   30
  31. 31. 「安心・安全・安定・信頼」できるインターネットサービスを MonoStickへOTA用ファームの書き込み • MonoStickを直接WindowsPCに接続して書き込む   • Samp_̲Monitor_̲EndDevice_̲Input_̲JN5164_̲CN FMST_̲1_̲6_̲1.bin 31
  32. 32. 「安心・安全・安定・信頼」できるインターネットサービスを OTA設定方法(1) • MonoStickにシリアル経由でOTA⽤用の設定を書き込む 32 ←動き始め,静止モード ←動き始め検知加速度
  33. 33. 「安心・安全・安定・信頼」できるインターネットサービスを • 設定項⽬目については公式サイト参照のこと   • https://mono-‐‑‒wireless.com/jp/products/TWE-‐‑‒ ZERO/Samp_̲monitor/interactive.html 33
  34. 34. 「安心・安全・安定・信頼」できるインターネットサービスを OTA設定方法(2) • 2525aにOTAで設定を書き込む   • MonoStickのすぐ側で2525aに電池を差し込むと、無 線経由で設定が書き込まれる。 34
  35. 35. 「安心・安全・安定・信頼」できるインターネットサービスを 親機の設定方法 • MonoStickに親機⽤用のファームを書き込む   • Samp_̲Monitor_̲Parent_̲JN5164_̲1_̲6_̲1.bin 35
  36. 36. 「安心・安全・安定・信頼」できるインターネットサービスを 接続済み親機のシリアル出力例 • 待機状態(Time  Sequenceのみ表⽰示) 36
  37. 37. 「安心・安全・安定・信頼」できるインターネットサービスを 接続済み親機のシリアル出力例 • センサーからの発報があると 37
  38. 38. 「安心・安全・安定・信頼」できるインターネットサービスを • プロトコルについては公式サイト参照のこと   • https://mono-‐‑‒wireless.com/jp/products/TWE-‐‑‒ Lite-‐‑‒2525A/manual_̲settings.html 38
  39. 39. 「安心・安全・安定・信頼」できるインターネットサービスを フォーマット 例例:   ::rc=80000000:lq=132:ct=00E5:ed=8102161F:id=A :ba=2920:a1=0928:a2=0506:x=-‐‑‒038:y=0052:z=00 95 39
  40. 40. 「安心・安全・安定・信頼」できるインターネットサービスを rubyで監視 • Raspberry  Pi2  に  MonoStickを挿して親機とする   • Rubyプログラムとしては以下の処理理を実施する   • Serial  portを監視   • ⼊入ってきたデータ(⾏行行単位)をみて、センサーデータ だったらparseする   • parseした内容に応じてTwitterにツイート 40
  41. 41. 「安心・安全・安定・信頼」できるインターネットサービスを サンプルプログラム 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. 42. 「安心・安全・安定・信頼」できるインターネットサービスを サンプルプログラム 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. 43. 「安心・安全・安定・信頼」できるインターネットサービスを サンプルプログラム 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. 44. 「安心・安全・安定・信頼」できるインターネットサービスを サンプルプログラム 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
  45. 45. 「安心・安全・安定・信頼」できるインターネットサービスを デモ ※ドアにくっつけて使っている気分になってください。   @twelite2525a  のツイートを確認します。 45
  46. 46. 「安心・安全・安定・信頼」できるインターネットサービスを まとめ • IoTタグを使うと、⼿手軽にIoTプログラミングを楽しめ る。   • Rubyのserialport  gemが便便利利。 46
  47. 47. 「安心・安全・安定・信頼」できるインターネットサービスを Disclaimer of Warranty • 本システムはあくまで実験⽬目的です。   • 本システムを⽤用いたことで利利⽤用者が何らかの損害を被っ てもなんら保証がないことをご理理解ください。   • デバイスがあるだけでは安全ではありません。   • ホームセキュリティ会社が売っているのは「デバイス」 ではなくて「運⽤用」なんです。   • 発報したら誰かが駆けつけるというところがサービス のキモ。 47
  48. 48. 「安心・安全・安定・信頼」できるインターネットサービスを 参考文献 • 加速度度センサー内蔵無線タグ  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
  49. 49. 「安心・安全・安定・信頼」できるインターネットサービスを • Thank  You!   • If  you  have  any  comments,   • please  send  to:   • Mail:  izawa@izawa.org  /  izawa@clwit.co.jp   • Twitter:  @Yukimitsu_̲Izawa 49

×