Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Nervesが開拓する「ElixirでIoT」の新世界

1,531 views

Published on

Erlang & Elixir Fest 2019で講演しました!
関数型言語ElixirによるIoT開発フレームワーク“Nerves”について,ライブデモをふんだんに交えながら日本の皆さまに共有させていただきました.
https://elixir-fest.jp/

最後にbig news!!があるので,ぜひご覧ください!
https://swest.toppers.jp/keynote/

誤記 P.27:
fukuoka.exでのNerves Trainingは6/7ではなく7/7に開催しますm(_ _)m

講演概要:
Nervesってご存知でしょうか?
"Craft and deploy bulletproof embedded software in Elixir"のスローガンのもと,ElixirでIoTデバイスの開発を実現できるフレームワークです.Raspberry PiやBeagleBoneなどを対象として,数十MB程度の省メモリでElixirアプリの駆動を可能とします.mixツールに統合されたビルドシステム,GPIOやI2CなどIoTデバイス制御のための豊富なデバイスドライバ・ライブラリ,NervesHubを介したクラウド経由のセキュアなファームアップデート,Phoenixと連携したリアルタイム通信とデータ可視化と,そのエコシステムの完成度は目を見張るものがあります.本発表では,IoTシステム開発のライブデモを交えながら,Nervesの概要ならびに現状と目指しているところを紹介します.

発表者はLonestar ElixirConf 2019に参加してきました.Nervesのコア開発者からTrainingを直接受講してきて,多くのNerves技術者の発表を聴講して議論してきて,その動向に大いに衝撃を受けました.Austinで得てきたこれらの知見と経験について,日本の全てのElixir技術者の皆さまとこの技術を共有したいと思います.

Published in: Software
  • Be the first to comment

Nervesが開拓する「ElixirでIoT」の新世界

  1. 1. Nervesが開拓する 『ElixirでIoT』 の新世界 ⾼瀬 英希 (京都⼤学/JSTさきがけ) takase@i.kyoto-u.ac.jp
  2. 2. SlideShare仕様に 対応するための無駄ページです P.4以降の下線と枠付き画像には ハイパーリングが付いています
  3. 3. SlideShare仕様に 対応するための無駄ページです P.4以降の下線と枠付き画像には ハイパーリングが付いています
  4. 4. @takasehideki ­ 京都⼤学 情報学研究科 助教 ­ JSTさきがけ 兼任研究者 ­ IPSJ-SIGEMB 運営幹事 ­ IEICE-RECONF 専⾨委員 ­ 組込みシステム技術に関するサマーワークショップ (SWEST) プログラム委員⻑・ステアリング委員 ­ 情報処理学会組込みシステム研究会 運営幹事 ­ TOPPERSプロジェクト 特別会員・運営委員 ­ ROS Japan UG ü 関⻄勉強会 主催 ü ROSConJP 2019 実⾏委員 ­ IoTあるじゃん(ALGYAN) 運営委員 ­ fukuoka.ex キャスト ⾃⼰紹介
  5. 5. 5 今⽇やりたいコト “Nerves” を皆さんに知ってもらいたい︕ たっぷりデモをお⾒せします︕ 世界で起きているコトを共有したい︕ Nevers Friendsになりませんか︕︖︖
  6. 6. 皆さん Nerves って 知ってますか︖
  7. 7. IoTとは︖︖ 7 デバイス エッジサーバ クラウド あらゆるモノ・コト・ヒトを ネットワーク化︕ 情報科学の総合格闘技︕ 新たな社会的価値を創出!!
  8. 8. IoTとは︖︖ 8 デバイス エッジサーバ クラウド 皆さんは こっちサイド︖︖ 今回は こちらのお話し
  9. 9. 世界の「ElixirでIoT」 • HWもSWもErlangセットで提供!! ü300MHz Cortex-M7 & 64MB Flash üOn-board WLAN & Pmodコネクタ • V2のKickstarter Project達成︕︕ • ラズパイ等が主な対象 • メモリサイズ数10MB︕ • Elixir ecosystem連携︕ • ESP32/STM32で Elixir/Elarngが動く!! • ファームは約700KB!! • 機能実装はまだ限定的 9
  10. 10. Nerves!! 10 https://nerves-project.org
  11. 11. 11 Platform •ブートローダ+rootfs+ Erlang OTP+Elixirアプリ ­⼀括でビルドして SDカード等に書込み
  12. 12. 12 Framework •IoTデバイス開発に⽋かせない 強⼒なライブラリ ­Elixir Circuits: GPIO, I2C, SPI, UART ­IoTモジュール向けライブラリも •通常のElixirライブラリも利⽤可 ­ScenicやPhoenixとも連携︕
  13. 13. 13 Tooling •mixによるプロジェクト管理 ­いつものElixirアプリ開発と⼀緒︕ ­クロスコンパイルは裏でよしなに •IExでのインタプリタ実⾏も可能 ­VirtualEther越しのssh接続 ­/dev/tty* 越しのserial接続 •ファーム・アプリの書き込み ­SDカードに書き込み ­VirtualEther越しの更新 ­NervesHub : Device to the Cloud!!
  14. 14. 14 NervesHub •サーバ経由のOTA (Over The Air) で Nervesアプリをリモートデプロイ︕ ­X.509署名証明書とNervesKey回路で セキュアな接続経路を実現 ­更新先とファームを任意指定可
  15. 15. x86_64 15 対応する主なIoTデバイス https://www.youtube.com/ watch?v=DvwgGz_5D5I ラズパイ BeagleBone Custom Boards
  16. 16. 16 Developers Community https://github.com/orgs/nerves-project/people Lonestar 2019のKeynote!! #nerves on elixir-lang.slack
  17. 17. 論よりRun!! Quick LiveDemo!!!
  18. 18. 18 ライブデモのお品書き 1. Nervesプロジェクトの準備とビルド 2. microSDに書き込んでブート・IEx実⾏ 3. ソース編集してlocal ssh書き込み 4. NervesHubから書き込み 5. Scenic連携&GPIOデバイスの制御 Raspberry Pi Zero WH Adafruit 128x64 OLED Bonnet https://github.com/takasehideki/eefest19demo NervesKey
  19. 19. 19 QuickStart (on macOS) • ツール・ライブラリのインストール $ brew update $ brew install fwup squashfs coreutils ¥ wxmac glfw3 glew pkg-config • ホスト開発環境の設定 $ asdf install erlang 21.2.2 $ asdf install elixir 1.8.1-otp-21 $ asdf global erlang 21.2.2 $ asdf global elixir 1.8.1-otp-21 $ mix local.hex $ mix local.rebar $ mix archive.install hex nerves_bootstrap • プロジェクトの作成 $ mix nerves.new hello_nerves --init-gadget $ cd hello_nerves • プロジェクトのビルド $ export MIX_TARGET=rpi0 $ mix deps.get $ mix firmware • SDカードへのファーム書き込み $ mix firmware.burn • VirtualEther越しのファーム更新 $ mix firmware.gen.script $ ./upload.sh • VirtualEther越しのssh接続 $ ssh nerves.local
  20. 20. なんかすごそう︕︖ でも,なにがつくれるの︖︖︖
  21. 21. 21 Omni Eye •Developer : Greg Mefford ­Elixirでラズパイカメラ︕ ­with customized F/W of Nerves! ­with Zbar for QR code!! ­with GraphQL for resize & effect!! ­with Phoenix for RT browsing!! Presentation on CODE BEAM STO 2018 Omni Eye on GitHub Training Materials on Lonestar 2019
  22. 22. 22 drizzle •Developer: Todd Resudek ­smart sprinkler controller with Nerves https://www.youtube.com/watch?v=qklciKp7sD8
  23. 23. 23 Phoenix LiveViewとの 連携でセンサデータを リアルタイム表⽰︕︕
  24. 24. 『ElixirでIoT』の新世界︕ 24 デバイス エッジサーバ クラウド あらゆるモノ・コト・ヒトを ネットワーク化︕ 情報科学の総合格闘技︕ 新たな社会的価値を創出!!
  25. 25. 『ElixirでIoT』の新世界︕ 25 デバイス エッジサーバ クラウド あらゆるモノ・コト・ヒトを ネットワーク化︕ 情報科学の総合格闘技︕ 新たな社会的価値を創出!! みんなで⼀緒に IoTを創ろう︕
  26. 26. おーすっげぇやん︕︕ 今すぐにでもやってみたい︕︕
  27. 27. 27 Nerves Training in Japan! ⽇本にNerves Technologyを広めるべく, Training資料と機材を譲り受けました︕ • 内容︓ ­ Interacting with hardware using Elixir Circuits ­ Developing with Nerves ­ Deploy using NervesHub ­ Render a UI with Scenic ­ Connecting to Phoenix • スケジュール︓ ­ kochi.ex @ 5/28-29 ­ kyoto.ex? @ 6/16 ­ fukuoka.ex @ 6/6 ­ SWEST21 @ 9/5-6 ご要望に応じて どこででもやります︕
  28. 28. 28 Take Home Message •ElixirConf USに⾏こう︕ ­ちょっとの英語⼒と, ⼤いなる勇気を気概を携えて︕ ­from Local to the World!! •Nerves Friendsに会おう︕ ­ 2 Trainings about Nerves! üDevice to the Cloud with Nerves and NervesHub üBuild a Smart Camera with Nerves, Phoenix, and Absinthe ­ 4 Talks about Nerves!! https://vimeo.com/326816263 https://elixirconf.com/2019
  29. 29. Big Thanks to Nerves Friends!! See You Next Time, or GitHub!!! 29
  30. 30. あんど,,, わんもあしんぐ︕︕
  31. 31. 31 Justin will come to Japan on this summer!!
  32. 32. 32 • SWEST: 組込みシステム技術に 関するサマーワークショップ • 1泊2⽇の合宿形式 ­岐⾩県下呂温泉 ⽔明館 ­2019年9⽉5⽇(⽊)〜6⽇(⾦) • ⽬的︓組込み技術の徹底議論と交流 SWEST21 |> 論︕ |> ラン︕︕ |> push!!!

×