今回は前回までで作成した株価アラートプログラムをRaspberry Pi上で動かしていきます。
Raspberry Piの用意
Raspberry Piには幾つもモデルがあります。何を選ぶのがいいでしょうか。
最新モデルは Raspberry Pi 4 ですが「Raspberry Pi Raspberry Pi 3 Model B」「Raspberry Pi Raspberry Pi 2 Model B」あたりが価格も落ち着いていておすすめです。
性能もそれなりですが今回の用途には問題ないはずです。
Raspberry Pi Zeroは価格も消費電力も魅力的ですが経験上性能が十分ではないので今回の用途にはおすすめできません。
安定稼働のためにイーサネット接続(有線LAN接続)もできたほうがいいのでその点でもRaspberry Pi Zeroは候補から外れます。
アクセサリーの用意
電源
電源はアンペア数が十分なものを選びましょう。以下がおすすめです。
SDカード
容量はひとまず8GBもあれば十分です。あとは、ブランド、値段、読み書きの速度を見て選びます。
読み書きの速度についてはUHSスピードクラス1、SDスピードクラス10で、読み出し20MB/s もあれば十分です。
1,000円もしないと思います。例えば以下がおすすめです。
東芝 microSDHCカード 8GB Class10 UHS-I対応 (最大転送速度48MB/s) 国内正規品 Amazon.co.jpモデル THN-MW08G4R8
- 発売日: 2018/07/01
- メディア: Personal Computers
その他
お使いのルーターにイーサネットケーブルの差込口があること、つまりRaspberry Piを有線LAN接続できることをご確認ください。
接続のためのイーサネットケーブルも必要になります。ルーターのすぐそばにRaspberry Piも設置するならば短いものを。
個人的に薄いケーブルが取り回しが良くておすすめです。例えば以下。
iBUFFALO ツメの折れないLANケーブル UTP Cat6a ストレート フラットタイプ 0.5m ブラック BSLS6AFU05BK
- 発売日: 2012/09/07
- メディア: Personal Computers
OS(Raspbian)のインストール
Download Raspbian for Raspberry Pi
より「2020-02-13-raspbian-buster-lite.zip」をダウンロードします。
zipファイルを展開してできた「2020-02-13-raspbian-buster-lite.img」をSDカードに書き込みます。
imgファイルのSDカードへの書き込みにはWin32 Disk Imagerを使います。
Win32 Disk Imager download | SourceForge.net
からダウンロード、インストールします。
SDカードをSDカードリーダーにセットし、Win32 Disk Imagerを起動。
Image Fileとして「2020-02-13-raspbian-buster-lite.img」を指定して
Deviceとして書き込み先のSDカードのドライブを指定して「Write」ボタンをクリックします。
SSH接続の許可
Raspberry Piの操作はPCからSSH接続して行います。
Raspberry PiにSSH接続ができるように、SSH接続を許可します。
具体的にはimgファイルを書き込んだSDカードのルートディレクトリー内に「ssh」という名前の空のファイルを作成します。
参照: Enable SSH when creating SD card - Raspberry Pi Forums
コマンドプロンプトで行う場合はコマンドプロンプトを開きまずカレントドライブをSDカードのドライブにします。
「D」ドライブであれば以下の通り。
> D: > cd \
ファイルを確認します。
> dir
「overlays」というディレクトリーなどがあるはずです。
そこで「ssh」という名前の空のファイルを作成します。
> type nul > ssh
有線LAN接続
自宅のルーターとRaspberry PiをEthernetケーブルで接続します。
(参考)wifiで接続する場合
wifi接続(無線LAN接続)したい場合はRaspberry PiにUSBキーボード、マウス、ディスプレイを接続し、デスクトップPCのようにして設定してしまうのが簡単です。
(Raspberry Pi Raspberry Pi 2 Model B の場合にはUSB無線LANアダプターも必要です。)
その場合OSはGUIで設定するために「Raspbian Buster Lite」ではなく「Raspbian Buster with desktop」を選択します。
Ethernetケーブル接続の代わりに以下のサイトなどを参考にwifiでネットワーク接続します。
【STEP-07】ラズベリーパイを無線LAN(WiFi)でインターネット接続│FABSHOP.JP -デジタルでものづくり! ファブショップ !
一度接続すれば以降起動時に自動接続されるようになります。
Raspberry Piの起動
Raspberry PiにSDカードを挿し、電源ケーブルを接続すれば起動します。
電源スイッチ付きのケーブルの場合は電源スイッチをONにしてください。
SSHログイン
Windows 10 バージョン1803以降であればsshコマンドが使えます。
このsshコマンドを使ってRaspberry PiにSSH接続、ログインします。
コマンドプロンプトから以下のコマンドを実行します。
> ssh -l pi raspberrypi.local
「pi」はRaspbian標準のユーザー名、「raspberrypi.local」はRaspbian標準のホスト名です。
「pi@raspberrypi.local's password:」などとユーザー「pi」のパスワードを求められたら「raspberry」と入力します。
ログアウトする場合は
$ exit
シャットダウンするばあいは
$ sudo shutdown -h now
です。
Python 3 のバージョン確認
RaspbianにはPythonがはじめからインストールされています。
ただしpythonコマンドではPython 2が実行されます。
Python 3の実行にはpython3コマンドを使います。
詳細なバージョンを確認してみましょう。
$ python3 --version Python 3.7.3
pipのインストール
Pythonパッケージのインストールのためにpipをインストールしておきましょう。
$ sudo apt-get update $ sudo apt-get install python3-pip
pipについてもpip3コマンドを使うことになります。
例えばapschedulerをインストールするのであれば以下のコマンドになります。
$ pip3 install apscheduler
プログラムの配置
コマンドプロンプトからscpコマンドでRaspberry Piにファイルをコピーできます。
カレントディレクトリーにある「stock-price-watcher」ディレクトリー以下を
ホームディレクトリー内にコピーする場合は
> scp -rp stock-price-watcher pi@raspberrypi.local:~/
パッケージのインストール
プログラムの実行にあたって必要なパッケージをインストールします。
$ pip3 install apscheduler $ pip3 install bs4 $ pip3 install dataclasses_json
環境変数の設定
プログラムの実行にあたって必要な環境変数の設定をします。
例えば環境変数「GMAIL_USER」に「hoge@gmail.com」をセットするのであれば以下のコマンドになります。
$ export GMAIL_USER=hoge@gmail.com
Pythonプログラムの実行
実行したいプログラムの*.pyファイルがあるディレクトリーに移動してから
python3コマンドを使ってプログラムを実行します。
$ cd ~/stock-price-watcher
$ python3 main_multiple_code.py
Ctrl + C キーでプログラムを停止します。
Pythonプログラムのバックグラウンド実行
上記の方法で実行した場合ログアウトとすると
プログラムの実行が終了してしまいます。
ログアウトしても終了しないようにするためにはバックグラウンド実行をする必要があります。
具体的には以下のコマンドでバックグラウンド実行します。
$ nohup python3 main_multiple_code.py &
バックグラウンド実行したプログラムを停止する場合は
まず以下のコマンドでプロセスの一覧を表示して
停止したいプロセスのプロセス番号を確認します。
$ ps -fu pi
プロセスのプロセスID(PID)がわかったら
それを使ってkillコマンドでプログラムを停止します。
例えばPIDが17870であれば以下のコマンドで停止します。
$ kill 17870
これでRaspberry Pi上でPythonプログラムを実行することができるようになりました。
次回から本題のビットコインに入っていきたいと思います。