目次
見た目と仕様
- 600秒ごとに価格を更新
- 2.7インチHATの左側のボタン(画面に反映されるのに7秒くらいかかる)
- ボタン1:次の暗号資産を表示する
- ボタン2:画面表示を90度回転する
- ボタン3:白と黒を逆にする
- ボタン3:法定通貨を切り替える
- config.yamlで以下の設定を自由に変更
- cycle:次の暗号資産を自動で表示するか
- inverted:標準で白と黒を逆にするか
- orientation:初期の画面表示角度
- currency:価格データを表示する暗号資産の一覧
- exchange:どの取引所のデータを表示するか
- fiatcurrency:価格をどの法定通貨で表示するか
- sparklinedays:グラフに表示するデータの日数
- updatefrequency:何秒ごとに価格を更新するか
必要なもの
- Windowsパソコン(またはMac)
- Raspberry Pi Zero WH
- e-Paper HAT(どちらか好きな方)
- MicroSD Card
- Mini-HDMI to HDMI 変換器
- Micro-USB to USB 変換器
- Wifi環境
1. Raspberry Pi の初期設定
Raspberry Pi に Raspberry Pi OS というラズパイ公式のOSを入れ、SSHの設定をします。
- Windowsパソコンで公式サイトからRaspberry Pi OS Liteをダウンロードし、ダウンロードが終わったらZipファイルを解凍します。
- Rufusなどの書き込みソフトを使い、解凍したファイルをMicroSDに入れます。書き込みが終わってもMicroSDは引き続きWindowsパソコンに刺したままにします。
- MicroSDをWindowsパソコンから取り出し、ラズパイに刺します。HDMI変換器とUSB変換器もラズパイに接続し、モニターとキーボードに接続します。USBポートは2つありますが、HDMIに近い方がキーボード用で、HDMIから遠い方が電源用です。電源用のケーブルを刺すと自動でラズパイが起動します。
- ラズパイを初めて起動すると勝手に初期インストールが開始されます。インストールが終わったらラズパイにログインします。初期ユーザー名は「pi」でパスワードは「raspberry」です。
- Wifi設定用のファイルを開きます。
cd /etc/wpa_supplicant
sudo nano wpa_supplicant.conf
Wifiの設定を追加して保存します。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="SSID"
psk="password"
key_mgmt=WPA-PSK
}
- 再起動します。
sudo reboot
- OSのパッケージを最新化します。Raspberry Pi Zero WHの処理速度は速くないので、そこそこ時間がかかります。
sudo apt update && sudo apt upgrade -y
- ラズパイに割り振られているIPアドレスを以下のコマンドで確認します。
wlan0
のinet
のピリオドで区切られた4つの番号がIPアドレスです(例:192.168.0.147)。
ifconfig
- Wifiのデフォルトゲートウェイを確認します。Windowsパソコンのコマンドプロンプトで以下のコマンドを実行したら分かります(例:192.168.0.1)。
ipconfig /all
- ズパイでIPアドレスを固定するためのファイルを開きます。
sudo nano /etc/dhcpcd.conf
一番下に以下の行を追加します。Ctrl+O、Enter、Ctrl+Xを順番に押して編集画面を閉じます。
interface wlan0
static ip_address=192.168.0.95/24
static routers=192.168.0.1
static domain_name_servers=8.8.8.8
SSHを起動します。
sudo systemctl start ssh
sudo systemctl enable ssh
sudo systemctl status ssh
- Windowsパソコンのコマンドプロンプトで以下のコードを実行し、piのパスワードを入力します。
pi@raspberrypi
と表示されたらSSH接続が正常にできています。(ラズパイが個人情報などの大切な情報を含んでる場合はログインのセキュリティを上げた方がいいですが今回は必要ないです)
ssh pi@192.168.0.95 -p 22
2. e-Paperの初期設定
- 以下のコマンドでラズパイの電源を切り、MicroSDカード以外の接続されているケーブルを全部抜きます。
sudo shutdown -h now
- e-Paper HATをGPIO(40本のピン)でラズパイに接続し、電源ケーブルを再度差し込みます。SSHでWindowsパソコンから遠隔操作するので、HDMIとキーボードはラズパイに今後繋ぐ必要ないです。電源を付けてもまだe-Paper HATに何も表示されないので安心してください。
- ラズパイの設定画面を開きます。十字キーとエンターで「Interface Options」>「SPI」>「Yes」を選択します。SPIが有効化されたら「Finish」で設定画面を閉じます。(ここからの手順は公式サイトのガイドを参考にしています)
sudo raspi-config
- ラズパイを再起動します。
sudo reboot
- ライブラリ「BCM2835」をインストールします。
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
tar zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60/
sudo ./configure
sudo make
sudo make check
sudo make install
#For more details, please refer to http://www.airspayce.com/mikem/bcm2835/
- ライブラリ「wiringPi」をインストールします。
sudo apt-get install wiringpi
- ライブラリ「Python」をインストールします。
#python2
sudo apt-get update
sudo apt-get install python-pip python-pil python-numpy -y
sudo pip install RPi.GPIO spidev
#python3
sudo apt-get update
sudo apt-get install python3-pip python3-pil python3-numpy -y
sudo pip3 install RPi.GPIO spidev
- モジュール「waveshare_epd」をインストールします。
cd ~
sudo git clone https://github.com/waveshare/e-Paper
cd e-Paper/RaspberryPi_JetsonNano/python
sudo python3 setup.py install
3. 価格表示用のソースコードを設定する
- 必要なライブラリをインストールします。
sudo apt-get install git screen libopenjp2-7 libqt5gui5 python-scipy -y
sudo apt install libatlas-base-dev -y
- ソースコードのリポジトリをクローンします。
cd ~
git clone https://github.com/guregu321/btcticker.git
- クローンしたソースコードのディレクトリに移動し、必要なモジュールをインストールする。
cd btcticker
python3 -m pip install -r requirements.txt
- モジュールのPATHを通す。
export PYTHONPATH="${PYTHONPATH}:/home/pi/.local/bin"
4. 価格表示のスクリプトを実行してみる
- WindowsパソコンのコマンドプロンプトからSSHでラズパイに接続する。
ssh pi@192.168.0.95 -p 22
- screenセッションを開始する。
screen bash
- 価格表示のスクリプトを実行する。
cd ~/btcticker
python3 btcticker.py
# 2.13インチのHATの場合
python3 btcticker2in13.py
- 実行画面を出る場合はCtrl+A、CTRL+Dの順番に押す。
- 実行画面に戻る場合は以下のコマンド。
screen -r
- ラズパイの電源を切るときはいきなり電源ケーブルを抜くよりもシャットダウンを先にした方が安全。
sudo shutdown -h now
5. 電源コードを繋ぐだけで勝手にスクリプトを実行されるようにする
- 自動実行用のスクリプトファイルを作成する。
cd ~
sudo nano autorun_ticker.sh
- スクリプトの中身を書き、Ctrl+O、Enter、Ctrl+Xを順番に押して編集画面を閉じる。
#!/bin/bash
# "btcticker"という単語を含むプロセスが何個実行されているかカウントする
count=`/usr/bin/ps ax | /usr/bin/grep -v "grep" | /usr/bin/grep -c "btcticker"`
# もしカウント=0ならbtctickerを起動する
if [ $count = 0 ]; then
/usr/bin/python3 /home/pi/btcticker/btcticker.py
fi
- Cronの編集画面を開く。
crontab -e
- 以下の行を最後に追加して1分毎に作成したスクリプトが実行されるようにする。Ctrl+O、Enter、Ctrl+Xを順番に押して編集画面を閉じる。
* * * * * /usr/bin/bash /home/pi/autorun_ticker.sh
- 試しに電源ケーブルを差し直し、5分以内に価格表示が更新されるか確認する。