9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

以前、2台の MacBook 上の Livebook を接続しました

本記事では MacBook 上の Livebook から Raspberry Pi 上の Livebook に接続します

Raspberry Pi の環境構築

以下の記事の手順で Raspberry Pi 上に Nerves Livebook を立ち上げます

ブラウザで nerves.local を開き、パスワード nerves で認証します

MacBook の環境構築

以前の記事と同じ手順ですが、ノード名を IP アドレス付きで起動するようにします

Livebook のコードをクローンする

最新版ではなく、安定稼動するリリース済のバージョンを使用します

git clone -b v0.12.1 https://github.com/livebook-dev/livebook.git
cd livebook

依存モジュールをインストールする

mix deps.get --only prod

ノード名を IP アドレスとして起動する

LIVEBOOK_DISTRIBUTION=name \
  LIVEBOOK_NODE="livebook-server@<MacBookのIPアドレス>" \
  LIVEBOOK_IP=0.0.0.0 \
  MIX_ENV=prod mix phx.server

表示された URL をブラウザで開きます

ノードの接続

MacBook の接続情報を取得する

MacBook 側で新しいノートブックを開き、以下のコードを実行します

{node(), Node.get_cookie()}

実行結果(例)

{:"hb2dbpe2-livebook-server@192.168.40.97", :c_XpnMHCvYnb9NFe4XGWZi_fI_P5fpAgIn6lPuP7n_POU6QIJ2BQXp}

自分のノード名とクッキーが取得できました

Raspberry Pi からの接続

Raspberry Pi 側で新しいノートブックを開き、以下のコードを実行します

{node, coockie} に MacBook 側の接続情報を設定しています

{node, coockie} = {:"hb2dbpe2-livebook-server@192.168.40.97", :c_XpnMHCvYnb9NFe4XGWZi_fI_P5fpAgIn6lPuP7n_POU6QIJ2BQXp}

Node.set_cookie(node, coockie)

Node.connect(node)

うまく接続できれば結果として true が返ってきます

MacBook から Raspberry Pi 上の処理を実行する

MacBook 側のノートブックで接続ノードを確認します

Node.list(:connected)

実行結果として、以下のように MacBook のノードと Raspberry Pi のノードが取得できます

[:"livebook-server@192.168.40.97", :"livebook@nerves-6b7e.local"]

Raspberry Pi のノード上で処理を実行します

Node.spawn_link(:"livebook@nerves-6b7e.local", fn -> node() |> IO.puts() end)

実行結果として、確かに Raspberry Pi 側のノード名が表示されました

livebook@nerves-6b7e.local

MacBook から Raspberry Pi にLチカさせる

同じように、 MacBook 側のノートブックから Raspberry Pi 側の LED を制御できます

Node.spawn_link(:"livebook@nerves-6b7e.local", fn ->
  :green # 色
  |> Delux.Effects.blink(3) # 周波数
  |> Delux.render()
end)

Nerves 側に渡した関数の中身は以下の記事と同じです

まとめ

MacBook 上の Livebook から Raspberry Pi 上の Livebook に接続し、Lチカさせることができました

実は、逆方向の Raspberry Pi から MacBook に処理を実行させる方はできていません

Nerves Livebook を IPアドレス付きノード名で起動できれば大丈夫だとは思うのですが

9
0
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
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?