17
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

#NervesJPAdvent Calendar 2022

Day 10

Nerves超入門 ーー Nervesを使った開発の日常風景(景色)、ElixirでIoTを楽しむ

Last updated at Posted at 2022-02-14

はじめに

Elixirを楽しんでいますか:bangbang::bangbang::bangbang:

今日は、ElixirでIoTを楽しめるナウでヤングでcoolElixir専用OS:interrobang:といっても過言ではないNervesの楽しみ方をご紹介します。

以下のような方を想定しています。

  • Elixirをすでに楽しんでいて、Nervesやってみようかなあとおもっている人
  • IoTバリバリです! 世俗派関数型言語1Elixirで、IoTを楽しんでみたい人

つまりは
$\huge{全人類}$
が対象です!!!

最低限必要なもの

最低限必要なものをご紹介します。

  • Raspberry Pi 4 (4GBモデル)2
  • microSDカード 16GB3
  • AC-DCアダプタ(Type-C, 5V3A)
  • (必要に応じて)メモリカードリーダ

ここでは、何も持っていない人が0からはじめてみようというその心意気に応えたいとおもっています。
Raspberry Pi 4じゃなくてもよいのですが、そういうことを言い出すとはじめての方は迷うでしょうし、私自身はすべてのハードウェアで試したわけではございませんので、私自身が持っているものの中で最高の性能を誇るものをオススメしております。

メモリカードリーダは、PCにつないでmicroSDカードにファームウェアを焼き込むときに使います。
お使いの開発マシンに適合するものをお選びください。
PCにSDカードを差し込める機器の場合は不要です。

そのほか使用できるものについては、注釈に補足をしています。

以下、Raspberry Pi 4前提で書きます。

手軽に、Nervesを楽しみたい

奥さん、朗報です。
Nerves Livebookというものがありまして、これを使うのがいま一番簡単にNervesを楽しめます。

まずはこちらの動画をご覧ください。

公開されているファームウェアをダウンロードしてmicroSDカードに焼き込んだあとは、それをRaspberry Piに挿し込むだけで、PCのブラウザ経由でNervesを楽しめます。
いま一番簡単に、Nerves楽しめる方法です。

ただし、上記の動画の通りに進めるには、事前にfwupのインストールが必要です。

fwupをインストールなしにGUIツールだけで! 楽しむ方法は次のビデオです。
次のビデオは、私がつくったものでして、いろいろと雑なところは申し訳ないです:pray::pray_tone1::pray_tone2::pray_tone3::pray_tone4::pray_tone5:
LANケーブルでRaspberry Pi 4をご家庭のネットワークに参加させることがポイントです。(動画では抜けています :sweat_smile:

この2つをみていただくと、だいたい雰囲気を掴んでいただけるとおもいます。


本格的に、Nervesを楽しみたい!!!

本格的に、Nervesを楽しみたい方は以下を参考にしてください。

インストール

本格的に、楽しむためには少しの準備が必要です。
詳細は下記のリンクをご参照ください。

日本語の記事は、 @takasehideki 先生の記事がオススメです。

日常風景(景色)

開発マシンにて以下のような操作の流れで開発を進めます。
これを日常風景はたまた景色と呼んでいます。

$ 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を一生楽しめます!
めでたしめでたし :tada::tada::tada:

さてさて、Elixirを楽しんでいる、あなたはさらに機能追加をしました。
たとえば、モジュールの追加、関数の追加などです。

もちろん変更内容を反映させたいですよね!!!

Raspberry Pi 4の電源を切って、microSDカードを抜いて、PCに挿し込んで……
いやいや、ちょっと待ってください!!!

奥さん、
$\huge{朗報}$
です!!!
次のコマンドにてRaspberry Pi 4で動いているNervesファームウェアを更新できます:rocket::rocket::rocket:

$ mix upload

ここでご紹介した上記の手順(日常風景)は、公式のGetting Startedが該当します。

わからないことがあったら、ご不明な点がございましたら |> NervesJPコミュニティ

NervesJPコミュニティに飛び込んできてください。
あなたの訪れを熱烈歓迎します!!!
Slackをご用意しております。
参加はコチラからできます。

Twitterのハッシュタグは#NervesJPです。


Wrapping up :lgtm::lgtm::lgtm::lgtm::lgtm:

Enjoy Elixir:bangbang::bangbang::bangbang:
$\huge{Enjoy\ Elixir🚀}$
$\huge{Enjoy\ Nerves🚀}$

今回は、以下を書きました。

  • Nervesを手軽に始めるには、Nerves Livebookがオススメです
  • Nervesで開発する日常風景(景色)をご紹介しました

ここまで読んでくださいまして、
$\huge{ありがとうございます!}$

以上です。


  1. @kikuyuta 先生の「世俗派関数型言語 Elixir を関数型言語風に使ってみたらやっぱり関数型言語みたいだった」より。Elixirはコワくないですよ〜。

  2. Nervesがデフォルトで対応しているハードウェアの一覧は、 https://hexdocs.pm/nerves/targets.html#supported-targets-and-systems です。カスタマイズ次第でどんなハードウェアでも動作させることは可能です。ただ、私は移植する腕は持っていません。

  3. microSDカードのサイズはもっと小さくてもよいはずです。なんとなくみなさん16GBを購入して使っているようですので、この記事では16GBをオススメしておきます。

  4. WiFiで接続したい場合は、ココをご参照ください。

17
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?