Raspberry上のPythonで日の出、日の入りを計算する

Pythonには、’ephem’ という日の出や日の入りの時刻を計算する便利なライブラリが存在する。

ephemのインストール

raspberry pi zeroにログインして、ライブラリを探す。

$apt-cache search ephem

この中から、Python3のライブラリを探すと、python3-ephemというのがある。(python3-ephem – Compute positions of the planets and stars with Python 3) これをインストールする。

$sudo apt-get install python3-ephem

pip3 list で、インストール出来たかどうか確認する。3.7.6.0 がインストールされた。

自宅の緯度経度を、googleマップから得る。

lat = xxxxxx, lon=yyyyyyy

日の入り、日没時刻から玄関灯の点灯・消灯時刻を求める

ephemの next_rising関数や next_setting関数で、現在時刻から見た、次の日の出と日の入りを計算し、ローカルタイムに変換する。

さらに、玄関灯の点灯を「日没の30分前」、消灯を「日の出の30分後」とするための補正計算を行う。以下のコードを参照。

#!/usr/bin/python3

import ephem
import datetime

home = ephem.Observer()
home.lat = '35.324773'
home.lon = '136.787346'
home.date = datetime.datetime.utcnow()
sun = ephem.Sun()

next_off = ephem.localtime(home.next_rising(sun)) + datetime.timedelta(minutes=30)
next_on = ephem.localtime(home.next_setting(sun)) - datetime.timedelta(minutes=30)
print("Next light-off time: ", next_off)
print("Next light-on time: ", next_on)

これで、自宅の緯度・経度に於ける、日の出、日没時刻をもとにした、玄関灯の点灯・消灯の時刻が得られる。

照度計を用いた点灯・消灯の制御の方が簡単かもしれないが、興味として別情報からのコントロールを試みるのが目的。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください