水耕栽培でビートオールレッドを育てる
水耕栽培器にラズパイ+センサ・カメラを取り付け、野菜を栽培しています。
過去記事:
IoT水耕栽培 - the invention of t88
今回はビートオールレッドを育てました。
あまり耳馴染みがないですが、ベビーリーフの1種のようです。
赤い色が特徴的で、ポリフェノールを多く含むようです。
気の利いた調理方法が見つからなかったので、安直にサラダにしました。
適度に苦味があってなかなかに美味しい。
若干、芽が残っていたので収穫後、放置。
次回は実がなる植物を育てます。
【使用している水耕栽培器】
- 出版社/メーカー: ユーイング
- 発売日: 2015/11/01
- メディア: Tools & Hardware
- この商品を含むブログを見る
種子や肥料は公式のオンラインショップで入手可能。水耕栽培が手軽に楽しめます。オススメです。
水耕栽培でルッコラを育てる
水耕栽培ですが、ジャーマンカモミールの不発により、代打としてルッコラを育てていました。
今度はちゃんと発芽してくれました。ひょろ長い芽が。
ジャーマンカモミールは種まんまでしたが、これまで無事育ったジェンティリナグリーン、水菜、そして今回のルッコラは全部緑色の糖衣みたいなもので包まれています。結構、この緑色のコーティングが重要なんでしょうか?
それはそれとして、今回も成長の様子をGIFで。
ぐんぐん育ちました。室温が上がってきたので、スポンジにアオコが出来るようになりましたが。
パスタにして食す。美味い。
生でも齧ってみましたが、味が濃く美味しかったです。正攻法でサラダにするのも良いかも。
次回:
ビートオールレッドを育てます。
【使用している水耕栽培器】
- 出版社/メーカー: ユーイング
- 発売日: 2015/11/01
- メディア: Tools & Hardware
- この商品を含むブログを見る
室内でもガンガン野菜が育ちます。
種子や肥料は公式のオンラインショップで入手可能。水耕栽培が手軽に楽しめます。オススメです。
【IoT水耕栽培器シリーズ】
色々と水耕栽培で育てています。
OUT:ジャーマンカモミール IN:ルッコラ
前回、水耕栽培で水菜を育て終わった後、次はジャーマンカモミールを育てると宣言しました。
4/30に宣言通り、仕込みました。
ところが、昨日(5/22)まで待っても全く発芽せず。
流石にコレは待っていてもしょうがないということで、ジャーマンカモミールについては諦めて、ルッコラを栽培することにしました。
ジャーマンカモミールは残念でしたが、まずはルッコラの成長を見守りたいと思います。でもジャーマンカモミールもそのうちリベンジしたい。
IoT水耕栽培器で水菜栽培
水耕栽培器にラズパイ+センサ・カメラを取り付け、野菜を栽培しています。
過去記事:
水耕栽培器IoT化 - the invention of t88
前回(1月〜)は、ジェンティリナグリーンを育てました。
今回は、水菜です。
今回も定点カメラの映像を元に成長の様子をGIFにしてみました。
もりもり育っています。
大体、1ヶ月くらいで収穫。
鍋の具材に。
1歳の娘もバクバク食べていたので育てた甲斐がありました。
これ、ほっといたらもう一回生えてこないかな、という事で2nd iteration開始。
あかんかったか。。。
2回目はうまいこと成長しませんでした。肥料を足さなかった事も関係しているのでしょうか。最後、萎びてるのは水切れですね。
次回
ジャーマンカモミールを育てます。
【使用している水耕栽培器】
- 出版社/メーカー: ユーイング
- 発売日: 2015/11/01
- メディア: Tools & Hardware
- この商品を含むブログを見る
種子や肥料は公式のオンラインショップで入手可能。水耕栽培が手軽に楽しめます。オススメです。
ジェンティリナグリーン収穫+GIF作成
水耕栽培器のジェンティリナグリーンは順調に育ち、先日遂に収穫を迎えました。
さて、IoT水耕栽培器ということで、30分ごとにラズパイカメラで写真を撮り、google driveに蓄積していました。今回は、これを繋ぎ合わせて成長の様子を表すGIFを作成したいと思います。
python + pillowでjpgをgif化する
gif作成にはpythonのpillowを使います。
基本的には、これでgifが作成されます。
from PIL import Image import pathlib p = pathlib.Path('201901_ジェンティリナグリーン') files = sorted(list(p.glob('*jpg'))) images = list(map(lambda file: Image.open(file), files)) images[0].save('201901.gif',save_all=True, append_images=images[1:], optimize=False, duration=40, loop=0)
pathlibでjpgのパスを掴んでpillowでgifにして保存。
ただ、何も考えずに30分おきに取得した画像をgif化すると中々の容量になります。今回のケースだとおよそ500MB。容量削減が必要。
gifの容量削減
まず解像度を1024×768から512×384に下げます。
次に、jpgファイルを間引きます。22時から6時は水耕栽培器が消灯しているので、画像も真っ黒。この期間は使わなくて良い。さらに時間間隔も粗くします。色々試しましたが、1日数枚程度でも割と育ってる感は出るみたい。
pythonスクリプトを修正。
from PIL import Image import pathlib p = pathlib.Path('201901_ジェンティリナグリーン') files = sorted(list(p.glob('20190???0700*.jpg')) + list(p.glob('20190???1[3,9]00*.jpg'))) images = list(map(lambda file: Image.open(file).resize((512,384)), files)) images[0].save('201901_圧縮版.gif',save_all=True, append_images=images[1:], optimize=False, duration=20, loop=0)
jpgファイル名がタイムスタンプなのでpathlib globのパターンマッチング条件で対象のファイルを絞り込んでいる。 これで容量は20MB程度まで減少。
さらに
を使って圧縮。
変化のない部分を透明化したり、色数を削減して圧縮を行う。
これで8MB程度まで容量削減。
なんとかはてなブログにあげられる程度まで容量が削減できました。
完成したGIF
若干怖い...。でもなんだか面白い。
今後の予定
中々面白いので引き続き、色んな植物を育ててみます。
次は水菜。
温度、湿度、CO2のデータは今のところ特に使い道がない...。
参考資料
IoT水耕栽培器で野菜を育てる
水耕栽培器IoT化(第9回)
長い道のりでした。
計画を立ててから約半年。
水耕栽培器のIoT化 1stSTEPが完了しました。
いよいよ野菜を育て始めます。
振り返り(システム構成)
水耕栽培器
- 出版社/メーカー: ユーイング
- 発売日: 2015/11/01
- メディア: Tools & Hardware
- この商品を含むブログを見る
本体です。
ラズパイ
Raspberry Pi3 コンプリートスターターキット (Standard 16G)
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログを見る
センサ・カメラを取付け、データ転送を行う。
温湿度センサ
SODIAL(R) DHT22 AM2302 デジタル温度湿度センサーモジュール
- 出版社/メーカー: SODIAL(R)
- メディア:
- この商品を含むブログを見る
CO2濃度センサ
YCOSON MH-Z19 0-5000PPM CO2室内空気質モニタ用赤外線CO2センサUART/PWM
- 出版社/メーカー: SONYCO
- メディア:
- この商品を含むブログを見る
カメラ
視野角130度の広角カメラ。
データ保存
センサ測定値:Ambient
写真:Google Drive
可視化
水耕栽培を始める
初回キットを使います。
種はジェンティリナグリーン*1。
あとは液体肥料、栽培スポンジが入ってます。
ケースに養液を貯める
水を貯めます。4Lほど。結構なみなみ*2。
その後、液体肥料を30ml投入します。
スポンジを準備する
スポンジに水を染み込ませます。
スポンジを取り付ける
苗床パネルの穴にスポンジを取り付けます。
スポンジを取り付けない穴には蓋をします。
種投入
スポンジの窪みに一つずつ種を投入します。
完成
ケースをセット。センサ・カメラの配線を整理。
おわりに
ついに水耕栽培をスタートしました。
今後は基本的に放置。生長を見守ります。
無事収穫が出来たら、また記事にしたいと思います。
常時、Ambientで最新状況を公開しているので、興味がある方はご覧ください。
ラズパイのカメラ画像をGoogle Driveに上げる
水耕栽培器IoT化(第8回)
前回までの取り組みで、Ambientというサービスを使って、センサデータをクラウドに保存&可視化できるようになりました。
今回は、カメラで取得した画像をクラウドに保存できるようにします。保存先としては、APIなどが整っていて扱いやすそうなGoogle Driveを用います。
また、少し工夫をしてAmbient上に最新の写真を表示できるようにします。これによって、Ambientだけで簡易的なダッシュボードが構築できます。
Google Driveの下準備
下記記事を参考に、pythonでGoogle Driveを扱うために必要なパッケージのインストールや、OAuth認証絡みの設定を行います。
基本的に、この通り進めていけば問題ないのですが、私の環境ではpythonスクリプトでエラーが出ました。
pythonスクリプト(エラー部)
from pydrive.auth import GoogleAuth
エラー内容
Traceback (most recent call last): File "picture_test.py", line 4, in <module> from pydrive.auth import GoogleAuth ImportError: No module named pydrive.auth
pydriveのインポートに失敗している模様。
下記コードでパッケージの探索先を明示的に加えてみたところ、エラーは解消。
import sys sys.path.append('/home/pi/.local/lib/python2.7/site-packages/pydrive')
これでローカルのファイルをGoogle Driveにアップロードすることが出来るようになりました。
カメラで撮影&アップロード
①カメラで写真を撮影、②撮影した写真をGoogle Driveにアップロード、③ローカルに残ったファイルを削除する、pythonスクリプトを作成します。
# coding: UTF-8 import sys sys.path.append('/home/pi/.local/lib/python2.7/site-packages/pydrive') import os from datetime import datetime from picamera import PiCamera import time from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive # 写真撮影 with PiCamera() as cam: cam.resolution = (1024,768) cam.rotation = 90 #カメラを横向きに設置したので90度回転させる # 現在時刻を取得 tstp = datetime.now().strftime("%Y%m%d%H%M%S") file_name = tstp + '.jpg' # 写真撮影。取得した現在時刻をファイル名に設定 cam.capture(file_name) # google drive gauth = GoogleAuth() gauth.CommandLineAuth() drive = GoogleDrive(gauth) folder_id = 'hoge' # 写真をアップロード f = drive.CreateFile({'title': file_name, 'mimeType': 'image/jpeg', 'parents':[{'kind':'drive#fileLink','id':folder_id}]}) f.SetContentFile(file_name) f.Upload() # ローカルに保存したファイルを削除 os.remove(file_name)
これでスクリプトが走る度に写真を撮影し、Google Driveの所定のフォルダに画像ファイルを格納することができます。
Ambientに最新画像を表示
Ambientには画像を表示する機能があります。Ambientのチャネル設定の中のEmbed codeの部分にGoogle Driveの共有リンクを貼り付ければ、そのファイルを読み込んで表示してくれます。
このままでは特定の画像を静的に表示するだけですが、共有リンクしたファイルを最新画像に更新すれば、Ambientの表示も最新化することが出来ます。
但し、Google Drive上では同名のファイルを上げても、上書き保存されず別ファイルとして保存されてしまうので、ファイルIDを指定して更新を掛ける必要があります。
具体的な手順としては、下記の通り。
① 蓄積用の画像ファイル(日時.jpg)とは別に、最新データ(latest.jpg)をアップロードする
② Google Drive上でlatest.jpgのファイルIDを確認する。(共有リンクの"open?id="以降の文字列がファイルID)
③ 最新データ(latest.jpg)のアップロード時にファイルIDを指定するようにスクリプトを変更する
先ほどのスクリプトには下記コードを追記することになります。
# 最新版を更新 f1 = drive.CreateFile({'title': 'latest.jpg', 'mimeType': 'image/jpeg', 'parents':[{'kind':'drive#fileLink','id':folder_id}], 'id': 'hoge'}) f1.SetContentFile(file_name) f1.Upload()
4行目の'id': 'hoge'が変化点。hogeの部分にファイルIDを入れる。
実際にスクリプトを実行。Google Driveを確認。
さらにもう一度実行し、Google Driveを確認。
Ambientでの状況も確認(初回スクリプト実行後)
スクリプト2回目実行後。
cronで定期実行
前回同様、cronで定期実行させます。
*/30 * * * * sudo python get_picture.py
とりあえず30分毎に設定しました。
おわりに
Google Driveへのファイルアップロードは思ったより手軽に出来ました。Ambientで最新画像表示もできたので、現在の状況を可視化するダッシュボードとして一応は成立したかな、という印象です。これで、いつでもどこでも野菜の生育状況が確認できる。
8月からボチボチ進めてきて、だいぶ時間が掛かりましたが、これで一通りの準備が完了しました。次回はいよいよ野菜を育て始めようと思います。
前の記事:ラズパイで取得したデータをAmbientに上げる
次の記事:IoT水耕栽培器で野菜を育てる
水耕栽培器IoT化 目次
ラズパイで取得したデータをAmbientに上げる
水耕栽培器IoT化(第7回)
前回までで立ち上げた、温湿度センサとCO2センサで取得したデータをネットに上げます。 データを保存します。あまつさえ可視化します。Ambientを使って。
AmbientはIoTデーターの可視化サービスです。
マイコンなどから送られるセンサーデーターを受信し、蓄積し、可視化(グラフ化)します。
Ambient初期登録
Ambientを使ってみる – Ambient に沿って。
ユーザ登録する
メールアドレス、パスワードを登録するだけ。
チャネルを作る
チャネル、というのが一つのグループ単位のようです。
1つ作成し、設定でチャネル名を変更してみた。
pythonスクリプトを改良する
これまで作成したセンサ読み取り用スクリプトを一つのスクリプトにまとめます。 併せて、Ambientへのデータ送信機能を付け足します。
import Adafruit_DHT as DHT from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN import serial import time import subprocess import slider_utils as slider import getrpimodel import ambient ''' 温湿度センサ ''' # センサー種類 SENSOR_TYPE = DHT.DHT22 # GPIOポート DHT_GPIO = 22 # 測定 h,t = DHT.read_retry(SENSOR_TYPE, DHT_GPIO) # 四捨五入 h = Decimal(h).quantize(Decimal('0.1'), rounding=ROUND_HALF_UP) t = Decimal(t).quantize(Decimal('0.1'), rounding=ROUND_HALF_UP) ''' CO2濃度センサ ''' # setting if getrpimodel.model() == "3 Model B": serial_dev = '/dev/ttyS0' stop_getty = 'sudo systemctl stop serial-getty@ttyS0.service' start_getty = 'sudo systemctl start serial-getty@ttyS0.service' else: serial_dev = '/dev/ttyAMA0' stop_getty = 'sudo systemctl stop serial-getty@ttyAMA0.service' start_getty = 'sudo systemctl start serial-getty@ttyAMA0.service' def mh_z19(): try: ser = serial.Serial(serial_dev, baudrate=9600, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=1.0) while 1: result=ser.write("\xff\x01\x86\x00\x00\x00\x00\x00\x79") s=ser.read(9) if len(s) >= 4 and s[0] == "\xff" and s[1] == "\x86": return {'co2': ord(s[2])*256 + ord(s[3])} break except IOError: slider.io_error_report() except: slider.unknown_error_report() def read(): p = subprocess.call(stop_getty, stdout=subprocess.PIPE, shell=True) result = mh_z19() p = subprocess.call(start_getty, stdout=subprocess.PIPE, shell=True) if result is not None: return {'CO2': result["co2"]} value = read() c = value["CO2"] ''' Ambient ''' ambi = ambient.Ambient(8637, "ライトキー") r = ambi.send({"d1":t,"d2":h,"d3":c})
インスタンス作って、.sendで送るだけ。めちゃくちゃ簡単ですね。
スクリプトを実行すると、こんな感じでデータがあがっています。
cronを使って定期送信させる
定期的にデータを取得したいので、cronを使います。
crontab -e でcrontabファイルを開いて、その中に
*/5 * * * * sudo python data_logging.py
と書き込み。これで5分ごとスクリプトが走ります。
仕上げ
設定でグラフタイトルを変更。
公開設定に変更。
https://ambidata.io/ch/channel.html?id=8637
おわりに
Ambientを使うことですごく簡単にセンサデータのロギングや可視化が出来ました。 あとはカメラのデータについて対応すれば、いよいよ水耕栽培器立ち上げです。
前の記事:ラズパイ×MH-Z19でCO2濃度測定
次の記事:ラズパイのカメラ画像をGoogle Driveに上げる
水耕栽培器IoT化 目次
ラズパイ×MH-Z19でCO2濃度測定
水耕栽培器IoT化(第6回)
またまた間が空いてしまった、水耕栽培器IoT化を進めていきたいと思います。
目標としては今年中に稼動させたい。
大分寒くなってきてるので、室内とは言え植物が正常に育つか不安ですが...。
今回は、CO2濃度センサを立ち上げたいと思います。
下記記事を参考にさせて頂きました。
CO2濃度センサ MH-Z19
CO2濃度センサにはMH-Z19を使います。
結構ネットで関連する記事も見つかり、よく使われている模様。
amazonとかでも売ってますが高いので、Aliexpressで購入しました。
結線
結線用にピンヘッダーを半田付け。
ラズパイと結線。
PWMかUARTかで結線が異なる。
今回はUARTを使うので、下記の様に結線。
ラズパイ | MH-Z19 |
---|---|
5V | Vin |
GND | GND |
GPIO14(UART_TXD) | Rx |
GPIO15(UART_RXD | Tx |
※RXDとTXDは互い違いで結線する
ラズパイ設定、pythonスクリプト
こちらの記事に沿って、
- UARTを有効化
- ラズパイ再起動
- python関連モジュールをpip install
- git cloneで制御プログラムを取得
を行う。
CO2濃度取得
制御プログラムを実行。
CO2濃度1899ppm。大分高い。
30分ほど換気後、再測定。
815ppm。外気が約400ppmらしいのでこの数値はおかしい。
キャリブレーション
ゼロ点補正のコマンドをセンサに送ってキャリブレーションを行う*1。
このコードもこちらの記事を参考に。
キャリブレーション後、再測定。
399ppm。ちゃんとキャリブレーション出来たみたい。
オートキャリブレーションの無効化
デフォルトではオートキャリブレーションが有効になっている。
これは、1日のmin値を400ppmに合わせる仕組みなので、
一日中部屋を閉め切っているような場合は、ゼロ点がずれてしまう。
コマンドを送って無効化する。
先ほどのキャリブレーション用スクリプトを手直し。
センサのマニュアルからオートキャリブレーション入切のコードを確認。
これに沿って、制御プログラムの
ser.write()内の文字列を
"\xff\x01\x79\x00\x00\x00\x00\x00\x06"
に変更。
戻り値がなく、よく分からないが、多分これでokなはず。
おわりに
大分時間が掛かりましたが、カメラ、温湿度センサ、CO2濃度センサの立ち上げが完了しました。 これで用意したセンサ類の準備は全て完了。
次回は、これらのセンサのデータを定期的にネットワークに上げ、 保存する仕組みを構築したいと思います。
前の記事:ラズパイで温湿度測定
次の記事:ラズパイで取得したデータをAmbientに上げる
水耕栽培器IoT化 目次
*1:zeroといっても0ppmではなく、外気の400ppmに合わせるようにオフセットが掛かる模様。
ラズパイで温湿度測定
だいぶ間が空いてしまいましたが、
少しずつ水耕栽培器の立ち上げを進めて行きたいと思います。
今日は、温湿度センサの立ち上げを行います。
室内環境の植物への影響を検討する際に使用予定です。
いつかは、温湿度をトリガとして空調を操作するなどの
応用も行ってみたいと思っています。
温湿度センサ DHT22
SODIAL(R) DHT22 AM2302 デジタル温度湿度センサーモジュール
- 出版社/メーカー: SODIAL(R)
- メディア:
- この商品を含むブログを見る
DHT11という廉価版もあるようですが、
こちらのほうが精度が高いようなので、こちらにしました。
どちらにせよ、大した額ではないです。
あと、本体のみで4端子のものと、
プルアップ抵抗などが載った基板に実装されている3端子のものが、
巷に出回っているようです。
今回は後者を購入。
前者の場合、端子間に抵抗を噛ませる必要あり。
ラズパイに接続
3.3V電源とGPIOポートにつなぎます。
センサ端子(左) ー ラズパイ端子1(3.3V)
センサ端子(中) ー ラズパイ端子15(GPIO22)
センサ端子(右) ー ラズパイ端子6(GND)
ラズパイでデータ取得
DHT制御用のライブラリを入手します。
$ sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git $ cd Adafruit_Python_DHT $ sudo python setup.py install
データ取得用のpythonコードを作成。
# coding: UTF-8 import Adafruit_DHT as DHT from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN # センサー種類 SENSOR_TYPE = DHT.DHT22 # GPIOポート DHT_GPIO = 22 # 測定 h,t = DHT.read_retry(SENSOR_TYPE, DHT_GPIO) # 四捨五入 h = Decimal(h).quantize(Decimal('0.1'), rounding=ROUND_HALF_UP) t = Decimal(t).quantize(Decimal('0.1'), rounding=ROUND_HALF_UP) ## 結果表示 print ('温度:' + str(t) + '℃') print ('湿度:' + str(h) + '%')
結果
まあ、妥当なところでしょうか。
今後
残ったCO2センサで一旦、センサ取り付けは終了。
そのあとは、データ蓄積の仕組み構築に移りたいです。
参考
コードなど、ほぼそのまま使わせていただきました。 qiita.com
植物観察用のカメラモジュール
水耕栽培器IoT化(第4回)
前回までで、水耕栽培器本体とラズパイの立ち上げが完了しました。 今回は、植物観察用のカメラモジュールの取り付け、選定を行います。
取り付ける場所
側面から撮るのが一番分かりやすいとは思いますが、 スペースの関係もあるので、水耕栽培器の天井にカメラを貼り付けて 俯瞰で映す形をまずは検討します。
購入したカメラモジュール
①サインスマート カメラモジュール
- メディア:
- この商品を含むブログを見る
amazonで安価に買えるので、まずはこちらを購入。
ただ、視野角が狭いのでは、という懸念があります。
ということで広角のカメラモジュールを用意しておきたい。 ただ、日本のwebショップであまりいい感じのが見つからなかったので 今回はAliExpressで探しました。
(参考)AliExpress
中国アリババの通販サイト。すごく安い。
日本で手に入らないものも売っている。
送料がタダ。
着荷までには2週間程度掛かる。
そして外れを引くこともある。*1
AliExpressではラズパイカメラや各種センサ類も豊富に用意されています。 そしてどれも日本と比べるとだいぶ安い。楽しくなってきます。 この安さも後押しして、念のため視野角の異なる2つのカメラモジュールを購入することにしました。
②視野角130度
③視野角150度 ja.aliexpress.com
どうみても同じものに見えますが、スペック上 は視野角が違うと仰っている。
配線
ラズパイのカメラ用端子に、カメラモジュールのフラットケーブルを接続します。 黒い爪を引き上げて差し込む形。ケーブルには表裏があるので注意。端子がむき出しになっているほうをHDMI端子側にする。 最後に爪を戻して固定。
ただこのケーブル、デフォルトでカメラに付いているものは非常に短い。
これでは取り回しが効かないので、別途ケーブルを購入しました。
SYNC フラットケーブル ラズベリーパイ 適用 Raspberry Pi カメラモジュール 延長ケーブル 100cm
- 出版社/メーカー: SYNC
- メディア: エレクトロニクス
- この商品を含むブログを見る
新しいケーブルに付け替え。カメラ側も同じ端子。
ラズパイでの写真撮影
ラズパイでの写真撮影は拍子抜けするほど簡単です。
まずはraspi-configで、カメラモジュールをenableにします。
raspi-config: [5 Interfacing Option] - [P1 Camera]
と進んでいき、カメラを有効化します。
そしてコマンドで
raspistill -o ファイル名
とするだけ。非常に簡単ですね。
ところが、サインスマートのモジュールを試したところ、こんなエラーが。
調べてみると、基板とカメラの接続部(オレンジ色の部分)が外れていたようです。この部分、結構外れやすいので要注意です。
検証
視野角の異なるカメラを3種類用意したので、 それぞれの見え方を確認し、最適なカメラを選定します。
しかしここで問題発生。aliexpressで購入した二つのカメラモジュール、どっちがどっちだかわからない...。まあ写真を撮ってみれば分かるので問題ないのですが。
検証方法としては、下の写真のようにダミーを置いて、各カメラでどの辺りまで映るのか確認します。
サインスマート
真ん中に置いた響しか映っていない。やはり視野角が狭すぎますね。
広角カメラ その1
広角カメラ その2
あれ?やっぱり同じような視野角のような?
どちらにせよ、両端に置いた白州と山崎までは映らないようですが、
いい感じで全体像が撮れています。
この辺まで近づけると映る。
とりあえず広角カメラその1を用いることにします。ただ、まだ全体を映しきれてないので、 もう少し広角のカメラも引き続き探索して、どこかのタイミングで付け替えるかもしれません。
あともう一つ課題として、今は水耕栽培器の天井に100均で買った両面テープで貼り付けていますが、LEDの熱と光で割と過酷な環境。 だんだん粘着力が落ちている気配を感じます。後ほど、ちゃんとしたメーカーの耐熱性の両面テープに貼り替える予定です。
まとめ
ひとまず、カメラが使えるようになりました。 次回は温湿度センサーの取り付けを行いたいと思います。
前の記事:水耕栽培器Green Farm(UH-A01E1)を購入した
次の記事:ラズパイで温湿度測定
水耕栽培器IoT化 目次
*1:300円のワイヤレスイヤホンを買ったら酷いものが届きました。
水耕栽培器Green Farm(UH-A01E1)を購入した
水耕栽培器IoT化の重要アイテムということで、 前回、ラズパイを準備しましたが、 これこそが本当のマストアイテム。水耕栽培器を購入しました。
購入したのはユーイングのGreen Farm(UH-A01E1)。 お値段2万円弱ということで中々大きな買い物...。
- 出版社/メーカー: ユーイング
- 発売日: 2015/11/01
- メディア: Tools & Hardware
- この商品を含むブログを見る
ただ作りはしっかりしていそうだし、機能も一通り揃ってる。
半密閉構造はセンサを付け足していくのに便利。
あとエアポンプも付いている点もポイント高し。
最終的にはレビューの評価が高い事が決め手となりました。
開封
一部、保護材を噛ませている部分などありますが、 基本的に箱の中に箱、みたいな感じで製品がそのまま入ってます。
従って、セッティングは簡単。置くだけ。
点灯!結構まぶしい。色は5000Kくらいかな。
さあ早速始めてみよう、と思っても実は、種とか肥料は付属されていません。
同梱されたハガキでお試しキットを申し込む必要があります。*1
種と肥料とスポンジが入ってます。
今度こそ始められる。始められますが、まだ始めません。
いくつかセンサ類を取り付けてから栽培を始める予定です。
次の記事:植物観察用のカメラモジュール
前の記事:はじめてのラズパイ
*1:種の期限などあるのは理解できるけど、何とかならないものか...
はじめてのラズパイ
水耕栽培器のIoT化に当たり、まずはこれがなければ始まらない。
Raspberry Pi を用意します。
昔、Arduinoを買ってエルチカ位しかせずに速攻で飽きた経験がありますが、 ラズパイは今回が初めて。
購入
Raspberry Pi3 コンプリートスターターキット (Standard 16G)
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログを見る
初めてだし、楽でいいよねって事で選択。全部そろってます。 OSが最初からインストールされているのは楽で良かった。 コード類は不要なものもあるので、次回は普通にバラで買おうかな。
立ち上げ
もろもろ配線接続し、OSインストール済みのSDカード挿して起動!
映った!簡単!
こんなに安いのに普通にPCだ、と感心してしまった。
日本語化
初期状態では日本語の入出力が出来ない。
少し古い記事ですが、下記を元に設定。
dekirukana-dekirukana.hatenablog.com
できた。
リモート接続
最終的に、ラズパイは水耕栽培器の中に設置することになるので キーボード、マウス、HDMIの引き回しは困難になる。 他PCからのリモート接続は必須。
こちらを参考に。xrdpというソフトをラズパイに入れる。 qiita.com
その後、リモート操作したい端末からリモートデスクトップ接続。
ラズパイに割り振られているipアドレスにアクセス。
ラズパイのID/PWでログイン。
映った!
ラズパイのIPアドレス固定
我が家はマンション備付のSUISUILite-plusというサービスでネット接続しています。 マンションで共用のルータが各宅につながっていて、こいつがローカルIPを割り当てるので ローカルIPは動的に変化する。
arp -aでラズパイのMACアドレス(b8:27:eb~)に紐付いているIPアドレスを毎回探しても良いのだけど、 割と面倒なのでIPアドレスを固定したい。ただし、当然共用ルータには設定できない。
ということで無線LAN APで使っているbuffalo / WSR-2533DHP-CBをルータモードに変更。 共用ルータから割り当てられたローカルIPを、自宅ルータで再度変換する2重NATの構成にする。
あとは自宅ルータのDHCPリース設定でラズパイのIP割当を固定。
これで毎回同じIPでリモート接続できる、はず。
今後の予定
カメラやらセンサやらをラズパイにつなげていく。
オクラ収穫とか台風21号とか
仕事が始まってブログの存在をすっかり忘れていました。
リハビリを兼ねて最近の出来事をつらつらと。
オクラ収穫
今年から栽培を始めたオクラが遂に収穫の時期を迎えました。
奥さん(敬称あり)の実家から芽が出て少し育った状態で分けてもらったんですが、
向こうはだいぶ前に収穫していたようなので、やっぱりベランダって発育悪い?
日光が足りてないんでしょうか?
まあとりあえず収穫できるまで育ったから良し。
収穫したオクラはめっちゃ臭い! これ食えるんか?、と不安になったんですが、どうも新鮮なオクラは臭う事があるらしいですね。 加熱したら臭いも消えました。しかも美味い。
トマトより味の違いが出て、満足感高いかも。 虫も付かないし、葉が枯れることもないし、なかなかいいですね。オクラ。
台風21号
北海道の地震ですっかり話題にならなくなりましたが、台風21号凄かったですね。
自宅は大阪市内ですが猛烈でした。 淀川が氾濫するかも、みたいな話もありました。何とか堪えてくれてよかった。
自宅自体の被害はあまりなく、精々ベランダ菜園が崩壊したくらいでしょうか。
その日中に復旧。
これからは台風のときは
室内に入れられるようにしておかなければ、
飛んでいったら周りに危険が及ぶし、
と反省した一件でした。
今後の計画
最近、仕事が若干落ち着いているので、今の内に色々やっておきたい。
水耕栽培器IoT化計画
水耕栽培器IoT化について、ざっくりとした計画を立てます。
構成
水耕栽培器
ユーイング製の水耕栽培器を使用。*1
- 出版社/メーカー: ユーイング
- 発売日: 2015/11/01
- メディア: Tools & Hardware
- この商品を含むブログを見る
ラズパイ
IoT化に当たっての必需品。*2
Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Clear)-Physical Computing Lab
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログ (4件) を見る
センサ類
- 温湿度センサ
- CO2濃度センサ
- カメラ
- 照度計
- phメータ
※センサ類は段階的に導入*3
データ蓄積
とりあえずラズパイに溜め込んでおく。
若しくはクラウドに上げる。
データ活用
- 定点カメラの画像で植物の成長をgifにする
- 植物の発育不良などの原因分析・予兆検知
- カメラ画像を用いた食べ頃予測
- 照明等の外部構成のカスタマイズの効果確認
※gif画像作成以外は要データ蓄積。
とりあえず色んな植物を育てて成長の様子を記録する。
応用
- ダッシュボード作成
- iOSアプリ化
- スマートスピーカ連携