以前に空気コンディションモニタを作った際に使った「Anavi」のuHAT、他にも色々あるみたいです。
その中で、最近ちょっと個人的にハマっている観葉植物向けに、必要なセンサーを組み合わせた「Gardening uHAT」があったので購入してみました。
今回はとりあえず各センサーの使い方まで。
目次
必要なもの
Raspberry Pi
実は在庫がどこにもなくて、これが一番ハードルが高いかも。以前買ったままで使ってなかったRaspberry Pi Zero Wがたまたまあって、uHATをつなげるにはGPIOピンが必要、ということで自分でハンダ付けしました。ちなみに人生ほぼ初のハンダ付けで、いろいろわかってなくてちょっと苦労しました。
今にして思えばなぜWHにしなかったのかとほんと後悔・・・でもおかげで学べたし、なんとか動いてよかった。
Anavi Gardening uHAT
今回のキモ。3パターンのパッケージがありますが、Developer Kitにしました。Developer Kitだと以下のセンサーが入ってます。
- 土壌水分センサー x 2
- 温湿度センサー(HTU21D)
- 光センサー(BH1750)
- 防水温度センサー(DS18B20)
全部つなぐとこんな感じです。
あと、本体にLEDが2つあります。
観葉植物
近所で見つけて買ってきた緋牡丹サボテンです。オレンジでほんとかわいい。いつか株分けとかしてみたい。
手順
OSイメージの書き込み
ZERO WなのでOSは"Raspberry Pi OS 32-bit"です。あと、今まで全然気づかなかったのだけど、Raspberry Pi ImagerでOS初期設定とか出来ちゃうんですね。
とりあえず、
- ホスト名
- SSH有効化
- ユーザ名・パスワードの設定
- WiFi設定
- ロケール設定
あたりを設定してSDメモリに書き込みます。これならモニタもキーボードもいらないし、ホント便利ですね。
セットアップ
RPiを起動して、あとはマニュアルに従ってやっていくだけですが、一応一通りやってみます。
OSアップデート
$ sudo apt update $ sudo apt upgrade
パッケージをインストール。マニュアルの下の方にもパッケージ追加する箇所がありますがここでまとめて。wiringpiはとりあえず不要。wiringpiもまだ必要ですね
$ sudo apt install -y git i2c-tools vim python3-rpi.gpio python3-dev $ cd /tmp $ wget https://project-downloads.drogon.net/wiringpi-latest.deb $sudo dpkg -i wiringpi-latest.deb
raspi-configで各種インタフェースの有効化
$ sudo raspi-config
"Interfacing Options"を選択
以下のインタフェースを選択して、それぞれ有効化していきます。
- SPI
- I2C
- 1-Wire
全部のインタフェースを有効にしたら、raspi-configを終了して、一旦再起動します。
各センサーの使い方
ここから各センサーの使い方を見ていきます。
公式のサンプルがあるのでまずはそちらをgit cloneします。
$ cd ~
$ git clone https://github.com/AnaviTechnology/anavi-examples.git
土壌水分センサー
公式のサンプルにPythonのコードが含まれています。
$ cd ~/anavi-examples/anavi-gardening-uhat/soil-moistore-sensors/python/ $ python3 soil-moistore-sensors.py Soil Moisture Sensor 1: 95.0 % Soil Moisture Sensor 2: 0 % Soil Moisture Sensor 1: 95.0 % Soil Moisture Sensor 2: 0 % Soil Moisture Sensor 1: 95.0 % Soil Moisture Sensor 2: 0 % ...snip...
今回はセンサー1つだけなので、Sensor 1のほうですね。水につけてなくても95%もあるの?とりあえず水につけてみる。
...snip... Soil Moisture Sensor 1: 100 % Soil Moisture Sensor 2: 0 % Soil Moisture Sensor 1: 100 % Soil Moisture Sensor 2: 0 % Soil Moisture Sensor 1: 100 % Soil Moisture Sensor 2: 0 % ...snip...
一応100%にはなる。これはちょっとコードを読んでみないといけないかも。とりあえずセンサーとしては動いていることは確認できたので良しとする。
温湿度センサー(HTU21D)
こちらも公式のサンプルを。Infrared pHATと同じですね。
$ cd ~/anavi-examples/sensors/HTU21D/c/ $ make gcc -c -o HTU21D.o HTU21D.c -I. gcc -c -o HTU21D-example.o HTU21D-example.c -I. gcc -o HTU21D HTU21D.o HTU21D-example.o -I. -lwiringPi $ ./HTU21D HTU21D Sensor Module 25.29C 40.23%rh
取れていますね。
光センサー(BH1750)
こちらも公式のサンプルを。Infrared pHATと同じ。
$ cd ~/anavi-examples/sensors/BH1750/c/ $ make $ ./BH1750 BH1750 Sensor Module Light: 76 Lux
防水温度センサー(DS18B20)
こちらはサンプル不要です。
$ ls /sys/bus/w1/devices/ 28-03089779830a w1_bus_master1 $ cat /sys/bus/w1/devices/*/w1_slave 81 01 55 05 7f a5 a5 66 a3 : crc=a3 YES 81 01 55 05 7f a5 a5 66 a3 t=24062
t=
の後の数字が温度です。1000で割ると摂氏温度になるようなので、上の例だと24℃ってことですね。
LED
最後にセンサーではないですが、LEDの操作。サンプルがあります。
$ cd ~/anavi-examples/anavi-gardening-uhat/led/python
$ python ./blink.py
まとめ
これで各センサーやLEDが操作できるところまできました。次回は実際に植物の監視的なことをやっていきます。