Skip to content

電子ペーパーを買ったので、Googleカレンダーから予定を表示してみる

License

Notifications You must be signed in to change notification settings

RyoheiTomiyama/e-paper-calendar

Repository files navigation

e-paper-calendar

ラズパイと電子ペーパーを使って、予定とカレンダー、天気情報を表示させる。

800x480

Dependency

Setup

以下の作業は、ラズパイに入れる前にパソコンから行って下さい。

GoogleカレンダーにアクセスするためのGCPアプリの作成と認証情報の作成

  1. GCPアプリを作成
  2. Google Calendar API を有効にしておく
  3. OAuthクライアントID(デスクトップアプリ)を作成
  4. jsonをダウンロードして、credentials.jsonにリネームして、./oauthディレクトリに格納

OAuth同意画面の公開ステータスを本番環境にしないと、7日間で認証切れになってしまうので注意

OpenWeatherAPIキーの取得

以下のページからアカウント登録(無料で利用できます) https://home.openweathermap.org/users/sign_up

登録したらMy API Keysから、Keyをコピー .envファイルをルートディレクトリに作成

OPEN_WEATHER_API_KEY=$YOUR_API_KEY

天気情報を取得したい軽度緯度を設定

https://openweathermap.org/find OpenWeatherのサイトから取得したい場所を検索(英語で検索すると良い)

検索結果から得た軽度緯度を.envに追加

LATITUDE=$YOUR_CITY_LAT
LONGITUDE=$YOUR_CITY_LONG

テスト実行(Google認証を通す)

main.pyIS_LOCAL=Trueのコメントアウトを外す

# 開発中に画像を書き出してテストしたいときは、コメントアウトを外す
IS_LOCAL = True   # <---ここのコメントアウトを外す
$ poetry install
$ poetry run python main.py

実行すると、Google認証のためにブラウザが開かれる
カレンダー情報を取得したいアカウントでログイン

認証完了したら、oath/token.jsonが作成されている
ブラウザは閉じて大丈夫です

実行が正常に終了したら、`output/`に電子ペーパーに表示したい画像が生成されていれば成功

Usage

続いてラズパイでの使い方

ラズパイに接続

$ ssh raspi

Poetryのインストール

$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -

$ vim ~/.bashrc
# 1行追加
PATH=$HOME/.poetry/bin:$PATH;

$ source ~/.bashrc

$ poetry --version
Poetry version 1.1.7

(公式にあるcurl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python -だと上手く行かなかった)

Setupで作業したデータをラズパイに入れる

$ git clone https://github.com/RyoheiTomiyama/e-paper-calendar
$ cd e-paper-calendar

Setupで作成したcredentials.json token.json .env等 を追加する

$ scp -r ./oauth/ raspi:~/e-paper-calendar/oauth/
$ scp -r ./.env raspi:~/epaper/e-paper-calendar/.env
$ scp -r Fonts/ raspi:~/epaper/e-paper-calendar/Fonts/

インストール

$ sudo apt-get install --fix-missing python3-dev python3-setuptools libjpeg-dev
$ pip install Pillow

--fix-missingを付けないとCannot initiate the connection to [raspbian.raspberrypi.org](http://raspbian.raspberrypi.org/) になった。

$ poetry install

# ラズパイだけで使うパッケージのインストール
$ poetry shell
.venv > $ pip intall spidev
.venv > $ pip install rpi.gpio

Cronの設定

cron.shを実行できるように権限を変更

$ chmod 777 ./cron.sh

エラーログを入れておくファイルを作成

$ sudo touch /var/log/e-calendar.log
$ sudo chmod 666 /var/log/e-calendar.log

cron設定

$ crontab -e
# メール送信不要なので
MAILTO=""

# 電子ペーパー 1時間ごとに実行
0 * * * * sh /home/pi/epaper/e-paper-calendar/cron.sh > /var/log/e-calendar.log 2>&1

About

電子ペーパーを買ったので、Googleカレンダーから予定を表示してみる

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published