今回は、RaspberryPiのプログラムを動作させるための環境を作成していきます。
先日と同様に以下のBlogを参考に進めていきます。
電子ペーパーでGoogleと連動したカレンダーを作る
上記Blogの記事通りに作成すれば問題なく動く環境ができるのかもしれませんが、私がPoetryの使いかたがよくわからないので、別の方法で構築していきます。
必要なパッケージは上記Blog様がgitに環境を上げて頂いているのでそちらを参照すれば問題なくわかりますので、別の方法で構築していきます。
まず、RaspberryPiにターミナルよりSSHで接続します。
RaspberryPiには初期でPython環境は入っていますので、その環境をそのまま利用します。
ただ、パッケージのバージョンとか色々あるので、一応、仮想環境として作成していきます。
以下のコマンドで仮想環境を作成します。
コマンドは/home/hogeのディレクトリで実行します。
※hogeはユーザ名。
$ python3 -m venv e-cal && source ~/e-cal/bin/activate
このコマンドで、/home/hogeの下にe-calという仮想環境のディレクトリが作成されます。
また、その仮想環境を利用できるようになります。
ここから先、必要なパッケージをインストールしていきます。
sudo apt install libatlas-base-dev
python3 -m pip install numpy
python3 -m pip install pillow
python3 -m pip install google-api-python-client
python3 -m pip install google-auth-httplib2
python3 -m pip install google-auth-oauthlib
sudo apt-get install git
git clone https://github.com/mktia/e-calendar.git && cd ./e-calendar
python3 -m pip install RPi.GPIO
python3 -m pip install spidev
python3 -m pip install pytz
ここまでインストールできたら、取り合えず動く状態にはなっています。
あと、必要なのはGoogleCalendarAPIの証明書?です。
また、Googleカレンダーは認証にWebブラウザが必要みたいですので、RaspberryPiのCUI環境飲みだと認証を通せません。。。
なので、とりあえず、MacやWindowsの環境で認証を通した後、そのファイルをRaspberryPiに配置することで回避したいと思います。
必要なのは、GoogleAPIの認証情報をJSONファイルに保存した「credentials.json」ファイルとこの環境で初回実行時にWebでの認証が終わった後、配置されるtoken.pickleというファイルです。
こちらのサイト様がわかりやすかったです。
ちなみに、MacやWindowsの環境構築についても、上記同様のパッケージをPyenvやAnacondaなどで作成すれば、上記プログラムは動作します。
さて、上記2ファイルを配置したら実行してみます。
実行コマンドは以下のとおりです。(実行するパスはe-calendar直下です。)
$ python landscape.py
このコマンドを実行すると、e-calendar配下に「demo_880x528.bmp」というファイルが作成されればOKです。
ちなみに、このプログラムは私的には何箇所か改造しております。
改造点は以下のとおり
1.予定の日付時刻を日本の時刻で表記させる。
2.画像サイズを800x480にする。
3.今日の日付に丸を描く。
4.1日が日曜日の際に空白の1行が表示されないようにする。
5.祝日ではないイベント日(七五三など)は平日と同じ表記にする。
やはり元プログラムを用意して頂けていると自分なりにアレンジするのも楽ですね。
本当にありがたい限りです。
mktia's note様ありがとうございます!
とりあえず、動くところまでの環境構築はできたので、あとは、電子ペーパーが届くのを待つだけです。
Aliexpressで注文したので、来週には届くと思います。
届きましたら電子ペーパーの接続やテストなどをやっていきたいと思います。