SlideShare a Scribd company logo
RICC PIoT Workshop
ハンズオン
Nerves は自由な IoT への扉
2021.03.05 菊池豊 @kikuyuta 1
謝辞
• https://algyan.connpass.com
• https://seeed.connpass.com
• https://www.seeedstudio.com
• https://nerves-jp.connpass.com
• https://kochi-ex.connpass.com
2021.03.05 菊池豊 @kikuyuta 2
Creative Commons
kikuyuta とは
2021.03.05 菊池豊 @kikuyuta 3
@kikuyuta
Nerves とは
• IoT プラットフォーム
• Buildroot 上に構築
– 組込み Linux 構成ツール
• Elixir 言語を使用
– Erlang VM でいごく
2021.03.05 菊池豊 @kikuyuta 4
https://www.nerves-project.org
Nerves JP とは
Elixir で IoT を
2019.09 爆誕
オンライン コミュニティ
2021.03.05 菊池豊 @kikuyuta 5
Nerves JP の活動
2021.03.05 菊池豊 @kikuyuta 6
https://nerves-jp.connpass.com
https://qiita.com/advent-calendar/2020/nervesjp
今 熱い言語・プラットフォーム
2021.03.05 菊池豊 @kikuyuta 7
https://qiita.com/advent-calendar/2020
/ranking/subscriptions
/categories/programming_languages
https://qiita.com/advent-calendar/2020
/ranking/feedbacks/categories/iot
各地の Elixir/Nerves 関連活動
https://nerves-jp.connpass.com/
2021.03.05 菊池豊 @kikuyuta 8
Sapporo.beam
Nerves の構造
2021.03.05
菊池豊 @kikuyuta 9
Platform Framework Tooling
Nerves の応用例
2021.03.05 菊池豊 @kikuyuta 10
Le Tote:
⾐料品倉庫のRFIDと
キオスクによる在庫管理
Hop:
顔認証機能付きの
キオスクビールサーバ
FarmBot:
スマートファームの実現
ヒト用とモノ用
また一つになりて蘇らん
2021.03.05 菊池豊 @kikuyuta 11
https://ja.wikipedia.org/wiki/TK-80
ヒト用
モノ用
The Elixir logo are copyright (c)
2012 Plataformatec.
IoT に現代的な科学技術を
• 処理のモジュール化
– 関数とパイプ
• デバイス制御の抽象化
– プロセスとメッセージ
• 例外処理からの解放
– プロセスツリーとスーパバイザ
• 直観的なビット処理
– bitstring 型とパターンマッチ
• いごいてるコードの更新
– Dynamic loading と Hot code swapping
2021.03.05 菊池豊 @kikuyuta 12
なぜ IoT に Nerves なのか
• なにかと * over IP なのでいろいろ面倒くさくない
– RS232C/UART 経由でコンソール出さなくて良い
– 毎回 SDカードを差し替えて焼かなくて良い
– たくさんデバイスがあっても個別に相手しなくて良い
– 特定の開発環境に自分を合わせなくて良い
• 徒弟制度・家庭内手工業からの IoT の解放
– 要するに Nerves は「自由だ!」「ロックだ!」
2021.03.05 菊池豊 @kikuyuta 13
Nerves がいごくデバイス
2021.03.05 菊池豊 @kikuyuta 14
x86_64
Raspberry Pi
BeagleBone
Custom Boards
STM32MP1xx
(Lichee Nano)
そのほかの Elixir IoT
• GRiSP2
– RTOS 上の Erlang VM
– 2019春に雲出資成功
• いまだ出荷されず…
• AtomVM
– ESP32/STM32 でいごく
• まだ不安定そう…
2021.03.05 菊池豊 @kikuyuta 15
ハンズオンの悩み
• 短い時間でどれぐらい面白さを分かってもらえるか
– 強烈な取捨選択を迫られる
• バラバラの進度をどのように取り扱うか
– 速い人は退屈、遅い人は落ちこぼれ、かつ σ が大きそう
– 最初の環境構築でしくじると完全に離脱するリスク
• どれぐらい多くの環境をカバーするか
– 主催者で用意すると均一になるけど費用がかかる
– 参加者が持ち帰って遊べないと意味がない
2021.03.05 菊池豊 @kikuyuta 16
本日のハンズオンのコンセプト
• Elixir/Nerves 的な面白さを伝えます
– IoT 用 Nerves と Web 用 Phoenix とを同時にやる
– 本質的な最低限の動作までやってもらう
• 環境構築をできるだけ簡略化する
– 最初のSDカードを主催者で準備、開発環境を各自準備
• 自分の環境設定をしてこなかった参加者は見捨てる
• オンサイトで手練が多そうだから比較的ラクでは
– 目指せ全員ゴール
2021.03.05 菊池豊 @kikuyuta 17
本日のハンズオンの概要
• 2021.03.05(fri) 14:15〜17:15
– 口上、基本編、応用編準備、休憩、応用編
• 必要なパーツ類を全部供与・貸与します
– RosCon 袋とステッカーは差し上げます
• それ以外は終わったら返して下さい!
• スタッフは kochi.ex メンバーです
– ElixirConf US T-shirt を着てます
– 西内さん、大崎さん
• 株式会社シティネットより
2021.03.05 菊池豊 @kikuyuta 18
本日のハンズオンの内容
• 基本編
– 環境構築、GPIOでのボタンとLEDでボタチカ
• 応用編準備
– 時間がかかるので休憩の前に仕掛ける
• きゅ〜け〜
• 応用編
– I2Cでの温度計測と Web 連携
• 温湿度センサの準備が間に合わなかったので温度のみセンサで
• お片付け
– 全部が元の箱に戻るまでがハンズオンです
2021.03.05 菊池豊 @kikuyuta 19
さあはじめましょう
We believe in rough consensus
and blinking LEDs
論よりLチカ
2021.03.05 菊池豊 @kikuyuta 20

More Related Content

Similar to RICC PIoT Workshop ハンズオン

スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
Keigo Suda
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
Hideki Takase
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
 
20200422_Blockchaingig_Intro
20200422_Blockchaingig_Intro20200422_Blockchaingig_Intro
20200422_Blockchaingig_Intro
オラクルエンジニア通信
 
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
典子 松本
 
テキスト書き起こし&読み上げLINEボットを作ってみた
テキスト書き起こし&読み上げLINEボットを作ってみたテキスト書き起こし&読み上げLINEボットを作ってみた
テキスト書き起こし&読み上げLINEボットを作ってみた
典子 松本
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
Masaki Yamamoto
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
 
M5Stackで始めるIoT入門
M5Stackで始めるIoT入門M5Stackで始めるIoT入門
M5Stackで始めるIoT入門
Akira Hatsune
 
IBM Blockchain Solutionを支えるIBM Blockchain Platform | 日本アイ・ビー・エム株式会社 栗村 彰吾
IBM Blockchain Solutionを支えるIBM Blockchain Platform | 日本アイ・ビー・エム株式会社 栗村 彰吾IBM Blockchain Solutionを支えるIBM Blockchain Platform | 日本アイ・ビー・エム株式会社 栗村 彰吾
IBM Blockchain Solutionを支えるIBM Blockchain Platform | 日本アイ・ビー・エム株式会社 栗村 彰吾
blockchainexe
 
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩みKeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
Hitachi, Ltd. OSS Solution Center.
 
Azure IoTのアップデート情報
Azure IoTのアップデート情報Azure IoTのアップデート情報
Azure IoTのアップデート情報
佳孝 中田
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
健一 辰濱
 
Kinect v2を通してMicrosoft技術を考える
Kinect v2を通してMicrosoft技術を考えるKinect v2を通してMicrosoft技術を考える
Kinect v2を通してMicrosoft技術を考える
Yuki Igarashi
 
IoTLT-Vol93-Wiki-IoT-20221117.pptx
IoTLT-Vol93-Wiki-IoT-20221117.pptxIoTLT-Vol93-Wiki-IoT-20221117.pptx
IoTLT-Vol93-Wiki-IoT-20221117.pptx
Takashi Yamanoue
 
Developing inside a Container
Developing inside a ContainerDeveloping inside a Container
Developing inside a Container
arukoh
 
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
Shingo Kawahara
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
Yuji Oshima
 
可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム
TIS Inc.
 
20190628 kis open_seminar_decode
20190628 kis open_seminar_decode20190628 kis open_seminar_decode
20190628 kis open_seminar_decode
Syota Yano
 

Similar to RICC PIoT Workshop ハンズオン (20)

スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
 
20200422_Blockchaingig_Intro
20200422_Blockchaingig_Intro20200422_Blockchaingig_Intro
20200422_Blockchaingig_Intro
 
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
 
テキスト書き起こし&読み上げLINEボットを作ってみた
テキスト書き起こし&読み上げLINEボットを作ってみたテキスト書き起こし&読み上げLINEボットを作ってみた
テキスト書き起こし&読み上げLINEボットを作ってみた
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
M5Stackで始めるIoT入門
M5Stackで始めるIoT入門M5Stackで始めるIoT入門
M5Stackで始めるIoT入門
 
IBM Blockchain Solutionを支えるIBM Blockchain Platform | 日本アイ・ビー・エム株式会社 栗村 彰吾
IBM Blockchain Solutionを支えるIBM Blockchain Platform | 日本アイ・ビー・エム株式会社 栗村 彰吾IBM Blockchain Solutionを支えるIBM Blockchain Platform | 日本アイ・ビー・エム株式会社 栗村 彰吾
IBM Blockchain Solutionを支えるIBM Blockchain Platform | 日本アイ・ビー・エム株式会社 栗村 彰吾
 
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩みKeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
 
Azure IoTのアップデート情報
Azure IoTのアップデート情報Azure IoTのアップデート情報
Azure IoTのアップデート情報
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
 
Kinect v2を通してMicrosoft技術を考える
Kinect v2を通してMicrosoft技術を考えるKinect v2を通してMicrosoft技術を考える
Kinect v2を通してMicrosoft技術を考える
 
IoTLT-Vol93-Wiki-IoT-20221117.pptx
IoTLT-Vol93-Wiki-IoT-20221117.pptxIoTLT-Vol93-Wiki-IoT-20221117.pptx
IoTLT-Vol93-Wiki-IoT-20221117.pptx
 
Developing inside a Container
Developing inside a ContainerDeveloping inside a Container
Developing inside a Container
 
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
July Tech Festa 2020 AKSを活用した内製教育支援プラットフォームをリリースした話
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
 
可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム可用性を突き詰めたリアクティブシステム
可用性を突き詰めたリアクティブシステム
 
20190628 kis open_seminar_decode
20190628 kis open_seminar_decode20190628 kis open_seminar_decode
20190628 kis open_seminar_decode
 

More from Yutaka Kikuchi

大学研究室レベルでLocal 5Gを導入するための手法の考察
大学研究室レベルでLocal 5Gを導入するための手法の考察大学研究室レベルでLocal 5Gを導入するための手法の考察
大学研究室レベルでLocal 5Gを導入するための手法の考察
Yutaka Kikuchi
 
Local 5G の設備ってどんなん
Local 5G の設備ってどんなんLocal 5G の設備ってどんなん
Local 5G の設備ってどんなん
Yutaka Kikuchi
 
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
Yutaka Kikuchi
 
小水力発電所制御の中身見せます
小水力発電所制御の中身見せます小水力発電所制御の中身見せます
小水力発電所制御の中身見せます
Yutaka Kikuchi
 
産業用途に利用するのにElixirが向いているぞ
産業用途に利用するのにElixirが向いているぞ産業用途に利用するのにElixirが向いているぞ
産業用途に利用するのにElixirが向いているぞ
Yutaka Kikuchi
 
びよんどプロジェクト
びよんどプロジェクトびよんどプロジェクト
びよんどプロジェクト
Yutaka Kikuchi
 
Should I talk about Logger or Process Registries?
Should I talk about Logger or Process Registries?Should I talk about Logger or Process Registries?
Should I talk about Logger or Process Registries?
Yutaka Kikuchi
 
ルーティング最新動向 〜4バイトAS〜
ルーティング最新動向 〜4バイトAS〜ルーティング最新動向 〜4バイトAS〜
ルーティング最新動向 〜4バイトAS〜
Yutaka Kikuchi
 
IoT小箱で小水力発電所を制御する
IoT小箱で小水力発電所を制御するIoT小箱で小水力発電所を制御する
IoT小箱で小水力発電所を制御する
Yutaka Kikuchi
 
Small hydro power plant systems with multi vender method
Small hydro power plant systems with multi vender methodSmall hydro power plant systems with multi vender method
Small hydro power plant systems with multi vender method
Yutaka Kikuchi
 
Anyway folks! Let's get started with your Nerves machines.
Anyway folks! Let's get started with your Nerves machines.Anyway folks! Let's get started with your Nerves machines.
Anyway folks! Let's get started with your Nerves machines.
Yutaka Kikuchi
 
Exineris Project by kochi.ex
Exineris Project by kochi.exExineris Project by kochi.ex
Exineris Project by kochi.ex
Yutaka Kikuchi
 
Modernization of Factory Automation with Elixir based systems and communities
Modernization of Factory Automation with Elixir based systems and communitiesModernization of Factory Automation with Elixir based systems and communities
Modernization of Factory Automation with Elixir based systems and communities
Yutaka Kikuchi
 
クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)
クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)
クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)
Yutaka Kikuchi
 
小水力発電で地域と世界の未来づくり
小水力発電で地域と世界の未来づくり小水力発電で地域と世界の未来づくり
小水力発電で地域と世界の未来づくり
Yutaka Kikuchi
 
Elixir とか組込みとか (On Elixir and embedded systems)
Elixir とか組込みとか (On Elixir and embedded systems)Elixir とか組込みとか (On Elixir and embedded systems)
Elixir とか組込みとか (On Elixir and embedded systems)
Yutaka Kikuchi
 
To shorten the distance between ladders and clouds
To shorten the distance between ladders and cloudsTo shorten the distance between ladders and clouds
To shorten the distance between ladders and clouds
Yutaka Kikuchi
 
Using Elixir for Factory Automation - how to execute ladder logic
Using Elixir for Factory Automation - how to execute ladder logicUsing Elixir for Factory Automation - how to execute ladder logic
Using Elixir for Factory Automation - how to execute ladder logic
Yutaka Kikuchi
 
旧畑山発電所 2019.04.13 の記録
旧畑山発電所 2019.04.13 の記録旧畑山発電所 2019.04.13 の記録
旧畑山発電所 2019.04.13 の記録
Yutaka Kikuchi
 
小水力発電による地域活性化
小水力発電による地域活性化小水力発電による地域活性化
小水力発電による地域活性化
Yutaka Kikuchi
 

More from Yutaka Kikuchi (20)

大学研究室レベルでLocal 5Gを導入するための手法の考察
大学研究室レベルでLocal 5Gを導入するための手法の考察大学研究室レベルでLocal 5Gを導入するための手法の考察
大学研究室レベルでLocal 5Gを導入するための手法の考察
 
Local 5G の設備ってどんなん
Local 5G の設備ってどんなんLocal 5G の設備ってどんなん
Local 5G の設備ってどんなん
 
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
長野にある小水力発電所は Elixir & Nerves え動いているってご存知でしたか?
 
小水力発電所制御の中身見せます
小水力発電所制御の中身見せます小水力発電所制御の中身見せます
小水力発電所制御の中身見せます
 
産業用途に利用するのにElixirが向いているぞ
産業用途に利用するのにElixirが向いているぞ産業用途に利用するのにElixirが向いているぞ
産業用途に利用するのにElixirが向いているぞ
 
びよんどプロジェクト
びよんどプロジェクトびよんどプロジェクト
びよんどプロジェクト
 
Should I talk about Logger or Process Registries?
Should I talk about Logger or Process Registries?Should I talk about Logger or Process Registries?
Should I talk about Logger or Process Registries?
 
ルーティング最新動向 〜4バイトAS〜
ルーティング最新動向 〜4バイトAS〜ルーティング最新動向 〜4バイトAS〜
ルーティング最新動向 〜4バイトAS〜
 
IoT小箱で小水力発電所を制御する
IoT小箱で小水力発電所を制御するIoT小箱で小水力発電所を制御する
IoT小箱で小水力発電所を制御する
 
Small hydro power plant systems with multi vender method
Small hydro power plant systems with multi vender methodSmall hydro power plant systems with multi vender method
Small hydro power plant systems with multi vender method
 
Anyway folks! Let's get started with your Nerves machines.
Anyway folks! Let's get started with your Nerves machines.Anyway folks! Let's get started with your Nerves machines.
Anyway folks! Let's get started with your Nerves machines.
 
Exineris Project by kochi.ex
Exineris Project by kochi.exExineris Project by kochi.ex
Exineris Project by kochi.ex
 
Modernization of Factory Automation with Elixir based systems and communities
Modernization of Factory Automation with Elixir based systems and communitiesModernization of Factory Automation with Elixir based systems and communities
Modernization of Factory Automation with Elixir based systems and communities
 
クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)
クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)
クラウドと組込との接点を求めて (Searching for a meet point between clouds and embedded systems)
 
小水力発電で地域と世界の未来づくり
小水力発電で地域と世界の未来づくり小水力発電で地域と世界の未来づくり
小水力発電で地域と世界の未来づくり
 
Elixir とか組込みとか (On Elixir and embedded systems)
Elixir とか組込みとか (On Elixir and embedded systems)Elixir とか組込みとか (On Elixir and embedded systems)
Elixir とか組込みとか (On Elixir and embedded systems)
 
To shorten the distance between ladders and clouds
To shorten the distance between ladders and cloudsTo shorten the distance between ladders and clouds
To shorten the distance between ladders and clouds
 
Using Elixir for Factory Automation - how to execute ladder logic
Using Elixir for Factory Automation - how to execute ladder logicUsing Elixir for Factory Automation - how to execute ladder logic
Using Elixir for Factory Automation - how to execute ladder logic
 
旧畑山発電所 2019.04.13 の記録
旧畑山発電所 2019.04.13 の記録旧畑山発電所 2019.04.13 の記録
旧畑山発電所 2019.04.13 の記録
 
小水力発電による地域活性化
小水力発電による地域活性化小水力発電による地域活性化
小水力発電による地域活性化
 

RICC PIoT Workshop ハンズオン