この記事は#NervesJP Advent Calendar 2020 15日目です。
前日は、@kentaro さんの「『プログラミングElixir 第2版』を読んでいまこそElixirに入門しよう」でした。
ぜひ『プログラミングElixir 第2版』を読みましょう!!!
はじめに
- Elixir 楽しんでいますか!
- I was born to love Elixir
-
2020/12/27 【オンライン】豪華プレゼント付!Elixir/Nerves(ナーブス)体験ハンズオン! 楽しみですね!
- I can't wait until 12/27/2020.
- Seeed株式会社様ありがとうございます!
- nerves_jp_chartの動かし方を説明します
このハンズオンの中で、みんなでこんなグラフを描くことになっています
- アニメーションGifはイベント後にあげようとおもいます
- ハンズオンイベントが終わったあとにもみなさまの手元で動かしてもらいたいとおもっています
- 簡単(!?)に動かせるように、Dockerを使った動かし方をご説明します
プログラミングElixir 第2版
書評
準備
-
Dockerをインストールしてください
-
docker
コマンド、docker-compose
コマンドが使えることを確認してください - @takasehideki 先生の「ALGYAN x Seeed x NervesJPハンズオン!に向けた開発環境の準備方法」の通りに進めていただくとうま〜くインストールできます
-
Run
ローカルマシンで動かす
- Windows10な方はPowerShellにて、macOSな方はターミナルにてお願いします
> git clone https://github.com/NervesJP/nerves_jp_chart.git
> cd nerves_jp_chart
> cp .env.sample .env
> mkdir -p priv/static
> docker-compose build --build-arg NERVES_JP_CHART_HOST=localhost --build-arg NERVES_JP_CHART_PORT=4000
> docker-compose up
- http://localhost:4000/chart-sample をブラウザで開いてみてください
- グラフのうねうね(サンプル)がみえるはずです!
ElixirでデータPost(データ打ち上げ)
- 詳しくはイベント当日に説明されます
- 楽しみにお待ちください
- 乞うご期待!
- 今度は http://localhost:4000/chart-temperature を開いておいてください
-
nerves_jp_chartを動かしているマシンに割りあたっているIPアドレスを調べてください
- ここでは
192.168.1.11
とします
- ここでは
- 別のマシン(まあ、同じマシンでもよいです)からElixirのプログラムでデータPostしてみます
time = Timex.now() |> Timex.to_unix()
json = Jason.encode!(%{value: %{name: "your-name", value: 25.123, time: time}})
HTTPoison.post "http://192.168.1.11:4000/temperatures", json, [{"Content-Type", "application/json"}]
- もし別のマシンからのPostがうまくいかない場合は以下をご確認ください
- nerves_jp_chartを動かしているマシンとElixirのプログラムを動かしているマシン(ハンズオンイベントではRaspberry Pi 4)が同じネットワークにいるか
- アンチウイルスソフトが通信を拒絶していないか
- Windows セキュリティはデフォルト設定で通信できました
Azure Container Instancesで動かす
-
IoT ALGYANは、日本マイクロソフト株式会社様にもたいへんお世話になっているようですね
- ありがとうございます!
- 手前味噌ですが、「Phoenixで実装した湯婆婆をAzureで動かす。Azure Virtual Machinesを使うとEC2やVPSでやったことがあることとなんらの変わり無しになりそうで、せっかくDockerと仲良くなりはじめたのでAzureコンテナーで動かしてみる。もちろんHTTPS緑にしたいのでアプリケーションゲートウェイも使ってみる。」を**いろいろ**読み替えていただくとできます!
- Docker イメージを構築 からやっていただくとよいです
Wrapping Up
- 2020/12/27 【オンライン】豪華プレゼント付!Elixir/Nerves(ナーブス)体験ハンズオン!でまずはうまく動きますように
- みなさん、手元で動きましたか〜? |> イゴキましたよね!
- Enjoy Elixir !!!
-
We are the Alchemists, my friends!
- 不老不死の霊薬という名前のプログラミング言語のElixir熟練のものたちは**アルケミスト(錬金術師)**と呼ばれます
- ElixirとNervesを同時に触ったあなたは、あなたがそうおもった瞬間からアルケミストなのです
- アルケミスト 夢を旅した少年
- 世界を驚かせましょう! with NervesJP
- 愉快なfolksたちが大歓迎です
$\huge{The Show Must Go On!!!}$1
Inside my heart is breaking
My makeup may be flaking
But my smile, still, stays on
My soul is painted like the wings of butterfly
Fairy tales of yesterday, grow but never die
I can fly, my friends
Phoenix
- Webアプリケーション作ってみたいよ〜
- グラフうねうね (作り方 編) (Elixir/Phoenix)
-
「ショウ・マスト・ゴー・オン」(The Show Must Go On)は、イギリスのロック・バンド、クイーンが1991年に発表した楽曲。エルトン・ジョン版のYouTube動画。 ↩