Raspberry Piで部屋の温度を長期間記録する(データベース編)

今回Raspberry Piで部屋の温度を記録するに当たって、おおよそ以下のような設計を考えました。

  1. Raspberry Piで部屋の温度を測定する
  2. データベースに測定時刻と共に温度データを蓄積する
  3. データベースの情報を元にグラフを描画する

1の手順については準備編で紹介した書籍、”Raspberry Piで学ぶ電子工作”で紹介されているので、それを流用します。今回のエントリは2の部分です。

SQLiteによるデータの蓄積

簡易なデータベースとして今回はSQLiteを使うことにしました。SQLiteはローカルでの利用に向いた手軽なデータベースとしてよく使われているものだそうです。

コードは以下のような感じになりました。

<Python>
#UTF8
import smbus
from time import sleep
import sqlite3
import datetime

#温度測定プログラム"Raspberry Piで学ぶ電子工作 プログラム7-1を流用"
#変数"InputValue"に温度が格納される

#データベースファイルが存在しない場合は作成
dbpath = '/home/pi/Documents/roomtemp_db.sqlite'

#コネクション生成
connection = sqlite3.connect(dbpath)

#カーソル生成
cursor = connection.cursor()

#テーブルが存在しない場合は作成
#ID、日付時刻、温度の3列で構成
cursor.execute("CREATE TABLE IF NOT EXISTS roomtemptable (id INTEGER PRIMARY KEY AUTOINCREMENT, datetime TEXT, temp REAL)")

#現在時刻を取得
nowdt = datetime.datetime.now()
nowdt = nowdt.strftime('%Y%m%d-%H:%M:%S')

#SQLコマンド実行
sql = 'insert into roomtemptable (datetime, temp) values (?, ?)'
data = (nowdt, inputValue,)
cursor.execute(sql, data)
connection.commit()

connection.close()

SQLiteの面白いと思ったところはコード内でファイル作成から行えるところです。既に同名のファイルが存在した場合は上書きせずにスキップしてくれるので、作る方としては楽です。これはテーブルについても同様です。

SQLコマンドの実行はcursorインスタンスのexecuteメソッドで行います。SQL文のパラメータはタプル(データの組)としてexecuteメソッドの第2引数に設定することができます。他にもパラメータの使い方はあるようなのですが、何となく私はこの記法が理解しやすかったのでそうしました。

日付時刻の処理

少々詰まったのは日付時刻の処理で、取得したdatetime型の情報を文字列型に変換する方法が分からずに苦労しました。結局datetimeオブジェクトのstrftimeメソッドで変換可能なことが分かったのでそれを使いました。

まとめ

このプログラムを実行することでデータベースを作成し、その中のテーブルに日付時刻と共に温度情報を書き込むことができます。

後はこのプログラムを定期的に実行すればOKです。次回のエントリではcronを使ってこのプログラムを自動実行する方法を整理してみたいと思います。

参考リンク

sqlite3—SQLite データベースに対する DB-API 2.0 インターフェース

datetime—基本的な日付型および時間型

[Python.org]

Pythonのドキュメント群は非常に分かりやすい日本語情報があるので、何と言ってもオフィシャルの情報が頼りになりました。

Raspberry Piで部屋の温度を長期間記録する(準備編)

部屋の環境測定のために、温度を一定時間ごとに長期間モニタリングする方法はないかと考えていました。多少のプログラミングの心得があればRaspberry Piで実現可能らしいことが分かったので材料を準備して試してみることにしました。

用意したもの

  • 講談社 Raspberry Piで学ぶ電子工作(書籍)
  • 講談社 Raspberry Piで学ぶ電子工作用パーツセット
  • Raspberry Pi4 ModelB(8GB)
  • Raspberry Pi4用ケース
  • HDMIケーブル TypeDオス-TypeAオス
  • スイッチングACアダプタ(USB TypeC)5.1V-3.8A
  • MicroSDHCカード
  • Raspberry Pi Zero WH
  • Raspberry Pi Zero WH用ケース
  • スイッチングACアダプタ(USB MicroB)5V-3A

Raspberry Pi本体が2種類あるのはPi4が開発機でZero WHが本番機という構成のためです。開発機が本番機を兼ねる場合は上記リスト中下側の3行は不要になります。

今回は本体を2台用意しているので正味の調達価格は2.6万円くらいになってしまいましたが、とりあえず1台で始めるなら2万円くらいで書籍やパーツも含めて一通り揃うと思います。

書籍について

今回入門書として使った”Raspberry Piで学ぶ電子工作”はとても分かりやすく、かなりの良書だと思いました。

Linux系のOSやプログラミングが一切未経験という方が読んでも分かるように説明がされており、分かりやすい説明の見本としても秀逸なのではないかと思います。

そしてこの書籍に関しては書籍の内容と連動したパーツセットが秋月電子通商で販売されていて、これも便利です。電子工作部品は規格が分かりにくく、慣れていないと必要な部品を揃えるのが難しいと思います。

私は過去に作ろうと思った物の部品に発注忘れや発注間違いがあって何度も注文したり、必要な部品の最低発注数量が数百個となっていたりで困った記憶があります。

この点、この書籍連動パーツセットを買えば過不足なく部品が入っていて書籍の内容を全てこなせますし、書籍の内容を終えたら部品を別の用途にそのまま転用できるので無駄がなく便利です。いきなりアラカルトで部品を揃えるより確実にオススメできます。

プログラミングの入門にも

書籍の内容はRaspberry Pi上で動くPythonのプログラムを使ってLEDを光らせたり画像を取得したりするといった内容です。

現実世界にプログラムで指示したことが反映されるので、学習初期にありがちな”プログラムで何をしたらいいか分からない”や”プログラムで文字が表示されても別に面白くない”といった問題を解決できます。学習者のモチベーション維持に非常に良いのではないかと思います。

ハリオ 耐熱ガラスボウル3個セット

最近オーブンレンジが新しくなったこともあって、大きな容器を入れて電子レンジ料理ができるようになったので大きめの耐熱容器を買いました。

1,500mlの中サイズでも全高11.5cmあるので、大きく感じます。

コーヒー器具などで有名なハリオの耐熱ガラスボウルセットです。

ガラス製ながら熱湯OK、電子レンジOK、オーブンもOKという強靱なスペックです。サイズは900ml、1,500ml、2,200mlの3個セットで、1人用であれば1,500mlが使い勝手が良いのではないかと思います。

電子レンジ料理の場合ふきこぼれをケアする必要があるので、多少大きめでも決して無駄にはなりません。

3つスタックしてコンパクトに収納できるのもよく考えられていると思います。

ATOKバージョン32.2.4の更新

先日大規模な更新のあったATOKに累積アップデートが来ていたので適用してみました。

普段のアップデートのペースから考えるとずいぶん間隔の短いアップデートだったのでアップデートの内容が気になりました。

サポートページから更新情報を確認したところ、つい先日リリースされたWindows11用の新しい”メモ帳”でATOKが使えない場合がある不具合があったので、それに対応したとのことでした。

Windows11用のメモ帳も出て1-2日というところだと思いますが、ATOK側のフォローはなかなかのスピードだと思います。

Windows11の音楽再生アプリがリニューアル

Windows11用の音楽再生アプリがリニューアルし、”Grooveミュージック”から”メディア プレーヤー”になりました。

Windows 11の新しい「メモ帳」や「メディア プレーヤー」が正式リリース

[PC Watch]

歴代のWindows付属の音楽再生アプリはWindows7までは”Windows Media Player”の各バージョン、Windows8では”ミュージック”というモダンアプリになり、Windows10では”Grooveミュージック”と移り変わってきました。

Windows11では当初Grooveミュージックを引き継いでいましたが、ここに来てWindows11用にリニューアルされたアプリが投入されたことになります。

UIデザインがWindows11のデザインに準拠しているほか、アプリとしての機能はシンプルに一通りまとまっているという印象です。

ちなみにアプリ側で再生デバイスを指定することはできないので、ASIOドライバ経由で再生するといった凝ったことはできないようです。

NE-BS658-K料理集による運転試験

新しくなったオーブンレンジに内蔵されている料理集を使って一品作ってみることにしました。メニューは和・洋・中と各ジャンルから多数収録されています。

今回は和食から五目豆を選んでみました。

ガラス製の耐熱ボウルに素材と調味料を入れます。レシピに関しては取扱説明書にレシピ集が付いているので、それに従えばOKです。今回大豆に関しては長野県産の乾燥大豆を入手し、水で戻して使用しました。

後は電子レンジに入れ、料理集からレシピを選んで調理を開始するだけです。五目豆は前半600Wで沸騰するところまで加熱し、その後150Wでしばらく煮るという手順を自動的に行ってくれるようです。正味の調理時間は30分ほどでした。

こんな感じにできあがりました。素材の温度が低かったのか少々水気が多く感じたので、多少追加で加熱して煮詰めました。

味付けが決まっていれば後は放っておくだけで勝手に完成するので、最初に仕込んでその間に別の準備を進めておくと時間の無駄がなく良さそうです。今回のようなガス調理だと火の番が必要な料理においては特に便利です。

白馬ジャンプ競技場

折しも北京で冬季オリンピックが開催中なので長野オリンピック関連施設を1つご紹介しようと思います。スキージャンプ競技の会場になった白馬ジャンプ競技場です。

JRの白馬駅からほぼ真西方向、八方尾根と呼ばれているエリアの一角にあります。現在でも年間を通してジャンプ競技の練習やスキーイベントに使用されているとのことです。

一般の観覧も可能で、入場料を支払うことで写真右奥に見えているタワーまでリフトで移動することができ、タワー内をエレベーターで上ることができるそうです。タワーからジャンプ台のスタート地点に移動して選手と同じ目線を体験することも可能だということです。

そもそもスキージャンプ競技場という存在がある程度希少ですが、この白馬ジャンプ競技場は国内のスキージャンプ競技場で唯一ラージヒルとノーマルヒルが併設された施設だということです。

割とアクセスは良い施設なので、白馬村周辺の観光の際はルートに組み込んでみると面白いと思います。遠くからジャンプ台を見るだけでもかなり迫力があって面白いです。

チェーンウォッシャーの交換用ブラシセット (Parktool RBS-5)

自転車のチェーンウォッシャーのブラシを交換しました。チェーンウォッシャーとして使っているのはパークツールのサイクロン(CM-5)という製品で、消耗品としてブラシのセットが販売されています。

器具自体はこんな見た目です。中にブラシが入っています。
ブラシと水切り用のスポンジが一式になっています。

ブラシは使っていると歯ブラシと同様に先端が開いてきて洗浄の効率が悪くなってしまいます。たまに交換してあげると良い状態が復活します。

右側が使用後、左側が新品です。

ブラシを外してみるとやはりかなり先端が開いていることが確認できました。水切り用のスポンジもチェーンが接触することで削れて小さくなってしまっています。

このようにチェーン洗浄機の消耗品が販売されていて交換できるのはパークツールの特徴です。本体が無駄にならず、長く使えて良いと思います。

NE-BS658-Kオーブン運転試験

新しくなったオーブンレンジのオーブン機能をテストするために焼き芋を焼いてみました。

NE-BS658-Kにはプリセットされているレシピがあり、焼き芋もその中に含まれています。なので手順としてはサツマイモを洗って水気を拭き取り、適当なサイズに切ってオーブンレンジに入れ、プリセットされた調理メニューを選ぶだけということになります。

調理には約50分ほどかかりました。上下にヒーターが付いているということもあってか、まんべんなくきれいに加熱されています。調理時間についても完全におまかせでしたが、ちょうど良い具合に焼けていて非常に満足です。

おまかせではありながら仕上がりが弱・標準・強の3段階から選べるので、ある程度までならお好みの焼き具合を反映することもできます。

プリセットで良い出来のものが作れるのは非常に便利です。オーブン機能の試験は上々の結果でした。

信州開田高原納豆

ご当地納豆をまた1つ見つけたので買ってみました。信州開田高原納豆という木曽方面の大豆を使用した納豆です。製造元は道祖神納豆でおなじみの村田商店です。

”シュウレイ”という品種の大豆が使われているということです。シュウレイについて調べてみたところ、主に富山県で栽培が盛んな品種であるということでした。長野県でも若干量生産されており、長野県産はパッケージの記載通り希少だと思われます。

特徴としては大粒であることとタンパク質含有量が高いことが挙げられるそうです。そのため、豆腐の原料としてよく使われるそうです。

確かに豆の1粒1粒は非常に大きいです。食べてみるとふっくらというよりは密度が高く、実が詰まっているという食感で食べ応えがあります。硬めの納豆が好きという方にオススメの銘柄です。