Raspberry Pi Zero W でドテン君
0.まえがき
AKAGAMIさんのドテンくんを実行する環境としてAWS Cloud9が推奨されています。Cloud9はそれはそれは素晴らしいのですが、無料期間を過ぎると毎月数ドル程度の料金がかかることもあり、Raspberry Pi Zero W(以下Zero)を購入して自前で実行環境を構築することにしました。
やりたいこと
・Zeroでドテン君を実行する。
・普段使用してるPC(以下母艦)からZeroにログイン
なお、筆者はラズパイどころかPythonもコーディングも初心者です。おかしなところ、間違っているところがあるかもしれません。ご容赦ください。
実行は自己責任でおねがいします。
1.環境など
・Raspberry Pi Zero W
・microSDカード 8GB
・microUSBケーブル
・Windows10 (母艦)
2.セットアップ
2-1 Raspbian書き込み
公式からRaspbianをダウンロードし、Etcherというソフトを使用してOSイメージをmicroSDに書き込みます。
2-2 SSH・wifi設定
書き込み後のmicroSDカードにはbootというパーティションができるので、そこにsshとwpa_supplicant.confという2つのファイルを作成します。後者の内容は下記のようにして保存、前者は空のままで構いません。
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="SSID名"
psk="暗号化キー"
}
3.起動とSSH接続
microSDカードをZeroに挿入、microUSBケーブルで電源を供給すると起動します。LEDが点灯状態になると起動完了です。数分かかります。
SSHで接続するにあたって、ホスト名かIPアドレスのどちらかで接続することが可能ですが、Windwos標準ではホスト名での接続はできないようです。のでZeroのIPアドレスを確認することになります。
IPアドレスの確認方法はいくつかありますが、サクッと母艦でAngry IP Scannerをつかうと楽です。IP範囲を入力してスキャン、Hostnameにraspberrypi.localとでているIPがそれです。
母艦でターミナルソフト(例:TeraTerm)を立ち上げ、IPアドレスを入力して接続します。ユーザー名pi、パスワードはraspberryです。
4.Zero設定
下記コマンドで各種設定を行えます。
$ sudo raspi-config
1.Change User Passwordからパスワードを変更します。必須ではありませんが、セキュリティ的にやっとくべきです。
3.Boot Option → B1 Desktop / CLI → B1 Console と選択しCUIで起動するようにします。
他にも色々設定できますが、最低限これくらいでいいと思われます。最後にFinishを選択すると再起動を求められますのでYesで再起動します。
4.ライブラリのインストール
python、pipは既にインストールされていました。
ライブラリをインストールします。ドテン君のバージョンアップなどに伴って必要なライブラリが変更されるかもしれませんので、AKAGAMIさんのノートを必ず参照してください。
pipをupgradeする必要があります。(2018/8/24追記)
ecoバージョン対応でpybitflyerのインストール追加(2018/10/6追記)
$ pip install --upgrade pip
$ pip3 install requests
$ pip3 install ccxt
$ pip3 install pytz
$ pip3 install pybitflyer
5.ファイルの転送
TeraTermで母艦からZeroにファイルを転送します。TeraTermのウインドウに転送したいファイル(例:dotenkun.py)をドラッグ・アンド・ドロップします。転送先パスを入力して、SCPボタンで転送できます。
最新ソースコードや派生コードはLOUNGEでダウンロードできますので、母艦で編集してD&Dする方が、慣れないLinuxのエディタを使うより良いかも知れません。
権限付与(chmod)も忘れずに。
6.ログアウトしてもプロセスを継続させる
ここまでやればドテン君を実行できるはずですが、そのままではログアウトできません。ログアウトしてしまうとプロセスが終了してしまうからです。
そこでscreenコマンドを使います。下記コマンドでインストールします。
$ sudo apt-get install screen
新しいセッションを開始します。
$ screen
新しいセッションが開いたら、ドテン君を実行します。実行できたらCtrl + aのあとに続いてdを押します。元のセッションに戻りました。
ドテン君のセッションに戻るには下記コマンドです。
$ screen -r
screen -rコマンドとctrl +a → d でセッションを行き来できます。最初のセッションに戻りログアウトしてもプロセスは生き続けます。再度ログインしてscreen -rコマンドで確認します。