山口県長門市の元乃隅神社(赤い鳥居が有名ね) |
さて,Ubuntu(Linux)サーバにおけるApache2のインストールと設定方法について,前回まで学習しました。これでインターネットとサーバ内を繋ぐことができるようになりました。
さて,ここからはIoTデバイスのためのプログラミング環境の構築に入って行きます。IoTデバイスというと温度や湿度等のセンサーがすぐ思いつきますが,ここではそれらを束ねるクライアント機器とデータを収集するサーバのプログラミング開発環境を作っていきます。
ITの世界で今最も注目を浴びる分野はAIです。このAIは,農業AIであったり,生産技術AIであったりとあらゆる分野毎に作って行くことになります。これらを作る過程で最も必要なもの,それは,各々の分野におけるAI学習用データです。
その学習用データを得るには,データを集め分析する仕組みを作る必要があり,そのためのプログラミング環境をIoTデバイス毎に構築していきたいと考えます。
IoTデバイスとしては,サーバ,PC,SBC(シングルボードコンピュータ),センサー等が必要ですが,まずはSBCであるRaspberry Piのプログラミング環境について学習します。
RaspberryPiとは
RaspberryPiはラズベリーパイといい,基盤剥き出しの小型コンピュータになります。これに温度計や湿度計あるいはカメラ等のセンサー機器を接続し,取得したデータをサーバに伝送する中継器としての役割を担います。以下が実際のRaspberryPiです。
Raspberry Pi4Model B 4G RAM
このラズベリーパイは,Debian系のLinuxをインストールでき,プログラミングなどの学習用機器としてイギリスのラズベリーパイ財団で開発されました。現在は,コロナ感染症拡大の影響を受け,非常に品薄の状態になっています。
また,ストレージは常駐型でなくmicroSDカードを差し込んで使います。そのため,耐久性の面で不安定な要素があり,CPUもスマートフォンや携帯電話に使われるArmプロセッサを使ったもので,PCに較べてかなり非力です。ただ,小型で拡張性に優れており,IoTなどのちょっとした実証に使うには手頃な機器であると言えます。当研究会ではこのラズベリーパイを使って学習します。
【準備機器】
raspberry Pi (今回は,Raspberry Pi4Model B 4G RAMを使います。)
raspberry Pi 用 ACアダプタ
micro SDカード(PCとのUSB接続を考慮したもの)
LANケーブル
PC (VNCツールをインストールして,リモートデスクトップ環境で使います。)
Raspberry Pi OSのインストール
ラズベリーパイにOSをインストールします。Raspberry Pi OSはDebian
GNU/Linuxを基にしたLinuxで,ラズパイ上のハードウェア機能を引き出す調整がされているため,トラブル無くラズパイを扱えます。
ラズベリーパイのOSインストール方法は,microSDを使ったRaspberry Pi
Imager(以下,Imager) の利用が手軽で確実です。このImagerは,ラズベリー財団のホームページからダウンロードすることが出来ます。
PCにダウンロードした後,PC側でImagerをインストールし起動します。書き込むmicroSDをPCに接続します。パソコンにSDカードの入出力アダプターが無い場合には,接続用器具を用意する必要があります。
次ヘをクリックすると,Pi
OSにいろいろな設定を施すことができます。この設定は,後で設定することもできるのですが,今回は,VNCツールを使ってリモート環境で操作していきますので,後での設定が難しい面もあり,できる所は設定しておいた方が楽になります。
「設定編集の選択画面」が開きます。「設定を編集する」をクリックします。
「一般」「サービス」「オプション」と画面が選択できますので,「一般」の「ホスト名」,「ユーザ名とパスワードを設定する」,「ロケールを設定する」にチェックを入れて各項目を入力してください。
「Wi-Fiを設定する」は最初からWi-Fiを使う場合に設定してください。今回は,LANケーブルを使ってインターネットにつなげることにしましたので,ここでは設定していません。Wi-Fiは後でも設定できますので大丈夫です。
なお,入力したホスト名,ユーザ名,パスワードは忘れないようにしてください。
次に,「サービス」の設定をしてください.これは,SSH接続の設定になります.後でわかりますが,RaspberryPiは,ネットワークに繋げた後,SSHプロトコルで使って設定していく必要があります.
これをここで設定していないとSSHポートが有効になりません。RaspberryPiに直接繋ぐTVやキーボード・マウスを用意できる場合はいいのですが,そうでない場合は以後の設定が難しくなります.
セキュリティ面から,公開鍵認証の方が望ましいですが,後でも出来るので今回はパスワード認証とします。「オプション」は必要ありませんので,これで「保存」します.
microSDカード書き込み指示画面まで進めて,「はい」をクリックします。書き込みが開始されます。Raspberry
OSのmicroSDカード書き込み中画面が表示されます。
microSDカードをPCから外して,RaspberryPiに差し込みます。差し込むアダプタはRaspberryPi基板にあります。RaspberryPiにACアダプタをつないで電源を入れ,LANに接続してVNCツールによりRaspberryPiを操作できるようにして行きます。
続いて,RaspberryPiのIPアドレスを取得する必要があります.これを知るには,いろいろな方法はありますが,簡単な方法としてはRaspberryPiが繋がっているLANセグメント上にPCを接続して,PCのコマンドプロンプトから次のコマンドを入力します.
>arp -a
インターフェイス: 192.168.1.2 --- 0x7
インターネット アドレス 物理アドレス
種類
192.168.1.1
18-ec-e7-84-6d-20 動的
192.168.1.3
dc-a6-32-97-60-ea 動的
192.168.1.255
ff-ff-ff-ff-ff-ff
静的
RaspberryPiの物理アドレスは,「b8:27」,「dc:a6」,「e4:5f」から始まりますので,どれがRaspberryPiのIPアドレスか分かります。
但し,物理アドレスのPCへの展開には時間がかかりますので,適当にPingコマンドで当たりをつけた方が早いかもしれません。
SSH(TeraTerm)によるRaspberryPiへのログイン
このIPアドレスが見つけられたら,TeraTermなどのツールを使ってRaspberryPiにアクセスします。具体的には,TeraTermツールの「新しい接続画面」でホスト名かIPアドレスを入力します。
ホスト名は,先ほどのImagerで設定したホスト名になります。
今回は「raspberrypi.local」です。ここにIPアドレスを打ち込んでもアクセスできます。
「OK」をクリックします。
初めて接続する場合は,「セキュリティ警告」ウィンドウが表示されますが,「known hostsリストファイル」を追加する行為なので,「このホストをknown hostsリストに追加する」を選択して「続行ボタン」を押します。次からは「セキュリティ警告」画面は出なくなります。
次に「SSH認証画面」が開きます。先ほどImagerで設定した「ユーザ名」と「パスワード」を入力して,「プレインパスワード」を使って認証します。「OK」ボタンをクリックします。
VT画面に「pi@raspberrypi:~ $」が出力されれば,ログインOKです。
これは,コマンドラインインターフェース(CLI)になりますので,ここから,RaspberryPiのDeskTop画面表示を目指していきます。
RaspberryPiのソフトアップデートとVNCサーバのインストール
その前に,RaspberryPiに接続できたので,最低限の設定をします。最初にRaspberryPiのソフトのアップデートを行います。次のコマンドを入力してください。
パッケージを最新版に更新
$ sudo apt update
$ sudo apt upgrade
vnc-serverのインストール
$ sudo apt install realvnc-vnc-server
RaspberryPiのコマンドラインからのVNCサーバの起動
VNCを使わずSSHでRaspberry
Piにログインしている場合,グラフィカルな設定は行えません.そのため,コマンドライン上からVNCサーバを起動させる設定を行います.下のようにコマンドプロンプトに入力します.
$ sudo raspi-config
以下の「コマンドライン設定画面」が開くので,「Interface Options」を選択します。
次にRaspberry OSのInterface
Optionsの「メニュー画面」が開くので,「VNC」を選択します。
「VNCサーバを起動していいか」を聞いてくるので,「はい」を選択します。
「確認画面」が出るので「OK」をクリックします。
これで,「VNCサーバが起動」しました。
【参考】microSD使用ディスク容量のリサイズ(拡大)
microSDの使用容量を確認するため,次のコマンドを入力する。
$ df -h
ファイルシス サイズ
使用 残り 使用% マウント位置
udev
1.6G 0
1.6G 0% /dev
tmpfs
380M 1.3M 379M 1% /run
/dev/mmcblk0p2 57G 4.9G
49G 10% /
tmpfs
1.9G 204K 1.9G 1%
/dev/shm
tmpfs
5.0M 16K 5.0M 1%
/run/lock
/dev/mmcblk0p1 510M 73M
438M 15% /boot/firmware
tmpfs
380M 52K 380M 1%
/run/user/1000
現状,64GのmicroSDカードを使っていますので,よい配分になっているようですが,容量のリサイズを行う場合は,次のように行います。
$ sudo raspi-config
以下のコマンドライン設定画面が開きますので,「advanced_Options」を選択します。
次に,「advanced_Optionsのメニュー画面」が開きますので「Expand_Filesystem」を選択します。
resizeしたのでRebootで有効になるというメッセージが開きますので,「了解」をクリックします。
再度,「初期画面」に戻るので,「Finish」を選択しエンターを押します。
自動的にRebootして良いか聞いてくるので,「はい」をエンターします。
画面が消えて,Rebootされますので,暫くしてから再度,SSHでRaspberryPiに接続し,次のコマンドを打って利用できる容量を確認します。
$ df -h
ファイルシス サイズ
使用 残り 使用% マウント位置
udev
1.6G 0 1.6G
0% /dev
tmpfs
380M 1.3M 379M 1% /run
/dev/mmcblk0p2 57G 4.9G 49G
10% /
tmpfs
1.9G 140K 1.9G 1%
/dev/shm
tmpfs
5.0M 16K 5.0M 1%
/run/lock
/dev/mmcblk0p1 510M 73M 438M
15% /boot/firmware
tmpfs
380M 52K 380M 1%
/run/user/1000
変化がないので,現在はImagerが改良されてリサイズも含めてmicroSDカードを作ってくれるようです。なお,次のコマンドでもディスク拡張が行えます。
$ sudo raspi-config --expand-rootfs
VNCによるRaspberryPiのDeskTop画面の表示
さて,microSDカードとRaspberryPiのサーバ起動準備が整いましたので,RaspberryPiのDeskTop画面を表示していきたいと思います。
DeskTop画面を表示するには,VT機器やキーボード・マウスが別途用意出来るのであれば,それをRaspberryPiに繋げばいいのですが,費用がかかりますのでVNCツールを使ってリモートデスクトップ環境で見える形にします。
VNCとは,ネットワークを通じて別のコンピュータに接続し,そのデスクトップ画面を呼び出して操作するリモートデスクトップ技術を使った派生ソフトウェア群の総称です。
VNCツールはいろいろありますが,Windowsでよく知られているREALVNCツールは,個人の場合は今のところ無料なようです。いつ有料になるかはわかりませんが,今回はこれを使ってリモート接続を実現します。
セキュリティにも留意して信用の高いサイトからダウンロードできるソフトを利用してください。参考までに,REALVNCのサイトをここに示します。
VNCツールを使わない場合には,VT機器やキーボード・マウスが別途必要になります。
さて,このVNCツールを使ってRaspberryPiのDeskTopを開くには,PCにインストールしたVNCツールを起動します。「Viewer画面」が開きますので,画面向かって左上の「File」タブから「Preferences」をクリックします。
VNCツールの「Application Preferences画面」が開きますので,「Expert項目」を選択し,「ProxyTcpRfb」を探してValue値を「False」に変更します。
「Apply」をクリックして最後に「OK」をクリックします。
最初に戻って,画面向かって左上の「File」タブから「New Connection」をクリックします。
New
Connectionの「Properties画面」が開きますので,VNCサーバの「IPアドレス」または「ホスト名」と,「Name(名称)」を入力し「OK」をクリックします。
VNCViewerに「VNCサーバ対象」が表示されますので,クリックします。この時,「ホスト名」を指定しても繋がらない場合は,「IPアドレス」で試してみてください。
それでも接続できない場合は,VNCサーバが稼働してないことが考えられますので,再度,VNCサーバの起動に戻ってやり直してみてください。
VNCサーバが動いているかどうかは以下のコマンドで確認できます。
コード
$ ps -ef | grep vnc
pi 1117 1 0 10:28 ? 00:00:04 /usr/bin/wayvnc --render-cursor --keyboard=jp
pi 2842 2200 0 11:55 pts/0 00:00:00 grep --color=auto vnc
初めて接続する場合は警告エラー画面が出る場合があります。その場合は「Continue」します。「認証画面」が出たら,Imagerで設定した「ユーザ名」と「パスワード」を入力します。
特に問題がなければ,「RaspberryPiのDeskTop」画面が出力されます。
以上で,VNCを使ったDesktop画面の表示方法を記述しました。
まとめ
VNCツールを利用してRaspberryPiのDesktop画面を出力するところまで来ました。この画面から日本語などを設定した方が簡単です。
しかし,長くなりすぎましたので,この辺で一旦終わります。
次回は,RaspberryPiの残りの設定と,Node-REDのインストールに入っていきます。
Node-REDの設定後,raspberryPiについては一旦終了し,ubuntuサーバのNode-REDインストール設定に移ります。まだ先は長いですね。
では,また。
(注意)
諸般の事情で画面イメージが表示できないので分かりにくいですが,実際の機器を操作して行けば大丈夫です。
なお,情報の正確性を期していますが,実施される場合は自己責任でお願いします。
0 件のコメント:
コメントを投稿