ただし、湿度に関してはNature Remoの測定範囲が30~70%であるため、湿度がほぼ100%になることもあるビニールハウス内で測定目的に使用するには向かなかったですね。もちろん、トリガーとしては使えます。温度の測定のみを目的とするのであれば、温度センサーのみの、Nature Remo mini、もしくはmini2でよさそうです。
さて、本題になりますが、より汎用性を持たせるためRaspberry Pi(ラズベリーパイ )を使い温度・湿度を測定、リアルタイムでスプレッドシートに記録できるようにしていきたいと思います。
Raspberry Piというのは、いろいろ使える安価なシングルボードコンピュータです。Raspberry Piを使うことで、測定項目を自由に設定でき、さらにバッテリーでの駆動が可能なので電源のない場所でも測定ができます。
ちゃんと比較はしていませんが、おそらく、価格としても、出来合いの高機能測定器を購入するよりは、相当抑えられそうな気がします(たぶん)。
最初は、必要なものが揃っているスターターキット的なもの購入してしまった方が、使い始めやすいかもです。私が購入したのは、LABISTSのこちら。あとは、初期設定用にディスプレイとキーボードとマウスが必要になりますが、設定さえしてしまえばSSHやリモートデスクトップから使えます。
今回はまず、温度と湿度の測定までを行います。
Linuxコマンドによる操作、そして、ほぼ無知の電子工作と、覚えよう覚えようと思いつつ後回しになっていたPythonが必須となりますので、脳みそフル回転です(笑)。
Raspberry Piは、Raspberry Pi 4 Model B、4GBメモリ、Raspberry Pi OS。温湿度センサーモジュールは、DHT22 AM2302を使用。
方法はいろいろとあるようですが、一番簡単そうだった↓を参考にさせていただきながら、設定をしていきます。
まずは、Raspberry Piと温湿度センサーモジュール DHT22を接続。
DHT22側:Raspberry Pi側(ピン番号)
DAT:GPIO26(37)
VCC:3.3V(17)
GND:GND(39)
Pythonはあらかじめインストールされていますので(Python3系を使用)、次に、Githubからセンサーの値を取得するためのライブラリをインストールします。
$ sudo git clone --recursive https://github.com/freedom27/MyPyDHT $ cd MyPyDHT $ sudo python3 setup.py install
作業フォルダの作成。
$ cd $ mkdir Python $ cd Python $ mkdir MyPyDHT
温度、湿度の値を取得するためのPythonコードを作成。「MyPyDHT」フォルダに保存。ファイル名は「te_hu.py」。
#!/usr/bin/env python3 # センサー制御取得 import MyPyDHT # 測定の開始(26は、接続したGPIOポート) humidity, temperature = MyPyDHT.sensor_read(MyPyDHT.Sensor.DHT22, 26) # 結果の表示 print("Temperature = " + str(temperature) + " \nHumidity = " + str(humidity))
実行。
$ python3 te_hu.py Temperature = 11.5 Humidity = 47.9
……ということで、とりあえず、温湿度センサーから温度と湿度の値を取得できるようになりました。
(たまにエラーが出ますが、モジュール側で値を出力しているタイミングがあるらしく、それを外れるとエラーが返ってくるみたいです。こちら参照。)
-----
・追記(2021-3-20)
Raspberry Pi Zero WHでは、こちらのライブラリは使えませんでした。同じくGithubからインストールできるAdafruit_Python_DHTが使えました(こちら)。
-----
これを定期的に取得してデータを保存するのですが、たいしたデータ量でもないですし、データベースに格納するより、Google スプレッドシートにダイレクトに記録してしまった方が便利そうだなぁ、と思って調べたら、まさしくそんな事をやっている方がおられて解説がありました。先人たちの知恵は偉大ですね。
次回は、Raspberry Piで温度と湿度の値を定期的に取得して、スプレッドシートに記録してみます。