Hello Raspberry Pi

desciription

ラズパイで遊ばせてもらった!

感想をひとことでいうと、めちゃくちゃ簡単だし楽しい。もっと遊んでみたくなった。 ラズパイ欲しい😍 正直、LEDが点滅するだけでこんなにワクワクすると思ってなかった。 前から楽しそうだな〜とは思ってたけど、もっと早くに触っておけばよかった。 せっかくなのでやったことを残しておく。(もっと写真撮ればよかった🥲)

ラズパイにOSをインストールしてセットアップ

今回は事前にOSを落としてきたmicroSDを用意してもらっていたので本当にものの数分でセットアップが完了した。

  • OSをダウンロードしたmicroSDを用意
  • ラズパイにmicroSDをセットして、モニタとキーボード繋いで、電源コードを繋ぐ
  • モニタの左上にラズパイのロゴが出てきたら起動が始まった証拠、しばしまつ
  • GUI上でパスワードやタイムゾーン・言語などを聞かれるので、選択してセットアップ
  • WiFiを設定する

以上。

これが終わったら、ラズパイにssh接続するためにIPをifconfigコマンドで確認して、同じネットワーク内にいるPCからsshで接続したら完了。 かーんたーん!!!😎

Node-REDをインストールする

Node-REDは、Node.jsが動く環境で動作するソフトウェアで、ラズパイでよく使われるGUI上でプログラミングできるツールである。

Node-RED(ノード・レッド)は、IoTの一部としてハードウェアデバイス、API、オンラインサービス(英語版)を相互に接続するためにもともとIBMによって開発された、ビジュアルプログラミング用のフローベースの開発ツールである ~Wikipediaより~

これをインストールして実行すれば、ブラウザ上からプログラムが作れる。

  • パッケージアップデートの確認
1pi@raspberrypi:~ $ sudo apt update
  • パッケージアップデート(割と時間かかる)
1pi@raspberrypi:~ $ sudo apt full-upgrade -y
2pi@raspberrypi:~ $ sudo apt clean
  • バージョン確認
 1pi@raspberrypi:~ $ node -v
 2v8.11.1
 3pi@raspberrypi:~ $
 4pi@raspberrypi:~ $ uname -a
 5Linux raspberrypi 4.14.79-v7+ #1159 SMP Sun Nov 4 17:50:20 GMT 2018 armv7l GNU/Linux
 6pi@raspberrypi:~ $
 7pi@raspberrypi:~ $ lsb_release -a
 8No LSB modules are available.
 9Distributor ID:	Raspbian
10Description:	Raspbian GNU/Linux 9.4 (stretch)
11Release:	9.4
12Codename:	stretch
13pi@raspberrypi:~ $
  • Node-REDインストールとアップデート(アップデートにちょっと時間がかかる)
1pi@raspberrypi:~ $ bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
2pi@raspberrypi:~ $ update-nodejs-and-nodered
  • Node-RED起動(初回)
 1pi@raspberrypi:~ $ node-red-start
 2
 3
 4    npm is not installed, it is recommended
 5    to install the latest by running:
 6        update-nodejs-and-nodered
 7
 8
 9Start Node-RED
10
11Once Node-RED has started, point a browser at http://ローカルIP:1880
12On Pi Node-RED works better with the Firefox or Chrome browser
13
14Use   node-red-stop                          to stop Node-RED
15Use   node-red-start                         to start Node-RED again
16Use   node-red-log                           to view the recent log output
17Use   sudo systemctl enable nodered.service  to autostart Node-RED at every boot
18Use   sudo systemctl disable nodered.service to disable autostart on boot
19
20To find more nodes and example flows - go to http://flows.nodered.org
21
22Starting as a systemd service.
23Started Node-RED graphical event wiring tool.
2429 Oct 20:35:04 - [info]
25Welcome to Node-RED
26===================
2729 Oct 20:35:04 - [info] Node-RED バージョン: v0.20.7
2829 Oct 20:35:04 - [info] Node.js  バージョン: v8.11.1
2929 Oct 20:35:04 - [info] Linux 4.14.79-v7+ arm LE
3029 Oct 20:35:04 - [info] パレットエディタを無効化 : npmコマンドが見つかりません
3129 Oct 20:35:04 - [info] パレットノードのロード
3229 Oct 20:35:12 - [warn] 不足しているノードモジュール:
3329 Oct 20:35:12 - [warn]  - node-red-node-ledborg (0.0.21): ledborg
3429 Oct 20:35:12 - [info] 設定からモジュールを削除します
3529 Oct 20:35:12 - [info] 設定ファイル: /home/pi/.node-red/settings.js
3629 Oct 20:35:12 - [info] コンテキストストア : 'default' [module=memory]
3729 Oct 20:35:12 - [info] ユーザディレクトリ : /home/pi/.node-red
3829 Oct 20:35:12 - [warn] プロジェクトは無効化されています : editorTheme.projects.enabled=false
3929 Oct 20:35:12 - [info] フローファイル     : /home/pi/.node-red/flows_raspberrypi.json
4029 Oct 20:35:12 - [info] flow ファイルを作成します
4129 Oct 20:35:12 - [warn]
42---------------------------------------------------------------------
43フローのクレデンシャルファイルはシステム生成キーで暗号化されています。
44システム生成キーを何らかの理由で失った場合、クレデンシャルファイルを
45復元することはできません。その場合、ファイルを削除してクレデンシャルを
46再入力しなければなりません。
47設定ファイル内で 'credentialSecret' オプションを使って独自キーを設定
48します。変更を次にデプロイする際、Node-REDは選択したキーを用いてクレ
49デンシャルを再暗号化します。
50---------------------------------------------------------------------
5129 Oct 20:35:12 - [info] フローを開始します

ブラウザからNode-REDにアクセスする

http://ローカルIP:1880にアクセスしたら、こんな感じのGUI。

必要なノードを配置して、それをフロー図のように組み合わせて入出力を定義する。 functionのノードの中身は受け取った入力をJavaScriptを書くことでプログラム的な処理を行うことが可能。

ここら辺のリストは、全てラズパイ上の入出力のピンに対応している。 これを見ながら適切な入力のピンにセンサーを挿せばOK。簡単すぎる、天才だ。

ラズパイを上記の写真の向きで見ると、ブラウザ上のリストのピンの位置と対応している状態になる。 GUIのプログラムから0と1を渡すスイッチを作って、それをブラウザ上で操作してあげると、LEDが光ったり消えたりする。

これが巷でよく聞くLチカである。やっと会えた…!

手順的にはここまで大して苦労していなかったけど、とにかくOSのアップデートが時間かかったのでなんか感慨深かった。 このたった一個のLEDをついたり消したりするだけで、まさかこんなに楽しめるとは。 自分でも思って見なかったので嬉しい発見だった。 またひとつ、ワクワクするものに出会えた!

Lチカだけでこんなに嬉しいなら、こんなのを動かせた日には、発狂してしまいそう。 ちょっと時間があったので、Apacheのサーバーも立ててHelloWorldしておいた。

1pi@raspberrypi:~ $ sudo apt install apache2

Hello Worldしといた。

今日はここでタイムアップ。

距離を超音波の帰ってくる時間で計測できるセンサーなどもあったけど、OSアップデートに時間がかかってしまいそこまでできなかった。 Node-REDのGUIで確認できたノードの一覧を見た限り、かなり色々なことができそうな気配だったので、センサーをいろいろ試してみるのが楽しそう。