ラズベリーパイで湿度・温度を記録し、Webサーバーでグラフ化する

ラズベリーパイ
この記事は約6分で読めます。

ラズベリーパイで電子工作!を楽しむ方法の一つに、ラズベリーパイにセンサーを付けて、室内外の温度や湿度を測定することがあります。

以前の記事でも、ブレッドボードに温度・湿度センサーを付けてトライしてみたことがありました。

ラズパイで温度・湿度センサーとフルカラーLED
本日は、湿度・温度センサーとラズベリーパイをつなげて、実際に室内の湿度や温度を計ってみたり、温度や湿度に応じてLEDの色を変化させてみました。ラズパイで温度・湿度センサーを使ってみるスキマ時間をちょこちょこ使って、クジラ飛行机さんの「やさし...

今回の記事では、それをさらにグラフ化しちゃいました、という内容です。

スポンサーリンク

Udemyの講座を受ける

去年の秋より、ビデオ講義が受講できるUdemyの各種講座にハマりまして、片っ端から受講している私。

Udemyについてはこちらの記事で詳しく紹介しています。

【Udemy】オンラインビデオ学習でプログラミングを勉強する【MOOC】
最近、ブログの更新が滞っておりましたが、その理由の一つに現在ハマっているものがございました。その名も、知る人ぞ知るUdemy。今回は、オンラインビデオ学習についてのお話です。 MOOCがはやってる? MOOCという言葉を初めて知ったのは...

さて、そんなさなか、Udemyの講座にもラズベリーパイに関するものが各種あることを知りました。その中の一つを今回受講して、無事全てを終えることができたのでした。具体的には、オーストラリア人のピーター先生の以下の講座です。

上の講座は全て英語なのですが、分かりやすい英語で、帰国子女でも英語圏在住者でもない私でも最後までついていくことができました。Udemyでは、講座を購入しなくても、プレビューで実際に何分間か講義を試聴することができるので、先生の英語でも話し方でも自分に合うかどうかを事前に確認できるのは嬉しいところです。

また、いったん購入した後も30日間は払い戻しの手続きができるので、購入した後でも、付いていけない!と思った際には返金手続きを受けることができます。

キャンペーン価格だと1000円~2000円で購入できるので、本を一冊購入する感覚で始めることができます。

→ラズベリーパイに関する講座をUdemyで見てみる

さて、今回私が受けたのは、具体的にどういう講座かというと、ラズパイにウェブサーバーを作り、湿度・温度を記録してグラフ化するというプロジェクトをやっていくものです。

以下に、私が実際にやったことを紹介してみます。

ラズパイの基本的な使い方(SSHでオール遠隔操作)

まずは、ラズベリーパイの基本的な使い方を教わります。ここはすでに私は知っていることだったので、軽く流した程度でしたが、SDカードにRaspbianのOSを焼いたり、こまめにOSのバックアップを取ったり、SSHで遠隔操作する設定をしたり、といった一連のことをビデオで見ながら学んでいきます。

電子回路をブレッドボード上に作る

次にラズパイにブレッドボードをジャンパワイヤーで接続して、湿度・温度センサー、LEDライト、ボタンをつなげる回路を作ります。

ここで、パイソンのプログラムでボタンを押したら、LEDが光るものを作ってみたり…。

実際に、温度・湿度が測定できることを確認しました。

ウェブサーバーを構築

さて、ここまでは今までも実行してきたことだったのですが、ここからが私にはNewな内容でした。

ズバリ、ラズパイ上にWebサーバーを作ってPythonのWebフレームワークであるFlask等をインストールしたのでした。

さらにHTMLページで、湿度と温度をリアルタイムで表示できるようにしました。

おまけで下に日本語表示も追加!

湿度と温度をデータベース(SQLite)に記録

次に、ラズパイで測定される温度・湿度の値をデータベースに記録していきます。今回初めてSQLiteというデータベースを使用しました。SQLなどのデータベースは、このブログを書いているワードプレスでも使用されているほど身近な存在なのですが、実は使い方をよく分かっていない私。いつかきちんと学んだ方がいいかな、と思いつつ今に至ります。今回も最低限の操作方法を覚えて乗り切りました。

データベースに記録された温度と湿度は、HTMLページ上にこんな風に表示されます。

湿度と温度をグラフで描画

さらに、Webページ上に、湿度と温度のグラフを描画できるようにしました。

グラフの期間は、当初は直近の3時間、6時間、12時間、24時間を指定できるのみでしたが、さらに、長い期間にわたって時間刻みで指定して表示できるように機能がパワーアップされました。

期間指定はこんな感じで、ビジュアル的にも分かりやすく操作できます。

Plotlyで高度なグラフを描画

さらに、Plotlyを使用して、さらにプロっぽいグラフ描画もできるようにします。

期間を指定したのち、Plotlyのリンクボタンを押すと…

 

Plotlyのページに飛んで、こんな感じに、湿度と温度を折れ線グラフで同じグラフ内に表示できます。折れ線グラフの他にも棒グラフやチャートなど、自由にカスタマイズできるのがPlotlyの楽しいところです。

インターネットで公開

さらには、できた湿度・温度グラフをインターネットで公開しましょう、というところまであるのですが、私の場合、家のルータ―がイマイチ対応していないようなので、断念いたしました(単に私が勉強不足なだけかもしれませんが)。高度なルーターを持っている人は家の中のWebサーバーを外に公開できるような設定ができると思います。

できちゃった!

とまぁ、偉そうに、ラズパイで温度・湿度センサーを用いてグラフ化しましたぜ、と申してきましたが、やっていることはぶっちゃけ、講座でピーター先生が教えていることをそのまま実行しただけです(^^;。

ソースコードも公開してくれているので、エラーが出た場合は、ソースコードを見ながら、あぁでもない、こうでもない、と考えつつ、最悪よくわからなければ、コピペという裏技も使えます。また、分からない疑問点があった場合は、Q&Aのコーナーで質問すると、ティーチングアシスタントの方が親切に答えてくれるので心強かったです。

英語の講座だけでなく、日本語の講座でもラズパイをはじめ、様々なコースがありますので、興味のある方は是非、見てみてください。

→ラズベリーパイに関する講座をUdemyで見てみる

というわけで、我が家では、常時ラズパイを稼働させて温度・湿度をグラフで表示させることができるようになりました。別の部屋には、NETATMO(ネタトモ) ウェザーステーションがあり、別途温度・湿度を測定してくれています。

そこまで各部屋の温度・湿度を測定するのに何の意味があるのかね、と言われれば、たぶんありません(_;。100%趣味でやっているわけですが、こういう楽しみもある、ということでご容赦くださいませ。

コメント

  1. おー より:

    はじめまして。
    ブログでデジタル百葉箱の製作記を書いてます。
    私もクレウエタンさんとほとんど同じことを実践しているので、参考になりました。
    plotソフトがオシャレですね。

    私のブログも見てくださいね。(^▽^)/

    データベースの処理も興味ありますが、私には難しすぎます。

    • おーさん、コメントありがとうございます。
      「デジタル百葉箱」、ネーミングが秀逸!と思いながら、ブログを拝見しました。うわ、めちゃくちゃ本格的ですね。きちんとしたケースに収納されている感じもカッコいいです!!!着々と完成に近づいている感じで。これからもちょくちょく拝見させていだきます(^^♪。

  2. おー より:

    お返事ありがとうございます。
    デジタル百葉箱初号機は職場にて屋外連続運用試験中です。
    2号機は自宅にて動作確認中です。

    2号機は機能を増やしたので、プログラミングというかPHPやシェルスクリプトの扱いに四苦八苦しています。
    自分で「こんなことできたらいいな」のドラえもんの世界が実現できるのが楽しいですね。
    来年度業務でデジタル百葉箱が使用できるといいなあ、と思っています。

    クレウエタンさんの、プログラミングを楽しんでる感がとても心地よいです。

    • おーさん、こんにちは。ホームページ拝見しました。デジタル百葉箱、2台で稼働されているんですね。実際に屋外で連続運用中とは素敵です。
      我が家でも屋外では市販のNetatmoウェザーステーションが稼働していますが、あれに似たものが自作で可能になってしまうなんて驚きですよね。
      学校の先生をなさっているんですか。おーさん(おー先生、ですね)のように教室に楽しいことを届けてくれる先生に教わることのできる生徒さんは、貴重な体験をたくさんされているんでしょうね。
      ほっこりさせていただきました!(^^)!。私もプログラミングがんばります。

タイトルとURLをコピーしました