はじめに
Elixirを楽しんでいますか
今日は、ElixirでIoTを楽しめるナウでヤングでcoolなElixir専用OSといっても過言ではないNervesの楽しみ方をご紹介します。
以下のような方を想定しています。
つまりは
$\huge{全人類}$
が対象です!!!
最低限必要なもの
最低限必要なものをご紹介します。
ここでは、何も持っていない人が0からはじめてみようというその心意気に応えたいとおもっています。
Raspberry Pi 4じゃなくてもよいのですが、そういうことを言い出すとはじめての方は迷うでしょうし、私自身はすべてのハードウェアで試したわけではございませんので、私自身が持っているものの中で最高の性能を誇るものをオススメしております。
メモリカードリーダは、PCにつないでmicroSDカードにファームウェアを焼き込むときに使います。
お使いの開発マシンに適合するものをお選びください。
PCにSDカードを差し込める機器の場合は不要です。
そのほか使用できるものについては、注釈に補足をしています。
以下、Raspberry Pi 4前提で書きます。
手軽に、Nervesを楽しみたい
奥さん、朗報です。
Nerves Livebookというものがありまして、これを使うのがいま一番簡単にNervesを楽しめます。
まずはこちらの動画をご覧ください。
公開されているファームウェアをダウンロードしてmicroSDカードに焼き込んだあとは、それをRaspberry Piに挿し込むだけで、PCのブラウザ経由でNervesを楽しめます。
いま一番簡単に、Nervesを楽しめる方法です。
ただし、上記の動画の通りに進めるには、事前にfwupのインストールが必要です。
fwupをインストールなしにGUIツールだけで! 楽しむ方法は次のビデオです。
次のビデオは、私がつくったものでして、いろいろと雑なところは申し訳ないです
LANケーブルでRaspberry Pi 4をご家庭のネットワークに参加させることがポイントです。(動画では抜けています )
この2つをみていただくと、だいたい雰囲気を掴んでいただけるとおもいます。
本格的に、Nervesを楽しみたい!!!
本格的に、Nervesを楽しみたい方は以下を参考にしてください。
インストール
本格的に、楽しむためには少しの準備が必要です。
詳細は下記のリンクをご参照ください。
- 公式のInstallation
日本語の記事は、 @takasehideki 先生の記事がオススメです。
- macOS, Linuxの方: ElixirでIoT#4.1:Nerves開発環境の準備
- Windowsの方: ElixirでIoT#4.1.1:WSL 2でNerves開発環境を整備する
日常風景(景色)
開発マシンにて以下のような操作の流れで開発を進めます。
これを日常風景はたまた景色と呼んでいます。
$ mix nerves.new hello_nerves
$ cd hello_nerves
$ export MIX_TARGET=rpi4
$ mix deps.get
(機能追加などをします)
$ mix firmware
以上で、ファームウェアがビルドできました。
microSDカードをPCと接続して以下のコマンドで焼き込みをします。
$ mix burn
Nervesファームウェアがこんがりと焼き上がったmicroSDカードをRaspberry Pi 4に挿し、LANケーブルでご家庭のネットワークに接続4して、電源ONです。
10秒ほど待つと、ssh
できます。
$ ssh nerves.local
IEx
が立ち上がってきます。
Elixirを一生楽しめます!
めでたしめでたし
さてさて、Elixirを楽しんでいる、あなたはさらに機能追加をしました。
たとえば、モジュールの追加、関数の追加などです。
もちろん変更内容を反映させたいですよね!!!
Raspberry Pi 4の電源を切って、microSDカードを抜いて、PCに挿し込んで……
いやいや、ちょっと待ってください!!!
奥さん、
$\huge{朗報}$
です!!!
次のコマンドにてRaspberry Pi 4で動いているNervesファームウェアを更新できます
$ mix upload
ここでご紹介した上記の手順(日常風景)は、公式のGetting Startedが該当します。
わからないことがあったら、ご不明な点がございましたら |> NervesJPコミュニティ
NervesJPコミュニティに飛び込んできてください。
あなたの訪れを熱烈歓迎します!!!
Slackをご用意しております。
参加はコチラからできます。
Twitterのハッシュタグは#NervesJPです。
Wrapping up
Enjoy Elixir
$\huge{Enjoy\ Elixir🚀}$
$\huge{Enjoy\ Nerves🚀}$
今回は、以下を書きました。
- Nervesを手軽に始めるには、Nerves Livebookがオススメです
- Nervesで開発する日常風景(景色)をご紹介しました
ここまで読んでくださいまして、
$\huge{ありがとうございます!}$
以上です。
-
@kikuyuta 先生の「世俗派関数型言語 Elixir を関数型言語風に使ってみたらやっぱり関数型言語みたいだった」より。Elixirはコワくないですよ〜。 ↩
-
Nervesがデフォルトで対応しているハードウェアの一覧は、 https://hexdocs.pm/nerves/targets.html#supported-targets-and-systems です。カスタマイズ次第でどんなハードウェアでも動作させることは可能です。ただ、私は移植する腕は持っていません。 ↩
-
microSDカードのサイズはもっと小さくてもよいはずです。なんとなくみなさん16GBを購入して使っているようですので、この記事では16GBをオススメしておきます。 ↩