Skip to content

mendoitarou/Desk_Smart_Calendar

Repository files navigation

これは何?

これは卓上スマートカレンダーを自作しよう!と勢いで作ったものです。

実はpwnagotchi用に買ったRaspberry Pi Zero WとWaveshare E-ink Display(電子ペーパー)が余ってたのでいい感じに使ってやろうということで作りました。

(モバイルバッテリーを持ってないのと3Dプリンタがないのでケースが作れなくて常用を諦めました。)

一度作ろうとこのレポジトリを作ってからしばらく放置してましたが、テスト期間でやる気が出てきちゃったので一晩で作りました。(何してんだろ)

(自分用に作ったので公開するつもりはなかったのですが、せっかくなので公開しときました。)

このプログラムを使ってもいい?

ご自由にお使いください。....と言いたいところですが、気象庁さんのJSONファイルを取得してきてるので必ず負荷の少ない頻度で実行してください。

(一応ライセンスはApache-2.0に設定しています。)

作りも悪いので、見た目もあまりよくないしで実用性があるかはわかりません。特にニュースなんかは文字数が少なすぎて実用性皆無です。

というか、一日に何度も更新する必要はないと思うので一日に一回か二回でいいと思います。(私は0時と5時に実行しています。)

使い方

動作環境

このプログラムはRaspberry Pi Zeroで実行されることを想定しています。

また、RaspberryPi OSのLegacy(32bit)でのみ動作します。(waveshareさんのライブラリが新しいOSでは動かないです。)

(蛇足ですが、軽量化のためにLiteをお勧めします。)

電子ペーパーはこちら(V4)を想定しています。

インターネットにつながっていないと動作しません。

インストール

はじめに、いくつかのパッケージをインストールします。

$ sudo apt-get update
$ sudo apt-get install python3-pip python3-pil python3-numpy python3-gpiozero

次に、必要なライブラリをインストールします。

$ sudo pip3 install spidev Pillow requests feedparser

次に、SPIを有効化します。

$ sudo raspi-config

上記のコマンドで設定を開き、3 Interface OptionsからI4 SPIを選択し、Yesで有効化します。

時間が正しいかを確認します。

dateコマンドで日本標準時に設定されているかどうか、日付・時刻が正しいかを確認しておきます。

このプログラムをダウンロード

gitでクローンしてきます。(zipファイルでダウンロードしてきてもかまいません。)

(gitがインストールされていない場合は、aptなどでインストールしてください。)

$ git clone https://github.com/mendoitarou/Desk_Smart_Calendar.git

コンフィグの変更

.envは実は機能していません。(後々対応するかもです。めんどくさくなっちゃった。)

image_generate.pyの上の方に# ===== CONFIG =====で囲まれている箇所がコンフィグです。

area_codeに表示させたい天気予報のエリアコードを指定します。(都道府県です。)

デフォルトは高知県(390000)になっています。

エリアコードはこちらが参考になりそうです。

is_news_showではニュースを表示するかを設定できます。(TrueFalse)

news_source_nameでは表示するニュースの取得元を変更できます。(nhk, itmedia, virtual_life_magazine, piyologから選べます。)

お天気アイコンの用意

お天気アイコンの用意を手動でする必要があります。

権利関連が大丈夫なのか心配ではありますが、気象庁さんのお天気アイコンを使わせていただきます。

download_Image.pysvgをダウンロードしてきて、手動でpngに変換してください。(png変換の自動化がうまくいかなかったので手動でお願いします。)

デフォルトではweatherCodes_Imageに保存されています。ここに置かないとメインのコードが動かないので注意。

定期実行を設定

cronを使って、定期的に実行させます。

はじめにpython3のパスを調べます。

$ which python3

表示されたパスをメモしておきます。

crontab -eでエディタを開きます。

次のように設定します。

0 0,5 * * * cd {クローンしたgitのパス}; {python3のパス} {クローンしたgitのパス}/main.py

これはあくまで例です。

ちなみにこの例では、0時0分と5時0分に実行されます。(これは日付が変更される時間と気象庁さんが天気予報を公表?する時間に合わせています。)

手動で電子ペーパーの表示をリセットしたいとき

リセットだけするプログラムを用意しておきました。

display_reset.pyを実行で表示がリセットされます。

お借りしたもの

電子ペーパーのライブラリ:

GitHub: waveshareteam/e-Paper

IPAフォント:

IPAexフォントおよびIPAフォントについて | 一般社団法人 文字情報技術促進協議会

About

Handmade Smart Calendar

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages