MUDAなことをしよう。MUDAなことをしよう。APIで取得した天気情報は今のところその場限りで捨ててしまっています。Pi上でデータベースを扱ってみることにしました。データベースについてはほぼ初心者なのですが、これについては先人が多くいるハズなので、おそらくそんなに困ることはないでしょう。データベースもMySQLやらPostgreSQLやらMongoDBやらいろいろあると思いますが、ここでは一番簡単にインストールできそう且つメジャーなMySQLを使うことにします。以下のサイトを参考にさせていただいています。Pi]MySQLの基本操作インストールはこんな感じで。mysql-server簡単。Piへのログイン用と同じにしておきます(本当はちゃんと考えないといけないのかもしれませんが)。DBにアクセスしてみます。パスワードは先ほど入力したroot用のパスワードを入力します。quitByemysqlクライアントに入ってから”status”で設定を確認しています。文字コード(上記でlatin1になっているところ)はUTF-8に統一しておいた方が日本語を扱うときにラクなようなので、UTF-8に変更します。これについては、こちらの手順に従って、”/etc/mysql/my.cnf”に以下のように追記していきます。utf8...[mysqldump]......default-character-set=utf8設定を変更したらMySQLを再起動し、デフォルトの文字コードが変更されていることを確認します。確認できたので、データベースを作っていきます。以下では、現在存在しているデータベースを確認してから、”myhome_db”という名前のデータベースを作成して、確かに追加されているかどうかを確認しています。次に、使うDBを選択して、テーブルを作成します。今回は”weather_tb”という名称で、以下の項目を用意することにします。NULL良い主キーの設定方法についてはまだ勉強不足でよくわかっていないのですが、ここではdateとtimeの組み合わせで主キーとしたいと思います。うまく作れたようなので、試しに適当なデータを突っ込んでみます。続いて、レコードの更新と削除を試します。更新と削除自体はうまくいったのですが、改めて結果を見てみると、テーブル名は”weather_tb”より”weather_forecast_tb”の方が良い気がしてきたので、テーブル名を変更します。これでとりあえずデータベースの準備と基本操作の確認できました。quit;でOKです。次に、PythonからのMySQLデータベースへのアクセスを試してみます。RaspbianのデフォルトのPython(2.7系)ならMySQLdbを使うのが定番だったようですが、これは自分のPython環境である3.5系には対応していないので、代わりにPyMySQLを使います。PyMySQLPyMySQLのページのサンプルをベースに、とりあえずテスト用に以下を作ってみました。connection.close()実行すると、こんな感じになります。一応、MySQLクライアントの方でも確認してみます。sec)mysql>うん、OKです。最後に、前に作ったhue天気予報のプログラムに上記のサンプルソースをマージします。本当に足しているだけです。3.5系想定なので、Python2.7系のときは20行目の”weather_data[‘forecasts’][0][‘telop’]”の後に”.encode(‘utf-8′)”をつける必要があるところだけ注意です。これで、毎回の天気予報の後にその日の天気予報の情報を残すことができるようになりました。ここ一ヶ月ぐらい記録してきた結果を表示すると、こんな感じになります。sec)こうやってみると、梅雨は確かに雨が多いなあというのはよくわかります。DBを扱えるようになると工作の幅が広がると思いますので、覚えておいて損はないと思います。コメントをキャンセルメールアドレスが公開されることはありません。hidaka_hirojiAmazonほしいものリストこちら自身の工作用に使いたいものがメインですが、必ずしも工作に使うわけではないのでご了承ください。MUDAなことをしよう。