🏆

Why Nerves|>Nervesを使う理由探し

2020/09/23に公開

Qiitaからの転記です。

はじめに

この記事は、#NervesJP Advent Calendar 2019 の20日目です。

昨日は @Shintaro_Hosoai さんのAtomVMでM5Stack向けのデバドラを書いてみるでした。

Elixir Advent Calendar 2019の記事はこちら
・Elixir Circuitsを使用してLEDを操作する

お役立ちリンク

Nervesとは

#NervesJP Advent Calendar 2019より
「Nerves」は,関数型言語ElixirによるIoT開発フレームワークです。
RaspberryPiなどのIoTボード上で動作する最小構成のLinuxブートローダ+Elixir実行環境+各種デバドラのパッケージセットで,Elixir × IoTの文脈で最も活発なプロジェクトです。

を意訳すると

Nervesでなにができるの?

イミュータブルな環境の構築
環境のコード化
  • NervesはBuildrootをベースに各ハードウェア用のtoolchain(コンパイラやドライバ)を組み込んだArtifactを元にベースのイメージが作成されます。しかもこれがmix nerves.new hogeでサクッと作れる。
  • mix.exsへの追記やネットワーク、環境の変更、アプリケーションの変更は全てコードに記述します。
ネットワークデプロイの機能
  • Nervesはネットワーク経由のデプロイが可能です。
  • NervesHubを使用しホストからNervesHubにpushしたソースを、ネットワーク経由でグループ単位にデプロイすることが可能です。
  • ハードウェアでの認証鍵(NervesKey)など、セキュアな環境が構築できます。

運用を想定したモダンなIoT開発ができるフレームワーク それが 「Nerves」です。

どうですか、そろそろNervesをやりたくなったでしょ?:kissing_closed_eyes: |>Nervesを導入するには

@nishiuchikazuma さんの記事でElixirの環境構築
ElixirでラズパイのLEDをチカ〜RaspbianOSインストールから〜

@takasehideki さんの記事でNervesの環境構築
ElixirでIoT#4.1:Nerves開発環境の準備(2019年12月版)

合わせて以下を参考にするととりあえずできます。
getting-started
elixir schoolのNervesのページ

まとめ結局Nervesってどうよ

Elixirの可能性+IoT開発にモダンな開発手法を取り入れるのにとても良いフレームワークです。
ただし、新しいハードへの展開、artifactを自分で作るにはハードルがありそうです。
いまからやっておくと幸せかも。

明日の#NervesJP Advent Calendar 2019 21日目の記事は、 @myasu さんのElixir Circuits I2CでLチカです。こちらもお楽しみに!

Discussion